로그 추가 메인 수정 중
							parent
							
								
									92e165a69c
								
							
						
					
					
						commit
						413dbf0c19
					
				
											
												Binary file not shown.
											
										
									
								|  | @ -6,15 +6,27 @@ EndProject | ||||||
| Global | Global | ||||||
| 	GlobalSection(SolutionConfigurationPlatforms) = preSolution | 	GlobalSection(SolutionConfigurationPlatforms) = preSolution | ||||||
| 		Debug|Any CPU = Debug|Any CPU | 		Debug|Any CPU = Debug|Any CPU | ||||||
|  | 		Debug|IEC1000_CE6 (ARMV4I) = Debug|IEC1000_CE6 (ARMV4I) | ||||||
|  | 		Debug|Mixed Platforms = Debug|Mixed Platforms | ||||||
| 		Release|Any CPU = Release|Any CPU | 		Release|Any CPU = Release|Any CPU | ||||||
|  | 		Release|IEC1000_CE6 (ARMV4I) = Release|IEC1000_CE6 (ARMV4I) | ||||||
|  | 		Release|Mixed Platforms = Release|Mixed Platforms | ||||||
| 	EndGlobalSection | 	EndGlobalSection | ||||||
| 	GlobalSection(ProjectConfigurationPlatforms) = postSolution | 	GlobalSection(ProjectConfigurationPlatforms) = postSolution | ||||||
| 		{37DB9023-1C6E-4094-9777-C626E6885290}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | 		{37DB9023-1C6E-4094-9777-C626E6885290}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | ||||||
| 		{37DB9023-1C6E-4094-9777-C626E6885290}.Debug|Any CPU.Build.0 = Debug|Any CPU | 		{37DB9023-1C6E-4094-9777-C626E6885290}.Debug|Any CPU.Build.0 = Debug|Any CPU | ||||||
| 		{37DB9023-1C6E-4094-9777-C626E6885290}.Debug|Any CPU.Deploy.0 = Debug|Any CPU | 		{37DB9023-1C6E-4094-9777-C626E6885290}.Debug|Any CPU.Deploy.0 = Debug|Any CPU | ||||||
|  | 		{37DB9023-1C6E-4094-9777-C626E6885290}.Debug|IEC1000_CE6 (ARMV4I).ActiveCfg = Debug|Any CPU | ||||||
|  | 		{37DB9023-1C6E-4094-9777-C626E6885290}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU | ||||||
|  | 		{37DB9023-1C6E-4094-9777-C626E6885290}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU | ||||||
|  | 		{37DB9023-1C6E-4094-9777-C626E6885290}.Debug|Mixed Platforms.Deploy.0 = Debug|Any CPU | ||||||
| 		{37DB9023-1C6E-4094-9777-C626E6885290}.Release|Any CPU.ActiveCfg = Release|Any CPU | 		{37DB9023-1C6E-4094-9777-C626E6885290}.Release|Any CPU.ActiveCfg = Release|Any CPU | ||||||
| 		{37DB9023-1C6E-4094-9777-C626E6885290}.Release|Any CPU.Build.0 = Release|Any CPU | 		{37DB9023-1C6E-4094-9777-C626E6885290}.Release|Any CPU.Build.0 = Release|Any CPU | ||||||
| 		{37DB9023-1C6E-4094-9777-C626E6885290}.Release|Any CPU.Deploy.0 = Release|Any CPU | 		{37DB9023-1C6E-4094-9777-C626E6885290}.Release|Any CPU.Deploy.0 = Release|Any CPU | ||||||
|  | 		{37DB9023-1C6E-4094-9777-C626E6885290}.Release|IEC1000_CE6 (ARMV4I).ActiveCfg = Release|Any CPU | ||||||
|  | 		{37DB9023-1C6E-4094-9777-C626E6885290}.Release|Mixed Platforms.ActiveCfg = Debug|Any CPU | ||||||
|  | 		{37DB9023-1C6E-4094-9777-C626E6885290}.Release|Mixed Platforms.Build.0 = Debug|Any CPU | ||||||
|  | 		{37DB9023-1C6E-4094-9777-C626E6885290}.Release|Mixed Platforms.Deploy.0 = Debug|Any CPU | ||||||
| 	EndGlobalSection | 	EndGlobalSection | ||||||
| 	GlobalSection(SolutionProperties) = preSolution | 	GlobalSection(SolutionProperties) = preSolution | ||||||
| 		HideSolutionNode = FALSE | 		HideSolutionNode = FALSE | ||||||
|  |  | ||||||
|  | @ -29,6 +29,11 @@ | ||||||
|         private void InitializeComponent() |         private void InitializeComponent() | ||||||
|         { |         { | ||||||
|             this.smartGroupBox1 = new SmartX.SmartGroupBox(); |             this.smartGroupBox1 = new SmartX.SmartGroupBox(); | ||||||
|  |             this.buttonBackup = new SmartX.SmartButton(); | ||||||
|  |             this.labelCount = new SmartX.SmartLabel(); | ||||||
|  |             this.smartListBox1 = new SmartX.SmartListBox(); | ||||||
|  |             this.treeViewLogAlarm = new System.Windows.Forms.TreeView(); | ||||||
|  |             this.smartGroupBox1.SuspendLayout(); | ||||||
|             this.SuspendLayout(); |             this.SuspendLayout(); | ||||||
|             //  |             //  | ||||||
|             // smartGroupBox1 |             // smartGroupBox1 | ||||||
|  | @ -36,6 +41,10 @@ | ||||||
|             this.smartGroupBox1.BackGround = null; |             this.smartGroupBox1.BackGround = null; | ||||||
|             this.smartGroupBox1.BackGroundColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224))))); |             this.smartGroupBox1.BackGroundColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224))))); | ||||||
|             this.smartGroupBox1.BackImage = null; |             this.smartGroupBox1.BackImage = null; | ||||||
|  |             this.smartGroupBox1.Controls.Add(this.buttonBackup); | ||||||
|  |             this.smartGroupBox1.Controls.Add(this.labelCount); | ||||||
|  |             this.smartGroupBox1.Controls.Add(this.smartListBox1); | ||||||
|  |             this.smartGroupBox1.Controls.Add(this.treeViewLogAlarm); | ||||||
|             this.smartGroupBox1.FrameLineColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(58)))), ((int)(((byte)(110)))), ((int)(((byte)(165))))); |             this.smartGroupBox1.FrameLineColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(58)))), ((int)(((byte)(110)))), ((int)(((byte)(165))))); | ||||||
|             this.smartGroupBox1.FrameLineColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(58)))), ((int)(((byte)(110)))), ((int)(((byte)(165))))); |             this.smartGroupBox1.FrameLineColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(58)))), ((int)(((byte)(110)))), ((int)(((byte)(165))))); | ||||||
|             this.smartGroupBox1.FrameLineThickness = 2; |             this.smartGroupBox1.FrameLineThickness = 2; | ||||||
|  | @ -49,6 +58,181 @@ | ||||||
|             this.smartGroupBox1.Text = "smartGroupBox1"; |             this.smartGroupBox1.Text = "smartGroupBox1"; | ||||||
|             this.smartGroupBox1.TextColor = System.Drawing.Color.White; |             this.smartGroupBox1.TextColor = System.Drawing.Color.White; | ||||||
|             //  |             //  | ||||||
|  |             // buttonBackup | ||||||
|  |             //  | ||||||
|  |             this.buttonBackup.BackGround = this.smartGroupBox1; | ||||||
|  |             this.buttonBackup.BackGroundColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224))))); | ||||||
|  |             this.buttonBackup.ButtonColor = System.Drawing.Color.FromArgb(((int)(((byte)(58)))), ((int)(((byte)(110)))), ((int)(((byte)(165))))); | ||||||
|  |             this.buttonBackup.ButtonDownColor = System.Drawing.Color.SlateGray; | ||||||
|  |             this.buttonBackup.ButtonImageAutoSize = true; | ||||||
|  |             this.buttonBackup.ButtonStyle = SmartX.SmartButton.ButtonStyles.FlatRound; | ||||||
|  |             this.buttonBackup.ButtonText = "Backup"; | ||||||
|  |             this.buttonBackup.ColorKeySamplePosition = new System.Drawing.Point(0, 0); | ||||||
|  |             this.buttonBackup.GroupID = 0; | ||||||
|  |             this.buttonBackup.ImageDisable = null; | ||||||
|  |             this.buttonBackup.ImageDown = null; | ||||||
|  |             this.buttonBackup.ImageUp = null; | ||||||
|  |             this.buttonBackup.Location = new System.Drawing.Point(793, 47); | ||||||
|  |             this.buttonBackup.Mode = SmartX.SmartButton.BUTTONMODE.NORMAL; | ||||||
|  |             this.buttonBackup.Name = "buttonBackup"; | ||||||
|  |             this.buttonBackup.NestedClickEventPrevent = false; | ||||||
|  |             this.buttonBackup.OutlinePixel = 2; | ||||||
|  |             this.buttonBackup.OverlapOptimize = true; | ||||||
|  |             this.buttonBackup.RepeatInterval = 200; | ||||||
|  |             this.buttonBackup.RepeatIntervalAccelerate = null; | ||||||
|  |             this.buttonBackup.RoundSize = 10; | ||||||
|  |             this.buttonBackup.SafeInterval = 200; | ||||||
|  |             this.buttonBackup.Size = new System.Drawing.Size(90, 50); | ||||||
|  |             this.buttonBackup.SpecialFunction = SmartX.SmartButton.SPECIALFUNC.NONE; | ||||||
|  |             this.buttonBackup.TabIndex = 84; | ||||||
|  |             this.buttonBackup.Text = null; | ||||||
|  |             this.buttonBackup.TextColor = System.Drawing.Color.White; | ||||||
|  |             this.buttonBackup.TextColorDisable = System.Drawing.Color.Gray; | ||||||
|  |             this.buttonBackup.TextDownColor = System.Drawing.Color.FromArgb(((int)(((byte)(233)))), ((int)(((byte)(238)))), ((int)(((byte)(255))))); | ||||||
|  |             this.buttonBackup.TextHAlign = SmartX.SmartButton.TextHorAlign.Middle; | ||||||
|  |             this.buttonBackup.TextVAlign = SmartX.SmartButton.TextVerAlign.Middle; | ||||||
|  |             this.buttonBackup.Visible = false; | ||||||
|  |             //  | ||||||
|  |             // labelCount | ||||||
|  |             //  | ||||||
|  |             this.labelCount.BackGround = this.smartGroupBox1; | ||||||
|  |             this.labelCount.BackGroundColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224))))); | ||||||
|  |             this.labelCount.BorderColor = System.Drawing.Color.Black; | ||||||
|  |             this.labelCount.BorderStyle = SmartX.SmartLabel.BorderStyles.None; | ||||||
|  |             this.labelCount.Font = new System.Drawing.Font("새굴림", 20F, System.Drawing.FontStyle.Bold); | ||||||
|  |             this.labelCount.LineSpacing = 0F; | ||||||
|  |             this.labelCount.Location = new System.Drawing.Point(28, 47); | ||||||
|  |             this.labelCount.Name = "labelCount"; | ||||||
|  |             this.labelCount.OverlapOptimize = true; | ||||||
|  |             this.labelCount.PasswordChar = '\0'; | ||||||
|  |             this.labelCount.Radius = 3; | ||||||
|  |             this.labelCount.RoundRectFillColor = System.Drawing.Color.LightBlue; | ||||||
|  |             this.labelCount.Size = new System.Drawing.Size(290, 50); | ||||||
|  |             this.labelCount.TabIndex = 83; | ||||||
|  |             this.labelCount.Text = "00"; | ||||||
|  |             this.labelCount.TextColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(42)))), ((int)(((byte)(82))))); | ||||||
|  |             this.labelCount.TextColorDisable = System.Drawing.Color.Gray; | ||||||
|  |             this.labelCount.TextHAlign = SmartX.SmartLabel.TextHorAlign.Right; | ||||||
|  |             this.labelCount.TextVAlign = SmartX.SmartLabel.TextVerAlign.Middle; | ||||||
|  |             this.labelCount.Wordwrap = false; | ||||||
|  |             //  | ||||||
|  |             // smartListBox1 | ||||||
|  |             //  | ||||||
|  |             this.smartListBox1.BackGround = null; | ||||||
|  |             this.smartListBox1.BackGroundColor = System.Drawing.Color.White; | ||||||
|  |             this.smartListBox1.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(58)))), ((int)(((byte)(110)))), ((int)(((byte)(165))))); | ||||||
|  |             this.smartListBox1.BorderStyle = SmartX.SmartListBox.BORDERSTYLES.FixedSingle; | ||||||
|  |             this.smartListBox1.ColumnStyles = null; | ||||||
|  |             this.smartListBox1.DataSource = null; | ||||||
|  |             this.smartListBox1.ItemAddOrder = SmartX.SmartListBox.ITEMADDORDERS.BOTTOMADD; | ||||||
|  |             this.smartListBox1.ItemOffsetGap = 10; | ||||||
|  |             this.smartListBox1.ItemOffsetX = 1; | ||||||
|  |             this.smartListBox1.ItemOffsetY = 0; | ||||||
|  |             this.smartListBox1.ItemTextOffsetY = 1; | ||||||
|  |             this.smartListBox1.Location = new System.Drawing.Point(338, 103); | ||||||
|  |             this.smartListBox1.MouseMoveEventSpace = 3; | ||||||
|  |             this.smartListBox1.MouseMoveSpace = 10; | ||||||
|  |             this.smartListBox1.Name = "smartListBox1"; | ||||||
|  |             this.smartListBox1.OverlapOptimize = true; | ||||||
|  |             this.smartListBox1.ScrollBarBackColor = System.Drawing.Color.DarkGray; | ||||||
|  |             this.smartListBox1.ScrollBarButtonColor = System.Drawing.Color.GhostWhite; | ||||||
|  |             this.smartListBox1.ScrollBarButtonHeight = 15; | ||||||
|  |             this.smartListBox1.ScrollBarButtonImage = null; | ||||||
|  |             this.smartListBox1.ScrollBarButtonRound = 0; | ||||||
|  |             this.smartListBox1.ScrollBarStyle = SmartX.SmartListBox.ScrollBarStyles.ScrollBar; | ||||||
|  |             this.smartListBox1.ScrollButtonHeight = 30; | ||||||
|  |             this.smartListBox1.ScrollButtonWidth = 30; | ||||||
|  |             //  | ||||||
|  |             //  | ||||||
|  |             //  | ||||||
|  |             this.smartListBox1.ScrollDownButton.BackGround = null; | ||||||
|  |             this.smartListBox1.ScrollDownButton.BackGroundColor = System.Drawing.Color.LightBlue; | ||||||
|  |             this.smartListBox1.ScrollDownButton.ButtonColor = System.Drawing.Color.FromArgb(((int)(((byte)(58)))), ((int)(((byte)(110)))), ((int)(((byte)(165))))); | ||||||
|  |             this.smartListBox1.ScrollDownButton.ButtonDownColor = System.Drawing.Color.FromArgb(((int)(((byte)(56)))), ((int)(((byte)(76)))), ((int)(((byte)(129))))); | ||||||
|  |             this.smartListBox1.ScrollDownButton.ButtonImageAutoSize = false; | ||||||
|  |             this.smartListBox1.ScrollDownButton.ButtonStyle = SmartX.SmartButton.ButtonStyles.Flat; | ||||||
|  |             this.smartListBox1.ScrollDownButton.ButtonText = "▼"; | ||||||
|  |             this.smartListBox1.ScrollDownButton.ColorKeySamplePosition = new System.Drawing.Point(0, 0); | ||||||
|  |             this.smartListBox1.ScrollDownButton.GroupID = 0; | ||||||
|  |             this.smartListBox1.ScrollDownButton.ImageDisable = null; | ||||||
|  |             this.smartListBox1.ScrollDownButton.ImageDown = null; | ||||||
|  |             this.smartListBox1.ScrollDownButton.ImageUp = null; | ||||||
|  |             this.smartListBox1.ScrollDownButton.Location = new System.Drawing.Point(513, 503); | ||||||
|  |             this.smartListBox1.ScrollDownButton.Mode = SmartX.SmartButton.BUTTONMODE.NORMAL; | ||||||
|  |             this.smartListBox1.ScrollDownButton.Name = "SmartListBox_m_butScrollDown"; | ||||||
|  |             this.smartListBox1.ScrollDownButton.NestedClickEventPrevent = false; | ||||||
|  |             this.smartListBox1.ScrollDownButton.OutlinePixel = 1; | ||||||
|  |             this.smartListBox1.ScrollDownButton.OverlapOptimize = true; | ||||||
|  |             this.smartListBox1.ScrollDownButton.RepeatInterval = 200; | ||||||
|  |             this.smartListBox1.ScrollDownButton.RepeatIntervalAccelerate = null; | ||||||
|  |             this.smartListBox1.ScrollDownButton.RoundSize = 10; | ||||||
|  |             this.smartListBox1.ScrollDownButton.SafeInterval = 200; | ||||||
|  |             this.smartListBox1.ScrollDownButton.Size = new System.Drawing.Size(30, 30); | ||||||
|  |             this.smartListBox1.ScrollDownButton.SpecialFunction = SmartX.SmartButton.SPECIALFUNC.NONE; | ||||||
|  |             this.smartListBox1.ScrollDownButton.TabIndex = 0; | ||||||
|  |             this.smartListBox1.ScrollDownButton.Text = null; | ||||||
|  |             this.smartListBox1.ScrollDownButton.TextColor = System.Drawing.Color.White; | ||||||
|  |             this.smartListBox1.ScrollDownButton.TextColorDisable = System.Drawing.Color.Gray; | ||||||
|  |             this.smartListBox1.ScrollDownButton.TextDownColor = System.Drawing.Color.FromArgb(((int)(((byte)(233)))), ((int)(((byte)(238)))), ((int)(((byte)(255))))); | ||||||
|  |             this.smartListBox1.ScrollDownButton.TextHAlign = SmartX.SmartButton.TextHorAlign.Middle; | ||||||
|  |             this.smartListBox1.ScrollDownButton.TextVAlign = SmartX.SmartButton.TextVerAlign.Middle; | ||||||
|  |             this.smartListBox1.ScrollStep = 1; | ||||||
|  |             //  | ||||||
|  |             //  | ||||||
|  |             //  | ||||||
|  |             this.smartListBox1.ScrollUpButton.BackGround = null; | ||||||
|  |             this.smartListBox1.ScrollUpButton.BackGroundColor = System.Drawing.Color.LightBlue; | ||||||
|  |             this.smartListBox1.ScrollUpButton.ButtonColor = System.Drawing.Color.FromArgb(((int)(((byte)(58)))), ((int)(((byte)(110)))), ((int)(((byte)(165))))); | ||||||
|  |             this.smartListBox1.ScrollUpButton.ButtonDownColor = System.Drawing.Color.FromArgb(((int)(((byte)(56)))), ((int)(((byte)(76)))), ((int)(((byte)(129))))); | ||||||
|  |             this.smartListBox1.ScrollUpButton.ButtonImageAutoSize = false; | ||||||
|  |             this.smartListBox1.ScrollUpButton.ButtonStyle = SmartX.SmartButton.ButtonStyles.Flat; | ||||||
|  |             this.smartListBox1.ScrollUpButton.ButtonText = "▲"; | ||||||
|  |             this.smartListBox1.ScrollUpButton.ColorKeySamplePosition = new System.Drawing.Point(0, 0); | ||||||
|  |             this.smartListBox1.ScrollUpButton.GroupID = 0; | ||||||
|  |             this.smartListBox1.ScrollUpButton.ImageDisable = null; | ||||||
|  |             this.smartListBox1.ScrollUpButton.ImageDown = null; | ||||||
|  |             this.smartListBox1.ScrollUpButton.ImageUp = null; | ||||||
|  |             this.smartListBox1.ScrollUpButton.Location = new System.Drawing.Point(513, 2); | ||||||
|  |             this.smartListBox1.ScrollUpButton.Mode = SmartX.SmartButton.BUTTONMODE.NORMAL; | ||||||
|  |             this.smartListBox1.ScrollUpButton.Name = "SmartListBox_m_butScrollUp"; | ||||||
|  |             this.smartListBox1.ScrollUpButton.NestedClickEventPrevent = false; | ||||||
|  |             this.smartListBox1.ScrollUpButton.OutlinePixel = 1; | ||||||
|  |             this.smartListBox1.ScrollUpButton.OverlapOptimize = true; | ||||||
|  |             this.smartListBox1.ScrollUpButton.RepeatInterval = 200; | ||||||
|  |             this.smartListBox1.ScrollUpButton.RepeatIntervalAccelerate = null; | ||||||
|  |             this.smartListBox1.ScrollUpButton.RoundSize = 10; | ||||||
|  |             this.smartListBox1.ScrollUpButton.SafeInterval = 200; | ||||||
|  |             this.smartListBox1.ScrollUpButton.Size = new System.Drawing.Size(30, 30); | ||||||
|  |             this.smartListBox1.ScrollUpButton.SpecialFunction = SmartX.SmartButton.SPECIALFUNC.NONE; | ||||||
|  |             this.smartListBox1.ScrollUpButton.TabIndex = 1; | ||||||
|  |             this.smartListBox1.ScrollUpButton.Text = null; | ||||||
|  |             this.smartListBox1.ScrollUpButton.TextColor = System.Drawing.Color.White; | ||||||
|  |             this.smartListBox1.ScrollUpButton.TextColorDisable = System.Drawing.Color.Gray; | ||||||
|  |             this.smartListBox1.ScrollUpButton.TextDownColor = System.Drawing.Color.FromArgb(((int)(((byte)(233)))), ((int)(((byte)(238)))), ((int)(((byte)(255))))); | ||||||
|  |             this.smartListBox1.ScrollUpButton.TextHAlign = SmartX.SmartButton.TextHorAlign.Middle; | ||||||
|  |             this.smartListBox1.ScrollUpButton.TextVAlign = SmartX.SmartButton.TextVerAlign.Middle; | ||||||
|  |             this.smartListBox1.SelectColor = System.Drawing.Color.FromArgb(((int)(((byte)(130)))), ((int)(((byte)(156)))), ((int)(((byte)(184))))); | ||||||
|  |             this.smartListBox1.SelectFilled = true; | ||||||
|  |             this.smartListBox1.SelectItemIndex = -1; | ||||||
|  |             this.smartListBox1.SelectTextColor = System.Drawing.Color.White; | ||||||
|  |             this.smartListBox1.SeparationlineColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(125)))), ((int)(((byte)(125)))), ((int)(((byte)(125))))); | ||||||
|  |             this.smartListBox1.SeparationlineColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(201)))), ((int)(((byte)(210)))), ((int)(((byte)(224))))); | ||||||
|  |             this.smartListBox1.SeparationLineStyle = SmartX.SmartListBox.SEPARATIONLINETYPES.FixedSingle; | ||||||
|  |             this.smartListBox1.SeparationlineVisibleBottom = true; | ||||||
|  |             this.smartListBox1.SeparationlineVisibleTop = true; | ||||||
|  |             this.smartListBox1.Size = new System.Drawing.Size(545, 535); | ||||||
|  |             this.smartListBox1.TabIndex = 82; | ||||||
|  |             this.smartListBox1.Text = "smartListBox1"; | ||||||
|  |             this.smartListBox1.TextColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(42)))), ((int)(((byte)(82))))); | ||||||
|  |             this.smartListBox1.TextColorDisable = System.Drawing.Color.Gray; | ||||||
|  |             //  | ||||||
|  |             // treeViewLogAlarm | ||||||
|  |             //  | ||||||
|  |             this.treeViewLogAlarm.Location = new System.Drawing.Point(28, 103); | ||||||
|  |             this.treeViewLogAlarm.Name = "treeViewLogAlarm"; | ||||||
|  |             this.treeViewLogAlarm.Size = new System.Drawing.Size(290, 535); | ||||||
|  |             this.treeViewLogAlarm.TabIndex = 81; | ||||||
|  |             //  | ||||||
|             // ControlMenuLogAlarm |             // ControlMenuLogAlarm | ||||||
|             //  |             //  | ||||||
|             this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F); |             this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F); | ||||||
|  | @ -56,6 +240,7 @@ | ||||||
|             this.Controls.Add(this.smartGroupBox1); |             this.Controls.Add(this.smartGroupBox1); | ||||||
|             this.Name = "ControlMenuLogAlarm"; |             this.Name = "ControlMenuLogAlarm"; | ||||||
|             this.Size = new System.Drawing.Size(909, 664); |             this.Size = new System.Drawing.Size(909, 664); | ||||||
|  |             this.smartGroupBox1.ResumeLayout(false); | ||||||
|             this.ResumeLayout(false); |             this.ResumeLayout(false); | ||||||
| 
 | 
 | ||||||
|         } |         } | ||||||
|  | @ -63,5 +248,9 @@ | ||||||
|         #endregion |         #endregion | ||||||
| 
 | 
 | ||||||
|         private SmartX.SmartGroupBox smartGroupBox1; |         private SmartX.SmartGroupBox smartGroupBox1; | ||||||
|  |         private SmartX.SmartButton buttonBackup; | ||||||
|  |         private SmartX.SmartLabel labelCount; | ||||||
|  |         private SmartX.SmartListBox smartListBox1; | ||||||
|  |         private System.Windows.Forms.TreeView treeViewLogAlarm; | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -6,8 +6,10 @@ using System.Drawing; | ||||||
| using System.Data; | using System.Data; | ||||||
| using System.Text; | using System.Text; | ||||||
| using System.Windows.Forms; | using System.Windows.Forms; | ||||||
|  | using System.IO; | ||||||
| 
 | 
 | ||||||
| using INT_PT002.Forms; | using INT_PT002.Forms; | ||||||
|  | using INT_PT002.DataStore; | ||||||
| 
 | 
 | ||||||
| namespace INT_PT002.Controls | namespace INT_PT002.Controls | ||||||
| { | { | ||||||
|  | @ -15,6 +17,9 @@ namespace INT_PT002.Controls | ||||||
|     { |     { | ||||||
|         #region Field |         #region Field | ||||||
|         private FormMenu m_ParentForm; |         private FormMenu m_ParentForm; | ||||||
|  | 
 | ||||||
|  |         private Define.E_DataType SelecteDataType; | ||||||
|  |         private List<DataBackupYear> ListAlarmFile; | ||||||
|         #endregion |         #endregion | ||||||
| 
 | 
 | ||||||
|         #region Constructor |         #region Constructor | ||||||
|  | @ -23,7 +28,9 @@ namespace INT_PT002.Controls | ||||||
|             InitializeComponent(); |             InitializeComponent(); | ||||||
| 
 | 
 | ||||||
|             this.ParentForm = parent; |             this.ParentForm = parent; | ||||||
|  | 
 | ||||||
|             this.Initialize(); |             this.Initialize(); | ||||||
|  |             this.DefaultSetting(); | ||||||
|         } |         } | ||||||
|         #endregion |         #endregion | ||||||
| 
 | 
 | ||||||
|  | @ -40,6 +47,121 @@ namespace INT_PT002.Controls | ||||||
|         { |         { | ||||||
|             this.smartGroupBox1.Text = "Log > Alarm"; |             this.smartGroupBox1.Text = "Log > Alarm"; | ||||||
|         } |         } | ||||||
|  |         private void DefaultSetting() | ||||||
|  |         { | ||||||
|  |             this.SelecteDataType = Define.E_DataType.None; | ||||||
|  | 
 | ||||||
|  |             this.ListAlarmFile = new List<DataBackupYear>(); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         private void UpdateDisplayFile() | ||||||
|  |         { | ||||||
|  |             int fileCount = 0; | ||||||
|  |             //TreeNode node; | ||||||
|  |             List<string> years = new List<string>(); | ||||||
|  |             List<string> months = new List<string>(); | ||||||
|  |             List<string> days = new List<string>(); | ||||||
|  | 
 | ||||||
|  |             this.treeViewLogAlarm.Nodes.Clear(); | ||||||
|  |             this.ListAlarmFile.Clear(); | ||||||
|  | 
 | ||||||
|  |             DirectoryInfo dir = new DirectoryInfo(this.ParentForm.ParentForm.PathDataInspectionFolder); | ||||||
|  |             List<string> fileNames = new List<string>(); | ||||||
|  | 
 | ||||||
|  |             // 폴더 체크 | ||||||
|  |             if (dir.Exists == false) | ||||||
|  |                 dir.Create(); | ||||||
|  | 
 | ||||||
|  |             // year 폴더 가져오기 | ||||||
|  |             DirectoryInfo[] yearDirectorys = dir.GetDirectories(); | ||||||
|  |             // year 폴더 정렬  | ||||||
|  |             years = this.ParentForm.DirectorySort(yearDirectorys); | ||||||
|  | 
 | ||||||
|  |             // Inspection File 리스트 생성 | ||||||
|  |             if (years.Count != 0) | ||||||
|  |             { | ||||||
|  |                 // Year | ||||||
|  |                 foreach (string year in years) | ||||||
|  |                 { | ||||||
|  |                     DataBackupYear y = new DataBackupYear(year); | ||||||
|  |                     DirectoryInfo monthDir = new DirectoryInfo(string.Format("{0}{1}", this.ParentForm.ParentForm.PathDataAlarmFolder, year)); | ||||||
|  |                     DirectoryInfo[] monthDirectorys = monthDir.GetDirectories(); | ||||||
|  | 
 | ||||||
|  |                     months = this.ParentForm.DirectorySort(monthDirectorys); | ||||||
|  | 
 | ||||||
|  |                     if (months.Count != 0) | ||||||
|  |                     { | ||||||
|  |                         // Month | ||||||
|  |                         foreach (string month in months) | ||||||
|  |                         { | ||||||
|  |                             DirectoryInfo dayDir = new DirectoryInfo(string.Format("{0}{1}\\{2}", this.ParentForm.ParentForm.PathDataAlarmFolder, year, month)); | ||||||
|  |                             FileInfo[] dayFiles = dayDir.GetFiles(); | ||||||
|  | 
 | ||||||
|  |                             days = this.DayInspectionDirectorySort(dayFiles); | ||||||
|  | 
 | ||||||
|  |                             DataBackupMonth m = new DataBackupMonth(month); | ||||||
|  |                             m.Days = days; | ||||||
|  | 
 | ||||||
|  |                             y.Months.Add(m); | ||||||
|  |                         } | ||||||
|  | 
 | ||||||
|  |                         this.ListAlarmFile.Add(y); | ||||||
|  |                     } | ||||||
|  |                     else | ||||||
|  |                     { | ||||||
|  |                         this.ListAlarmFile.Add(y); | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  | 
 | ||||||
|  |                 // node 생성 | ||||||
|  |                 for (int i = 0; i < this.ListAlarmFile.Count; i++) | ||||||
|  |                 { | ||||||
|  |                     TreeNode node = new TreeNode(this.ListAlarmFile[i].Year); | ||||||
|  |                     for (int j = 0; j < this.ListAlarmFile[i].Months.Count; j++) | ||||||
|  |                     { | ||||||
|  |                         TreeNode nodeMonth = new TreeNode(this.ListAlarmFile[i].Months[j].Month); | ||||||
|  | 
 | ||||||
|  |                         for (int k = 0; k < this.ListAlarmFile[i].Months[j].Days.Count; k++) | ||||||
|  |                         { | ||||||
|  |                             nodeMonth.Nodes.Add(this.ListAlarmFile[i].Months[j].Days[k]); | ||||||
|  |                             fileCount++; | ||||||
|  |                         } | ||||||
|  |                         node.Nodes.Add(nodeMonth); | ||||||
|  |                     } | ||||||
|  |                     this.treeViewLogAlarm.Nodes.Add(node); | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  | 
 | ||||||
|  |             this.labelCount.Text = fileCount.ToString(); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         private List<string> DayInspectionDirectorySort(FileInfo[] files) | ||||||
|  |         { | ||||||
|  |             List<string> listFile = new List<string>(); | ||||||
|  |             Dictionary<string, int> dirNames = new Dictionary<string, int>(); | ||||||
|  | 
 | ||||||
|  |             #region File List 품번 순서데로 정렬 | ||||||
|  |             foreach (FileInfo file in files) | ||||||
|  |                 dirNames.Add(file.Name, int.Parse(file.Name.Substring(10, 1))); | ||||||
|  | 
 | ||||||
|  |             var vrList = dirNames.OrderBy(x => x.Value); | ||||||
|  |             foreach (var v in vrList) | ||||||
|  |                 listFile.Add(v.Key); | ||||||
|  |             #endregion | ||||||
|  | 
 | ||||||
|  |             #region File List 날짜 순서데로 정렬 | ||||||
|  |             dirNames = new Dictionary<string, int>(); | ||||||
|  |             foreach (string f in listFile) | ||||||
|  |                 dirNames.Add(f, int.Parse(f.Substring(1, 8))); | ||||||
|  | 
 | ||||||
|  |             listFile.Clear(); | ||||||
|  |             vrList = dirNames.OrderBy(x => x.Value); | ||||||
|  |             foreach (var v in vrList) | ||||||
|  |                 listFile.Add(v.Key); | ||||||
|  |             #endregion | ||||||
|  | 
 | ||||||
|  |             return listFile; | ||||||
|  |         } | ||||||
| 
 | 
 | ||||||
|         public void DisplayRefresh() |         public void DisplayRefresh() | ||||||
|         { |         { | ||||||
|  |  | ||||||
|  | @ -29,6 +29,12 @@ | ||||||
|         private void InitializeComponent() |         private void InitializeComponent() | ||||||
|         { |         { | ||||||
|             this.smartGroupBox1 = new SmartX.SmartGroupBox(); |             this.smartGroupBox1 = new SmartX.SmartGroupBox(); | ||||||
|  |             this.buttonBackup = new SmartX.SmartButton(); | ||||||
|  |             this.labelCount = new SmartX.SmartLabel(); | ||||||
|  |             this.listbox = new SmartX.SmartListBox(); | ||||||
|  |             this.treeViewHistory = new System.Windows.Forms.TreeView(); | ||||||
|  |             this.smartFile1 = new SmartX.SmartFile(); | ||||||
|  |             this.smartGroupBox1.SuspendLayout(); | ||||||
|             this.SuspendLayout(); |             this.SuspendLayout(); | ||||||
|             //  |             //  | ||||||
|             // smartGroupBox1 |             // smartGroupBox1 | ||||||
|  | @ -36,6 +42,10 @@ | ||||||
|             this.smartGroupBox1.BackGround = null; |             this.smartGroupBox1.BackGround = null; | ||||||
|             this.smartGroupBox1.BackGroundColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224))))); |             this.smartGroupBox1.BackGroundColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224))))); | ||||||
|             this.smartGroupBox1.BackImage = null; |             this.smartGroupBox1.BackImage = null; | ||||||
|  |             this.smartGroupBox1.Controls.Add(this.buttonBackup); | ||||||
|  |             this.smartGroupBox1.Controls.Add(this.labelCount); | ||||||
|  |             this.smartGroupBox1.Controls.Add(this.listbox); | ||||||
|  |             this.smartGroupBox1.Controls.Add(this.treeViewHistory); | ||||||
|             this.smartGroupBox1.FrameLineColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(58)))), ((int)(((byte)(110)))), ((int)(((byte)(165))))); |             this.smartGroupBox1.FrameLineColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(58)))), ((int)(((byte)(110)))), ((int)(((byte)(165))))); | ||||||
|             this.smartGroupBox1.FrameLineColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(58)))), ((int)(((byte)(110)))), ((int)(((byte)(165))))); |             this.smartGroupBox1.FrameLineColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(58)))), ((int)(((byte)(110)))), ((int)(((byte)(165))))); | ||||||
|             this.smartGroupBox1.FrameLineThickness = 2; |             this.smartGroupBox1.FrameLineThickness = 2; | ||||||
|  | @ -49,6 +59,186 @@ | ||||||
|             this.smartGroupBox1.Text = "smartGroupBox1"; |             this.smartGroupBox1.Text = "smartGroupBox1"; | ||||||
|             this.smartGroupBox1.TextColor = System.Drawing.Color.White; |             this.smartGroupBox1.TextColor = System.Drawing.Color.White; | ||||||
|             //  |             //  | ||||||
|  |             // buttonBackup | ||||||
|  |             //  | ||||||
|  |             this.buttonBackup.BackGround = this.smartGroupBox1; | ||||||
|  |             this.buttonBackup.BackGroundColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224))))); | ||||||
|  |             this.buttonBackup.ButtonColor = System.Drawing.Color.FromArgb(((int)(((byte)(58)))), ((int)(((byte)(110)))), ((int)(((byte)(165))))); | ||||||
|  |             this.buttonBackup.ButtonDownColor = System.Drawing.Color.SlateGray; | ||||||
|  |             this.buttonBackup.ButtonImageAutoSize = true; | ||||||
|  |             this.buttonBackup.ButtonStyle = SmartX.SmartButton.ButtonStyles.FlatRound; | ||||||
|  |             this.buttonBackup.ButtonText = "Backup"; | ||||||
|  |             this.buttonBackup.ColorKeySamplePosition = new System.Drawing.Point(0, 0); | ||||||
|  |             this.buttonBackup.GroupID = 0; | ||||||
|  |             this.buttonBackup.ImageDisable = null; | ||||||
|  |             this.buttonBackup.ImageDown = null; | ||||||
|  |             this.buttonBackup.ImageUp = null; | ||||||
|  |             this.buttonBackup.Location = new System.Drawing.Point(793, 47); | ||||||
|  |             this.buttonBackup.Mode = SmartX.SmartButton.BUTTONMODE.NORMAL; | ||||||
|  |             this.buttonBackup.Name = "buttonBackup"; | ||||||
|  |             this.buttonBackup.NestedClickEventPrevent = false; | ||||||
|  |             this.buttonBackup.OutlinePixel = 2; | ||||||
|  |             this.buttonBackup.OverlapOptimize = true; | ||||||
|  |             this.buttonBackup.RepeatInterval = 200; | ||||||
|  |             this.buttonBackup.RepeatIntervalAccelerate = null; | ||||||
|  |             this.buttonBackup.RoundSize = 10; | ||||||
|  |             this.buttonBackup.SafeInterval = 200; | ||||||
|  |             this.buttonBackup.Size = new System.Drawing.Size(90, 50); | ||||||
|  |             this.buttonBackup.SpecialFunction = SmartX.SmartButton.SPECIALFUNC.NONE; | ||||||
|  |             this.buttonBackup.TabIndex = 80; | ||||||
|  |             this.buttonBackup.Text = null; | ||||||
|  |             this.buttonBackup.TextColor = System.Drawing.Color.White; | ||||||
|  |             this.buttonBackup.TextColorDisable = System.Drawing.Color.Gray; | ||||||
|  |             this.buttonBackup.TextDownColor = System.Drawing.Color.FromArgb(((int)(((byte)(233)))), ((int)(((byte)(238)))), ((int)(((byte)(255))))); | ||||||
|  |             this.buttonBackup.TextHAlign = SmartX.SmartButton.TextHorAlign.Middle; | ||||||
|  |             this.buttonBackup.TextVAlign = SmartX.SmartButton.TextVerAlign.Middle; | ||||||
|  |             this.buttonBackup.Visible = false; | ||||||
|  |             //  | ||||||
|  |             // labelCount | ||||||
|  |             //  | ||||||
|  |             this.labelCount.BackGround = this.smartGroupBox1; | ||||||
|  |             this.labelCount.BackGroundColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224))))); | ||||||
|  |             this.labelCount.BorderColor = System.Drawing.Color.Black; | ||||||
|  |             this.labelCount.BorderStyle = SmartX.SmartLabel.BorderStyles.None; | ||||||
|  |             this.labelCount.Font = new System.Drawing.Font("새굴림", 20F, System.Drawing.FontStyle.Bold); | ||||||
|  |             this.labelCount.LineSpacing = 0F; | ||||||
|  |             this.labelCount.Location = new System.Drawing.Point(28, 47); | ||||||
|  |             this.labelCount.Name = "labelCount"; | ||||||
|  |             this.labelCount.OverlapOptimize = true; | ||||||
|  |             this.labelCount.PasswordChar = '\0'; | ||||||
|  |             this.labelCount.Radius = 3; | ||||||
|  |             this.labelCount.RoundRectFillColor = System.Drawing.Color.LightBlue; | ||||||
|  |             this.labelCount.Size = new System.Drawing.Size(290, 50); | ||||||
|  |             this.labelCount.TabIndex = 2; | ||||||
|  |             this.labelCount.Text = "00"; | ||||||
|  |             this.labelCount.TextColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(42)))), ((int)(((byte)(82))))); | ||||||
|  |             this.labelCount.TextColorDisable = System.Drawing.Color.Gray; | ||||||
|  |             this.labelCount.TextHAlign = SmartX.SmartLabel.TextHorAlign.Right; | ||||||
|  |             this.labelCount.TextVAlign = SmartX.SmartLabel.TextVerAlign.Middle; | ||||||
|  |             this.labelCount.Wordwrap = false; | ||||||
|  |             //  | ||||||
|  |             // listbox | ||||||
|  |             //  | ||||||
|  |             this.listbox.BackGround = null; | ||||||
|  |             this.listbox.BackGroundColor = System.Drawing.Color.White; | ||||||
|  |             this.listbox.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(58)))), ((int)(((byte)(110)))), ((int)(((byte)(165))))); | ||||||
|  |             this.listbox.BorderStyle = SmartX.SmartListBox.BORDERSTYLES.FixedSingle; | ||||||
|  |             this.listbox.ColumnStyles = null; | ||||||
|  |             this.listbox.DataSource = null; | ||||||
|  |             this.listbox.ItemAddOrder = SmartX.SmartListBox.ITEMADDORDERS.BOTTOMADD; | ||||||
|  |             this.listbox.ItemOffsetGap = 10; | ||||||
|  |             this.listbox.ItemOffsetX = 1; | ||||||
|  |             this.listbox.ItemOffsetY = 0; | ||||||
|  |             this.listbox.ItemTextOffsetY = 1; | ||||||
|  |             this.listbox.Location = new System.Drawing.Point(338, 103); | ||||||
|  |             this.listbox.MouseMoveEventSpace = 3; | ||||||
|  |             this.listbox.MouseMoveSpace = 10; | ||||||
|  |             this.listbox.Name = "listbox"; | ||||||
|  |             this.listbox.OverlapOptimize = true; | ||||||
|  |             this.listbox.ScrollBarBackColor = System.Drawing.Color.DarkGray; | ||||||
|  |             this.listbox.ScrollBarButtonColor = System.Drawing.Color.GhostWhite; | ||||||
|  |             this.listbox.ScrollBarButtonHeight = 15; | ||||||
|  |             this.listbox.ScrollBarButtonImage = null; | ||||||
|  |             this.listbox.ScrollBarButtonRound = 0; | ||||||
|  |             this.listbox.ScrollBarStyle = SmartX.SmartListBox.ScrollBarStyles.ScrollBar; | ||||||
|  |             this.listbox.ScrollButtonHeight = 30; | ||||||
|  |             this.listbox.ScrollButtonWidth = 30; | ||||||
|  |             //  | ||||||
|  |             //  | ||||||
|  |             //  | ||||||
|  |             this.listbox.ScrollDownButton.BackGround = null; | ||||||
|  |             this.listbox.ScrollDownButton.BackGroundColor = System.Drawing.Color.LightBlue; | ||||||
|  |             this.listbox.ScrollDownButton.ButtonColor = System.Drawing.Color.FromArgb(((int)(((byte)(58)))), ((int)(((byte)(110)))), ((int)(((byte)(165))))); | ||||||
|  |             this.listbox.ScrollDownButton.ButtonDownColor = System.Drawing.Color.FromArgb(((int)(((byte)(56)))), ((int)(((byte)(76)))), ((int)(((byte)(129))))); | ||||||
|  |             this.listbox.ScrollDownButton.ButtonImageAutoSize = false; | ||||||
|  |             this.listbox.ScrollDownButton.ButtonStyle = SmartX.SmartButton.ButtonStyles.Flat; | ||||||
|  |             this.listbox.ScrollDownButton.ButtonText = "▼"; | ||||||
|  |             this.listbox.ScrollDownButton.ColorKeySamplePosition = new System.Drawing.Point(0, 0); | ||||||
|  |             this.listbox.ScrollDownButton.GroupID = 0; | ||||||
|  |             this.listbox.ScrollDownButton.ImageDisable = null; | ||||||
|  |             this.listbox.ScrollDownButton.ImageDown = null; | ||||||
|  |             this.listbox.ScrollDownButton.ImageUp = null; | ||||||
|  |             this.listbox.ScrollDownButton.Location = new System.Drawing.Point(513, 503); | ||||||
|  |             this.listbox.ScrollDownButton.Mode = SmartX.SmartButton.BUTTONMODE.NORMAL; | ||||||
|  |             this.listbox.ScrollDownButton.Name = "SmartListBox_m_butScrollDown"; | ||||||
|  |             this.listbox.ScrollDownButton.NestedClickEventPrevent = false; | ||||||
|  |             this.listbox.ScrollDownButton.OutlinePixel = 1; | ||||||
|  |             this.listbox.ScrollDownButton.OverlapOptimize = true; | ||||||
|  |             this.listbox.ScrollDownButton.RepeatInterval = 200; | ||||||
|  |             this.listbox.ScrollDownButton.RepeatIntervalAccelerate = null; | ||||||
|  |             this.listbox.ScrollDownButton.RoundSize = 10; | ||||||
|  |             this.listbox.ScrollDownButton.SafeInterval = 200; | ||||||
|  |             this.listbox.ScrollDownButton.Size = new System.Drawing.Size(30, 30); | ||||||
|  |             this.listbox.ScrollDownButton.SpecialFunction = SmartX.SmartButton.SPECIALFUNC.NONE; | ||||||
|  |             this.listbox.ScrollDownButton.TabIndex = 0; | ||||||
|  |             this.listbox.ScrollDownButton.Text = null; | ||||||
|  |             this.listbox.ScrollDownButton.TextColor = System.Drawing.Color.White; | ||||||
|  |             this.listbox.ScrollDownButton.TextColorDisable = System.Drawing.Color.Gray; | ||||||
|  |             this.listbox.ScrollDownButton.TextDownColor = System.Drawing.Color.FromArgb(((int)(((byte)(233)))), ((int)(((byte)(238)))), ((int)(((byte)(255))))); | ||||||
|  |             this.listbox.ScrollDownButton.TextHAlign = SmartX.SmartButton.TextHorAlign.Middle; | ||||||
|  |             this.listbox.ScrollDownButton.TextVAlign = SmartX.SmartButton.TextVerAlign.Middle; | ||||||
|  |             this.listbox.ScrollStep = 1; | ||||||
|  |             //  | ||||||
|  |             //  | ||||||
|  |             //  | ||||||
|  |             this.listbox.ScrollUpButton.BackGround = null; | ||||||
|  |             this.listbox.ScrollUpButton.BackGroundColor = System.Drawing.Color.LightBlue; | ||||||
|  |             this.listbox.ScrollUpButton.ButtonColor = System.Drawing.Color.FromArgb(((int)(((byte)(58)))), ((int)(((byte)(110)))), ((int)(((byte)(165))))); | ||||||
|  |             this.listbox.ScrollUpButton.ButtonDownColor = System.Drawing.Color.FromArgb(((int)(((byte)(56)))), ((int)(((byte)(76)))), ((int)(((byte)(129))))); | ||||||
|  |             this.listbox.ScrollUpButton.ButtonImageAutoSize = false; | ||||||
|  |             this.listbox.ScrollUpButton.ButtonStyle = SmartX.SmartButton.ButtonStyles.Flat; | ||||||
|  |             this.listbox.ScrollUpButton.ButtonText = "▲"; | ||||||
|  |             this.listbox.ScrollUpButton.ColorKeySamplePosition = new System.Drawing.Point(0, 0); | ||||||
|  |             this.listbox.ScrollUpButton.GroupID = 0; | ||||||
|  |             this.listbox.ScrollUpButton.ImageDisable = null; | ||||||
|  |             this.listbox.ScrollUpButton.ImageDown = null; | ||||||
|  |             this.listbox.ScrollUpButton.ImageUp = null; | ||||||
|  |             this.listbox.ScrollUpButton.Location = new System.Drawing.Point(513, 2); | ||||||
|  |             this.listbox.ScrollUpButton.Mode = SmartX.SmartButton.BUTTONMODE.NORMAL; | ||||||
|  |             this.listbox.ScrollUpButton.Name = "SmartListBox_m_butScrollUp"; | ||||||
|  |             this.listbox.ScrollUpButton.NestedClickEventPrevent = false; | ||||||
|  |             this.listbox.ScrollUpButton.OutlinePixel = 1; | ||||||
|  |             this.listbox.ScrollUpButton.OverlapOptimize = true; | ||||||
|  |             this.listbox.ScrollUpButton.RepeatInterval = 200; | ||||||
|  |             this.listbox.ScrollUpButton.RepeatIntervalAccelerate = null; | ||||||
|  |             this.listbox.ScrollUpButton.RoundSize = 10; | ||||||
|  |             this.listbox.ScrollUpButton.SafeInterval = 200; | ||||||
|  |             this.listbox.ScrollUpButton.Size = new System.Drawing.Size(30, 30); | ||||||
|  |             this.listbox.ScrollUpButton.SpecialFunction = SmartX.SmartButton.SPECIALFUNC.NONE; | ||||||
|  |             this.listbox.ScrollUpButton.TabIndex = 1; | ||||||
|  |             this.listbox.ScrollUpButton.Text = null; | ||||||
|  |             this.listbox.ScrollUpButton.TextColor = System.Drawing.Color.White; | ||||||
|  |             this.listbox.ScrollUpButton.TextColorDisable = System.Drawing.Color.Gray; | ||||||
|  |             this.listbox.ScrollUpButton.TextDownColor = System.Drawing.Color.FromArgb(((int)(((byte)(233)))), ((int)(((byte)(238)))), ((int)(((byte)(255))))); | ||||||
|  |             this.listbox.ScrollUpButton.TextHAlign = SmartX.SmartButton.TextHorAlign.Middle; | ||||||
|  |             this.listbox.ScrollUpButton.TextVAlign = SmartX.SmartButton.TextVerAlign.Middle; | ||||||
|  |             this.listbox.SelectColor = System.Drawing.Color.FromArgb(((int)(((byte)(130)))), ((int)(((byte)(156)))), ((int)(((byte)(184))))); | ||||||
|  |             this.listbox.SelectFilled = true; | ||||||
|  |             this.listbox.SelectItemIndex = -1; | ||||||
|  |             this.listbox.SelectTextColor = System.Drawing.Color.White; | ||||||
|  |             this.listbox.SeparationlineColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(125)))), ((int)(((byte)(125)))), ((int)(((byte)(125))))); | ||||||
|  |             this.listbox.SeparationlineColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(201)))), ((int)(((byte)(210)))), ((int)(((byte)(224))))); | ||||||
|  |             this.listbox.SeparationLineStyle = SmartX.SmartListBox.SEPARATIONLINETYPES.FixedSingle; | ||||||
|  |             this.listbox.SeparationlineVisibleBottom = true; | ||||||
|  |             this.listbox.SeparationlineVisibleTop = true; | ||||||
|  |             this.listbox.Size = new System.Drawing.Size(545, 535); | ||||||
|  |             this.listbox.TabIndex = 1; | ||||||
|  |             this.listbox.Text = "smartListBox1"; | ||||||
|  |             this.listbox.TextColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(42)))), ((int)(((byte)(82))))); | ||||||
|  |             this.listbox.TextColorDisable = System.Drawing.Color.Gray; | ||||||
|  |             //  | ||||||
|  |             // treeViewHistory | ||||||
|  |             //  | ||||||
|  |             this.treeViewHistory.Location = new System.Drawing.Point(28, 103); | ||||||
|  |             this.treeViewHistory.Name = "treeViewHistory"; | ||||||
|  |             this.treeViewHistory.Size = new System.Drawing.Size(290, 535); | ||||||
|  |             this.treeViewHistory.TabIndex = 0; | ||||||
|  |             this.treeViewHistory.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeViewHistory_AfterSelect); | ||||||
|  |             //  | ||||||
|  |             // smartFile1 | ||||||
|  |             //  | ||||||
|  |             this.smartFile1.FilePathName = ""; | ||||||
|  |             //  | ||||||
|             // ControlMenuLogHistory |             // ControlMenuLogHistory | ||||||
|             //  |             //  | ||||||
|             this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F); |             this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F); | ||||||
|  | @ -56,6 +246,7 @@ | ||||||
|             this.Controls.Add(this.smartGroupBox1); |             this.Controls.Add(this.smartGroupBox1); | ||||||
|             this.Name = "ControlMenuLogHistory"; |             this.Name = "ControlMenuLogHistory"; | ||||||
|             this.Size = new System.Drawing.Size(909, 664); |             this.Size = new System.Drawing.Size(909, 664); | ||||||
|  |             this.smartGroupBox1.ResumeLayout(false); | ||||||
|             this.ResumeLayout(false); |             this.ResumeLayout(false); | ||||||
| 
 | 
 | ||||||
|         } |         } | ||||||
|  | @ -63,5 +254,10 @@ | ||||||
|         #endregion |         #endregion | ||||||
| 
 | 
 | ||||||
|         private SmartX.SmartGroupBox smartGroupBox1; |         private SmartX.SmartGroupBox smartGroupBox1; | ||||||
|  |         private System.Windows.Forms.TreeView treeViewHistory; | ||||||
|  |         private SmartX.SmartListBox listbox; | ||||||
|  |         private SmartX.SmartLabel labelCount; | ||||||
|  |         private SmartX.SmartButton buttonBackup; | ||||||
|  |         private SmartX.SmartFile smartFile1; | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -6,8 +6,12 @@ using System.Drawing; | ||||||
| using System.Data; | using System.Data; | ||||||
| using System.Text; | using System.Text; | ||||||
| using System.Windows.Forms; | using System.Windows.Forms; | ||||||
|  | using System.IO; | ||||||
| 
 | 
 | ||||||
|  | using SmartX; | ||||||
| using INT_PT002.Forms; | using INT_PT002.Forms; | ||||||
|  | using INT_PT002.DataStore; | ||||||
|  | using INT_PT002.DialogForms; | ||||||
| 
 | 
 | ||||||
| namespace INT_PT002.Controls | namespace INT_PT002.Controls | ||||||
| { | { | ||||||
|  | @ -15,6 +19,9 @@ namespace INT_PT002.Controls | ||||||
|     { |     { | ||||||
|         #region Field |         #region Field | ||||||
|         private FormMenu m_ParentForm; |         private FormMenu m_ParentForm; | ||||||
|  | 
 | ||||||
|  |         private Define.E_DataType SelecteDataType; | ||||||
|  |         private List<DataBackupYear> ListHistoryFile; | ||||||
|         #endregion |         #endregion | ||||||
| 
 | 
 | ||||||
|         #region Constructor |         #region Constructor | ||||||
|  | @ -23,7 +30,9 @@ namespace INT_PT002.Controls | ||||||
|             InitializeComponent(); |             InitializeComponent(); | ||||||
| 
 | 
 | ||||||
|             this.ParentForm = parent; |             this.ParentForm = parent; | ||||||
|  | 
 | ||||||
|             this.Initialize(); |             this.Initialize(); | ||||||
|  |             this.DefaultSetting(); | ||||||
|         } |         } | ||||||
|         #endregion |         #endregion | ||||||
| 
 | 
 | ||||||
|  | @ -40,15 +49,160 @@ namespace INT_PT002.Controls | ||||||
|         { |         { | ||||||
|             this.smartGroupBox1.Text = "Log > History"; |             this.smartGroupBox1.Text = "Log > History"; | ||||||
|         } |         } | ||||||
|  |         private void DefaultSetting() | ||||||
|  |         { | ||||||
|  |             this.SelecteDataType = Define.E_DataType.None; | ||||||
|  | 
 | ||||||
|  |             this.ListHistoryFile = new List<DataBackupYear>(); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         public void LoadFile(string fullFilePath) | ||||||
|  |         { | ||||||
|  |             if (fullFilePath.Contains("_History") == false) | ||||||
|  |                 return; | ||||||
|  | 
 | ||||||
|  |             this.smartFile1.FilePathName = fullFilePath; | ||||||
|  |             this.smartFile1.Open(); | ||||||
|  |             this.smartFile1.StringType.EncodingType = SmartX.SmartFile.Encodings.ANSI; | ||||||
|  | 
 | ||||||
|  |             try | ||||||
|  |             { | ||||||
|  |                 this.smartFile1.StringType.FillBuffer(); | ||||||
|  | 
 | ||||||
|  |                 long lineNum = this.smartFile1.StringType.GetCount(); | ||||||
|  |                 for (int i = 1; i < lineNum; i++) | ||||||
|  |                 { | ||||||
|  |                     this.listbox.AddItem(this.smartFile1.StringType.ReadBuffer(i)); | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |             catch | ||||||
|  |             { | ||||||
|  |                 DialogFormMessage myMsg = new DialogFormMessage(16, this.ParentForm.ParentForm.SystemConfig.LANGUAGE); | ||||||
|  |                 myMsg.ShowDialog(); | ||||||
|  | 
 | ||||||
|  |                 this.smartFile1.Close(); | ||||||
|  |             } | ||||||
|  | 
 | ||||||
|  |             this.smartFile1.Close(); | ||||||
|  |         } | ||||||
|  |         private void UpdateDisplayFile() | ||||||
|  |         { | ||||||
|  |             int fileCount = 0; | ||||||
|  |             //TreeNode node; | ||||||
|  |             List<string> years = new List<string>(); | ||||||
|  |             List<string> months = new List<string>(); | ||||||
|  |             List<string> days = new List<string>(); | ||||||
|  | 
 | ||||||
|  |             this.treeViewHistory.Nodes.Clear(); | ||||||
|  |             this.ListHistoryFile.Clear(); | ||||||
|  | 
 | ||||||
|  |             DirectoryInfo dir = new DirectoryInfo(this.ParentForm.ParentForm.PathDataHistoryFolder); | ||||||
|  |             List<string> fileNames = new List<string>(); | ||||||
|  | 
 | ||||||
|  |             // 폴더 체크 | ||||||
|  |             if (dir.Exists == false) | ||||||
|  |                 dir.Create(); | ||||||
|  | 
 | ||||||
|  |             // year 폴더 가져오기 | ||||||
|  |             DirectoryInfo[] yearDirectorys = dir.GetDirectories(); | ||||||
|  |             // year 폴더 정렬  | ||||||
|  |             years = this.ParentForm.DirectorySort(yearDirectorys); | ||||||
|  | 
 | ||||||
|  |             // Inspection File 리스트 생성 | ||||||
|  |             if (years.Count != 0) | ||||||
|  |             { | ||||||
|  |                 // Year | ||||||
|  |                 foreach (string year in years) | ||||||
|  |                 { | ||||||
|  |                     DataBackupYear y = new DataBackupYear(year); | ||||||
|  |                     DirectoryInfo monthDir = new DirectoryInfo(string.Format("{0}{1}", this.ParentForm.ParentForm.PathDataHistoryFolder, year)); | ||||||
|  |                     DirectoryInfo[] monthDirectorys = monthDir.GetDirectories(); | ||||||
|  | 
 | ||||||
|  |                     months = this.ParentForm.DirectorySort(monthDirectorys); | ||||||
|  | 
 | ||||||
|  |                     if (months.Count != 0) | ||||||
|  |                     { | ||||||
|  |                         // Month | ||||||
|  |                         foreach (string month in months) | ||||||
|  |                         { | ||||||
|  |                             DirectoryInfo dayDir = new DirectoryInfo(string.Format("{0}{1}\\{2}", this.ParentForm.ParentForm.PathDataHistoryFolder, year, month)); | ||||||
|  |                             FileInfo[] dayFiles = dayDir.GetFiles(); | ||||||
|  | 
 | ||||||
|  |                             days = this.DayHistoryDirectorySort(dayFiles); | ||||||
|  | 
 | ||||||
|  |                             DataBackupMonth m = new DataBackupMonth(month); | ||||||
|  |                             m.Days = days; | ||||||
|  | 
 | ||||||
|  |                             y.Months.Add(m); | ||||||
|  |                         } | ||||||
|  | 
 | ||||||
|  |                         this.ListHistoryFile.Add(y); | ||||||
|  |                     } | ||||||
|  |                     else | ||||||
|  |                     { | ||||||
|  |                         this.ListHistoryFile.Add(y); | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  | 
 | ||||||
|  |                 // node 생성 | ||||||
|  |                 for (int i = 0; i < this.ListHistoryFile.Count; i++) | ||||||
|  |                 { | ||||||
|  |                     TreeNode node = new TreeNode(this.ListHistoryFile[i].Year); | ||||||
|  |                     for (int j = 0; j < this.ListHistoryFile[i].Months.Count; j++) | ||||||
|  |                     { | ||||||
|  |                         TreeNode nodeMonth = new TreeNode(this.ListHistoryFile[i].Months[j].Month); | ||||||
|  | 
 | ||||||
|  |                         for (int k = 0; k < this.ListHistoryFile[i].Months[j].Days.Count; k++) | ||||||
|  |                         { | ||||||
|  |                             nodeMonth.Nodes.Add(this.ListHistoryFile[i].Months[j].Days[k]); | ||||||
|  |                             fileCount++; | ||||||
|  |                         } | ||||||
|  |                         node.Nodes.Add(nodeMonth); | ||||||
|  |                     } | ||||||
|  |                     this.treeViewHistory.Nodes.Add(node); | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |             this.labelCount.Text = fileCount.ToString(); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         private List<string> DayHistoryDirectorySort(FileInfo[] files) | ||||||
|  |         { | ||||||
|  |             List<string> listFile = new List<string>(); | ||||||
|  |             Dictionary<string, int> dirNames = new Dictionary<string, int>(); | ||||||
|  |             Dictionary<string, int> dirNamesSort = new Dictionary<string, int>(); | ||||||
|  | 
 | ||||||
|  |             foreach (FileInfo file in files) | ||||||
|  |             { | ||||||
|  |                 if (file.Name.StartsWith("20") == true) | ||||||
|  |                     dirNames.Add(file.Name, int.Parse(file.Name.Substring(0, 8))); | ||||||
|  |             } | ||||||
|  | 
 | ||||||
|  |             var vrList = dirNames.Keys.ToList(); | ||||||
|  |             vrList.Sort(); | ||||||
|  | 
 | ||||||
|  |             foreach (var v in vrList) | ||||||
|  |                 dirNamesSort.Add(v, dirNames[v]); | ||||||
|  | 
 | ||||||
|  |             foreach (var v in dirNamesSort) | ||||||
|  |                 listFile.Add(v.Key); | ||||||
|  | 
 | ||||||
|  |             return listFile; | ||||||
|  |         } | ||||||
| 
 | 
 | ||||||
|         public void DisplayRefresh() |         public void DisplayRefresh() | ||||||
|         { |         { | ||||||
|  |             this.SelecteDataType = Define.E_DataType.None; | ||||||
| 
 | 
 | ||||||
|  |             this.UpdateDisplayFile(); | ||||||
|  |             this.treeViewHistory.ExpandAll(); | ||||||
|         } |         } | ||||||
|         #endregion |         #endregion | ||||||
| 
 | 
 | ||||||
|         #region Event Handler |         #region Event Handler | ||||||
| 
 |         private void treeViewHistory_AfterSelect(object sender, TreeViewEventArgs e) | ||||||
|  |         { | ||||||
|  |             this.LoadFile(this.ParentForm.ParentForm.PathDataHistoryFolder + this.treeViewHistory.SelectedNode.FullPath); | ||||||
|  |         } | ||||||
|         #endregion |         #endregion | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -117,6 +117,12 @@ | ||||||
|   <resheader name="writer"> |   <resheader name="writer"> | ||||||
|     <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> |     <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> | ||||||
|   </resheader> |   </resheader> | ||||||
|  |   <metadata name="smartFile1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> | ||||||
|  |     <value>17, 17</value> | ||||||
|  |   </metadata> | ||||||
|  |   <metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> | ||||||
|  |     <value>33</value> | ||||||
|  |   </metadata> | ||||||
|   <metadata name="$this.FormFactorShadowProperty" xml:space="preserve"> |   <metadata name="$this.FormFactorShadowProperty" xml:space="preserve"> | ||||||
|     <value>WEBPAD</value> |     <value>WEBPAD</value> | ||||||
|   </metadata> |   </metadata> | ||||||
|  |  | ||||||
											
												
													File diff suppressed because it is too large
													Load Diff
												
											
										
									
								|  | @ -1,12 +1,17 @@ | ||||||
| using System; | using System; | ||||||
| using System.Linq; | using System.Linq; | ||||||
| using System.Collections.Generic; | using System.Collections.Generic; | ||||||
|  | using System.Collections.ObjectModel; | ||||||
| using System.ComponentModel; | using System.ComponentModel; | ||||||
| using System.Drawing; | using System.Drawing; | ||||||
| using System.Data; | using System.Data; | ||||||
| using System.Text; | using System.Text; | ||||||
| using System.Windows.Forms; | using System.Windows.Forms; | ||||||
|  | using System.IO; | ||||||
|  | 
 | ||||||
| using INT_PT002.Forms; | using INT_PT002.Forms; | ||||||
|  | using INT_PT002.DataStore; | ||||||
|  | using INT_PT002.DialogForms; | ||||||
| 
 | 
 | ||||||
| namespace INT_PT002.Controls | namespace INT_PT002.Controls | ||||||
| { | { | ||||||
|  | @ -14,6 +19,15 @@ namespace INT_PT002.Controls | ||||||
|     { |     { | ||||||
|         #region Field |         #region Field | ||||||
|         private FormMenu m_ParentForm; |         private FormMenu m_ParentForm; | ||||||
|  | 
 | ||||||
|  |         private Define.E_DataType SelecteDataType; | ||||||
|  |         private List<DataBackupYear> ListInspectionFile; | ||||||
|  | 
 | ||||||
|  |         private Collection<SmartX.SmartListBox> CollectionListBox; | ||||||
|  |         private Collection<SmartX.SmartLabel> CollectionPassCount; | ||||||
|  |         private Collection<SmartX.SmartLabel> CollectionLeakCount; | ||||||
|  |         private List<int> ListPassCount; | ||||||
|  |         private List<int> ListLeakCount; | ||||||
|         #endregion |         #endregion | ||||||
| 
 | 
 | ||||||
|         #region Constructor |         #region Constructor | ||||||
|  | @ -22,7 +36,9 @@ namespace INT_PT002.Controls | ||||||
|             InitializeComponent(); |             InitializeComponent(); | ||||||
| 
 | 
 | ||||||
|             this.ParentForm = parent; |             this.ParentForm = parent; | ||||||
|  | 
 | ||||||
|             this.Initialize(); |             this.Initialize(); | ||||||
|  |             this.DefaultSetting(); | ||||||
|         } |         } | ||||||
|         #endregion |         #endregion | ||||||
| 
 | 
 | ||||||
|  | @ -39,15 +55,314 @@ namespace INT_PT002.Controls | ||||||
|         { |         { | ||||||
|             this.smartGroupBox1.Text = "Log > Inspection"; |             this.smartGroupBox1.Text = "Log > Inspection"; | ||||||
|         } |         } | ||||||
|  |         private void DefaultSetting() | ||||||
|  |         { | ||||||
|  |             this.SelecteDataType = Define.E_DataType.None; | ||||||
|  | 
 | ||||||
|  |             this.ListInspectionFile = new List<DataBackupYear>(); | ||||||
|  | 
 | ||||||
|  |             this.CollectionListBox = new Collection<SmartX.SmartListBox>(); | ||||||
|  |             this.CollectionListBox.Clear(); | ||||||
|  |             this.CollectionListBox.Add(this.listBox1); | ||||||
|  |             this.CollectionListBox.Add(this.listBox2); | ||||||
|  |             this.CollectionListBox.Add(this.listBox3); | ||||||
|  |             this.CollectionListBox.Add(this.listBox4); | ||||||
|  |             this.CollectionListBox.Add(this.listBox5); | ||||||
|  |             this.CollectionListBox.Add(this.listBox6); | ||||||
|  |             this.CollectionListBox.Add(this.listBox7); | ||||||
|  |             this.CollectionListBox.Add(this.listBox8); | ||||||
|  |             this.CollectionListBox.Add(this.listBox9); | ||||||
|  |             this.CollectionListBox.Add(this.listBox10); | ||||||
|  | 
 | ||||||
|  |             this.CollectionPassCount = new Collection<SmartX.SmartLabel>(); | ||||||
|  |             this.CollectionPassCount.Clear(); | ||||||
|  |             this.CollectionPassCount.Add(this.labelPassCount1); | ||||||
|  |             this.CollectionPassCount.Add(this.labelPassCount2); | ||||||
|  |             this.CollectionPassCount.Add(this.labelPassCount3); | ||||||
|  |             this.CollectionPassCount.Add(this.labelPassCount4); | ||||||
|  |             this.CollectionPassCount.Add(this.labelPassCount5); | ||||||
|  |             this.CollectionPassCount.Add(this.labelPassCount6); | ||||||
|  |             this.CollectionPassCount.Add(this.labelPassCount7); | ||||||
|  |             this.CollectionPassCount.Add(this.labelPassCount8); | ||||||
|  |             this.CollectionPassCount.Add(this.labelPassCount9); | ||||||
|  |             this.CollectionPassCount.Add(this.labelPassCount10); | ||||||
|  | 
 | ||||||
|  |             this.CollectionLeakCount = new Collection<SmartX.SmartLabel>(); | ||||||
|  |             this.CollectionLeakCount.Clear(); | ||||||
|  |             this.CollectionLeakCount.Add(this.labelLeakCount1); | ||||||
|  |             this.CollectionLeakCount.Add(this.labelLeakCount2); | ||||||
|  |             this.CollectionLeakCount.Add(this.labelLeakCount3); | ||||||
|  |             this.CollectionLeakCount.Add(this.labelLeakCount4); | ||||||
|  |             this.CollectionLeakCount.Add(this.labelLeakCount5); | ||||||
|  |             this.CollectionLeakCount.Add(this.labelLeakCount6); | ||||||
|  |             this.CollectionLeakCount.Add(this.labelLeakCount7); | ||||||
|  |             this.CollectionLeakCount.Add(this.labelLeakCount8); | ||||||
|  |             this.CollectionLeakCount.Add(this.labelLeakCount9); | ||||||
|  |             this.CollectionLeakCount.Add(this.labelLeakCount10); | ||||||
|  | 
 | ||||||
|  |             this.ListPassCount = new List<int>(); | ||||||
|  |             for (int i = 0; i < 10; i++) | ||||||
|  |                 this.ListPassCount.Add(0); | ||||||
|  | 
 | ||||||
|  |             this.ListLeakCount = new List<int>(); | ||||||
|  |             for (int i = 0; i < 10; i++) | ||||||
|  |                 this.ListLeakCount.Add(0); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         public void LoadFile(string fullFilePath) | ||||||
|  |         { | ||||||
|  |             if (fullFilePath.Contains("_Inspection") == false) | ||||||
|  |                 return; | ||||||
|  | 
 | ||||||
|  |             this.smartFile1.FilePathName = fullFilePath; | ||||||
|  |             this.smartFile1.Open(); | ||||||
|  |             this.smartFile1.StringType.EncodingType = SmartX.SmartFile.Encodings.ANSI; | ||||||
|  | 
 | ||||||
|  |             try | ||||||
|  |             { | ||||||
|  |                 for (int i = 0; i < 10; i++) | ||||||
|  |                     this.ListPassCount[i] = 0; | ||||||
|  | 
 | ||||||
|  |                 for (int i = 0; i < 10; i++) | ||||||
|  |                     this.ListLeakCount[i] = 0; | ||||||
|  | 
 | ||||||
|  |                 this.smartFile1.StringType.FillBuffer(); | ||||||
|  | 
 | ||||||
|  |                 long lineNum = this.smartFile1.StringType.GetCount(); | ||||||
|  |                 for (int i = 1; i < lineNum; i++) | ||||||
|  |                 { | ||||||
|  |                     this.UpdateListBoxDataDisplay(this.smartFile1.StringType.ReadBuffer(i)); | ||||||
|  |                 } | ||||||
|  | 
 | ||||||
|  |                 for (int i = 0; i < 10; i++) | ||||||
|  |                 { | ||||||
|  |                     this.CollectionPassCount[i].Text = this.ListPassCount[i].ToString(); | ||||||
|  |                     this.CollectionLeakCount[i].Text = this.ListLeakCount[i].ToString(); | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |             catch | ||||||
|  |             { | ||||||
|  |                 DialogFormMessage myMsg = new DialogFormMessage(16, this.ParentForm.ParentForm.SystemConfig.LANGUAGE); | ||||||
|  |                 myMsg.ShowDialog(); | ||||||
|  | 
 | ||||||
|  |                 this.smartFile1.Close(); | ||||||
|  |             } | ||||||
|  |          | ||||||
|  |             this.smartFile1.Close(); | ||||||
|  |         } | ||||||
|  |         private void UpdateListBoxDataDisplay(string data) | ||||||
|  |         { | ||||||
|  |             if (data.Contains(",") == false) | ||||||
|  |                 return; | ||||||
|  |              | ||||||
|  |             string[] sb = data.Split(','); | ||||||
|  |             string temp = ""; | ||||||
|  | 
 | ||||||
|  |             // Time | ||||||
|  |             this.listBoxTime.AddItem(sb[1]); | ||||||
|  |             // 1~10 판정데이터 | ||||||
|  |             for (int i = 0; i < 10; i++) | ||||||
|  |             { | ||||||
|  |                 temp = sb[i + 4]; | ||||||
|  | 
 | ||||||
|  |                 if (temp == "Pass") | ||||||
|  |                     this.ListPassCount[i]++; | ||||||
|  |                 if(temp == "Leak") | ||||||
|  |                     this.ListLeakCount[i]++; | ||||||
|  | 
 | ||||||
|  |                 this.CollectionListBox[i].AddItem(sb[i + 4]); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         private void UpdateDisplayFile() | ||||||
|  |         { | ||||||
|  |             int fileCount = 0; | ||||||
|  |             //TreeNode node; | ||||||
|  |             List<string> years = new List<string>(); | ||||||
|  |             List<string> months = new List<string>(); | ||||||
|  |             List<string> days = new List<string>(); | ||||||
|  | 
 | ||||||
|  |             this.treeViewInspection.Nodes.Clear(); | ||||||
|  |             this.ListInspectionFile.Clear(); | ||||||
|  | 
 | ||||||
|  |             DirectoryInfo dir = new DirectoryInfo(this.ParentForm.ParentForm.PathDataInspectionFolder); | ||||||
|  |             List<string> fileNames = new List<string>(); | ||||||
|  | 
 | ||||||
|  |             // 폴더 체크 | ||||||
|  |             if (dir.Exists == false) | ||||||
|  |                 dir.Create(); | ||||||
|  | 
 | ||||||
|  |             // year 폴더 가져오기 | ||||||
|  |             DirectoryInfo[] yearDirectorys = dir.GetDirectories(); | ||||||
|  |             // year 폴더 정렬  | ||||||
|  |             years = this.ParentForm.DirectorySort(yearDirectorys); | ||||||
|  | 
 | ||||||
|  |             // Inspection File 리스트 생성 | ||||||
|  |             if (years.Count != 0) | ||||||
|  |             { | ||||||
|  |                 // Year | ||||||
|  |                 foreach (string year in years) | ||||||
|  |                 { | ||||||
|  |                     DataBackupYear y = new DataBackupYear(year); | ||||||
|  |                     DirectoryInfo monthDir = new DirectoryInfo(string.Format("{0}{1}", this.ParentForm.ParentForm.PathDataInspectionFolder, year)); | ||||||
|  |                     DirectoryInfo[] monthDirectorys = monthDir.GetDirectories(); | ||||||
|  | 
 | ||||||
|  |                     months = this.ParentForm.DirectorySort(monthDirectorys); | ||||||
|  | 
 | ||||||
|  |                     if (months.Count != 0) | ||||||
|  |                     { | ||||||
|  |                         // Month | ||||||
|  |                         foreach (string month in months) | ||||||
|  |                         { | ||||||
|  |                             DirectoryInfo dayDir = new DirectoryInfo(string.Format("{0}{1}\\{2}", this.ParentForm.ParentForm.PathDataInspectionFolder, year, month)); | ||||||
|  |                             FileInfo[] dayFiles = dayDir.GetFiles(); | ||||||
|  | 
 | ||||||
|  |                             days = this.DayInspectionDirectorySort(dayFiles); | ||||||
|  | 
 | ||||||
|  |                             DataBackupMonth m = new DataBackupMonth(month); | ||||||
|  |                             m.Days = days; | ||||||
|  | 
 | ||||||
|  |                             y.Months.Add(m); | ||||||
|  |                         } | ||||||
|  | 
 | ||||||
|  |                         this.ListInspectionFile.Add(y); | ||||||
|  |                     } | ||||||
|  |                     else | ||||||
|  |                     { | ||||||
|  |                         this.ListInspectionFile.Add(y); | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  | 
 | ||||||
|  |                 // node 생성 | ||||||
|  |                 for (int i = 0; i < this.ListInspectionFile.Count; i++) | ||||||
|  |                 { | ||||||
|  |                     TreeNode node = new TreeNode(this.ListInspectionFile[i].Year); | ||||||
|  |                     for (int j = 0; j < this.ListInspectionFile[i].Months.Count; j++) | ||||||
|  |                     { | ||||||
|  |                         TreeNode nodeMonth = new TreeNode(this.ListInspectionFile[i].Months[j].Month); | ||||||
|  | 
 | ||||||
|  |                         for (int k = 0; k < this.ListInspectionFile[i].Months[j].Days.Count; k++) | ||||||
|  |                         { | ||||||
|  |                             nodeMonth.Nodes.Add(this.ListInspectionFile[i].Months[j].Days[k]); | ||||||
|  |                             fileCount++; | ||||||
|  |                         } | ||||||
|  |                         node.Nodes.Add(nodeMonth); | ||||||
|  |                     } | ||||||
|  |                     this.treeViewInspection.Nodes.Add(node); | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  | 
 | ||||||
|  |             //this.labelCount.Text = fileCount.ToString(); | ||||||
|  |         } | ||||||
|  |         private List<string> DayInspectionDirectorySort(FileInfo[] files) | ||||||
|  |         { | ||||||
|  |             StringBuilder sb; | ||||||
|  |             List<string> listFile = new List<string>(); | ||||||
|  |             Dictionary<string, int> dirNames = new Dictionary<string, int>(); | ||||||
|  | 
 | ||||||
|  |             #region File List 품번 순서대로 정렬 | ||||||
|  |             foreach (FileInfo file in files) | ||||||
|  |             { | ||||||
|  |                 sb = new StringBuilder(); | ||||||
|  | 
 | ||||||
|  |                 for (int i = 20; i < file.Name.IndexOf("."); i++) | ||||||
|  |                     sb.Append(file.Name.Substring(i, 1)); | ||||||
|  | 
 | ||||||
|  |                 dirNames.Add(file.Name, int.Parse(file.Name.Substring(20, 1))); | ||||||
|  |             } | ||||||
|  | 
 | ||||||
|  |             var vrList = dirNames.OrderBy(x => x.Value); | ||||||
|  |             foreach (var v in vrList) | ||||||
|  |                 listFile.Add(v.Key); | ||||||
|  |             #endregion | ||||||
|  | 
 | ||||||
|  |             #region File List 날짜 순서대로 정렬 | ||||||
|  |             dirNames = new Dictionary<string, int>(); | ||||||
|  |             foreach (string f in listFile) | ||||||
|  |                 dirNames.Add(f, int.Parse(f.Substring(0, 8))); | ||||||
|  | 
 | ||||||
|  |             listFile.Clear(); | ||||||
|  |             vrList = dirNames.OrderBy(x => x.Value); | ||||||
|  |             foreach (var v in vrList) | ||||||
|  |                 listFile.Add(v.Key); | ||||||
|  |             #endregion | ||||||
|  | 
 | ||||||
|  |             return listFile; | ||||||
|  |         } | ||||||
| 
 | 
 | ||||||
|         public void DisplayRefresh() |         public void DisplayRefresh() | ||||||
|         { |         { | ||||||
|  |             this.SelecteDataType = Define.E_DataType.None; | ||||||
| 
 | 
 | ||||||
|  |             this.UpdateDisplayFile(); | ||||||
|  |             this.treeViewInspection.ExpandAll(); | ||||||
|         } |         } | ||||||
|         #endregion |         #endregion | ||||||
| 
 | 
 | ||||||
|         #region Event Handler |         #region Event Handler | ||||||
|  |         private void buttonBackup_Click(object sender, EventArgs e) | ||||||
|  |         { | ||||||
|  |             string targetPath = "", sourceFilePath = "", destFilePath = "", dataFolderPath = ""; | ||||||
|  |             string[] result; | ||||||
|  |             DirectoryInfo dir; | ||||||
|  |             FileInfo[] files; | ||||||
|  |             List<string> listSelectedFile = new List<string>();     // 백업할 파일 리스트 (yyyy/MM/filename.csv) | ||||||
| 
 | 
 | ||||||
|  |             dataFolderPath = this.ParentForm.ParentForm.PathDataInspectionFolder; | ||||||
|  |             if (dataFolderPath == "") | ||||||
|  |                 return; | ||||||
|  | 
 | ||||||
|  |             #region 백업 할 파일 리스트 | ||||||
|  |             listSelectedFile = this.ParentForm.ParentForm.GetSeletedNodeList(this.treeViewInspection); | ||||||
|  |             #endregion | ||||||
|  | 
 | ||||||
|  |             targetPath = "하드 디스크\\"; | ||||||
|  |             if (listSelectedFile.Count == 0) | ||||||
|  |             { | ||||||
|  |                 DialogFormMessage msg = new DialogFormMessage(4, this.ParentForm.ParentForm.SystemConfig.LANGUAGE); | ||||||
|  |                 msg.ShowDialog(); | ||||||
|  |                 return; | ||||||
|  |             } | ||||||
|  | 
 | ||||||
|  |             SmartX.SmartSplash.Start(SmartX.SmartSplash.BuiltInLoadingImages.LOADING1_SMALL, 200); | ||||||
|  | 
 | ||||||
|  |             #region USB 장착 유무 체크 | ||||||
|  |             // USB 장착 유무 체크 | ||||||
|  |             dir = new DirectoryInfo(targetPath); | ||||||
|  |             if (dir.Exists == false) | ||||||
|  |             { | ||||||
|  |                 // USB메모리가 장착되지 않았습니다 | ||||||
|  |                 DialogFormMessage msg = new DialogFormMessage(5, this.ParentForm.ParentForm.SystemConfig.LANGUAGE); | ||||||
|  |                 msg.ShowDialog(); | ||||||
|  |                 SmartX.SmartSplash.Finish(); | ||||||
|  |                 return; | ||||||
|  |             } | ||||||
|  |             #endregion | ||||||
|  |         } | ||||||
|  |         private void buttonRemove_Click(object sender, EventArgs e) | ||||||
|  |         { | ||||||
|  | 
 | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         private void treeViewInspection_AfterSelect(object sender, TreeViewEventArgs e) | ||||||
|  |         { | ||||||
|  |             this.labelPath.Text = e.Node.Text; | ||||||
|  |             this.LoadFile(this.ParentForm.ParentForm.PathDataInspectionFolder + this.treeViewInspection.SelectedNode.FullPath); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         private void buttonUp_Click(object sender, EventArgs e) | ||||||
|  |         { | ||||||
|  |             this.listBoxTime.ScrollUp(); | ||||||
|  | 
 | ||||||
|  |             for (int i = 0; i < 10; i++) | ||||||
|  |                 this.CollectionListBox[i].ScrollUp(); | ||||||
|  |         } | ||||||
|  |         private void buttonDown_Click(object sender, EventArgs e) | ||||||
|  |         { | ||||||
|  |             this.listBoxTime.ScrollDown(); | ||||||
|  | 
 | ||||||
|  |             for (int i = 0; i < 10; i++) | ||||||
|  |                 this.CollectionListBox[i].ScrollDown(); | ||||||
|  |         } | ||||||
|         #endregion |         #endregion | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -117,6 +117,12 @@ | ||||||
|   <resheader name="writer"> |   <resheader name="writer"> | ||||||
|     <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> |     <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> | ||||||
|   </resheader> |   </resheader> | ||||||
|  |   <metadata name="smartFile1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> | ||||||
|  |     <value>19, 6</value> | ||||||
|  |   </metadata> | ||||||
|  |   <metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> | ||||||
|  |     <value>37</value> | ||||||
|  |   </metadata> | ||||||
|   <metadata name="$this.FormFactorShadowProperty" xml:space="preserve"> |   <metadata name="$this.FormFactorShadowProperty" xml:space="preserve"> | ||||||
|     <value>WEBPAD</value> |     <value>WEBPAD</value> | ||||||
|   </metadata> |   </metadata> | ||||||
|  |  | ||||||
											
												
													File diff suppressed because it is too large
													Load Diff
												
											
										
									
								|  | @ -0,0 +1,19 @@ | ||||||
|  | using System; | ||||||
|  | using System.Linq; | ||||||
|  | using System.Collections.Generic; | ||||||
|  | using System.ComponentModel; | ||||||
|  | using System.Drawing; | ||||||
|  | using System.Data; | ||||||
|  | using System.Text; | ||||||
|  | using System.Windows.Forms; | ||||||
|  | 
 | ||||||
|  | namespace INT_PT002.Controls.Log | ||||||
|  | { | ||||||
|  |     public partial class ControlMenuLogTemporary : UserControl | ||||||
|  |     { | ||||||
|  |         public ControlMenuLogTemporary() | ||||||
|  |         { | ||||||
|  |             InitializeComponent(); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | @ -0,0 +1,123 @@ | ||||||
|  | <?xml version="1.0" encoding="utf-8"?> | ||||||
|  | <root> | ||||||
|  |   <!--  | ||||||
|  |     Microsoft ResX Schema  | ||||||
|  |      | ||||||
|  |     Version 2.0 | ||||||
|  |      | ||||||
|  |     The primary goals of this format is to allow a simple XML format  | ||||||
|  |     that is mostly human readable. The generation and parsing of the  | ||||||
|  |     various data types are done through the TypeConverter classes  | ||||||
|  |     associated with the data types. | ||||||
|  |      | ||||||
|  |     Example: | ||||||
|  |      | ||||||
|  |     ... ado.net/XML headers & schema ... | ||||||
|  |     <resheader name="resmimetype">text/microsoft-resx</resheader> | ||||||
|  |     <resheader name="version">2.0</resheader> | ||||||
|  |     <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> | ||||||
|  |     <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> | ||||||
|  |     <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> | ||||||
|  |     <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> | ||||||
|  |     <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> | ||||||
|  |         <value>[base64 mime encoded serialized .NET Framework object]</value> | ||||||
|  |     </data> | ||||||
|  |     <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> | ||||||
|  |         <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> | ||||||
|  |         <comment>This is a comment</comment> | ||||||
|  |     </data> | ||||||
|  |                  | ||||||
|  |     There are any number of "resheader" rows that contain simple  | ||||||
|  |     name/value pairs. | ||||||
|  |      | ||||||
|  |     Each data row contains a name, and value. The row also contains a  | ||||||
|  |     type or mimetype. Type corresponds to a .NET class that support  | ||||||
|  |     text/value conversion through the TypeConverter architecture.  | ||||||
|  |     Classes that don't support this are serialized and stored with the  | ||||||
|  |     mimetype set. | ||||||
|  |      | ||||||
|  |     The mimetype is used for serialized objects, and tells the  | ||||||
|  |     ResXResourceReader how to depersist the object. This is currently not  | ||||||
|  |     extensible. For a given mimetype the value must be set accordingly: | ||||||
|  |      | ||||||
|  |     Note - application/x-microsoft.net.object.binary.base64 is the format  | ||||||
|  |     that the ResXResourceWriter will generate, however the reader can  | ||||||
|  |     read any of the formats listed below. | ||||||
|  |      | ||||||
|  |     mimetype: application/x-microsoft.net.object.binary.base64 | ||||||
|  |     value   : The object must be serialized with  | ||||||
|  |             : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter | ||||||
|  |             : and then encoded with base64 encoding. | ||||||
|  |      | ||||||
|  |     mimetype: application/x-microsoft.net.object.soap.base64 | ||||||
|  |     value   : The object must be serialized with  | ||||||
|  |             : System.Runtime.Serialization.Formatters.Soap.SoapFormatter | ||||||
|  |             : and then encoded with base64 encoding. | ||||||
|  | 
 | ||||||
|  |     mimetype: application/x-microsoft.net.object.bytearray.base64 | ||||||
|  |     value   : The object must be serialized into a byte array  | ||||||
|  |             : using a System.ComponentModel.TypeConverter | ||||||
|  |             : and then encoded with base64 encoding. | ||||||
|  |     --> | ||||||
|  |   <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> | ||||||
|  |     <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> | ||||||
|  |     <xsd:element name="root" msdata:IsDataSet="true"> | ||||||
|  |       <xsd:complexType> | ||||||
|  |         <xsd:choice maxOccurs="unbounded"> | ||||||
|  |           <xsd:element name="metadata"> | ||||||
|  |             <xsd:complexType> | ||||||
|  |               <xsd:sequence> | ||||||
|  |                 <xsd:element name="value" type="xsd:string" minOccurs="0" /> | ||||||
|  |               </xsd:sequence> | ||||||
|  |               <xsd:attribute name="name" use="required" type="xsd:string" /> | ||||||
|  |               <xsd:attribute name="type" type="xsd:string" /> | ||||||
|  |               <xsd:attribute name="mimetype" type="xsd:string" /> | ||||||
|  |               <xsd:attribute ref="xml:space" /> | ||||||
|  |             </xsd:complexType> | ||||||
|  |           </xsd:element> | ||||||
|  |           <xsd:element name="assembly"> | ||||||
|  |             <xsd:complexType> | ||||||
|  |               <xsd:attribute name="alias" type="xsd:string" /> | ||||||
|  |               <xsd:attribute name="name" type="xsd:string" /> | ||||||
|  |             </xsd:complexType> | ||||||
|  |           </xsd:element> | ||||||
|  |           <xsd:element name="data"> | ||||||
|  |             <xsd:complexType> | ||||||
|  |               <xsd:sequence> | ||||||
|  |                 <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> | ||||||
|  |                 <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> | ||||||
|  |               </xsd:sequence> | ||||||
|  |               <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> | ||||||
|  |               <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> | ||||||
|  |               <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> | ||||||
|  |               <xsd:attribute ref="xml:space" /> | ||||||
|  |             </xsd:complexType> | ||||||
|  |           </xsd:element> | ||||||
|  |           <xsd:element name="resheader"> | ||||||
|  |             <xsd:complexType> | ||||||
|  |               <xsd:sequence> | ||||||
|  |                 <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> | ||||||
|  |               </xsd:sequence> | ||||||
|  |               <xsd:attribute name="name" type="xsd:string" use="required" /> | ||||||
|  |             </xsd:complexType> | ||||||
|  |           </xsd:element> | ||||||
|  |         </xsd:choice> | ||||||
|  |       </xsd:complexType> | ||||||
|  |     </xsd:element> | ||||||
|  |   </xsd:schema> | ||||||
|  |   <resheader name="resmimetype"> | ||||||
|  |     <value>text/microsoft-resx</value> | ||||||
|  |   </resheader> | ||||||
|  |   <resheader name="version"> | ||||||
|  |     <value>2.0</value> | ||||||
|  |   </resheader> | ||||||
|  |   <resheader name="reader"> | ||||||
|  |     <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> | ||||||
|  |   </resheader> | ||||||
|  |   <resheader name="writer"> | ||||||
|  |     <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> | ||||||
|  |   </resheader> | ||||||
|  |   <metadata name="$this.FormFactorShadowProperty" xml:space="preserve"> | ||||||
|  |     <value>WEBPAD</value> | ||||||
|  |   </metadata> | ||||||
|  | </root> | ||||||
|  | @ -147,6 +147,10 @@ namespace INT_PT002.Controls | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|  |         public void UpdateDisplayAlarmView(AlarmList alarm) | ||||||
|  |         { | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|         public void DisplayRefresh() |         public void DisplayRefresh() | ||||||
|         { |         { | ||||||
|             this.ParentForm.ParentForm.CurrentSystemStatus.CurrentDisplay = Define.E_DisplayStore.DisplayEquipmentTest;         |             this.ParentForm.ParentForm.CurrentSystemStatus.CurrentDisplay = Define.E_DisplayStore.DisplayEquipmentTest;         | ||||||
|  |  | ||||||
|  | @ -30,6 +30,7 @@ | ||||||
|         { |         { | ||||||
|             System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ControlMenuSystemInformation)); |             System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ControlMenuSystemInformation)); | ||||||
|             this.smartGroupBox1 = new SmartX.SmartGroupBox(); |             this.smartGroupBox1 = new SmartX.SmartGroupBox(); | ||||||
|  |             this.buttonUpdateMainboard = new SmartX.SmartButton(); | ||||||
|             this.smartKeyboard1 = new SmartX.SmartKeyboard(); |             this.smartKeyboard1 = new SmartX.SmartKeyboard(); | ||||||
|             this.smartLabel25 = new SmartX.SmartLabel(); |             this.smartLabel25 = new SmartX.SmartLabel(); | ||||||
|             this.labelContact3 = new SmartX.SmartLabel(); |             this.labelContact3 = new SmartX.SmartLabel(); | ||||||
|  | @ -60,7 +61,6 @@ | ||||||
|             this.smartLabel1 = new SmartX.SmartLabel(); |             this.smartLabel1 = new SmartX.SmartLabel(); | ||||||
|             this.smartSeparatorLine2 = new SmartX.SmartSeparatorLine(); |             this.smartSeparatorLine2 = new SmartX.SmartSeparatorLine(); | ||||||
|             this.smartSeparatorLine1 = new SmartX.SmartSeparatorLine(); |             this.smartSeparatorLine1 = new SmartX.SmartSeparatorLine(); | ||||||
|             this.buttonUpdateMainboard = new SmartX.SmartButton(); |  | ||||||
|             this.smartGroupBox1.SuspendLayout(); |             this.smartGroupBox1.SuspendLayout(); | ||||||
|             this.SuspendLayout(); |             this.SuspendLayout(); | ||||||
|             //  |             //  | ||||||
|  | @ -69,8 +69,8 @@ | ||||||
|             this.smartGroupBox1.BackGround = null; |             this.smartGroupBox1.BackGround = null; | ||||||
|             this.smartGroupBox1.BackGroundColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224))))); |             this.smartGroupBox1.BackGroundColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224))))); | ||||||
|             this.smartGroupBox1.BackImage = null; |             this.smartGroupBox1.BackImage = null; | ||||||
|             this.smartGroupBox1.Controls.Add(this.buttonUpdateMainboard); |  | ||||||
|             this.smartGroupBox1.Controls.Add(this.smartKeyboard1); |             this.smartGroupBox1.Controls.Add(this.smartKeyboard1); | ||||||
|  |             this.smartGroupBox1.Controls.Add(this.buttonUpdateMainboard); | ||||||
|             this.smartGroupBox1.Controls.Add(this.smartLabel25); |             this.smartGroupBox1.Controls.Add(this.smartLabel25); | ||||||
|             this.smartGroupBox1.Controls.Add(this.labelContact3); |             this.smartGroupBox1.Controls.Add(this.labelContact3); | ||||||
|             this.smartGroupBox1.Controls.Add(this.smartLabel24); |             this.smartGroupBox1.Controls.Add(this.smartLabel24); | ||||||
|  | @ -113,6 +113,40 @@ | ||||||
|             this.smartGroupBox1.Text = "smartGroupBox1"; |             this.smartGroupBox1.Text = "smartGroupBox1"; | ||||||
|             this.smartGroupBox1.TextColor = System.Drawing.Color.White; |             this.smartGroupBox1.TextColor = System.Drawing.Color.White; | ||||||
|             //  |             //  | ||||||
|  |             // buttonUpdateMainboard | ||||||
|  |             //  | ||||||
|  |             this.buttonUpdateMainboard.BackGround = this.smartGroupBox1; | ||||||
|  |             this.buttonUpdateMainboard.BackGroundColor = System.Drawing.Color.FromArgb(((int)(((byte)(226)))), ((int)(((byte)(226)))), ((int)(((byte)(226))))); | ||||||
|  |             this.buttonUpdateMainboard.ButtonColor = System.Drawing.Color.FromArgb(((int)(((byte)(58)))), ((int)(((byte)(110)))), ((int)(((byte)(165))))); | ||||||
|  |             this.buttonUpdateMainboard.ButtonDownColor = System.Drawing.Color.SlateGray; | ||||||
|  |             this.buttonUpdateMainboard.ButtonImageAutoSize = true; | ||||||
|  |             this.buttonUpdateMainboard.ButtonStyle = SmartX.SmartButton.ButtonStyles.FlatRound; | ||||||
|  |             this.buttonUpdateMainboard.ButtonText = "Update"; | ||||||
|  |             this.buttonUpdateMainboard.ColorKeySamplePosition = new System.Drawing.Point(0, 0); | ||||||
|  |             this.buttonUpdateMainboard.GroupID = 0; | ||||||
|  |             this.buttonUpdateMainboard.ImageDisable = null; | ||||||
|  |             this.buttonUpdateMainboard.ImageDown = null; | ||||||
|  |             this.buttonUpdateMainboard.ImageUp = null; | ||||||
|  |             this.buttonUpdateMainboard.Location = new System.Drawing.Point(726, 217); | ||||||
|  |             this.buttonUpdateMainboard.Mode = SmartX.SmartButton.BUTTONMODE.NORMAL; | ||||||
|  |             this.buttonUpdateMainboard.Name = "buttonUpdateMainboard"; | ||||||
|  |             this.buttonUpdateMainboard.NestedClickEventPrevent = false; | ||||||
|  |             this.buttonUpdateMainboard.OutlinePixel = 2; | ||||||
|  |             this.buttonUpdateMainboard.OverlapOptimize = true; | ||||||
|  |             this.buttonUpdateMainboard.RepeatInterval = 200; | ||||||
|  |             this.buttonUpdateMainboard.RepeatIntervalAccelerate = null; | ||||||
|  |             this.buttonUpdateMainboard.RoundSize = 10; | ||||||
|  |             this.buttonUpdateMainboard.SafeInterval = 200; | ||||||
|  |             this.buttonUpdateMainboard.Size = new System.Drawing.Size(84, 24); | ||||||
|  |             this.buttonUpdateMainboard.SpecialFunction = SmartX.SmartButton.SPECIALFUNC.NONE; | ||||||
|  |             this.buttonUpdateMainboard.TabIndex = 90; | ||||||
|  |             this.buttonUpdateMainboard.Text = null; | ||||||
|  |             this.buttonUpdateMainboard.TextColor = System.Drawing.Color.White; | ||||||
|  |             this.buttonUpdateMainboard.TextColorDisable = System.Drawing.Color.Gray; | ||||||
|  |             this.buttonUpdateMainboard.TextDownColor = System.Drawing.Color.FromArgb(((int)(((byte)(233)))), ((int)(((byte)(238)))), ((int)(((byte)(255))))); | ||||||
|  |             this.buttonUpdateMainboard.TextHAlign = SmartX.SmartButton.TextHorAlign.Middle; | ||||||
|  |             this.buttonUpdateMainboard.TextVAlign = SmartX.SmartButton.TextVerAlign.Middle; | ||||||
|  |             //  | ||||||
|             // smartKeyboard1 |             // smartKeyboard1 | ||||||
|             //  |             //  | ||||||
|             this.smartKeyboard1.BackGround = null; |             this.smartKeyboard1.BackGround = null; | ||||||
|  | @ -818,40 +852,6 @@ | ||||||
|             this.smartSeparatorLine1.TabIndex = 0; |             this.smartSeparatorLine1.TabIndex = 0; | ||||||
|             this.smartSeparatorLine1.Text = "smartSeparatorLine1"; |             this.smartSeparatorLine1.Text = "smartSeparatorLine1"; | ||||||
|             //  |             //  | ||||||
|             // buttonUpdateMainboard |  | ||||||
|             //  |  | ||||||
|             this.buttonUpdateMainboard.BackGround = this.smartGroupBox1; |  | ||||||
|             this.buttonUpdateMainboard.BackGroundColor = System.Drawing.Color.FromArgb(((int)(((byte)(226)))), ((int)(((byte)(226)))), ((int)(((byte)(226))))); |  | ||||||
|             this.buttonUpdateMainboard.ButtonColor = System.Drawing.Color.FromArgb(((int)(((byte)(58)))), ((int)(((byte)(110)))), ((int)(((byte)(165))))); |  | ||||||
|             this.buttonUpdateMainboard.ButtonDownColor = System.Drawing.Color.SlateGray; |  | ||||||
|             this.buttonUpdateMainboard.ButtonImageAutoSize = true; |  | ||||||
|             this.buttonUpdateMainboard.ButtonStyle = SmartX.SmartButton.ButtonStyles.FlatRound; |  | ||||||
|             this.buttonUpdateMainboard.ButtonText = "Update"; |  | ||||||
|             this.buttonUpdateMainboard.ColorKeySamplePosition = new System.Drawing.Point(0, 0); |  | ||||||
|             this.buttonUpdateMainboard.GroupID = 0; |  | ||||||
|             this.buttonUpdateMainboard.ImageDisable = null; |  | ||||||
|             this.buttonUpdateMainboard.ImageDown = null; |  | ||||||
|             this.buttonUpdateMainboard.ImageUp = null; |  | ||||||
|             this.buttonUpdateMainboard.Location = new System.Drawing.Point(726, 217); |  | ||||||
|             this.buttonUpdateMainboard.Mode = SmartX.SmartButton.BUTTONMODE.NORMAL; |  | ||||||
|             this.buttonUpdateMainboard.Name = "buttonUpdateMainboard"; |  | ||||||
|             this.buttonUpdateMainboard.NestedClickEventPrevent = false; |  | ||||||
|             this.buttonUpdateMainboard.OutlinePixel = 2; |  | ||||||
|             this.buttonUpdateMainboard.OverlapOptimize = true; |  | ||||||
|             this.buttonUpdateMainboard.RepeatInterval = 200; |  | ||||||
|             this.buttonUpdateMainboard.RepeatIntervalAccelerate = null; |  | ||||||
|             this.buttonUpdateMainboard.RoundSize = 10; |  | ||||||
|             this.buttonUpdateMainboard.SafeInterval = 200; |  | ||||||
|             this.buttonUpdateMainboard.Size = new System.Drawing.Size(84, 24); |  | ||||||
|             this.buttonUpdateMainboard.SpecialFunction = SmartX.SmartButton.SPECIALFUNC.NONE; |  | ||||||
|             this.buttonUpdateMainboard.TabIndex = 90; |  | ||||||
|             this.buttonUpdateMainboard.Text = null; |  | ||||||
|             this.buttonUpdateMainboard.TextColor = System.Drawing.Color.White; |  | ||||||
|             this.buttonUpdateMainboard.TextColorDisable = System.Drawing.Color.Gray; |  | ||||||
|             this.buttonUpdateMainboard.TextDownColor = System.Drawing.Color.FromArgb(((int)(((byte)(233)))), ((int)(((byte)(238)))), ((int)(((byte)(255))))); |  | ||||||
|             this.buttonUpdateMainboard.TextHAlign = SmartX.SmartButton.TextHorAlign.Middle; |  | ||||||
|             this.buttonUpdateMainboard.TextVAlign = SmartX.SmartButton.TextVerAlign.Middle; |  | ||||||
|             //  |  | ||||||
|             // ControlMenuSystemInformation |             // ControlMenuSystemInformation | ||||||
|             //  |             //  | ||||||
|             this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F); |             this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F); | ||||||
|  |  | ||||||
|  | @ -163,7 +163,7 @@ | ||||||
|             this.smartKeyboard.Size = new System.Drawing.Size(16, 11); |             this.smartKeyboard.Size = new System.Drawing.Size(16, 11); | ||||||
|             this.smartKeyboard.SizeRunTime = new System.Drawing.Size(897, 352); |             this.smartKeyboard.SizeRunTime = new System.Drawing.Size(897, 352); | ||||||
|             this.smartKeyboard.TabIndex = 119; |             this.smartKeyboard.TabIndex = 119; | ||||||
|             this.smartKeyboard.TABKeyDisable = false; |             this.smartKeyboard.TABKeyDisable = true; | ||||||
|             this.smartKeyboard.TargetInputObject = null; |             this.smartKeyboard.TargetInputObject = null; | ||||||
|             this.smartKeyboard.Text = "smartKeyboard1"; |             this.smartKeyboard.Text = "smartKeyboard1"; | ||||||
|             this.smartKeyboard.TextColor = System.Drawing.Color.Black; |             this.smartKeyboard.TextColor = System.Drawing.Color.Black; | ||||||
|  |  | ||||||
|  | @ -169,6 +169,30 @@ namespace INT_PT002.Controls | ||||||
| 
 | 
 | ||||||
|                     return; |                     return; | ||||||
|                 } |                 } | ||||||
|  | 
 | ||||||
|  |                 if (this.labelAccessRight.Text == "") | ||||||
|  |                 { | ||||||
|  |                     DialogFormMessage msg = new DialogFormMessage(null, 16, this.ParentForm.ParentForm.SystemConfig.LANGUAGE); | ||||||
|  |                     msg.ShowDialog(); | ||||||
|  | 
 | ||||||
|  |                     return; | ||||||
|  |                 } | ||||||
|  | 
 | ||||||
|  |                 if (this.labelExpiryDateOfAccount.Text == "000") | ||||||
|  |                 { | ||||||
|  |                     DialogFormMessage msg = new DialogFormMessage(null, 16, this.ParentForm.ParentForm.SystemConfig.LANGUAGE); | ||||||
|  |                     msg.ShowDialog(); | ||||||
|  | 
 | ||||||
|  |                     return; | ||||||
|  |                 } | ||||||
|  | 
 | ||||||
|  |                 if (this.labelExpiryDateOfPassword.Text == "00") | ||||||
|  |                 { | ||||||
|  |                     DialogFormMessage msg = new DialogFormMessage(null, 16, this.ParentForm.ParentForm.SystemConfig.LANGUAGE); | ||||||
|  |                     msg.ShowDialog(); | ||||||
|  | 
 | ||||||
|  |                     return; | ||||||
|  |                 } | ||||||
|                 #endregion |                 #endregion | ||||||
| 
 | 
 | ||||||
|                 item.ID = this.textBoxID.Text; |                 item.ID = this.textBoxID.Text; | ||||||
|  | @ -195,7 +219,7 @@ namespace INT_PT002.Controls | ||||||
|                 menuId.fMenu[11] = this.checkBoxMenuInformation.Checked; |                 menuId.fMenu[11] = this.checkBoxMenuInformation.Checked; | ||||||
|                 menuId.fMenu[12] = this.checkBoxMenuStatus.Checked; |                 menuId.fMenu[12] = this.checkBoxMenuStatus.Checked; | ||||||
| 
 | 
 | ||||||
|                 for (int i = 13; i < UserManager.USER_MENU_ID_MAX - 13; i++) |                 for (int i = 13; i < UserManager.USER_MENU_ID_MAX - 12; i++) | ||||||
|                     menuId.fMenu[i] = false; |                     menuId.fMenu[i] = false; | ||||||
|                                 |                                 | ||||||
|                 if (this.buttonLevel1.ButtonStatus == SmartX.SmartButton.BUTSTATUS.DOWN) |                 if (this.buttonLevel1.ButtonStatus == SmartX.SmartButton.BUTSTATUS.DOWN) | ||||||
|  | @ -225,6 +249,21 @@ namespace INT_PT002.Controls | ||||||
|                     this.ParentForm.ParentForm.SetTrackingHistoryData(Define.E_TrackingOperation.UserEditor, detail); |                     this.ParentForm.ParentForm.SetTrackingHistoryData(Define.E_TrackingOperation.UserEditor, detail); | ||||||
|                     #endregion |                     #endregion | ||||||
|                 } |                 } | ||||||
|  | 
 | ||||||
|  |                 #region 자동 로그아웃 타임 | ||||||
|  |                 //this.ParentForm.ParentForm.SystemConfig.AUTOMATIC_LOGOUT = int.Parse(this.labelAutomaticLogoutTime.Text); | ||||||
|  | 
 | ||||||
|  |                 //if (this.ParentForm.ParentForm.SystemConfig.AUTOMATIC_LOGOUT == 1) | ||||||
|  |                 //    this.ParentForm.ParentForm.FlagAutomaticLogoutWarningTime = 30; | ||||||
|  |                 //else | ||||||
|  |                 //    this.ParentForm.ParentForm.FlagAutomaticLogoutWarningTime = 60; | ||||||
|  | 
 | ||||||
|  |                 //UserManager.UserManager_AutoLogoutSetTimeout(this.ParentForm.ParentForm.SystemConfig.AUTOMATIC_LOGOUT, this.ParentForm.ParentForm.FlagAutomaticLogoutWarningTime); | ||||||
|  |                 #endregion | ||||||
|  | 
 | ||||||
|  |                 this.ParentForm.ParentForm.SaveSystemConfigurationFile(this.ParentForm.ParentForm.SystemConfig); | ||||||
|  | 
 | ||||||
|  |                 this.buttonSave.Visible = false; | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|         private void CheckBoxCheckedAsLevel(Define.E_UserGroup level) |         private void CheckBoxCheckedAsLevel(Define.E_UserGroup level) | ||||||
|  | @ -832,21 +871,6 @@ namespace INT_PT002.Controls | ||||||
|         private void buttonSave_Click(object sender, EventArgs e) |         private void buttonSave_Click(object sender, EventArgs e) | ||||||
|         { |         { | ||||||
|             this.SaveUserDll(); |             this.SaveUserDll(); | ||||||
| 
 |  | ||||||
|             #region 자동 로그아웃 타임 |  | ||||||
|             this.ParentForm.ParentForm.SystemConfig.AUTOMATIC_LOGOUT = int.Parse(this.labelAutomaticLogoutTime.Text); |  | ||||||
| 
 |  | ||||||
|             if (this.ParentForm.ParentForm.SystemConfig.AUTOMATIC_LOGOUT == 1) |  | ||||||
|                 this.ParentForm.ParentForm.FlagAutomaticLogoutWarningTime = 30; |  | ||||||
|             else |  | ||||||
|                 this.ParentForm.ParentForm.FlagAutomaticLogoutWarningTime = 60; |  | ||||||
| 
 |  | ||||||
|             UserManager.UserManager_AutoLogoutSetTimeout(this.ParentForm.ParentForm.SystemConfig.AUTOMATIC_LOGOUT, this.ParentForm.ParentForm.FlagAutomaticLogoutWarningTime); |  | ||||||
|             #endregion |  | ||||||
| 
 |  | ||||||
|             this.ParentForm.ParentForm.SaveSystemConfigurationFile(this.ParentForm.ParentForm.SystemConfig); |  | ||||||
| 
 |  | ||||||
|             this.buttonSave.Visible = false; |  | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         private void buttonIDEdit_Click(object sender, EventArgs e) |         private void buttonIDEdit_Click(object sender, EventArgs e) | ||||||
|  |  | ||||||
|  | @ -7,6 +7,8 @@ namespace INT_PT002.DataStore | ||||||
| { | { | ||||||
|     public class Define |     public class Define | ||||||
|     { |     { | ||||||
|  |         public delegate void EventHandlerAlarmStateChange(Define.E_Trackingalarm alarm, string status); | ||||||
|  | 
 | ||||||
|         public enum E_EquipmentStatus |         public enum E_EquipmentStatus | ||||||
|         { |         { | ||||||
|             Stop = 0, |             Stop = 0, | ||||||
|  | @ -118,17 +120,14 @@ namespace INT_PT002.DataStore | ||||||
|             FormMainDisplay, |             FormMainDisplay, | ||||||
|             FormMenu, |             FormMenu, | ||||||
|             FormProduct, |             FormProduct, | ||||||
|             FormConfiguration, |  | ||||||
|             FormCommunication, |  | ||||||
|             FormUserEditor, |             FormUserEditor, | ||||||
|  |             FormUserGroupEditor, | ||||||
|             FormIOTest, |             FormIOTest, | ||||||
|             FormMotorSetting, |  | ||||||
|             FormEquipmentLog, |             FormEquipmentLog, | ||||||
|             FormCheckLog, |             FormCheckLog, | ||||||
|             FormAlarmList, |             FormAlarmList, | ||||||
|             FormInformation, |             FormInformation, | ||||||
|             FormEquipmentSetting, |             FormStatus, | ||||||
|             FormTimeSetting, |  | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         public enum E_UserGroup |         public enum E_UserGroup | ||||||
|  | @ -222,5 +221,13 @@ namespace INT_PT002.DataStore | ||||||
|             Parameter, |             Parameter, | ||||||
|             Alarm, |             Alarm, | ||||||
|         } |         } | ||||||
|  | 
 | ||||||
|  |         public enum E_DataType | ||||||
|  |         { | ||||||
|  |             None, | ||||||
|  |             History, | ||||||
|  |             Inspection, | ||||||
|  |             Other, | ||||||
|  |         } | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -1010,6 +1010,226 @@ namespace INT_PT002.DataStore | ||||||
|     } |     } | ||||||
|     #endregion |     #endregion | ||||||
| 
 | 
 | ||||||
|  |     #region AlarmList | ||||||
|  |     public class AlarmList | ||||||
|  |     { | ||||||
|  |         #region Field | ||||||
|  |         private bool m_IsEntrySensorError; | ||||||
|  |         private bool m_IsLoadcellError; | ||||||
|  |         private bool m_IsPressureError; | ||||||
|  |         private bool m_IsServoOff; | ||||||
|  |         private bool m_IsServoAlarm; | ||||||
|  |         private bool m_IsServoTorqueAlarm; | ||||||
|  | 
 | ||||||
|  |         public event Define.EventHandlerAlarmStateChange EventAlarmStateChange; | ||||||
|  |         #endregion | ||||||
|  | 
 | ||||||
|  |         #region Constructor | ||||||
|  |         public AlarmList() | ||||||
|  |         { | ||||||
|  |             this.Initialize(); | ||||||
|  |         } | ||||||
|  |         #endregion | ||||||
|  | 
 | ||||||
|  |         #region Property | ||||||
|  |         public bool IsEntrySensorError | ||||||
|  |         { | ||||||
|  |             get { return this.m_IsEntrySensorError; } | ||||||
|  |             set { this.m_IsEntrySensorError = value; } | ||||||
|  |         } | ||||||
|  |         public bool IsLoadcellError | ||||||
|  |         { | ||||||
|  |             get { return this.m_IsLoadcellError; } | ||||||
|  |             set { this.m_IsLoadcellError = value; } | ||||||
|  |         } | ||||||
|  |         public bool IsPressureError | ||||||
|  |         { | ||||||
|  |             get { return this.m_IsPressureError; } | ||||||
|  |             set { this.m_IsPressureError = value; } | ||||||
|  |         } | ||||||
|  |         public bool IsServoOff | ||||||
|  |         { | ||||||
|  |             get { return this.m_IsServoOff; } | ||||||
|  |             set { this.m_IsServoOff = value; } | ||||||
|  |         } | ||||||
|  |         public bool IsServoAlarm | ||||||
|  |         { | ||||||
|  |             get { return this.m_IsServoAlarm; } | ||||||
|  |             set { this.m_IsServoAlarm = value; } | ||||||
|  |         } | ||||||
|  |         public bool IsServoTorqueAlarmTorque | ||||||
|  |         { | ||||||
|  |             get { return this.m_IsServoTorqueAlarm; } | ||||||
|  |             set { this.m_IsServoTorqueAlarm = value; } | ||||||
|  |         } | ||||||
|  |         #endregion | ||||||
|  | 
 | ||||||
|  |         #region Method | ||||||
|  |         private void Initialize() | ||||||
|  |         { | ||||||
|  |             this.IsEntrySensorError = false; | ||||||
|  |             this.IsLoadcellError = false; | ||||||
|  |             this.IsPressureError = false; | ||||||
|  |             this.IsServoOff = false; | ||||||
|  |             this.IsServoAlarm = false; | ||||||
|  |             this.IsServoTorqueAlarmTorque = false; | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         public void SetAlarm(string alarm) | ||||||
|  |         { | ||||||
|  |             string sValue1 = "", sValue2 = "", sValue3 = "", sValue4 = "", sValue5 = "", sValue6 = "", sValue7 = "", sValue8 = ""; | ||||||
|  | 
 | ||||||
|  |             if (alarm.Length != 8) | ||||||
|  |                 return; | ||||||
|  | 
 | ||||||
|  |             sValue1 = Convert.ToString(Convert.ToInt16(alarm.Substring(0, 1), 16), 2).PadLeft((4 <= 1) ? 1 : 4, '0'); | ||||||
|  |             sValue2 = Convert.ToString(Convert.ToInt16(alarm.Substring(1, 1), 16), 2).PadLeft((4 <= 1) ? 1 : 4, '0'); | ||||||
|  |             sValue3 = Convert.ToString(Convert.ToInt16(alarm.Substring(2, 1), 16), 2).PadLeft((4 <= 1) ? 1 : 4, '0'); | ||||||
|  |             sValue4 = Convert.ToString(Convert.ToInt16(alarm.Substring(3, 1), 16), 2).PadLeft((4 <= 1) ? 1 : 4, '0'); | ||||||
|  |             sValue5 = Convert.ToString(Convert.ToInt16(alarm.Substring(4, 1), 16), 2).PadLeft((4 <= 1) ? 1 : 4, '0'); | ||||||
|  |             sValue6 = Convert.ToString(Convert.ToInt16(alarm.Substring(5, 1), 16), 2).PadLeft((4 <= 1) ? 1 : 4, '0'); | ||||||
|  |             sValue7 = Convert.ToString(Convert.ToInt16(alarm.Substring(6, 1), 16), 2).PadLeft((4 <= 1) ? 1 : 4, '0'); | ||||||
|  |             sValue8 = Convert.ToString(Convert.ToInt16(alarm.Substring(7, 1), 16), 2).PadLeft((4 <= 1) ? 1 : 4, '0'); | ||||||
|  | 
 | ||||||
|  |             // 알람 12- | ||||||
|  |             if (sValue3[0] == '0') | ||||||
|  |             { } | ||||||
|  |             else | ||||||
|  |             { } | ||||||
|  |             // 알람 11-서보알람토크 | ||||||
|  |             if (sValue3[1] == '0') | ||||||
|  |             { | ||||||
|  |                 if (this.IsServoTorqueAlarmTorque != false) | ||||||
|  |                 { | ||||||
|  |                     this.IsServoTorqueAlarmTorque = false; | ||||||
|  |                     this.EventAlarmStateChange(Define.E_Trackingalarm.a4_ServoTorqueAlarm, "OFF"); | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |             else | ||||||
|  |             { | ||||||
|  |                 if (this.IsServoTorqueAlarmTorque != true) | ||||||
|  |                 { | ||||||
|  |                     this.IsServoTorqueAlarmTorque = true; | ||||||
|  |                     this.EventAlarmStateChange(Define.E_Trackingalarm.a4_ServoTorqueAlarm, "ON"); | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |             // 알람 10-서보알람 | ||||||
|  |             if (sValue3[2] == '0') | ||||||
|  |             { | ||||||
|  |                 if (this.IsServoAlarm != false) | ||||||
|  |                 { | ||||||
|  |                     this.IsServoAlarm = false; | ||||||
|  |                     this.EventAlarmStateChange(Define.E_Trackingalarm.a5_ServoAlarm, "OFF"); | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |             else | ||||||
|  |             { | ||||||
|  |                 if (this.IsServoAlarm != true) | ||||||
|  |                 { | ||||||
|  |                     this.IsServoAlarm = true; | ||||||
|  |                     this.EventAlarmStateChange(Define.E_Trackingalarm.a5_ServoAlarm, "ON"); | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |             // 알람 9-서보OFF | ||||||
|  |             if (sValue3[3] == '0') | ||||||
|  |             { | ||||||
|  |                 if (this.IsServoOff != false) | ||||||
|  |                 { | ||||||
|  |                     this.IsServoOff = false; | ||||||
|  |                     this.EventAlarmStateChange(Define.E_Trackingalarm.a6_ServoOff, "OFF"); | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |             else | ||||||
|  |             { | ||||||
|  |                 if (this.IsServoOff != true) | ||||||
|  |                 { | ||||||
|  |                     this.IsServoOff = true; | ||||||
|  |                     this.EventAlarmStateChange(Define.E_Trackingalarm.a6_ServoOff, "ON"); | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  | 
 | ||||||
|  |             // 알람 8- | ||||||
|  |             if (sValue2[0] == '0') | ||||||
|  |             { } | ||||||
|  |             else | ||||||
|  |             { } | ||||||
|  |             // 알람 7- | ||||||
|  |             if (sValue2[1] == '0') | ||||||
|  |             { } | ||||||
|  |             else | ||||||
|  |             { } | ||||||
|  |             // 알람 6- | ||||||
|  |             if (sValue2[2] == '0') | ||||||
|  |             { } | ||||||
|  |             else | ||||||
|  |             { } | ||||||
|  |             // 알람 5- | ||||||
|  |             if (sValue2[3] == '0') | ||||||
|  |             { } | ||||||
|  |             else | ||||||
|  |             { } | ||||||
|  | 
 | ||||||
|  |             // 알람 4- | ||||||
|  |             if (sValue1[0] == '0') | ||||||
|  |             { } | ||||||
|  |             else | ||||||
|  |             { } | ||||||
|  |             // 알람 3-공압에러 | ||||||
|  |             if (sValue1[1] == '0') | ||||||
|  |             { | ||||||
|  |                 if (this.IsPressureError != false) | ||||||
|  |                 { | ||||||
|  |                     this.IsPressureError = false; | ||||||
|  |                     this.EventAlarmStateChange(Define.E_Trackingalarm.a1_PressureError, "OFF"); | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |             else | ||||||
|  |             { | ||||||
|  |                 if (this.IsPressureError != true) | ||||||
|  |                 { | ||||||
|  |                     this.IsPressureError = true; | ||||||
|  |                     this.EventAlarmStateChange(Define.E_Trackingalarm.a1_PressureError, "ON"); | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |             // 알람 2-셀 에러 | ||||||
|  |             if (sValue1[2] == '0') | ||||||
|  |             { | ||||||
|  |                 if (this.IsLoadcellError != false) | ||||||
|  |                 { | ||||||
|  |                     this.IsLoadcellError = false; | ||||||
|  |                     this.EventAlarmStateChange(Define.E_Trackingalarm.a2_LoadcellError, "OFF"); | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |             else | ||||||
|  |             { | ||||||
|  |                 if (this.IsLoadcellError != true) | ||||||
|  |                 { | ||||||
|  |                     this.IsLoadcellError = true; | ||||||
|  |                     this.EventAlarmStateChange(Define.E_Trackingalarm.a2_LoadcellError, "ON"); | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |             // 알람 1-입력센서 에러 | ||||||
|  |             if (sValue1[3] == '0') | ||||||
|  |             { | ||||||
|  |                 if (this.IsEntrySensorError != false) | ||||||
|  |                 { | ||||||
|  |                     this.IsEntrySensorError = false; | ||||||
|  |                     this.EventAlarmStateChange(Define.E_Trackingalarm.a3_EntrySensorError, "OFF"); | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |             else | ||||||
|  |             { | ||||||
|  |                 if (this.IsEntrySensorError != true) | ||||||
|  |                 { | ||||||
|  |                     this.IsEntrySensorError = true; | ||||||
|  |                     this.EventAlarmStateChange(Define.E_Trackingalarm.a3_EntrySensorError, "ON"); | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         #endregion | ||||||
|  |     } | ||||||
|  |     #endregion | ||||||
|  | 
 | ||||||
|     #region HistoryData |     #region HistoryData | ||||||
|     public class HistoryData |     public class HistoryData | ||||||
|     { |     { | ||||||
|  | @ -1081,4 +1301,75 @@ namespace INT_PT002.DataStore | ||||||
|         #endregion |         #endregion | ||||||
|     } |     } | ||||||
|     #endregion |     #endregion | ||||||
|  | 
 | ||||||
|  |     #region DataBackupYear | ||||||
|  |     public class DataBackupYear | ||||||
|  |     { | ||||||
|  |         #region Field | ||||||
|  |         private string m_Year; | ||||||
|  | 
 | ||||||
|  |         public List<DataBackupMonth> Months; | ||||||
|  |         #endregion | ||||||
|  | 
 | ||||||
|  |         #region Constructor | ||||||
|  |         public DataBackupYear(string year) | ||||||
|  |         { | ||||||
|  |             this.Initialize(); | ||||||
|  | 
 | ||||||
|  |             this.Year = year; | ||||||
|  |         } | ||||||
|  |         #endregion | ||||||
|  | 
 | ||||||
|  |         #region Property | ||||||
|  |         public string Year | ||||||
|  |         { | ||||||
|  |             get { return this.m_Year; } | ||||||
|  |             private set { this.m_Year = value; } | ||||||
|  |         } | ||||||
|  |         #endregion | ||||||
|  | 
 | ||||||
|  |         #region Method | ||||||
|  |         private void Initialize() | ||||||
|  |         { | ||||||
|  |             this.Year = ""; | ||||||
|  |             this.Months = new List<DataBackupMonth>(); | ||||||
|  |         } | ||||||
|  |         #endregion | ||||||
|  |     } | ||||||
|  |     #endregion | ||||||
|  |     #region DataBackupMonth | ||||||
|  |     public class DataBackupMonth | ||||||
|  |     { | ||||||
|  |         #region Field | ||||||
|  |         private string m_Month; | ||||||
|  | 
 | ||||||
|  |         public List<string> Days; | ||||||
|  |         #endregion | ||||||
|  | 
 | ||||||
|  |         #region Constructor | ||||||
|  |         public DataBackupMonth(string month) | ||||||
|  |         { | ||||||
|  |             this.Initialize(); | ||||||
|  | 
 | ||||||
|  |             this.Month = month; | ||||||
|  |         } | ||||||
|  |         #endregion | ||||||
|  | 
 | ||||||
|  |         #region Property | ||||||
|  |         public string Month | ||||||
|  |         { | ||||||
|  |             get { return this.m_Month; } | ||||||
|  |             private set { this.m_Month = value; } | ||||||
|  |         } | ||||||
|  |         #endregion | ||||||
|  | 
 | ||||||
|  |         #region Method | ||||||
|  |         private void Initialize() | ||||||
|  |         { | ||||||
|  |             this.Month = ""; | ||||||
|  |             this.Days = new List<string>(); | ||||||
|  |         } | ||||||
|  |         #endregion | ||||||
|  |     } | ||||||
|  |     #endregion | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -561,7 +561,7 @@ namespace INT_PT002.DialogForms | ||||||
|                             break; |                             break; | ||||||
|                         case 16: |                         case 16: | ||||||
|                             this.smartGroupBox1.Text = "Error 16"; |                             this.smartGroupBox1.Text = "Error 16"; | ||||||
|                             this.labelMessage1.Text = ""; |                             this.labelMessage1.Text = "필수 설정 항목을 설정해 주십시오"; | ||||||
|                             break; |                             break; | ||||||
|                         case 17: |                         case 17: | ||||||
|                             this.smartGroupBox1.Text = "Error 17"; |                             this.smartGroupBox1.Text = "Error 17"; | ||||||
|  | @ -584,67 +584,71 @@ namespace INT_PT002.DialogForms | ||||||
|                     { |                     { | ||||||
|                         case 1: |                         case 1: | ||||||
|                             this.smartGroupBox1.Text = "Error 01"; |                             this.smartGroupBox1.Text = "Error 01"; | ||||||
|                             this.labelMessage1.Text = ""; |                             this.labelMessage1.Text = "ID not found"; | ||||||
|                             break; |                             break; | ||||||
|                         case 2: |                         case 2: | ||||||
|                             this.smartGroupBox1.Text = "Error 02"; |                             this.smartGroupBox1.Text = "Error 02"; | ||||||
|                             this.labelMessage1.Text = ""; |                             this.labelMessage1.Text = "ID : ID already exists"; | ||||||
|                             break; |                             break; | ||||||
|                         case 3: |                         case 3: | ||||||
|                             this.smartGroupBox1.Text = "Error 03"; |                             this.smartGroupBox1.Text = "Error 03"; | ||||||
|                             this.labelMessage1.Text = ""; |                             this.labelMessage1.Text = "ID : Please enter 6~20 characters"; | ||||||
|                             break; |                             break; | ||||||
|                         case 4: |                         case 4: | ||||||
|                             this.smartGroupBox1.Text = "Error 04"; |                             this.smartGroupBox1.Text = "Error 04"; | ||||||
|                             this.labelMessage1.Text = ""; |                             this.labelMessage1.Text = "ID : Please enter 6~20 characters"; | ||||||
|                             break; |                             break; | ||||||
|                         case 5: |                         case 5: | ||||||
|                             this.smartGroupBox1.Text = "Error 05"; |                             this.smartGroupBox1.Text = "Error 05"; | ||||||
|                             this.labelMessage1.Text = ""; |                             this.labelMessage1.Text = "ID : Consecutive(123,321,abc,cba...) or"; | ||||||
|  |                             this.labelMessage2.Text = "identical(111,222,aaa...) characters cannot be used."; | ||||||
|                             break; |                             break; | ||||||
|                         case 6: |                         case 6: | ||||||
|                             this.smartGroupBox1.Text = "Error 06"; |                             this.smartGroupBox1.Text = "Error 06"; | ||||||
|                             this.labelMessage1.Text = ""; |                             this.labelMessage1.Text = "ID : Contains invalid characters"; | ||||||
|                             break; |                             break; | ||||||
|                         case 7: |                         case 7: | ||||||
|                             this.smartGroupBox1.Text = "Error 07"; |                             this.smartGroupBox1.Text = "Error 07"; | ||||||
|                             this.labelMessage1.Text = ""; |                             this.labelMessage1.Text = "ID : User account has expired"; | ||||||
|                             break; |                             break; | ||||||
|                         case 8: |                         case 8: | ||||||
|                             this.smartGroupBox1.Text = "Error 08"; |                             this.smartGroupBox1.Text = "Error 08"; | ||||||
|                             this.labelMessage1.Text = ""; |                             this.labelMessage1.Text = "PASSWORD : This is the old password"; | ||||||
|                             break; |                             break; | ||||||
|                         case 9: |                         case 9: | ||||||
|                             this.smartGroupBox1.Text = "Error 09"; |                             this.smartGroupBox1.Text = "Error 09"; | ||||||
|                             this.labelMessage1.Text = ""; |                             this.labelMessage1.Text = "PASSWORD : Please enter 6~20 characters"; | ||||||
|                             break; |                             break; | ||||||
|                         case 10: |                         case 10: | ||||||
|                             this.smartGroupBox1.Text = "Error 10"; |                             this.smartGroupBox1.Text = "Error 10"; | ||||||
|                             this.labelMessage1.Text = ""; |                             this.labelMessage1.Text = "PASSWORD : Please enter 6~20 characters"; | ||||||
|                             break; |                             break; | ||||||
|                         case 11: |                         case 11: | ||||||
|                             this.smartGroupBox1.Text = "Error 11"; |                             this.smartGroupBox1.Text = "Error 11"; | ||||||
|                             this.labelMessage1.Text = ""; |                             this.labelMessage1.Text = "PASSWORD : Consecutive(123,321,abc,cba...) or"; | ||||||
|  |                             this.labelMessage2.Text = "identical(111,222,aaa...) characters cannot be used."; | ||||||
|                             break; |                             break; | ||||||
|                         case 12: |                         case 12: | ||||||
|                             this.smartGroupBox1.Text = "Error 12"; |                             this.smartGroupBox1.Text = "Error 12"; | ||||||
|                             this.labelMessage1.Text = ""; |                             this.labelMessage1.Text = "PASSWORD : Contains invalid characters"; | ||||||
|  |                             this.labelMessage2.Text = "Special characters allowed : !@#$%^&*+-."; | ||||||
|                             break; |                             break; | ||||||
|                         case 13: |                         case 13: | ||||||
|                             this.smartGroupBox1.Text = "Error 13"; |                             this.smartGroupBox1.Text = "Error 13"; | ||||||
|                             this.labelMessage1.Text = ""; |                             this.labelMessage1.Text = "PASSWORD : Please include at least one English letter,"; | ||||||
|  |                             this.labelMessage2.Text = "at least one number, and at least one special character"; | ||||||
|                             break; |                             break; | ||||||
|                         case 14: |                         case 14: | ||||||
|                             this.smartGroupBox1.Text = "Error 14"; |                             this.smartGroupBox1.Text = "Error 14"; | ||||||
|                             this.labelMessage1.Text = ""; |                             this.labelMessage1.Text = "Check your password"; | ||||||
|                             break; |                             break; | ||||||
|                         case 15: |                         case 15: | ||||||
|                             this.smartGroupBox1.Text = "Error 15"; |                             this.smartGroupBox1.Text = "Error 15"; | ||||||
|                             this.labelMessage1.Text = ""; |                             this.labelMessage1.Text = "PASSWORD : Password has expired"; | ||||||
|                             break; |                             break; | ||||||
|                         case 16: |                         case 16: | ||||||
|                             this.smartGroupBox1.Text = "Error 16"; |                             this.smartGroupBox1.Text = "Error 16"; | ||||||
|                             this.labelMessage1.Text = ""; |                             this.labelMessage1.Text = "Please set the required setting items"; | ||||||
|                             break; |                             break; | ||||||
|                         case 17: |                         case 17: | ||||||
|                             this.smartGroupBox1.Text = "Error 17"; |                             this.smartGroupBox1.Text = "Error 17"; | ||||||
|  |  | ||||||
|  | @ -193,7 +193,42 @@ namespace INT_PT002.DialogForms | ||||||
|             { |             { | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|  |         public DialogFormYesNo(Define.E_LanguageID language, int ok, string msg) | ||||||
|  |         { | ||||||
|  |             InitializeComponent(); | ||||||
| 
 | 
 | ||||||
|  |             this.smartGroupBox1.Text = ""; | ||||||
|  |             this.labelMessage1.Text = ""; | ||||||
|  |             this.labelMessage2.Text = ""; | ||||||
|  | 
 | ||||||
|  |             switch (language) | ||||||
|  |             { | ||||||
|  |                 case Define.E_LanguageID.Korean: | ||||||
|  |                     switch (ok) | ||||||
|  |                     { | ||||||
|  |                         case 31: | ||||||
|  |                             this.smartGroupBox1.Text = "파일"; | ||||||
|  |                             this.labelMessage1.Text = string.Format("{0} 파일이 이미 있습니다. 바꾸시겠습니까?", msg); | ||||||
|  |                             break; | ||||||
|  |                         default: | ||||||
|  |                             break; | ||||||
|  |                     } | ||||||
|  |                     break; | ||||||
|  |                 case Define.E_LanguageID.English: | ||||||
|  |                     switch (ok) | ||||||
|  |                     { | ||||||
|  |                         case 31: | ||||||
|  |                             this.smartGroupBox1.Text = "File"; | ||||||
|  |                             this.labelMessage1.Text = string.Format("{0} already exists. Do you change the file?", msg); | ||||||
|  |                             break; | ||||||
|  |                         default: | ||||||
|  |                             break; | ||||||
|  |                     } | ||||||
|  |                     break; | ||||||
|  |                 default: | ||||||
|  |                     break; | ||||||
|  |             } | ||||||
|  |         } | ||||||
|         public DialogFormYesNo(Define.E_MessageBoxIcon icon, string code, string message1, string message2) |         public DialogFormYesNo(Define.E_MessageBoxIcon icon, string code, string message1, string message2) | ||||||
|         { |         { | ||||||
|             InitializeComponent(); |             InitializeComponent(); | ||||||
|  |  | ||||||
|  | @ -33,7 +33,8 @@ namespace INT_PT002.Forms | ||||||
|         private string m_PathDataStatisticsFolder; |         private string m_PathDataStatisticsFolder; | ||||||
|         private string m_PathDataFolder; |         private string m_PathDataFolder; | ||||||
|         private string m_PathDataHistoryFolder; |         private string m_PathDataHistoryFolder; | ||||||
|         private string m_PathHeaderFolder; |         private string m_PathDataInspectionFolder; | ||||||
|  |         private string m_PathDataAlarmFolder; | ||||||
|         private static string m_PathBinFolder; |         private static string m_PathBinFolder; | ||||||
| 
 | 
 | ||||||
|         // UserGroup |         // UserGroup | ||||||
|  | @ -60,8 +61,11 @@ namespace INT_PT002.Forms | ||||||
|         // 장비 구동 상태 |         // 장비 구동 상태 | ||||||
|         private Define.E_EquipmentStatus m_EquipmentStatus; |         private Define.E_EquipmentStatus m_EquipmentStatus; | ||||||
| 
 | 
 | ||||||
|  |         // 알람 | ||||||
|  |         private AlarmList CurrentAlarmList; | ||||||
|  | 
 | ||||||
|         // Form |         // Form | ||||||
|         public FormMainDisplay1 ChildFormMainDisplay; |         public FormMainDisplay2 ChildFormMainDisplay; | ||||||
|         public FormMenu ChildFormMenu; |         public FormMenu ChildFormMenu; | ||||||
|         #endregion |         #endregion | ||||||
| 
 | 
 | ||||||
|  | @ -108,10 +112,15 @@ namespace INT_PT002.Forms | ||||||
|             get { return this.m_PathDataHistoryFolder; } |             get { return this.m_PathDataHistoryFolder; } | ||||||
|             private set { this.m_PathDataHistoryFolder = value; } |             private set { this.m_PathDataHistoryFolder = value; } | ||||||
|         } |         } | ||||||
|         public string PathHeaderFolder |         public string PathDataInspectionFolder | ||||||
|         { |         { | ||||||
|             get { return this.m_PathHeaderFolder; } |             get { return this.m_PathDataInspectionFolder; } | ||||||
|             private set { this.m_PathHeaderFolder = value; } |             private set { this.m_PathDataInspectionFolder = value; } | ||||||
|  |         } | ||||||
|  |         public string PathDataAlarmFolder | ||||||
|  |         { | ||||||
|  |             get { return this.m_PathDataAlarmFolder; } | ||||||
|  |             private set { this.m_PathDataAlarmFolder = value; } | ||||||
|         } |         } | ||||||
|         public static string PathBinFolder |         public static string PathBinFolder | ||||||
|         { |         { | ||||||
|  | @ -169,9 +178,13 @@ namespace INT_PT002.Forms | ||||||
|             this.PathDataStatisticsFolder = this.PathLaunchFolder + "DataStatistics\\"; |             this.PathDataStatisticsFolder = this.PathLaunchFolder + "DataStatistics\\"; | ||||||
|             this.PathDataFolder = this.PathLaunchFolder + "Data\\"; |             this.PathDataFolder = this.PathLaunchFolder + "Data\\"; | ||||||
|             this.PathDataHistoryFolder = this.PathDataFolder + "History\\"; |             this.PathDataHistoryFolder = this.PathDataFolder + "History\\"; | ||||||
|             this.PathHeaderFolder = this.PathLaunchFolder + "Header\\"; |             this.PathDataInspectionFolder = this.PathDataFolder + "Inspection\\"; | ||||||
|  |             this.PathDataAlarmFolder = this.PathDataFolder + "Alarm\\"; | ||||||
|             PathBinFolder = this.PathLaunchFolder + "Bin\\"; |             PathBinFolder = this.PathLaunchFolder + "Bin\\"; | ||||||
| 
 | 
 | ||||||
|  |             this.CurrentAlarmList = new AlarmList(); | ||||||
|  |             this.CurrentAlarmList.EventAlarmStateChange += new Define.EventHandlerAlarmStateChange(this.CurrentAlarmList_Change); | ||||||
|  | 
 | ||||||
|             this.CurrentSystemStatus = new SystemStatus(); |             this.CurrentSystemStatus = new SystemStatus(); | ||||||
|             this.SystemConfig = new SystemConfiguration(); |             this.SystemConfig = new SystemConfiguration(); | ||||||
|             this.CurrentRecipe = new Recipe(); |             this.CurrentRecipe = new Recipe(); | ||||||
|  | @ -223,7 +236,7 @@ namespace INT_PT002.Forms | ||||||
|         } |         } | ||||||
|         private void CreateForm() |         private void CreateForm() | ||||||
|         { |         { | ||||||
|             this.ChildFormMainDisplay = new FormMainDisplay1(this); |             this.ChildFormMainDisplay = new FormMainDisplay2(this); | ||||||
|             this.ChildFormMenu = new FormMenu(this); |             this.ChildFormMenu = new FormMenu(this); | ||||||
| 
 | 
 | ||||||
|             this.smartForm1.MainForm = this; |             this.smartForm1.MainForm = this; | ||||||
|  | @ -1451,9 +1464,9 @@ namespace INT_PT002.Forms | ||||||
|                                 string.Format("{0}{1}", receiveData.Substring((i * 6) + 60, 1), receiveData.Substring((i * 6) + 61, 5).Trim()); |                                 string.Format("{0}{1}", receiveData.Substring((i * 6) + 60, 1), receiveData.Substring((i * 6) + 61, 5).Trim()); | ||||||
|                         } |                         } | ||||||
|                         #endregion |                         #endregion | ||||||
|                         if (this.CurrentSystemStatus.CurrentDisplay == Define.E_DisplayStore.DisplayMain) |                         //if (this.CurrentSystemStatus.CurrentDisplay == Define.E_DisplayStore.DisplayMain) | ||||||
|                             this.ChildFormMainDisplay.UpdateDisplayPresData(this.CurrentLeakData.CollPresData); |                         //    this.ChildFormMainDisplay.UpdateDisplayPresData(this.CurrentLeakData.CollPresData); | ||||||
|                         else if (this.CurrentSystemStatus.CurrentDisplay == Define.E_DisplayStore.DisplayEquipmentTest) |                         if (this.CurrentSystemStatus.CurrentDisplay == Define.E_DisplayStore.DisplayEquipmentTest) | ||||||
|                             this.ChildFormMenu.UpdateDisplayEquipmentTestPresData(this.CurrentLeakData.CollPresData); |                             this.ChildFormMenu.UpdateDisplayEquipmentTestPresData(this.CurrentLeakData.CollPresData); | ||||||
|                         break; |                         break; | ||||||
|                     default: |                     default: | ||||||
|  | @ -1501,10 +1514,13 @@ namespace INT_PT002.Forms | ||||||
|             { |             { | ||||||
|                 case "0": |                 case "0": | ||||||
|                     #region Value Assign |                     #region Value Assign | ||||||
|                     //this.CurrentAlarmList.SetAlarm(receiveData.Substring(0, 8)); |                     this.CurrentAlarmList.SetAlarm(receiveData.Substring(0, 8)); | ||||||
|                     #endregion |                     #endregion | ||||||
| 
 | 
 | ||||||
|                     //this.ChildFormMainDisplay.UpdateDisplayAlarmView(this.CurrentAlarmList); |                     if (this.SystemConfig.CURRENT_FORM == Define.E_FormStore.FormIOTest) | ||||||
|  |                         this.ChildFormMenu.Child_Manual_IoTest.UpdateDisplayAlarmView(this.CurrentAlarmList); | ||||||
|  |                     else | ||||||
|  |                         this.ChildFormMainDisplay.UpdateDisplayAlarmView(this.CurrentAlarmList); | ||||||
|                     break; |                     break; | ||||||
|                 default: |                 default: | ||||||
|                     break; |                     break; | ||||||
|  | @ -1514,6 +1530,193 @@ namespace INT_PT002.Forms | ||||||
|         } |         } | ||||||
|         #endregion |         #endregion | ||||||
| 
 | 
 | ||||||
|  |         #region Backup | ||||||
|  |         public List<string> GetSeletedNodeList(TreeView tree) | ||||||
|  |         { | ||||||
|  |             int yearCNT, monthCNT, dayCNT; | ||||||
|  |             List<string> listSelectedFile = new List<string>(); | ||||||
|  | 
 | ||||||
|  |             yearCNT = tree.Nodes.Count; | ||||||
|  |             if (yearCNT != 0) | ||||||
|  |             { | ||||||
|  |                 for (int i = 0; i < yearCNT; i++) | ||||||
|  |                 { | ||||||
|  |                     monthCNT = tree.Nodes[i].Nodes.Count; | ||||||
|  |                     if (monthCNT != 0) | ||||||
|  |                     { | ||||||
|  |                         for (int j = 0; j < monthCNT; j++) | ||||||
|  |                         { | ||||||
|  |                             dayCNT = tree.Nodes[i].Nodes[j].Nodes.Count; | ||||||
|  |                             if (dayCNT != 0) | ||||||
|  |                             { | ||||||
|  |                                 for (int k = 0; k < dayCNT; k++) | ||||||
|  |                                 { | ||||||
|  |                                     //if (tree.Nodes[i].Nodes[j].Nodes[k].Checked == true) | ||||||
|  |                                     //{ | ||||||
|  |                                         //listSelectedFile.Add(tree.Nodes[i].Nodes[j].Nodes[k].Text); | ||||||
|  |                                         listSelectedFile.Add(string.Format("{0}\\{1}\\{2}", tree.Nodes[i].Text, tree.Nodes[i].Nodes[j].Text, tree.Nodes[i].Nodes[j].Nodes[k].Text)); | ||||||
|  |                                     //} | ||||||
|  |                                 } | ||||||
|  |                             } | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  | 
 | ||||||
|  |             return listSelectedFile; | ||||||
|  |         } | ||||||
|  |         #endregion | ||||||
|  |         #region Tracking Inspection data | ||||||
|  |         private string GetJudgmentResult(Define.E_JudgmentStatus judg) | ||||||
|  |         { | ||||||
|  |             string value = ""; | ||||||
|  | 
 | ||||||
|  |             switch (judg) | ||||||
|  |             { | ||||||
|  |                 case Define.E_JudgmentStatus.None: | ||||||
|  |                     value = "-"; | ||||||
|  |                     break; | ||||||
|  |                 case Define.E_JudgmentStatus.Pass: | ||||||
|  |                     value = "Pass"; | ||||||
|  |                     break; | ||||||
|  |                 case Define.E_JudgmentStatus.Ng: | ||||||
|  |                     value = "Leak"; | ||||||
|  |                     break; | ||||||
|  |                 case Define.E_JudgmentStatus.Error: | ||||||
|  |                     value = "Empty"; | ||||||
|  |                     break; | ||||||
|  |                 default: | ||||||
|  |                     break; | ||||||
|  |             } | ||||||
|  | 
 | ||||||
|  |             return value; | ||||||
|  |         } | ||||||
|  |         private void GetTrackingInspectionFolderPath(ref string folder, ref string fileName) | ||||||
|  |         { | ||||||
|  |             DateTime time = DateTime.Now; | ||||||
|  | 
 | ||||||
|  |             folder = this.PathDataInspectionFolder + string.Format("{0:yyyy}\\", time) + string.Format("{0:M}\\", time); | ||||||
|  |             fileName = string.Format("{0:yyyyMMdd}_Inspection_{1}", time, this.CurrentRecipe.NUMBER); | ||||||
|  |         } | ||||||
|  |         public void TrackingInspectionData(LeakData item) | ||||||
|  |         { | ||||||
|  |             bool fileCheck = false, directoryCheck = false; | ||||||
|  |             string fullFilePath = "", folderPath = "", fileName = ""; | ||||||
|  |             StreamWriter sw; | ||||||
|  |              | ||||||
|  |             this.GetTrackingInspectionFolderPath(ref folderPath, ref fileName); | ||||||
|  |             fullFilePath = string.Format("{0}{1}", folderPath, fileName); | ||||||
|  | 
 | ||||||
|  |             DirectoryInfo di = new DirectoryInfo(folderPath); | ||||||
|  |             directoryCheck = di.Exists; | ||||||
|  |             // 폴더 체크 | ||||||
|  |             if (directoryCheck == false) | ||||||
|  |                 di.Create(); | ||||||
|  | 
 | ||||||
|  |             FileInfo fileInfo = new FileInfo(fullFilePath); | ||||||
|  |             fileCheck = fileInfo.Exists; | ||||||
|  | 
 | ||||||
|  |             sw = new StreamWriter(fullFilePath, true, Encoding.UTF8); | ||||||
|  | 
 | ||||||
|  |             if (fileCheck == false) | ||||||
|  |             { | ||||||
|  |                 this.RemoveInspectionDataFile(); | ||||||
|  | 
 | ||||||
|  |                 sw.Write("Date"); | ||||||
|  |                 sw.Write(","); | ||||||
|  |                 sw.Write("Time"); | ||||||
|  |                 sw.Write(","); | ||||||
|  |                 sw.Write("Name"); | ||||||
|  |                 sw.Write(","); | ||||||
|  |                 sw.Write("Lot"); | ||||||
|  |                 sw.Write(","); | ||||||
|  |                 sw.Write("1"); | ||||||
|  |                 sw.Write(","); | ||||||
|  |                 sw.Write("2"); | ||||||
|  |                 sw.Write(","); | ||||||
|  |                 sw.Write("3"); | ||||||
|  |                 sw.Write(","); | ||||||
|  |                 sw.Write("4"); | ||||||
|  |                 sw.Write(","); | ||||||
|  |                 sw.Write("5"); | ||||||
|  |                 sw.Write(","); | ||||||
|  |                 sw.Write("6"); | ||||||
|  |                 sw.Write(","); | ||||||
|  |                 sw.Write("7"); | ||||||
|  |                 sw.Write(","); | ||||||
|  |                 sw.Write("8"); | ||||||
|  |                 sw.Write(","); | ||||||
|  |                 sw.Write("9"); | ||||||
|  |                 sw.Write(","); | ||||||
|  |                 sw.Write("10"); | ||||||
|  | 
 | ||||||
|  |                 sw.WriteLine(); | ||||||
|  |             } | ||||||
|  | 
 | ||||||
|  |             sw.Write(string.Format("{0:yyyy-MM-dd}", DateTime.Now)); | ||||||
|  |             sw.Write(","); | ||||||
|  |             sw.Write(string.Format("{0:HH:mm:ss}", DateTime.Now)); | ||||||
|  |             sw.Write(","); | ||||||
|  |             sw.Write(this.CurrentRecipe.NAME); | ||||||
|  |             sw.Write(","); | ||||||
|  |             sw.Write(this.CurrentRecipe.LOT); | ||||||
|  |             sw.Write(","); | ||||||
|  |             sw.Write(this.GetJudgmentResult(item.CollJudgment[0])); | ||||||
|  |             sw.Write(","); | ||||||
|  |             sw.Write(this.GetJudgmentResult(item.CollJudgment[1])); | ||||||
|  |             sw.Write(","); | ||||||
|  |             sw.Write(this.GetJudgmentResult(item.CollJudgment[2])); | ||||||
|  |             sw.Write(","); | ||||||
|  |             sw.Write(this.GetJudgmentResult(item.CollJudgment[3])); | ||||||
|  |             sw.Write(","); | ||||||
|  |             sw.Write(this.GetJudgmentResult(item.CollJudgment[4])); | ||||||
|  |             sw.Write(","); | ||||||
|  |             sw.Write(this.GetJudgmentResult(item.CollJudgment[5])); | ||||||
|  |             sw.Write(","); | ||||||
|  |             sw.Write(this.GetJudgmentResult(item.CollJudgment[6])); | ||||||
|  |             sw.Write(","); | ||||||
|  |             sw.Write(this.GetJudgmentResult(item.CollJudgment[7])); | ||||||
|  |             sw.Write(","); | ||||||
|  |             sw.Write(this.GetJudgmentResult(item.CollJudgment[8])); | ||||||
|  |             sw.Write(","); | ||||||
|  |             sw.Write(this.GetJudgmentResult(item.CollJudgment[9])); | ||||||
|  |             sw.WriteLine(); | ||||||
|  | 
 | ||||||
|  |             sw.Close(); | ||||||
|  |         } | ||||||
|  |         private void RemoveInspectionDataFile() | ||||||
|  |         { | ||||||
|  |             bool directoryCheck = false; | ||||||
|  | 
 | ||||||
|  |             try | ||||||
|  |             { | ||||||
|  |                 string dday = string.Format("{0:yyyyMMdd}", DateTime.Now.AddDays(-180)) + ".csv"; | ||||||
|  | 
 | ||||||
|  |                 DirectoryInfo dir = new DirectoryInfo(this.PathDataInspectionFolder); | ||||||
|  | 
 | ||||||
|  |                 directoryCheck = dir.Exists; | ||||||
|  |                 // 폴더 체크 | ||||||
|  |                 if (directoryCheck == false) | ||||||
|  |                     dir.Create(); | ||||||
|  | 
 | ||||||
|  |                 FileInfo[] files = dir.GetFiles(); | ||||||
|  |                 foreach (FileInfo subfile in files) | ||||||
|  |                 { | ||||||
|  |                     if (subfile.Name.StartsWith("20"))  // 날짜 비교하여 10일 지난화일은 삭제함  | ||||||
|  |                     { | ||||||
|  |                         if (subfile.Name.CompareTo(dday) < 0) | ||||||
|  |                         { | ||||||
|  |                             subfile.Delete(); | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |             catch | ||||||
|  |             { | ||||||
|  | 
 | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         #endregion | ||||||
|         #region Tracking History data |         #region Tracking History data | ||||||
|         public void SetTrackingHistoryData(Define.E_TrackingOperation type, string detail) |         public void SetTrackingHistoryData(Define.E_TrackingOperation type, string detail) | ||||||
|         { |         { | ||||||
|  | @ -1529,20 +1732,6 @@ namespace INT_PT002.Forms | ||||||
| 
 | 
 | ||||||
|             this.TrackingHistoryData(data); |             this.TrackingHistoryData(data); | ||||||
|         } |         } | ||||||
|         public void SetTrackingHistoryData(Define.E_Trackingalarm type, string detail) |  | ||||||
|         { |  | ||||||
|             HistoryData data = new HistoryData(); |  | ||||||
| 
 |  | ||||||
|             data.Type = "Alarm"; |  | ||||||
|             data.Time = DateTime.Now; |  | ||||||
|             data.LoginID = this.SystemConfig.CURRENT_USER.ID; |  | ||||||
|             data.Event = type.ToString(); |  | ||||||
|             data.Detail = detail; |  | ||||||
|             data.BeforeData = ""; |  | ||||||
|             data.AfterData = ""; |  | ||||||
| 
 |  | ||||||
|             this.TrackingHistoryData(data); |  | ||||||
|         } |  | ||||||
|         public void SetTrackingHistoryData(Define.E_TrackingParameter type, string detail, string before, string after) |         public void SetTrackingHistoryData(Define.E_TrackingParameter type, string detail, string before, string after) | ||||||
|         { |         { | ||||||
|             HistoryData data = new HistoryData(); |             HistoryData data = new HistoryData(); | ||||||
|  | @ -1566,7 +1755,7 @@ namespace INT_PT002.Forms | ||||||
|             DateTime time = DateTime.Now; |             DateTime time = DateTime.Now; | ||||||
| 
 | 
 | ||||||
|             folderPath = string.Format("{0}{1}\\{2}\\", this.PathDataHistoryFolder, time.Year, time.Month); |             folderPath = string.Format("{0}{1}\\{2}\\", this.PathDataHistoryFolder, time.Year, time.Month); | ||||||
|             fileName = string.Format("H{0:yyyyMMdd}.csv", time); |             fileName = string.Format("{0:yyyyMMdd}_History.csv", time); | ||||||
| 
 | 
 | ||||||
|             fullFilePath = string.Format("{0}{1}", folderPath, fileName); |             fullFilePath = string.Format("{0}{1}", folderPath, fileName); | ||||||
| 
 | 
 | ||||||
|  | @ -1661,6 +1850,119 @@ namespace INT_PT002.Forms | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|         #endregion |         #endregion | ||||||
|  |         #region Tracking Alarm data | ||||||
|  |         public void SetTrackingAlarmData(Define.E_Trackingalarm type, string detail) | ||||||
|  |         { | ||||||
|  |             HistoryData data = new HistoryData(); | ||||||
|  | 
 | ||||||
|  |             data.Type = "Alarm"; | ||||||
|  |             data.Time = DateTime.Now; | ||||||
|  |             data.LoginID = this.SystemConfig.CURRENT_USER.ID; | ||||||
|  |             data.Event = type.ToString(); | ||||||
|  |             data.Detail = detail; | ||||||
|  |             data.BeforeData = ""; | ||||||
|  |             data.AfterData = ""; | ||||||
|  | 
 | ||||||
|  |             this.TrackingAlarmData(data); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         private void TrackingAlarmData(HistoryData data) | ||||||
|  |         { | ||||||
|  |             bool fileCheck = false, directoryCheck = false; | ||||||
|  |             string fullFilePath = "", folderPath = "", fileName = ""; | ||||||
|  |             StreamWriter sw; | ||||||
|  |             DateTime time = DateTime.Now; | ||||||
|  | 
 | ||||||
|  |             folderPath = string.Format("{0}{1}\\{2}\\", this.PathDataAlarmFolder, time.Year, time.Month); | ||||||
|  |             fileName = string.Format("{0:yyyyMMdd}_Alarm.csv", time); | ||||||
|  | 
 | ||||||
|  |             fullFilePath = string.Format("{0}{1}", folderPath, fileName); | ||||||
|  | 
 | ||||||
|  |             DirectoryInfo di = new DirectoryInfo(folderPath); | ||||||
|  |             directoryCheck = di.Exists; | ||||||
|  |             // 폴더 체크 | ||||||
|  |             if (directoryCheck == false) | ||||||
|  |                 di.Create(); | ||||||
|  | 
 | ||||||
|  |             FileInfo fileInfo = new FileInfo(fullFilePath); | ||||||
|  |             fileCheck = fileInfo.Exists; | ||||||
|  | 
 | ||||||
|  |             sw = new StreamWriter(fullFilePath, true, Encoding.UTF8); | ||||||
|  | 
 | ||||||
|  |             try | ||||||
|  |             { | ||||||
|  |                 if (fileCheck == false) | ||||||
|  |                 { | ||||||
|  |                     this.RemoveHistoryDataFile(); | ||||||
|  | 
 | ||||||
|  |                     sw.Write("Date"); | ||||||
|  |                     sw.Write(","); | ||||||
|  |                     sw.Write("Time"); | ||||||
|  |                     sw.Write(","); | ||||||
|  |                     sw.Write("LoginID"); | ||||||
|  |                     sw.Write(","); | ||||||
|  |                     sw.Write("Event"); | ||||||
|  |                     sw.Write(","); | ||||||
|  |                     sw.Write("Detail"); | ||||||
|  | 
 | ||||||
|  |                     sw.WriteLine(); | ||||||
|  |                 } | ||||||
|  | 
 | ||||||
|  |                 sw.Write(string.Format("{0:yyyy-MM-dd}", DateTime.Now)); | ||||||
|  |                 sw.Write(","); | ||||||
|  |                 sw.Write(string.Format("{0:HH:mm:ss}", DateTime.Now)); | ||||||
|  |                 sw.Write(","); | ||||||
|  |                 sw.Write(data.LoginID); | ||||||
|  |                 sw.Write(","); | ||||||
|  |                 sw.Write(data.Event.ToString()); | ||||||
|  |                 sw.Write(","); | ||||||
|  |                 sw.Write(data.Detail); | ||||||
|  |                 sw.Write(","); | ||||||
|  |                 sw.Write(data.BeforeData); | ||||||
|  |                 sw.Write(","); | ||||||
|  |                 sw.Write(data.AfterData); | ||||||
|  |                 sw.Write(","); | ||||||
|  |                 sw.Write(data.Type); | ||||||
|  |                 sw.WriteLine(); | ||||||
|  | 
 | ||||||
|  |                 sw.Close(); | ||||||
|  |             } | ||||||
|  |             catch | ||||||
|  |             { | ||||||
|  | 
 | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         private void RemoveAlarmDataFile() | ||||||
|  |         { | ||||||
|  |             bool directoryCheck = false; | ||||||
|  | 
 | ||||||
|  |             try | ||||||
|  |             { | ||||||
|  |                 string dday = string.Format("{0:yyyyMMdd}", DateTime.Now.AddDays(-180)) + ".csv"; | ||||||
|  | 
 | ||||||
|  |                 DirectoryInfo dir = new DirectoryInfo(this.PathDataAlarmFolder); | ||||||
|  | 
 | ||||||
|  |                 directoryCheck = dir.Exists; | ||||||
|  |                 // 폴더 체크 | ||||||
|  |                 if (directoryCheck == false) | ||||||
|  |                     dir.Create(); | ||||||
|  | 
 | ||||||
|  |                 FileInfo[] files = dir.GetFiles(); | ||||||
|  |                 foreach (FileInfo subfile in files) | ||||||
|  |                 { | ||||||
|  |                     if (subfile.Name.StartsWith("20"))  // 날짜 비교하여 10일 지난화일은 삭제함  | ||||||
|  |                     { | ||||||
|  |                         if (subfile.Name.CompareTo(dday) < 0) | ||||||
|  |                             subfile.Delete(); | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |             catch | ||||||
|  |             { | ||||||
|  | 
 | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         #endregion | ||||||
| 
 | 
 | ||||||
|         #region UserGroupFile |         #region UserGroupFile | ||||||
|         private void CreateUserGroupFile() |         private void CreateUserGroupFile() | ||||||
|  | @ -2314,6 +2616,11 @@ namespace INT_PT002.Forms | ||||||
|             this.smartForm1.Show(1); |             this.smartForm1.Show(1); | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|  |         private void CurrentAlarmList_Change(Define.E_Trackingalarm alarm, string status) | ||||||
|  |         { | ||||||
|  |             this.SetTrackingAlarmData(alarm, status); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|         private void timer_Tick(object sender, EventArgs e) |         private void timer_Tick(object sender, EventArgs e) | ||||||
|         { |         { | ||||||
|             this.ChildFormMainDisplay.UpdateDisplayTime(); |             this.ChildFormMainDisplay.UpdateDisplayTime(); | ||||||
|  |  | ||||||
|  | @ -371,17 +371,17 @@ namespace INT_PT002.Forms | ||||||
|                     label2.Font = new Font("New Gulim", 20, FontStyle.Bold); |                     label2.Font = new Font("New Gulim", 20, FontStyle.Bold); | ||||||
|                     break; |                     break; | ||||||
|                 case Define.E_JudgmentStatus.Pass: |                 case Define.E_JudgmentStatus.Pass: | ||||||
|                     value = "정상"; |                     value = "Pass"; | ||||||
|                     label2.TextColor = this.ColorResultPass; |                     label2.TextColor = this.ColorResultPass; | ||||||
|                     label2.Font = new Font("New Gulim", 20, FontStyle.Bold); |                     label2.Font = new Font("New Gulim", 20, FontStyle.Bold); | ||||||
|                     break; |                     break; | ||||||
|                 case Define.E_JudgmentStatus.Ng: |                 case Define.E_JudgmentStatus.Ng: | ||||||
|                     value = "리크"; |                     value = "Leak"; | ||||||
|                     label2.TextColor = this.ColorResultNG; |                     label2.TextColor = this.ColorResultNG; | ||||||
|                     label2.Font = new Font("New Gulim", 20, FontStyle.Bold); |                     label2.Font = new Font("New Gulim", 20, FontStyle.Bold); | ||||||
|                     break; |                     break; | ||||||
|                 case Define.E_JudgmentStatus.Error: |                 case Define.E_JudgmentStatus.Error: | ||||||
|                     value = "제품 없음"; |                     value = "Empty"; | ||||||
|                     label2.TextColor = this.ColorResultNone; |                     label2.TextColor = this.ColorResultNone; | ||||||
|                     label2.Font = new Font("New Gulim", 20, FontStyle.Bold); |                     label2.Font = new Font("New Gulim", 20, FontStyle.Bold); | ||||||
|                     break; |                     break; | ||||||
|  |  | ||||||
											
												
													File diff suppressed because it is too large
													Load Diff
												
											
										
									
								|  | @ -7,10 +7,13 @@ using System.Data; | ||||||
| using System.Drawing; | using System.Drawing; | ||||||
| using System.Text; | using System.Text; | ||||||
| using System.Windows.Forms; | using System.Windows.Forms; | ||||||
|  | using System.Threading; | ||||||
| 
 | 
 | ||||||
| using SmartX; | using SmartX; | ||||||
| using INT_PT002.DataStore; | using INT_PT002.DataStore; | ||||||
| using INT_PT002.Controls; | using INT_PT002.Controls; | ||||||
|  | using INT_PT002.Part11_UserManager; | ||||||
|  | using INT_PT002.DialogForms; | ||||||
| 
 | 
 | ||||||
| namespace INT_PT002.Forms | namespace INT_PT002.Forms | ||||||
| { | { | ||||||
|  | @ -25,6 +28,8 @@ namespace INT_PT002.Forms | ||||||
|         private Color ColorResultNG; |         private Color ColorResultNG; | ||||||
|         private Color ColorResultNone; |         private Color ColorResultNone; | ||||||
| 
 | 
 | ||||||
|  |         private Collection<SmartX.SmartLabel> CollectionLabelResult; | ||||||
|  | 
 | ||||||
|         private FormMain m_ParentForm; |         private FormMain m_ParentForm; | ||||||
| 
 | 
 | ||||||
|         private ControlMainDisplay ChildControl; |         private ControlMainDisplay ChildControl; | ||||||
|  | @ -61,6 +66,19 @@ namespace INT_PT002.Forms | ||||||
|             this.ColorResultNG = Color.Red; |             this.ColorResultNG = Color.Red; | ||||||
|             this.ColorResultNone = Color.Black; |             this.ColorResultNone = Color.Black; | ||||||
| 
 | 
 | ||||||
|  |             this.CollectionLabelResult = new Collection<SmartLabel>(); | ||||||
|  |             this.CollectionLabelResult.Clear(); | ||||||
|  |             this.CollectionLabelResult.Add(this.labelResult1); | ||||||
|  |             this.CollectionLabelResult.Add(this.labelResult2); | ||||||
|  |             this.CollectionLabelResult.Add(this.labelResult3); | ||||||
|  |             this.CollectionLabelResult.Add(this.labelResult4); | ||||||
|  |             this.CollectionLabelResult.Add(this.labelResult5); | ||||||
|  |             this.CollectionLabelResult.Add(this.labelResult6); | ||||||
|  |             this.CollectionLabelResult.Add(this.labelResult7); | ||||||
|  |             this.CollectionLabelResult.Add(this.labelResult8); | ||||||
|  |             this.CollectionLabelResult.Add(this.labelResult9); | ||||||
|  |             this.CollectionLabelResult.Add(this.labelResult10); | ||||||
|  | 
 | ||||||
|             this.ChildControl = new ControlMainDisplay(this.ParentForm); |             this.ChildControl = new ControlMainDisplay(this.ParentForm); | ||||||
|             this.Controls.Add(this.ChildControl); |             this.Controls.Add(this.ChildControl); | ||||||
|             this.ChildControl.Location = new Point(0, 118); |             this.ChildControl.Location = new Point(0, 118); | ||||||
|  | @ -72,7 +90,129 @@ namespace INT_PT002.Forms | ||||||
| 
 | 
 | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         private void GetJudgmentResult(Define.E_JudgmentStatus judg, SmartLabel label2) |         private bool UI_Invoke(ThreadStart invoker) | ||||||
|  |         { | ||||||
|  |             try | ||||||
|  |             { | ||||||
|  |                 if (this.InvokeRequired) | ||||||
|  |                 { | ||||||
|  |                     if (this.IsDisposed) | ||||||
|  |                         return true; | ||||||
|  | 
 | ||||||
|  |                     this.Invoke(invoker); | ||||||
|  |                 } | ||||||
|  |                 else | ||||||
|  |                 { | ||||||
|  |                     invoker(); | ||||||
|  |                 } | ||||||
|  | 
 | ||||||
|  |                 return true; | ||||||
|  | 
 | ||||||
|  |             } | ||||||
|  |             catch (Exception e) | ||||||
|  |             { | ||||||
|  |                 return false; | ||||||
|  |             } | ||||||
|  | 
 | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         private void Login() | ||||||
|  |         { | ||||||
|  |             DialogFormLogOn logOn = new DialogFormLogOn(this.ParentForm); | ||||||
|  |             if (logOn.ShowDialog() == DialogResult.OK) | ||||||
|  |             { | ||||||
|  |                 this.DisplayRefresh(); | ||||||
|  |                 this.buttonUser.ButtonDown(); | ||||||
|  |                 //this.ParentForm.TimerAutomaticLogout(true, this.ParentForm.SystemConfig.AutomaticLogout); | ||||||
|  | 
 | ||||||
|  |                 // Part 11 | ||||||
|  |                 this.ParentForm.SetTrackingHistoryData(Define.E_TrackingOperation.Login, ""); | ||||||
|  |             } | ||||||
|  |             else | ||||||
|  |             { | ||||||
|  |                 this.buttonUser.ButtonUp(); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         public void Logout() | ||||||
|  |         { | ||||||
|  |             this.ParentForm.SystemConfig.CURRENT_USER.Status = Define.E_UserStatus.LogOff; | ||||||
|  |             this.buttonUser.ButtonUp(); | ||||||
|  |             this.DisplayRefresh(); | ||||||
|  | 
 | ||||||
|  |             // Part 11 | ||||||
|  |             this.ParentForm.SetTrackingHistoryData(Define.E_TrackingOperation.Logout, ""); | ||||||
|  |         } | ||||||
|  |         public void Part11AutomaticLogoutReset() | ||||||
|  |         { | ||||||
|  |             UserManager.UserManager_AutoLogoutTimeoutReset(); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         public void CallBackUserListLoginTimeoutDataEvent(UserManager.UserMgr_login_timeout_t user) | ||||||
|  |         { | ||||||
|  |             string code = "", message1 = "", message2 = ""; | ||||||
|  |             int warningTime = 0; | ||||||
|  | 
 | ||||||
|  |             if (user.remainder_time != 0) | ||||||
|  |             { | ||||||
|  |                 switch (this.ParentForm.SystemConfig.LANGUAGE) | ||||||
|  |                 { | ||||||
|  |                     case Define.E_LanguageID.Korean: | ||||||
|  |                         code = "로그인"; | ||||||
|  |                         message1 = "잠시 후에 로그아웃 됩니다"; | ||||||
|  |                         message2 = ""; | ||||||
|  |                         break; | ||||||
|  |                     case Define.E_LanguageID.English: | ||||||
|  |                         code = "Login"; | ||||||
|  |                         message1 = "You will be logged out after a while"; | ||||||
|  |                         message2 = ""; | ||||||
|  |                         break; | ||||||
|  |                     default: | ||||||
|  |                         break; | ||||||
|  |                 } | ||||||
|  | 
 | ||||||
|  |                 warningTime = this.ParentForm.FlagAutomaticLogoutWarningTime - 2; | ||||||
|  | 
 | ||||||
|  |                 this.UI_Invoke(delegate | ||||||
|  |                 { | ||||||
|  |                     DialogFormMessage msg = new DialogFormMessage(Define.E_MessageBoxIcon.Asterisk, code, message1, message2, warningTime); | ||||||
|  |                     msg.ShowDialog(); | ||||||
|  |                 }); | ||||||
|  |             } | ||||||
|  |             else | ||||||
|  |             { | ||||||
|  |                 switch (this.ParentForm.SystemConfig.LANGUAGE) | ||||||
|  |                 { | ||||||
|  |                     case Define.E_LanguageID.Korean: | ||||||
|  |                         code = "Login"; | ||||||
|  |                         message1 = "자동 로그아웃 되었습니다"; | ||||||
|  |                         message2 = ""; | ||||||
|  |                         break; | ||||||
|  |                     case Define.E_LanguageID.English: | ||||||
|  |                         code = "Login"; | ||||||
|  |                         message1 = "automatically logged out"; | ||||||
|  |                         message2 = ""; | ||||||
|  |                         break; | ||||||
|  |                     default: | ||||||
|  |                         break; | ||||||
|  |                 } | ||||||
|  | 
 | ||||||
|  |                 // User Logout | ||||||
|  |                 UserManager.UserManager_UserLogout(); | ||||||
|  | 
 | ||||||
|  |                 this.UI_Invoke(delegate | ||||||
|  |                 { | ||||||
|  |                     this.Logout(); | ||||||
|  |                 }); | ||||||
|  | 
 | ||||||
|  |                 this.UI_Invoke(delegate | ||||||
|  |                 { | ||||||
|  |                     DialogFormMessage msg = new DialogFormMessage(Define.E_MessageBoxIcon.Asterisk, code, message1, message2, 0); | ||||||
|  |                     msg.ShowDialog(); | ||||||
|  |                 }); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         private void GetJudgmentResult(Define.E_JudgmentStatus judg, SmartLabel label) | ||||||
|         { |         { | ||||||
|             string value = ""; |             string value = ""; | ||||||
| 
 | 
 | ||||||
|  | @ -80,30 +220,30 @@ namespace INT_PT002.Forms | ||||||
|             { |             { | ||||||
|                 case Define.E_JudgmentStatus.None: |                 case Define.E_JudgmentStatus.None: | ||||||
|                     value = "-"; |                     value = "-"; | ||||||
|                     label2.TextColor = this.ColorResultNone; |                     label.TextColor = this.ColorResultNone; | ||||||
|                     label2.Font = new Font("New Gulim", 40, FontStyle.Bold); |                     label.Font = new Font("New Gulim", 40, FontStyle.Bold); | ||||||
|                     break; |                     break; | ||||||
|                 case Define.E_JudgmentStatus.Pass: |                 case Define.E_JudgmentStatus.Pass: | ||||||
|                     value = "정상"; |                     value = "Pass"; | ||||||
|                     label2.TextColor = this.ColorResultPass; |                     label.TextColor = this.ColorResultPass; | ||||||
|                     label2.Font = new Font("New Gulim", 40, FontStyle.Bold); |                     label.Font = new Font("New Gulim", 40, FontStyle.Bold); | ||||||
|                     break; |                     break; | ||||||
|                 case Define.E_JudgmentStatus.Ng: |                 case Define.E_JudgmentStatus.Ng: | ||||||
|                     value = "리크"; |                     value = "Leak"; | ||||||
|                     label2.TextColor = this.ColorResultNG; |                     label.TextColor = this.ColorResultNG; | ||||||
|                     label2.Font = new Font("New Gulim", 40, FontStyle.Bold); |                     label.Font = new Font("New Gulim", 40, FontStyle.Bold); | ||||||
|                     break; |                     break; | ||||||
|                 case Define.E_JudgmentStatus.Error: |                 case Define.E_JudgmentStatus.Error: | ||||||
|                     value = "제품 없음"; |                     value = "Empty"; | ||||||
|                     label2.TextColor = this.ColorResultNone; |                     label.TextColor = this.ColorResultNone; | ||||||
|                     label2.Font = new Font("New Gulim", 20, FontStyle.Bold); |                     label.Font = new Font("New Gulim", 20, FontStyle.Bold); | ||||||
|                     break; |                     break; | ||||||
|                 default: |                 default: | ||||||
|                     break; |                     break; | ||||||
|             } |             } | ||||||
| 
 | 
 | ||||||
|             if (label2.Text != value) |             if (label.Text != value) | ||||||
|                 label2.Text = value; |                 label.Text = value; | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         public void UpdateProcessStatusDisplay(Define.E_ProcessStatus status) |         public void UpdateProcessStatusDisplay(Define.E_ProcessStatus status) | ||||||
|  | @ -266,6 +406,10 @@ namespace INT_PT002.Forms | ||||||
|                 #endregion |                 #endregion | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|  |         public void UpdateDisplayAlarmView(AlarmList alarm) | ||||||
|  |         { | ||||||
|  | 
 | ||||||
|  |         } | ||||||
| 
 | 
 | ||||||
|         public void UpdateDisplayDiffData(Collection<DiffData> datas) |         public void UpdateDisplayDiffData(Collection<DiffData> datas) | ||||||
|         { |         { | ||||||
|  | @ -281,7 +425,6 @@ namespace INT_PT002.Forms | ||||||
|             this.timerOn.Enabled = false; |             this.timerOn.Enabled = false; | ||||||
|             this.timerOff.Enabled = false; |             this.timerOff.Enabled = false; | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
|             this.UpdateDisplayJudgmentData1(datas); |             this.UpdateDisplayJudgmentData1(datas); | ||||||
|             this.UpdateDisplayJudgmentData2(datas); |             this.UpdateDisplayJudgmentData2(datas); | ||||||
|             this.UpdateDisplayJudgmentData3(datas); |             this.UpdateDisplayJudgmentData3(datas); | ||||||
|  | @ -293,47 +436,48 @@ namespace INT_PT002.Forms | ||||||
|             this.UpdateDisplayJudgmentData9(datas); |             this.UpdateDisplayJudgmentData9(datas); | ||||||
|             this.UpdateDisplayJudgmentData10(datas); |             this.UpdateDisplayJudgmentData10(datas); | ||||||
| 
 | 
 | ||||||
|  |             this.ParentForm.TrackingInspectionData(datas); | ||||||
|             this.ChildControl.UpdateStartLeakDataDisplay(datas); |             this.ChildControl.UpdateStartLeakDataDisplay(datas); | ||||||
|         } |         } | ||||||
|         private void UpdateDisplayJudgmentData1(LeakData data) |         private void UpdateDisplayJudgmentData1(LeakData data) | ||||||
|         { |         { | ||||||
|             //this.GetJudgmentResult(data.CollJudgment[0], this.labelResult1); |             this.GetJudgmentResult(data.CollJudgment[0], this.CollectionLabelResult[0]); | ||||||
|         } |         } | ||||||
|         private void UpdateDisplayJudgmentData2(LeakData data) |         private void UpdateDisplayJudgmentData2(LeakData data) | ||||||
|         { |         { | ||||||
|             //this.GetJudgmentResult(data.CollJudgment[1], this.labelResult2); |             this.GetJudgmentResult(data.CollJudgment[1], this.CollectionLabelResult[1]); | ||||||
|         } |         } | ||||||
|         private void UpdateDisplayJudgmentData3(LeakData data) |         private void UpdateDisplayJudgmentData3(LeakData data) | ||||||
|         { |         { | ||||||
|             //this.GetJudgmentResult(data.CollJudgment[2], this.labelResult3); |             this.GetJudgmentResult(data.CollJudgment[2], this.CollectionLabelResult[2]); | ||||||
|         } |         } | ||||||
|         private void UpdateDisplayJudgmentData4(LeakData data) |         private void UpdateDisplayJudgmentData4(LeakData data) | ||||||
|         { |         { | ||||||
|             //this.GetJudgmentResult(data.CollJudgment[3], this.labelResult4); |             this.GetJudgmentResult(data.CollJudgment[3], this.CollectionLabelResult[3]); | ||||||
|         } |         } | ||||||
|         private void UpdateDisplayJudgmentData5(LeakData data) |         private void UpdateDisplayJudgmentData5(LeakData data) | ||||||
|         { |         { | ||||||
|             //this.GetJudgmentResult(data.CollJudgment[4], this.labelResult5); |             this.GetJudgmentResult(data.CollJudgment[4], this.CollectionLabelResult[4]); | ||||||
|         } |         } | ||||||
|         private void UpdateDisplayJudgmentData6(LeakData data) |         private void UpdateDisplayJudgmentData6(LeakData data) | ||||||
|         { |         { | ||||||
|             //this.GetJudgmentResult(data.CollJudgment[5], this.labelResult6); |             this.GetJudgmentResult(data.CollJudgment[5], this.CollectionLabelResult[5]); | ||||||
|         } |         } | ||||||
|         private void UpdateDisplayJudgmentData7(LeakData data) |         private void UpdateDisplayJudgmentData7(LeakData data) | ||||||
|         { |         { | ||||||
|             //this.GetJudgmentResult(data.CollJudgment[6], this.labelResult7); |             this.GetJudgmentResult(data.CollJudgment[6], this.CollectionLabelResult[6]); | ||||||
|         } |         } | ||||||
|         private void UpdateDisplayJudgmentData8(LeakData data) |         private void UpdateDisplayJudgmentData8(LeakData data) | ||||||
|         { |         { | ||||||
|             //this.GetJudgmentResult(data.CollJudgment[7], this.labelResult8); |             this.GetJudgmentResult(data.CollJudgment[7], this.CollectionLabelResult[7]); | ||||||
|         } |         } | ||||||
|         private void UpdateDisplayJudgmentData9(LeakData data) |         private void UpdateDisplayJudgmentData9(LeakData data) | ||||||
|         { |         { | ||||||
|             //this.GetJudgmentResult(data.CollJudgment[8], this.labelResult9); |             this.GetJudgmentResult(data.CollJudgment[8], this.CollectionLabelResult[8]); | ||||||
|         } |         } | ||||||
|         private void UpdateDisplayJudgmentData10(LeakData data) |         private void UpdateDisplayJudgmentData10(LeakData data) | ||||||
|         { |         { | ||||||
|             //this.GetJudgmentResult(data.CollJudgment[9], this.labelResult10); |             this.GetJudgmentResult(data.CollJudgment[9], this.CollectionLabelResult[9]); | ||||||
|         } |         } | ||||||
|         public void UpdateDisplayTime() |         public void UpdateDisplayTime() | ||||||
|         { |         { | ||||||
|  | @ -355,17 +499,14 @@ namespace INT_PT002.Forms | ||||||
|         { |         { | ||||||
|             this.ParentForm.TransferData(CommunicationCommand.Stop, CommunicationID.MainBoard); |             this.ParentForm.TransferData(CommunicationCommand.Stop, CommunicationID.MainBoard); | ||||||
|         } |         } | ||||||
|         private void buttonMenu_Click(object sender, EventArgs e) | 
 | ||||||
|         { | 
 | ||||||
|             this.ParentForm.ChildFormMenu.DisplayRefresh(); |  | ||||||
|             this.ParentForm.FormChange((int)Define.E_FormStore.FormMenu); |  | ||||||
|         } |  | ||||||
|         private void buttonDisplayGraph_Click(object sender, EventArgs e) |         private void buttonDisplayGraph_Click(object sender, EventArgs e) | ||||||
|         { |         { | ||||||
|             this.ChildControl.DisplayRefresh(1); |             this.ChildControl.DisplayRefresh(1); | ||||||
|             this.ChildControl.Visible = true; |             this.ChildControl.Visible = true; | ||||||
|         } |         } | ||||||
|         private void buttonCut_Click(object sender, EventArgs e) |         private void buttonStart_Click(object sender, EventArgs e) | ||||||
|         { |         { | ||||||
|             this.ParentForm.TransferData(CommunicationCommand.CutInpupt, CommunicationID.MainBoard); |             this.ParentForm.TransferData(CommunicationCommand.CutInpupt, CommunicationID.MainBoard); | ||||||
| 
 | 
 | ||||||
|  | @ -380,6 +521,15 @@ namespace INT_PT002.Forms | ||||||
| 
 | 
 | ||||||
|             this.timerOn.Enabled = true; |             this.timerOn.Enabled = true; | ||||||
|         } |         } | ||||||
|  |         private void buttonUser_Click(object sender, EventArgs e) | ||||||
|  |         { | ||||||
|  | 
 | ||||||
|  |         } | ||||||
|  |         private void buttonMenu_Click(object sender, EventArgs e) | ||||||
|  |         { | ||||||
|  |             this.ParentForm.ChildFormMenu.DisplayRefresh(); | ||||||
|  |             this.ParentForm.FormChange((int)Define.E_FormStore.FormMenu); | ||||||
|  |         } | ||||||
| 
 | 
 | ||||||
|         private void smartDraw1_Click(object sender, EventArgs e) |         private void smartDraw1_Click(object sender, EventArgs e) | ||||||
|         { |         { | ||||||
|  | @ -455,7 +605,6 @@ namespace INT_PT002.Forms | ||||||
| 
 | 
 | ||||||
|             this.timerOn.Enabled = true; |             this.timerOn.Enabled = true; | ||||||
|         } |         } | ||||||
|         #endregion |  | ||||||
| 
 | 
 | ||||||
|         private void buttonExit_Click(object sender, EventArgs e) |         private void buttonExit_Click(object sender, EventArgs e) | ||||||
|         { |         { | ||||||
|  | @ -463,5 +612,8 @@ namespace INT_PT002.Forms | ||||||
|             this.ParentForm.Dispose(); |             this.ParentForm.Dispose(); | ||||||
|             this.ParentForm.Close(); |             this.ParentForm.Close(); | ||||||
|         } |         } | ||||||
|  |         #endregion | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  | @ -117,96 +117,330 @@ | ||||||
|   <resheader name="writer"> |   <resheader name="writer"> | ||||||
|     <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> |     <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> | ||||||
|   </resheader> |   </resheader> | ||||||
|  |   <metadata name="smartDraw_ChartChannelPenStyle1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> | ||||||
|  |     <value>17, 17</value> | ||||||
|  |   </metadata> | ||||||
|  |   <metadata name="timerOff.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> | ||||||
|  |     <value>264, 17</value> | ||||||
|  |   </metadata> | ||||||
|  |   <metadata name="timerOn.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> | ||||||
|  |     <value>351, 17</value> | ||||||
|  |   </metadata> | ||||||
|   <assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> |   <assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> | ||||||
|   <data name="smartForm1.BackImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> |   <data name="smartForm1.BackImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> | ||||||
|     <value> |     <value> | ||||||
|         iVBORw0KGgoAAAANSUhEUgAABAAAAAMACAYAAAC6uhUNAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 |         iVBORw0KGgoAAAANSUhEUgAABAAAAAMACAIAAAA12IJaAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAACH | ||||||
|         YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAABPISURBVHhe7djZlRBUFETRm384DiiOKIKACEjLJDTQzZAG |         DwAAjA8AAP1SAACBQAAAfXkAAOmLAAA85QAAGcxzPIV3AAAKOWlDQ1BQaG90b3Nob3AgSUNDIHByb2Zp | ||||||
|         vjju2R+7VsVw5qvbb74AAAAAuwkAAAAAECAAAAAAQIAAAAAAAAECAAAAAAQIAAAAABAgAAAAAECAAAAA |         bGUAAEjHnZZ3VFTXFofPvXd6oc0w0hl6ky4wgPQuIB0EURhmBhjKAMMMTWyIqEBEEREBRZCggAGjoUis | ||||||
|         AAABAgAAAAAECAAAAAAQIAAAAABAgAAAAAAAAQIAAAAABAgAAAAAECAAAAAAQMB8fQYAAADYTQAAAACA |         iGIhKKhgD0gQUGIwiqioZEbWSnx5ee/l5ffHvd/aZ+9z99l7n7UuACRPHy4vBZYCIJkn4Ad6ONNXhUfQ | ||||||
|         AAEAAAAAAgQAAAAACBAAAAAAIEAAAAAAgAABAAAAAALm6z/OAQAAAFYTAAAAACBAAAAAAIAAAQAAAAAC |         sf0ABniAAaYAMFnpqb5B7sFAJC83F3q6yAn8i94MAUj8vmXo6U+ng/9P0qxUvgAAyF/E5mxOOkvE+SJO | ||||||
|         BAAAAAAIEAAAAAAgQAAAAACAgPnmDAAAALCbAAAAAAABAgAAAAAECAAAAAAQIAAAAABAgAAAAAAAAQIA |         yhSkiu0zIqbGJIoZRomZL0pQxHJijlvkpZ99FtlRzOxkHlvE4pxT2clsMfeIeHuGkCNixEfEBRlcTqaI | ||||||
|         AAAABAgAAAAAECAAAAAAQIAAAAAAAAECAAAAAAQIAAAAABAgAAAAAECAAAAAAAAB882dcwAAAIDV5tsz |         b4tYM0mYzBXxW3FsMoeZDgCKJLYLOKx4EZuImMQPDnQR8XIAcKS4LzjmCxZwsgTiQ7mkpGbzuXHxArou | ||||||
|         AAAAwG4CAAAAAAQIAAAAABAgAAAAAECAAAAAAAABAgAAAAAECAAAAAAQIAAAAABAgAAAAAAAAQIAAAAA |         S49uam3NoHtyMpM4AoGhP5OVyOSz6S4pyalMXjYAi2f+LBlxbemiIluaWltaGpoZmX5RqP+6+Dcl7u0i | ||||||
|         BAgAAAAAECAAAAAAQIAAAAAAAAECAAAAAATMjTMAAADAbgIAAAAABAgAAAAAECAAAAAAQIAAAAAAAAEC |         vQr43DOI1veH7a/8UuoAYMyKarPrD1vMfgA6tgIgd/8Pm+YhACRFfWu/8cV5aOJ5iRcIUm2MjTMzM424 | ||||||
|         AAAAAATMjbvnAAAAAKsJAAAAABAgAAAAAECAAAAAAAABAgAAAAAECAAAAAAQMDfuXp4DAAAAbCYAAAAA |         HJaRuKC/6386/A198T0j8Xa/l4fuyollCpMEdHHdWClJKUI+PT2VyeLQDf88xP848K/zWBrIieXwOTxR | ||||||
|         QIAAAAAAAAHz3RkAAABgNwEAAAAAAgQAAAAACBAAAAAAIEAAAAAAgAABAAAAAAIEAAAAAAgQAAAAACBA |         RKhoyri8OFG7eWyugJvCo3N5/6mJ/zDsT1qca5Eo9Z8ANcoISN2gAuTnPoCiEAESeVDc9d/75oMPBeKb | ||||||
|         AAAAAIAAAQAAAAACBAAAAAAIEAAAAAAgQAAAAACAgPnuz3MAAACA1eb7MwAAAMBuAgAAAAAECAAAAAAQ |         F6Y6sTj3nwX9+65wifiRzo37HOcSGExnCfkZi2viawnQgAAkARXIAxWgAXSBITADVsAWOAI3sAL4gWAQ | ||||||
|         IAAAAABAgAAAAAAAAQIAAAAABAgAAAAAECAAAAAAQIAAAAAAAAECAAAAAAQIAAAAABAgAAAAAECAAAAA |         DtYCFogHyYAPMkEu2AwKQBHYBfaCSlAD6kEjaAEnQAc4DS6Ay+A6uAnugAdgBIyD52AGvAHzEARhITJE | ||||||
|         AAABAgAAAAAECAAAAAAQMDfPAAAAALsJAAAAABAgAAAAAECAAAAAAAABAgAAAAAEzM175wAAAACrCQAA |         geQhVUgLMoDMIAZkD7lBPlAgFA5FQ3EQDxJCudAWqAgqhSqhWqgR+hY6BV2ArkID0D1oFJqCfoXewwhM | ||||||
|         AAAQIAAAAABAgAAAAAAAAQIAAAAABAgAAAAAECAAAAAAQIAAAAAAAAECAAAAAATMD2cAAACA3QQAAAAA |         gqmwMqwNG8MM2An2hoPhNXAcnAbnwPnwTrgCroOPwe3wBfg6fAcegZ/DswhAiAgNUUMMEQbigvghEUgs | ||||||
|         CBAAAAAAIEAAAAAAgAABAAAAAAIEAAAAAAgQAAAAACBAAAAAAIAAAQAAAAACBAAAAAAIEAAAAAAgQAAA |         wkc2IIVIOVKHtCBdSC9yCxlBppF3KAyKgqKjDFG2KE9UCIqFSkNtQBWjKlFHUe2oHtQt1ChqBvUJTUYr | ||||||
|         AACAgPnh/jkAAADAagIAAAAABAgAAAAAEDA/ngEAAAB2EwAAAAAgQAAAAACAAAEAAAAAAgQAAAAACBAA |         oQ3QNmgv9Cp0HDoTXYAuRzeg29CX0HfQ4+g3GAyGhtHBWGE8MeGYBMw6TDHmAKYVcx4zgBnDzGKxWHms | ||||||
|         AAAAIEAAAAAAgAABAAAAAAIEAAAAAAiYH++/PQcAAADYTAAAAACAAAEAAAAAAgQAAAAACBAAAAAAIGB+ |         AdYO64dlYgXYAux+7DHsOewgdhz7FkfEqeLMcO64CBwPl4crxzXhzuIGcRO4ebwUXgtvg/fDs/HZ+BJ8 | ||||||
|         OgMAAADsJgAAAABAgAAAAAAAAQIAAAAABAgAAAAAEDA/PTgHAAAAWE0AAAAAgAABAAAAAAIEAAAAAAgQ |         Pb4LfwM/jp8nSBN0CHaEYEICYTOhgtBCuER4SHhFJBLVidbEACKXuIlYQTxOvEIcJb4jyZD0SS6kSJKQ | ||||||
|         AAAAACBAAAAAAIAAAQAAAAACBAAAAAAIEAAAAAAgQAAAAACAgPn5DAAAALCbAAAAAAABAgAAAAAECAAA |         tJN0hHSedI/0ikwma5MdyRFkAXknuZF8kfyY/FaCImEk4SXBltgoUSXRLjEo8UISL6kl6SS5VjJHslzy | ||||||
|         AAAQIAAAAABAgAAAAAAAAQIAAAAABAgAAAAAECAAAAAAQIAAAAAAAAECAAAAAATMz3+dAwAAAKwmAAAA |         pOQNyWkpvJS2lIsUU2qDVJXUKalhqVlpirSptJ90snSxdJP0VelJGayMtoybDFsmX+awzEWZMQpC0aC4 | ||||||
|         AECAAAAAAAAB88sZAAAAYDcBAAAAAAIEAAAAAAgQAAAAACBAAAAAAIAAAQAAAAACBAAAAAAIEAAAAAAg |         UFiULZR6yiXKOBVD1aF6UROoRdRvqP3UGVkZ2WWyobJZslWyZ2RHaAhNm+ZFS6KV0E7QhmjvlygvcVrC | ||||||
|         QAAAAACAAAEAAAAAAgQAAAAACBAAAAAAIEAAAAAAgAABAAAAAAIEAAAAAAiYX88AAAAAuwkAAAAAECAA |         WbJjScuSwSVzcopyjnIcuUK5Vrk7cu/l6fJu8onyu+U75B8poBT0FQIUMhUOKlxSmFakKtoqshQLFU8o | ||||||
|         AAAAQMD8+vAcAAAAYDUBAAAAAAIEAAAAAAgQAAAAACBAAAAAAIAAAQAAAAACBAAAAAAIEAAAAAAgQAAA |         3leClfSVApXWKR1W6lOaVVZR9lBOVd6vfFF5WoWm4qiSoFKmclZlSpWiaq/KVS1TPaf6jC5Ld6In0Svo | ||||||
|         AACAAAEAAAAAAgQAAAAACJhbZwAAAIDdBAAAAAAIEAAAAAAgQAAAAACAAAEAAAAAAgQAAAAACBAAAAAA |         PfQZNSU1TzWhWq1av9q8uo56iHqeeqv6Iw2CBkMjVqNMo1tjRlNV01czV7NZ874WXouhFa+1T6tXa05b | ||||||
|         IGBuPXx3DgAAALCZAAAAAAABAgAAAAAECAAAAAAQMLf+PgcAAABYTQAAAACAAAEAAAAAAgQAAAAACJjf |         RztMe5t2h/akjpyOl06OTrPOQ12yroNumm6d7m09jB5DL1HvgN5NfVjfQj9ev0r/hgFsYGnANThgMLAU | ||||||
|         zgAAAAC7CQAAAAAQIAAAAABAgAAAAAAAAQIAAAAABAgAAAAAECAAAAAAQIAAAAAAAAECAAAAAAQIAAAA |         vdR6KW9p3dJhQ5Khk2GGYbPhqBHNyMcoz6jD6IWxpnGE8W7jXuNPJhYmSSb1Jg9MZUxXmOaZdpn+aqZv | ||||||
|         ABAgAAAAAECAAAAAAAABAgAAAAAECAAAAAAQML+fAQAAAHYTAAAAACBAAAAAAICA+f3ROQAAAMBqAgAA |         xjKrMrttTjZ3N99o3mn+cpnBMs6yg8vuWlAsfC22WXRbfLS0suRbtlhOWWlaRVtVWw0zqAx/RjHjijXa | ||||||
|         AAAECAAAAAAQIAAAAABAgAAAAAAAAQIAAAAABAgAAAAAECAAAAAAQIAAAAAAAAECAAAAAAQIAAAAABAg |         2tl6o/Vp63c2ljYCmxM2v9ga2ibaNtlOLtdZzllev3zMTt2OaVdrN2JPt4+2P2Q/4qDmwHSoc3jiqOHI | ||||||
|         AAAAAEDA3D4DAAAA7CYAAAAAQIAAAAAAAAECAAAAAAQIAAAAABAgAAAAAECAAAAAAAABAgAAAAAECAAA |         dmxwnHDSc0pwOub0wtnEme/c5jznYuOy3uW8K+Lq4Vro2u8m4xbiVun22F3dPc692X3Gw8Jjncd5T7Sn | ||||||
|         AAAQMLcfnwMAAACsJgAAAABAgAAAAAAAAQIAAAAABAgAAAAAEDB/nAEAAAB2EwAAAAAgQAAAAACAAAEA |         t+duz2EvZS+WV6PXzAqrFetX9HiTvIO8K72f+Oj78H26fGHfFb57fB+u1FrJW9nhB/y8/Pb4PfLX8U/z | ||||||
|         AAAAAgQAAAAACBAAAAAAIEAAAAAAgAABAAAAAAIEAAAAAAgQAAAAACBAAAAAAIAAAQAAAAACBAAAAAAI |         /z4AE+AfUBXwNNA0MDewN4gSFBXUFPQm2Dm4JPhBiG6IMKQ7VDI0MrQxdC7MNaw0bGSV8ar1q66HK4Rz | ||||||
|         EAAAAAAgQAAAAACAgLlzBgAAANhNAAAAAICAufPkHAAAAGA1AQAAAAAC5s6T9+cAAAAAmwkAAAAAECAA |         wzsjsBGhEQ0Rs6vdVu9dPR5pEVkQObRGZ03WmqtrFdYmrT0TJRnFjDoZjY4Oi26K/sD0Y9YxZ2O8Yqpj | ||||||
|         AAAAQIAAAAAAAAECAAAAAAQIAAAAABAgAAAAAECAAAAAAAABAgAAAAAECAAAAAAQMHfPAAAAALsJAAAA |         ZlgurH2s52xHdhl7imPHKeVMxNrFlsZOxtnF7YmbineIL4+f5rpwK7kvEzwTahLmEv0SjyQuJIUltSbj | ||||||
|         ABAgAAAAAECAAAAAAAABAgAAAAAECAAAAAAQIAAAAABAgAAAAAAAAQIAAAAABMzdf84BAAAAVhMAAAAA |         kqOTT/FkeIm8nhSVlKyUgVSD1ILUkTSbtL1pM3xvfkM6lL4mvVNAFf1M9Ql1hVuFoxn2GVUZbzNDM09m | ||||||
|         IEAAAAAAgAABAAAAAAIEAAAAAAgQAAAAACBg/jwDAAAA7CYAAAAAQIAAAAAAAAECAAAAAAQIAAAAABAg |         SWfxsvqy9bN3ZE/kuOd8vQ61jrWuO1ctd3Pu6Hqn9bUboA0xG7o3amzM3zi+yWPT0c2EzYmbf8gzySvN | ||||||
|         AAAAAECAAAAAAAABAgAAAAAECAAAAAAQIAAAAABAgAAAAAAAAQIAAAAABAgAAAAAECAAAAAAQMDcOwMA |         e70lbEtXvnL+pvyxrR5bmwskCvgFw9tst9VsR23nbu/fYb5j/45PhezCa0UmReVFH4pZxde+Mv2q4quF | ||||||
|         AADsNveengMAAACsJgAAAABAgAAAAAAAAQIAAAAABAgAAAAAECAAAAAAQIAAAAAAAAECAAAAAAQIAAAA |         nbE7+0ssSw7uwuzi7Rra7bD7aKl0aU7p2B7fPe1l9LLCstd7o/ZeLV9WXrOPsE+4b6TCp6Jzv+b+Xfs/ | ||||||
|         ABAgAAAAAECAAAAAAAABAgAAAAAECAAAAAAQIAAAAABAwNw/AwAAAOwmAAAAAECAAAAAAAABAgAAAAAE |         VMZX3qlyrmqtVqreUT13gH1g8KDjwZYa5ZqimveHuIfu1nrUttdp15UfxhzOOPy0PrS+92vG140NCg1F | ||||||
|         CAAAAAAQIAAAAABAgAAAAAAAAQIAAAAABMz9i3MAAACA1QQAAAAACBAAAAAAIEAAAAAAgAABAAAAAAIE |         DR+P8I6MHA082tNo1djYpNRU0gw3C5unjkUeu/mN6zedLYYtta201qLj4Ljw+LNvo78dOuF9ovsk42TL | ||||||
|         AAAAAAiYB2cAAACA3QQAAAAACJgHF1fnAAAAAJsJAAAAABAgAAAAAECAAAAAAAABAgAAAAAECAAAAAAQ |         d1rfVbdR2grbofbs9pmO+I6RzvDOgVMrTnV32Xa1fW/0/ZHTaqerzsieKTlLOJt/duFczrnZ86nnpy/E | ||||||
|         IAAAAABAgAAAAAAAAQIAAAAABAgAAAAAECAAAAAAQIAAAAAAAAECAAAAAATMX/9efQEAAAB2EwAAAAAg |         XRjrjup+cHHVxds9AT39l7wvXbnsfvlir1PvuSt2V05ftbl66hrjWsd1y+vtfRZ9bT9Y/NDWb9nffsPq | ||||||
|         QAAAAACAAAEAAAAAAgQAAAAACBAAAAAAIEAAAAAAgAABAAAAAAIEAAAAAAgQAAAAACBAAAAAAIAAAQAA |         RudN65tdA8sHzg46DF645Xrr8m2v29fvrLwzMBQydHc4cnjkLvvu5L2key/vZ9yff7DpIfph4SOpR+WP | ||||||
|         AAACBAAAAAAIEAAAAAAgYB6eAQAAAHYTAAAAACBAAAAAAIAAAQAAAAACBAAAAAAIEAAAAAAgQAAAAACA |         lR7X/aj3Y+uI5ciZUdfRvidBTx6Mscae/5T+04fx/Kfkp+UTqhONk2aTp6fcp24+W/1s/Hnq8/npgp+l | ||||||
|         gHn47BwAAABgNQEAAAAAAgQAAAAACBAAAAAAIEAAAAAAgAABAAAAAAIEAAAAAAgQAAAAACBg/j4DAAAA |         f65+ofviu18cf+mbWTUz/pL/cuHX4lfyr468Xva6e9Z/9vGb5Dfzc4Vv5d8efcd41/s+7P3EfOYH7IeK | ||||||
|         7CYAAAAAQIAAAAAAAAECAAAAAAQIAAAAABAgAAAAAECAAAAAAAABAgAAAAAECAAAAAAQIAAAAABAgAAA |         j3ofuz55f3q4kLyw8Bv3hPP74uYdwgAAAAlwSFlzAAAOxAAADsQBlSsOGwAAPk5JREFUeF7t3VGrNVl1 | ||||||
|         AAAAAQIAAAAABAgAAAAAECAAAAAAQMA8en71BQAAANhNAAAAAIAAAQAAAAACBAAAAAAIEAAAAAAgQAAA |         L/zzUd6D2rYd8w3EI683Ck0Q9UKaxqCCQUlQiaHDQRqEvlAURAw55EIRETSCEOiLICiIoGAucsCLELwI | ||||||
|         AACAAAEAAAAAAgQAAAAACBAAAAAAIEAAAAAAgAABAAAAAAIEAAAAAAgQAAAAACBgHj2/PgcAAADYTAAA |         mDsvzzd4Bxm8kzpj72c9Vbu75qi952/zY1N7rqpatdaYVWv81177ef7b//Pf3wEAACxCAAAAgIUIAAAA | ||||||
|         AACAgHl8BgAAANhNAAAAAIAAAQAAAAACBAAAAAAIEAAAAAAgQAAAAACAgHn84hwAAABgNQEAAAAAAgQA |         sBABAAAAFiIAAADAQgQAAABYiAAAAAALEQAAAGAhAgAAACxEAAAAgIUIAAAAsBABAAAAFiIAAADAQgQA | ||||||
|         AAAACBAAAAAAIEAAAAAAgAABAAAAAAIEAAAAAAgQAAAAACBgnpwBAAAAdhMAAAAAIEAAAAAAgAABAAAA |         AABYiAAAAAALEQAAAGAhAgAAACxEAAAAgIUIAAAAsBABAAAAFiIAAADAQgQAAABYiAAAAAALEQAAAGAh | ||||||
|         AAIEAAAAAAgQAAAAACBAAAAAAIAAAQAAAAACBAAAAAAIEAAAAAAgQAAAAACAAAEAAAAAAgQAAAAACJgn |         AgAAACxEAAAAgIUIAAAAsBABAAAAFiIAAADAQgQAAABYiAAAAAALEQAAAGAhAgAAACxEAAAAgIUIAAAA | ||||||
|         L88BAAAAVhMAAAAAIGD+OQMAAADsJgAAAABAgAAAAAAAAQIAAAAABAgAAAAAECAAAAAAQIAAAAAAAAEC |         sBABAAAAFiIAAADAQgQAAABYiAAAAAALEQAAAGAhAgAAACxEAAAAgIUIAAAAsBABAAAAFiIAAADAQgQA | ||||||
|         AAAAAAQIAAAAABAgAAAAAECAAAAAAAABAgAAAAAECAAAAAAQIAAAAABAwDw9AwAAAOwmAAAAAECAAAAA |         AABYiAAAAAALEQAAAGAhAgAAACxEAAAAgIUIAAAAsBABAAAAFiIAAADAQgQAAABYiAAAAAALEQAAAGAh | ||||||
|         AAABAgAAAAAECAAAAAAQIAAAAABAwDx9dQ4AAACwmgAAAAAAAQIAAAAABAgAAAAAECAAAAAAQIAAAAAA |         AgAAACxEAAAAgIUIAAAAsBABAAAAFiIAAADAQgQAAABYiAAAAAALEQAAAGAhAgAAACxEAAAAgIUIAAAA | ||||||
|         AAECAAAAAAQIAAAAABAgAAAAAEDAXJwBAAAAdhMAAAAAIEAAAAAAgAABAAAAAAIEAAAAAAgQAAAAACBA |         sBABAAAAFiIAAADAQgQAAABYiAAAAAALEQAAAGAhAgAAACxEAAAAgIUIAAAAsBABAAAAFiIAAADAQgQA | ||||||
|         AAAAAIAAAQAAAAACBAAAAAAIEAAAAAAgYC5efTgHAAAA2EwAAAAAgIC5+O8cAAAAYDUBAAAAAALm3zMA |         AABYiAAAAAALEQAAAGAhDwkA73jnC+9+8aWX/uRPYStmRcyNMlv2M68A4El6ix0Cb7vDAeBdL7xYigpb | ||||||
|         AADAbgIAAAAABAgAAAAAECAAAAAAQIAAAAAAAAECAAAAAAQIAAAAABAgAAAAAECAAAAAAAABAgAAAAAE |         MUPKnNnDvAKAp+1hHQJnOBYAIr2VWsJdR1O+eQUAK/B7gIs4FgB8QoM9Yp6UmXObeQUAKzjaIXCSYwHg | ||||||
|         CAAAAAAQIAAAAABAgAAAAAAAAQIAAAAABAgAAAAAEDDPzgAAAAC7CQAAAAAQIAAAAABAgAAAAAAAAfPs |         PS+9txQS7op5UmbObeYVAKzgaIfASY4FgFJFeJYyc24r2wIAT1XpAWghAHCKMnNuK9sCAE9V6QFoIQBw | ||||||
|         9TkAAADAagIAAAAABAgAAAAAECAAAAAAQIAAAAAAAAECAAAAAAQIAAAAABAgAAAAAECAAAAAAAABAgAA |         ijJzbivbAgBPVekBaHFiAHjl1U/+7Be/LL77/R++/tU3/unNfy4r88SUmXNb2Xa/mEg/+slPx48x5X7/ | ||||||
|         AAAEzPMzAAAAwG4CAAAAAAQIAAAAABAgAAAAAECAAAAAAAABAgAAAAAECAAAAAAQIAAAAABAgAAAAAAA |         H/8Z38cIAHAppQegxYkB4H3v/8BffO4vw9e/+a1oy3I5mjMBYAXbafNcZdud/vpv/jbm1bbjjwmWM22s | ||||||
|         AQIAAAAABAgAAAAAECAAAAAAQMA8f3MOAAAAsJoAAAAAAAECAAAAAATMizMAAADAbgIAAAAABAgAAAAA |         AwBcSukBaDHjI0DZlpXBrZf/7CO5EJlhLA/R3t0d5OLKzLmtbLvTj37y01/9+rf/8q+/++73f5gjJQDE | ||||||
|         ECAAAAAAQIAAAAAAAAECAAAAAAQIAAAAABAgAAAAAECAAAAAAAABAgAAAAAECAAAAAAQIAAAAABAgAAA |         zLn724CYSzHNcjkWxvJ2HAA4SekBaNEQAP7u7/8hf4yF6N5C/BjLr3/1jd/92+9j+We/+GWuGd1b3hqi | ||||||
|         AAAAAQIAAAAABMzLMwAAAMBuAgAAAAAECAAAAAAQIAAAAABAwLy8PAcAAABYTQAAAACAAAEAAAAAAgQA |         1dOfPSJl5txWtt0jJkPMlq9/81vR/cckycERAKKbvztzcjm+x2SLORbLsYcQEy/nZN6UuwIAzlB6AFo0 | ||||||
|         AAAACJiXlx/PAQAAADYTAAAAACBAAAAAAIAAAQAAAAACBAAAAAAIEAAAAAAgQAAAAACAgHl1BgAAANhN |         B4BYyHYtW7F8yzYG//pv/jZWyC4tbs1+bvtpby6uzJzbyrZ7RNce8yQmxnbCjACQUyviQcyZWIiV49ZY | ||||||
|         AAAAAIAAAQAAAAACBAAAAAAIEAAAAAAgQAAAAACAAAEAAAAAAgQAAAAACBAAAAAAIEAAAAAAgIB59fYc |         iOkUt0YeiKkVMyo2z88RZUjIz6qNuwAA3nalB6BFcwAYb/bHwvggR9waN+XCP735z7Gca443erm+MnNu | ||||||
|         AAAAYDUBAAAAAAIEAAAAAAgQAAAAACBg/jsDAAAA7CYAAAAAQIAAAAAAAAECAAAAAAQIAAAAABAgAAAA |         K9vuERNj/CVJtO8ZDkcAyM4+GvqYOREsx3SKm3KTmE45mOMlP+Q4APC2Kz0ALS4UALYN2ejYoreLm5I/ | ||||||
|         AECAAAAAAAABAgAAAAAECAAAAAAQIAAAAABAgAAAAAAAAQIAAAAABAgAAAAAECAAAAAAQIAAAAAAAAHz |         HX5Eysy5rWz7XNHfx9zYii7/ff/1R+exHN9jhRjJSRW5cUyn0dyX+ZbjY/McBwDedtsGgC5XDwD54Y3o | ||||||
|         +gwAAACwmwAAAAAAAQIAAAAABMzrd+cAAAAAqwkAAAAAECAAAAAAQIAAAAAAAAECAAAAAAQIAAAAABAg |         7b77/R+OXxFwfWXm3Fa2fa7tvysV8mM8MVVypsX3yIr5O4GYOdvpFDflHgQAAGhRegBaXDoARA/3u//6 | ||||||
|         AAAAAECAAAAAAAABAgAAAAAECAAAAAAQIAAAAABAwLw5AwAAAOwmAAAAAECAAAAAAAABAgAAAAAECAAA |         G81f/f9/u5krcH1l5txWtn2umA/l10H5m6LRwcetsRCJMQbHzMmbcn0BAABalB6AFjMCwCv/9T+CjR+j | ||||||
|         AAAQIAAAAABAgAAAAAAAAQIAAAAABAgAAAAAECAAAAAAQMC8eX8OAAAAsJoAAAAAAAECAAAAAAQIAAAA |         oc/uLRbGm/qxkG/2h7g1P5P9vvd/IDLAv/zr76K90/0/LmXm3Fa2fa6YTjlDhvgxBl/+s4/k95hyMYsi | ||||||
|         ABAgAAAAAEDAXJ4BAAAAdhMAAAAAIEAAAAAAgAABAAAAAAIEAAAAAAiYy/efzgEAAAA2EwAAAAAgQAAA |         Pca8iimUUytuivFcfzvfxvjYPMcBgLdd6QFoMSMAsKAyc24r2wIAT1XpAWghAHCKMnNuK9sCAE9V6QFo | ||||||
|         AACAAAEAAAAAAgQAAAAACBAAAAAAIEAAAAAAgAABAAAAAAIEAAAAAAiYt2cAAACA3QQAAAAACJi3V+cA |         IQBwijJzbivbAgBPVekBaCEAcIoyc24r2wIAT1XpAWghAHCKMnNuK9sCAE9V6QFoIQBwijJzbivbAgBP | ||||||
|         AAAAqwkAAAAAECAAAAAAQIAAAAAAAAECAAAAAAQIAAAAABAgAAAAAECAAAAAAAABAgAAAAAECAAAAAAQ |         VekBaCEAcIoyc24r2wIAT1XpAWghAHCKMnNuK9sCAE9V6QFoIQBwijJzbivbAgBPVekBaCEAcIoyc24r | ||||||
|         IAAAAABAgAAAAAAAAQIAAAAABMy7MwAAAMBuAgAAAAAECAAAAAAQIAAAAABAgAAAAAAAAQIAAAAABAgA |         2wIAT1XpAWghAHCKMnNuK9sCAE9V6QFoIQBwijJzbivbAgBPVekBaCEAcIoyc24r2wIAT1XpAWghAHCK | ||||||
|         AAAAECAAAAAAQIAAAAAAAAHz7vocAAAAYDUBAAAAAAIEAAAAAAgQAAAAACBAAAAAAICAeX8GAAAA2E0A |         MnNuK9sCAE9V6QFoIQBwijJzbivbAgBPVekBaCEAcIoyc24r2wIAT1XpAWghAHCKMnNuK9sCAE9V6QFo | ||||||
|         AAAAgAABAAAAAAIEAAAAAAgQAAAAACBAAAAAAIAAAQAAAAACBAAAAAAIEAAAAAAgQAAAAACAAAEAAAAA |         IQBwijJzbivbAgBPVekBaCEAcIoyc24r2wIAT1XpAWghAHCKMnNuK9sCAE9V6QFoIQBwijJzbivbAgBP | ||||||
|         AgQAAAAACBAAAAAAIEAAAAAAgAABAAAAAALm6gwAAACw21x9OAcAAABYTQAAAACAAAEAAAAAAgQAAAAA |         VekBaCEAcIoyc24r2wIAT1XpAWghAHCKMnNuK9sCAE9V6QFoIQBwijJzbivbAgBPVekBaCEAcIoyc24r | ||||||
|         CBAAAAAAIEAAAAAAgAABAAAAAAIEAAAAAAgQAAAAACBAAAAAAIAAAQAAAAACBAAAAAAIEAAAAAAgYK7P |         2wIAT1XpAWghAHCKMnNuK9sCAE9V6QFoIQBwijJzbivbAgBPVekBaCEAcIoyc24r2wIAT1XpAWghAHCK | ||||||
|         AAAAALsJAAAAABAgAAAAAEDAXH/4fA4AAACwmQAAAAAAAQIAAAAABAgAAAAAECAAAAAAQMBcfzwHAAAA |         MnNuK9sCAE9V6QFoIQBwijJzbivbAgBPVekBaCEAcIoyc24r2wIAT1XpAWghAHCKMnNuK9sCAE9V6QFo | ||||||
|         WE0AAAAAgAABAAAAAAIEAAAAAAgQAAAAACBAAAAAAIAAAQAAAAAC5sMZAAAAYDcBAAAAAAIEAAAAAAgQ |         cSwAvOel95Yqwr3KzLnNvAKARZQegBbHAsC7X3ypVBHuinlSZs5t5hUArOBoh8BJjgWAd7zzhVJIuCvm | ||||||
|         AAAAACBAAAAAAIAAAQAAAAACBAAAAAAIEAAAAAAgQAAAAACAAAEAAAAAAgQAAAAACBAAAAAAIEAAAAAA |         SZk5t5lXALCCox0CJzkWAMK7Xnix1BK2YoaUObOHeQUAT9vDOgTOcDgAhEhvPrPBXTEr3kqyN68A4El6 | ||||||
|         gAABAAAAAALm4xkAAABgt/n46RwAAABgNQEAAAAAAgQAAAAACBAAAAAAIEAAAAAAgAABAAAAAAIEAAAA |         ix0Cb7uHBAAAAOCREgAAAGAhAgAAACxEAAAAgIUIAAAAsBABAAAAFiIAAADAQgQAAABYiAAAAAALEQAA | ||||||
|         AAgQAAAAACBAAAAAAIAAAQAAAAACBAAAAAAIEAAAAAAgQAAAAACAAAEAAAAAAubTGQAAAGA3AQAAAAAC |         AGAhAgAAACxEAAAAgIUIAAAAsBABAAAAFiIAAADAQh4SAN7xzhfe/eJLL/3JnwIAwG3RN0b3WPpJGh0O | ||||||
|         BAAAAAAIEAAAAAAgQAAAAACAAAEAAAAAAgQAAAAACJhPn88BAAAAVhMAAAAAIEAAAAAAgAABAAAAAAIE |         AO964cVSVAAAuC16yNJV0uVYAIj0VmoJAAB7+D3ARRwLAD75AwDAw0QnWXpLWhwLAO956b2lkAAAsEd0 | ||||||
|         AAAAAAgQAAAAACBAAAAAAICA+XwGAAAA2E0AAAAAgAABAAAAAAIEAAAAAAgQAAAAACBAAAAAAIAAAQAA |         kqW3pMWxAFCqCAAA+5XekhYCAAAAk5TekhYCAAAAk5TekhYCAAAAk5TekhanB4Cf/eKXw49+8tP3vf8D | ||||||
|         AAACBAAAAAAIEAAAAAAgQAAAAACAAAEAAAAAAgQAAAAACBAAAAAAIEAAAAAAgPU+f/kfOAHKas5MfjcA |         ZQUAABZRektanB4Afv8f//n1b37rr//mb//u7//hd//2+1/9+rdlBQAAFlF6S1rMCAB/8bm/zOWIAfHj | ||||||
|         AAAASUVORK5CYII= |         y3/2kfzxfe//wFh+5dVPjuUhNiy/MYjVwnYk3F0tRu7uDQCAXqW3pMXUAPD6V9/IAPCzX/zyX/71d7Ec | ||||||
|  |         C/Hjr37921gOsZCtfESF3/3b73Pwu9//YYyU1bK/zx2mr3/zW2XDH/3kpzECAMBFlN6SFjMCQDTif/f3 | ||||||
|  |         /xB9fLTm0fHHYHyP5WjWo4//pzf/ORv6EKkgfowMELfGQiSHbPpfefWTd1eL/cRqMRj7ie+xnHuOW2PD | ||||||
|  |         WCE3zMMAAKBd6S1pMSMARHcefXmIDJBv8MdyRIKxwutffSOX8x39aN/jezT6MRLrx5qxHCO5VYiF+DFu | ||||||
|  |         jV4/xMho9KPvjyQQdxSpIEcAALiI0lvSYupHgIYSAMpnhDIA5MgQIyNIhPwNQASDH/3kp9Hxx62ZIiIw | ||||||
|  |         RPcfqSBGfAQIAOBSSm9Ji/4AEO37WI7GPW7KAJBbvfLqJ2Mkvsdq+Sn/EC1+BIDo/vO9/2j6Y53YJEdy | ||||||
|  |         w1gnRvweAADgOkpvSYv+ABCdejT3r3/1jR/95Kexcnb5kQR+9evfxjoxErfm+/qZAbLXjx/zc0ExmL8E | ||||||
|  |         yNXGe//xYyz4GwAAgOsovSUtTg8A+f59GYz2fXzuP3+Mxj2MVBCb5Kf5Y/N8F398tieCQSzEjzEYN8UK | ||||||
|  |         udr4jUHZEACAiyi9JS1ODwAAAJBKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kL | ||||||
|  |         AQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElK | ||||||
|  |         b0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAA | ||||||
|  |         gElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kL | ||||||
|  |         AQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElK | ||||||
|  |         b0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAA | ||||||
|  |         gElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kL | ||||||
|  |         AQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElK | ||||||
|  |         b0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAA | ||||||
|  |         gElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kL | ||||||
|  |         AQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElK | ||||||
|  |         b0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAA | ||||||
|  |         gElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kL | ||||||
|  |         AQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElK | ||||||
|  |         b0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAA | ||||||
|  |         gElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kL | ||||||
|  |         AQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElK | ||||||
|  |         b0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAA | ||||||
|  |         gElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kL | ||||||
|  |         AQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElK | ||||||
|  |         b0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAA | ||||||
|  |         gElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kL | ||||||
|  |         AQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElK | ||||||
|  |         b0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAA | ||||||
|  |         gElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kL | ||||||
|  |         AQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElK | ||||||
|  |         b0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAA | ||||||
|  |         gElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kL | ||||||
|  |         AQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElK | ||||||
|  |         b0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAA | ||||||
|  |         gElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kL | ||||||
|  |         AQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElK | ||||||
|  |         b0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAA | ||||||
|  |         gElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kL | ||||||
|  |         AQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElK | ||||||
|  |         b0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAA | ||||||
|  |         gElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kL | ||||||
|  |         AQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElK | ||||||
|  |         b0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAA | ||||||
|  |         gElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kL | ||||||
|  |         AQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElK | ||||||
|  |         b0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAA | ||||||
|  |         gElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kL | ||||||
|  |         AQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElK | ||||||
|  |         b0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAA | ||||||
|  |         gElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kL | ||||||
|  |         AQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElK | ||||||
|  |         b0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAA | ||||||
|  |         gElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kL | ||||||
|  |         AQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElK | ||||||
|  |         b0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAA | ||||||
|  |         gElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kL | ||||||
|  |         AQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElK | ||||||
|  |         b0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAA | ||||||
|  |         gElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kL | ||||||
|  |         AQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElK | ||||||
|  |         b0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAA | ||||||
|  |         gElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kL | ||||||
|  |         AQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElK | ||||||
|  |         b0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAAgElKb0kLAQAA | ||||||
|  |         gElKb0kLAQAAgElKb0kLAQAAgElKb0mLYwHgPS+9t1QRAAB2Kr0lLY4FgHe/+FKpIgAA7BGdZOktaXEs | ||||||
|  |         ALzjnS+UQgIAwB7RSZbekhbHAkB41wsvlloCAMBt0UOWrpIuhwNAiPTms0AAAOwRfaP3/i/lIQEAAAB4 | ||||||
|  |         pAQAAABYiAAAAAALEQAAAGAhAgAAACxEAAAAgIUIAAAAsBABAAAAFiIAAADAQgQAAABYiAAAAAALEQAA | ||||||
|  |         AGAhAgAAACxEAAAAgIUIAAAAsJCHBIB3vPOFd7/40kt/8qcAAHBb9I3RPZZ+kkaHA8C7XnixFBUAAG6L | ||||||
|  |         HrJ0lXQ5FgAivZVaAgDAHn4PcBHHAoBP/gAA8DDRSZbekhbHAsB7XnpvKSQAAOwRnWTpLWlxLACUKgIA | ||||||
|  |         wH6lt6SFAAAAwCSlt6TFUw4Af/G5v/zZL375vvd/oIwDAM8Vr6F//Td/WwbhLSq9JS1ODwCvf/WN3/3b | ||||||
|  |         73//H//5L//6u7/7+38ot57qRz/5adzpduTlP/tIXM6GWOGtx4OIGfHoyiAAe7zt1+RGr7z6yX9685+3 | ||||||
|  |         HfN4BYzvsTwGYyQHY5Ox8h7x/MQTlZvHwt2nK8aP7vNZ4oHE3uJ1czsYDzBsR/KQvvv9H24Hb4v1366D | ||||||
|  |         vC2e4a9/81tl8IY4sEPr3xV9Tnl+3rpt0R+283i2Yw/PmpnRxuRgPPa8l+idRoGisncH41TNwdjtA87Z | ||||||
|  |         0lvS4twAEHMlp0icEjF1YiHnWczC25P4bbk63D3zs1mP7zH145Bihbij7QoPsA0AcZ6MSzwAzxXXz7hQ | ||||||
|  |         x4tCXpN/9evflhUaRWcTV/jSAT/L6KjGW12xeYzEi13sJF5rYjlGYm+xTvRPMRgPNgbHHvaIncfm8XRl | ||||||
|  |         irjbdsdg7LkMPkwc5N1yxP7D9gU6j+TQi+nb8hK/RxzYKMcecWCH1r8rNn8rfUXU7u4zE4WIeRJFzwb9 | ||||||
|  |         6BFmgbYb3p2EOdW3g/n+aW6bZ2islg+tDD4gk4yukkbnBoCYbTFLcjbH9MrpMsbHaiEmXKwwfoxbY2T8 | ||||||
|  |         eK/Y7Y3rctxR7KSskPN7/FgOI1a+e6e37yVs9/nWrx0AS9le7ct1O9vlXI5L8d3GKDbcvnCE516xh3Gn | ||||||
|  |         2fqM8a28vO+8qsf1P9rx6JzG+tkn5fHE91iOF8F83cnDzv3ny+JO0ZZFi5bL2ReOm1Ls8N6HEwdQnsC7 | ||||||
|  |         I1txhHnAZTwGwziGEP1fjGy73jiAnVVI25VvHFKxZ6s4sFGOLHSZMOVJeMCLeJk/sfn2qbjXjeenPJNj | ||||||
|  |         cCS9eLbvprLb8kFtH1qUNfaZT0U8/FiOSRh3MaZTnolxnHF3mQTCmM+xq3EMsc8YzOX9sqWk17kBYMTE | ||||||
|  |         7WBOlxTTK9dJsZxzMcUkixViITfMm2Ih5l/+PiHELCznc4rL092TZLu32Cpm9jgfYurnDuMEiMOIkbi7 | ||||||
|  |         ci95APE9N8nlsc9cM9w9ewG4V1wz4yqay9sOIy+/sRDX3rgC59U1BvMKvH3hyMt4jMfVO0fyIry94I/l | ||||||
|  |         eD2K1XLn+WNuEu42u3HXseGzerV7xV2Pl5VYiDsaN8VyjMTrzvY1Iu53rL9HrJ+vUCG7tPIKGCN5zPGk | ||||||
|  |         5b3HSNxjfM+FWD+MkXg2xova1qhFGY/BeAijU4wVYiTuKx9UHNKoQoaEGM+bcjlfl+PWOMi431jII4nv | ||||||
|  |         sW0uxx7i1lhtVG27HE9XrJBTIu4ijjOrGSPlqQgxnk9vrDYOLJvpWDl3EmIP+UjjAGL9uCn2HOPbhx8r | ||||||
|  |         j9iTjzoOKVcLsfM4/rgpNo+dxELuKtcfzUaZpXcPOJ+W7ci4r/wx9hM/jlv32x5PHHYeZIod5mGXwTgj | ||||||
|  |         YuTuo46HMHaVdRmHt9O2saTL6X8DkKdHnF1xyuW5FN9zMGZMzP5YiPMqT84QK+R8ipkXp0Eu567Gcsy8 | ||||||
|  |         WDNWyK797szL3d69muceYkLn9SIvjiGvdPF9nPaxkPcSg+NecvNxd9vB3HleIO69mAJwV1w/47IZ19u4 | ||||||
|  |         0sYlN1uQ+B7L0VHl60X2ZyGusdFLxQpxayzHCvE9r8DZlcZILJSLcxjLcUexEPcVI9mA5itFju+5esc6 | ||||||
|  |         cXhbse24dftjLMSP25uGMRjHv908xIHl85CPLl6DtrfGQcYKuZwPavyY8hHl85P9ZYzkchx5jMfd5Ute | ||||||
|  |         PLGxZi5s95Diacynuoj1c/Psd/O+xiON7/FjrJB1iXscd5r3lc9wLMRh5/HHvcexZdVitVgeT1GuEAvb | ||||||
|  |         5VgnFuIuYs18KY+bYm7EvWQpt3KfcWss5MPMw4iDz4WYCTGeq8Wtcb8xEgcfe8tDHWKFGNwuxwqxYWyS | ||||||
|  |         u8pjjptyIb7nPrfLccDxSOPI45jvPeC78oHH9+2P49YQe4uHEHuLu4gdxl3EyHaFVI4nD3J7U3zfzoR8 | ||||||
|  |         TmJvY6scjKcub8qRfG7H4e20bSzpcnoACHGS5JU9p06MxNSJ5XFrnMkxkud/Do75tJ3rYzlPtpipeQnI | ||||||
|  |         W7fy8hTzsoznHuK+Up7AMR67ylke4lBjnVgz7iVW2N5Lbh7fc2+5nIM5sj3BAHiuuH5Gv5UdSVx+82K7 | ||||||
|  |         vZbGdTh/DLGQ19u4YudFe1yQsweKPeSrTNhenMdybDIGczn3nMt7GrJ4ZRmbpHiNGLdujzwW4sftTfEy | ||||||
|  |         F9+3g/HYx/phNLL5grhtyFIMjoecD2r8mGIkZJc5RsZzEjuMe4+b4pjjXuKu88nPW4fs6raPa8h7jP3n | ||||||
|  |         scXmsTAeabykxn3Fj+OVNAbzFTmMpzdvyuPPV+pczlvH3raDYzlujdLnYNzLOPhYiJtyeYhNYjAPIBZS | ||||||
|  |         PMPxffskjDY3dhJrxoPK3mBr+5zE+nHXsRAPNvcQG+aR5HIsbI8nl2OfsYd8ukLsJNe8LR94fM8f4x7j | ||||||
|  |         x3FriB3GAceBxQ7jod098lSOZ3vXeVN8z5qmuJc8yLFVDuYBjMF8Wsbh7VR6S1qcGwBiZuS5HeJkGxea | ||||||
|  |         mDpjBsdyTNmYdmEMjvk0zvmyHKdc7C1+jO85shXXplAGw3YPIU7gXC2OKo4hvg952ONeYiR+zM3zwEIu | ||||||
|  |         b/cZq21PFQBu215Uh+21NFbI146UF+24RMcFPK7bcWu2lfESEwvRr8RI9jHbi/NYvvvqM/YcRqP8YLGT | ||||||
|  |         ceS5/3FT9lLZro3BOJixfjFePbdi/Xy8IfvacVOKkVA6ufEMx3gcYSzEMYR4DvO5zVuHuIvYakSIrdxb | ||||||
|  |         3nV2tPFjPITcSSzHQ44axci439hPLIfxiPKmEAs5sl3e7u3uCuPWshwL8WMuD7FJDIZYiBWGKHQcVVQk | ||||||
|  |         n4TR5sZNsWYM3vvYs7XII8nHEj/GtvmshhgZhxTfx/Hkcm6Ya6axwg1xR7HVmJmxSfw4bi3uPey0vbus | ||||||
|  |         +7gpdhg35SHlSJYspkGMjLk0yh0lHrvKBxXf88edSm9Ji3MDQEyd7SSLaZQzaczgnNkZWLfTesynnFu5 | ||||||
|  |         wgi+cenJkyGvQeNqmHKfcdN2MOXexo/jHrcnQ2wYhx33OO4lL4XxPfecBzbOhO0+Y8NxVgDwXOOiurW9 | ||||||
|  |         lkaDFZfoXI6FuCm6k7g1LsKxEB1Y7CGWYySv2LFOjMQFPC/O2RKNl49x2Q9xVR8Neuwh9px7GHIPh67q | ||||||
|  |         2yPPV6jYcyznrmIkX1Cyfcyjuvvwb4iXqnjIuRyvp/HkjJtSHnB8H31bjsRCdnWxeRzD2DB2GMecy8P2 | ||||||
|  |         Xoo84NxV7CT3E/vPncSP8RhjYfvQ4qbY4faO8qZ8TnJkuzz2loN3Kzj2s12OhXyYW7FJDOa2uZ8oRzy0 | ||||||
|  |         OMiYJ+NJiIXcNnYS4zEr4mhz/a3cT6yTd5o/Zinj2c7BcUjxfTyHsbcYj7uO9WOrGImdx61jYg+5/zIY | ||||||
|  |         xzOqGbfG3sZN+8WG4/nZTsJ8kuOo4tZYyEc9pu52juUKsVUc+TiGPN1yeb/SW9Jixh8BxwSKuRXfYzmm | ||||||
|  |         2hiPKZgzL9NkfB/TKE+/mHwxF2MwZlvsIUZyhfgxB3Mk9pNbpZzZd0/dsL3EbH/Mhdhhbhv3nidnDua9 | ||||||
|  |         5EUtboqRcTCx4XafeWbGSP4IwG15IS2D22YlXx3ie16T46UkXxdyOV84oinJa3L2K7EQV+nty0eulnvL | ||||||
|  |         hRBb5SU9B2M5W6Ihfowjic23g7dtjzwOIPYZBxYj8T2WYyTvNAdjYXRXO+WhRteVjde4ryEG4/kcL745 | ||||||
|  |         EncUa+YTGLfmTuLHfF2OY97uIY4wBvMl767cQyzk3rKFjR3mTuKOQgxmOcZ9xat5PvA84LwpxEL8GLbL | ||||||
|  |         Y295JHFHcTCxba4wbi3LsZA734pNYnAUYuwn7i4fe3zPB5Lb5k7iaHP92HC7t5CzK5+cfJKzlLGQRxLL | ||||||
|  |         uRBPQuwk1slbx/5jD9Fp5POT+9mKg8k1t3IPscM81Ltb7bF9frYzM44nJ+F4tmMwb43BrEsMxjHHYD60 | ||||||
|  |         OCNyMCdhzoFDSm9Ji9P/BiCnV8ybnEA5GJMvplEMxmkWUznmWU7EnFshBuPWvHiNFWLzXCE2j73lXBwT | ||||||
|  |         eog149YymOLuxl2MH/MMz54+jzPGY+Tee8nV4hHFUcV4nDDbfcZg3BQr5I8A3BbXz7zkbkVLEZfT7Y95 | ||||||
|  |         aY0XhXHFjg3z+pwNeuzk7hU7Xz5yJL7nhtsXiOhvxn5ieYw/WDnyfIHIbmk8zLijOKoyuF88lng2wr2N | ||||||
|  |         V9xd7nO8SGWLFvcVP+axxXMYz2TsIb7HTWU/sf94QrYjW2P/+dTF/mM5dps7ybrEnvP1Oh/+eELykGIh | ||||||
|  |         b8pb86bt8thbLpcKllvHcizEj7k8xKPeTo94KmInOZIv8fkkhJwzYyd5PLnmVtwaW40fY/3YQ4zEQo6P | ||||||
|  |         Q9ruf+z23r5ij9hDbBV7O7TV1jiGFA/w7iSMxzsG80QLsVUMxr3HAxmDcRhxMGVwv9Jb0mLGHwHPlBe7 | ||||||
|  |         7SwHgGXFa+KhbJM9axmEt1HpLWnx1AJAJNG35V0cAHgCjgaAV3b/Z2rwMNvGki5PLQAAAHBZpbekhQAA | ||||||
|  |         AMAkpbekhQAAAMAkpbekhQAAAMAkpbekhQAAAMAkpbekxYkB4L/58uXLly9fvnz5WuCrNIE3lN6SFucG | ||||||
|  |         gP/xgf93skNTkPOo/spUf2WqvzLVX9ahKpTekhYCAKdQ/ZWp/spUf2Wqv6xDVSi9JS0EAE6h+itT/ZWp | ||||||
|  |         /spUf1mHqlB6S1oIAJxC9Vem+itT/ZWp/rIOVaH0lrQQADiF6q9M9Vem+itT/WUdqkLpLWkhAHAK1V+Z | ||||||
|  |         6q9M9Vem+ss6VIXSW9JCAOAUqr8y1V+Z6q9M9Zd1qAqlt6SFAMApVH9lqr8y1V+Z6i/rUBVKb0kLAYBT | ||||||
|  |         qP7KVH9lqr8y1V/WoSqU3pIWAgCnUP2Vqf7KVH9lqr+sQ1UovSUtBABOoforU/2Vqf7KVH9Zh6pQekta | ||||||
|  |         CACcQvVXpvorU/2Vqf6yDlWh9Ja0EAA4heqvTPVXpvorU/1lHapC6S1pIQBwCtVfmeqvTPVXpvrLOlSF | ||||||
|  |         0lvSQgDgFKq/MtVfmeqvTPWXdagKpbekhQDAKVR/Zaq/MtVfmeov61AVSm9JCwGAU6j+ylR/Zaq/MtVf | ||||||
|  |         1qEqlN6SFgIAp1D9lan+ylR/Zaq/rENVKL0lLQQATqH6K1P9lan+ylR/WYeqUHpLWggAnEL1V6b6K1P9 | ||||||
|  |         lan+sg5VofSWtBAAOIXqr0z1V6b6K1P9ZR2qQuktaSEAcArVX5nqr0z1V6b6yzpUhdJb0kIA4BSqvzLV | ||||||
|  |         X5nqr0z1l3WoCqW3pMUVA8AHP/yxP3/9H8NHPv2VctNzuRBcxAOq//IrX/jMG2/+1f/63ymWP/TRT5V1 | ||||||
|  |         blP9i3hA9T/xxe98/tu/2Vb/6Omv+hfxgOpvxZU/58Crr32v3HSD6l/EoerHFT5f658lmoGyyb1U/woO | ||||||
|  |         VaH0lrS4XACILvBL3/33//nT/5PKrc/lQnARR6sfDd8o+laMlzVvUP2LOFT9eI3fnvJbn/3Gz8vKN6j+ | ||||||
|  |         RRw997fKdaDceoPqX8Sh6kfM25b7rp3vAqj+FRyqQuktaXGtAPDxz33ttR//cXv+lxWey4XgIg5V/89f | ||||||
|  |         /8dt0Yv9bwSq/kUcqv6zuv+0PwGq/kUcqv7Wy698oVS/rHCD6l/EoeoLAE/JoSqU3pIWVwkAH/rop+69 | ||||||
|  |         FpTVnsuF4CL2V/+DH/7YNvVFwxcd/2e/8fMxEreWTZ5F9S9if/U/8cXvbAsdpf/4575W3gbe+Ukw1b+I | ||||||
|  |         /dUv7r4ElBVuUP2LOFT9UfE492P5Luf+I3KoCqW3pMVVAkAE/XHR3yqrPZcLwUXsr/62Bfzz1/9xjG8z | ||||||
|  |         gPeBHpf91Y/X+FHll1/5whiPJDDGd/4KSPUvYn/1t7bXgaGsc4PqX8Sh6o+3fuI6UG46RPWv4FAVSm9J | ||||||
|  |         i8sFgC99998//+3f5HIoqz2XC8FF7K/+9vM/20b/WeM3qP5F7K/++PxPLGzHt+8IbGPhDap/EfurP5Rf | ||||||
|  |         Aw5ltRtU/yIOVX8U+tBf+9yl+ldwqAqlt6TFtT4C9IkvfieWt53fdp09XAguYn/1P/65r+Vve8ubQH4D | ||||||
|  |         8Hjtr36c8nG+hzz3h5gVo/p+A/C47K/+sP3Q15d/8IexXFa7QfUv4lD1R6HHJz/jVSCuBnH6lzVvU/0r | ||||||
|  |         OFSF0lvS4lp/BJwEgCfgwdVPEQjHO4KxUG59FtW/iLdS/Zdf+UKEge37wT4H/Lgcrf72tz3Z/40fy5o3 | ||||||
|  |         qP5FHKr+KPRdMRN2/hugQfWv4FAVSm9JCwGAUzy4+mn7MbCYD+XWZ1H9i3hY9be/8xn8K0CPztHqb/8Z | ||||||
|  |         qIh/AsCjdqj6o9D3Kh8LvEH1r+BQFUpvSQsBgFM8uPph++eAr/34j94HenQeVv2/uvOPwJRPhd2m+hdx | ||||||
|  |         qPrbv/bOqC8APGqHqj8KHb78gz9E6SPwb3/7l1PiuVT/Cg5VofSWtBAAOMWDq1/+LfDy0fDbVP8iHlb9 | ||||||
|  |         e38D8Plv/6as9iyqfxH7q7/929/o/zLqCwCP2qFzfxR6VD9sXwJifKx8g+pfwaEqlN6SFgIAp3hY9ePS | ||||||
|  |         v3375+g/DaH6F/Hgcz8mwEc+/ZVIfdu/BN0ZAlX/IvZXfxv5xt99CgCP2qFzP6/28T1O/O340X8JUPWv | ||||||
|  |         4FAVSm9JCwGAUzyg+h/88Me2nwbe/wHQQfUv4sHn/vChj35qzISdHwRS/YvYWf1tibPKaZv9cmTPvwmj | ||||||
|  |         +hfx1s/9sO0B9vwTcKp/BYeqUHpLWggAnOJo9e92/+M3wvup/kXsr/6oeJz15abo/PKmWCg33Uv1L2Jn | ||||||
|  |         9bf/+M9td+fGXap/EfvP/Zf/6w++U7nax8iofvnlwL1U/woOVaH0lrQQADjFoeq/Ld1/UP2L2F/9UfS7 | ||||||
|  |         n/Uf7wQLAI/LzuoLAE/S/nN/+/ff5Zc8PgL0GB2qQuktaSEAcIr91X+7uv+g+hexv/rb0m/f6tv+S1A7 | ||||||
|  |         /w5Y9S9iZ/XjNI8WMK72xfYjQDniPeBHZP+5H2Udhd5e9sv4WP8G1b+CQ1UovSUtBABOsb/62zd7nkUL | ||||||
|  |         +Ljsr/620c9Cx+k/PvyT9nwIOKj+Reyv/r221S833aD6F3Go+tuwF8tx7n/2Gz/f/jsQO/9LYNW/gkNV | ||||||
|  |         KL0lLQQATrG/+qXbu5cPgTwuh8797S8B7tr/L0Gp/kUcqv5dAsCjdqj6L//f/+xb4dx/XA5VofSWtBAA | ||||||
|  |         OMX+6m//KcBnEQAel0Pn/gc//LF7fwsUnUFcCsrKN6j+RRyq/l0CwKN2tPqRAba/Bxj2/xfgQfWv4FAV | ||||||
|  |         Sm9JiysGgGgIPvLpr4Q9H/0sXAgu4lD1s9w3fOijnyqb3Ev1L+IB536UOD8RHoEwvn/ii985+qcgqn8R | ||||||
|  |         D6j+VsyEPOsPXf9V/yIeVv2Pf+5rcdZH0x/f4zqw84I/qP4VHKpC6S1pccUA8Fa4EFyE6q9M9Vem+itT | ||||||
|  |         /WUdqkLpLWkhAHAK1V+Z6q9M9Vem+ss6VIXSW9JCAOAUqr8y1V+Z6q9M9Zd1qAqlt6SFAMApVH9lqr8y | ||||||
|  |         1V+Z6i/rUBVKb0kLAYBTqP7KVH9lqr8y1V/WoSqU3pIWAgCnUP2Vqf7KVH9lqr+sQ1UovSUtBABOofor | ||||||
|  |         U/2Vqf7KVH9Zh6pQektaCACcQvVXpvorU/2Vqf6yDlWh9Ja0EAA4heqvTPVXpvorU/1lHapC6S1pIQBw | ||||||
|  |         CtVfmeqvTPVXpvrLOlSF0lvSQgDgFKq/MtVfmeqvTPWXdagKpbekhQDAKVR/Zaq/MtVfmeov61AVSm9J | ||||||
|  |         CwGAU6j+ylR/Zaq/MtVf1qEqlN6SFgIAp1D9lan+ylR/Zaq/rENVKL0lLQQATqH6K1P9lan+ylR/WYeq | ||||||
|  |         UHpLWggAnEL1V6b6K1P9lan+sg5VofSWtBAAOIXqr0z1V6b6K1P9ZR2qQuktaSEAcArVX5nqr0z1V6b6 | ||||||
|  |         yzpUhdJb0kIA4BSqvzLVX5nqr0z1l3WoCqW3pIUAwClUf2WqvzLVX5nqL+tQFUpvSQsBgFOo/spUf2Wq | ||||||
|  |         vzLVX9ahKpTekhYCAKdQ/ZWp/spUf2Wqv6xDVSi9JS0EAE6h+itT/ZWp/spUf1mHqlB6S1qcGwB8+fLl | ||||||
|  |         y5cvX758Pfmv0gTeUHpLWvgNAKdQ/ZWp/spUf2Wqv6xDVSi9JS0EAE6h+itT/ZWp/spUf1mHqlB6S1oI | ||||||
|  |         AJxC9Vem+itT/ZWp/rIOVaH0lrQQADiF6q9M9Vem+itT/WUdqkLpLWkhAHAK1V+Z6q9M9Vem+ss6VIXS | ||||||
|  |         W9JCAOAUqr8y1V+Z6q9M9Zd1qAqlt6SFAMApVH9lqr8y1V+Z6i/rUBVKb0kLAYBTqP7KVH9lqr8y1V/W | ||||||
|  |         oSqU3pIWAgCnUP2Vqf7KVH9lqr+sQ1UovSUtBABOoforU/2Vqf7KVH9Zh6pQektaCACcQvVXpvorU/2V | ||||||
|  |         qf6yDlWh9Ja0EAA4heqvTPVXpvorU/1lHapC6S1pIQBwCtVfmeqvTPVXpvrLOlSF0lvSQgDgFKq/MtVf | ||||||
|  |         meqvTPWXdagKpbekhQDAKVR/Zaq/MtVfmeov61AVSm9JCwGAU6j+ylR/Zaq/MtVf1qEqlN6SFgIAp1D9 | ||||||
|  |         lan+ylR/Zaq/rENVKL0lLQQATqH6K1P9lan+ylR/WYeqUHpLWggAnEL1V6b6K1P9lan+sg5VofSWtBAA | ||||||
|  |         OIXqr0z1V6b6K1P9ZR2qQuktaSEAcArVX5nqr0z1V6b6yzpUhdJb0kIA4BSqvzLVX5nqr0z1l3WoCqW3 | ||||||
|  |         pIUAwClUf2WqvzLVX9nbWP0PffRTH/n0Vz744Y+V8btU/woOVaH0lrS4XACIE/6z3/j5X/2v/x1i4eOf | ||||||
|  |         +1pZ4TYXgovYX/0o8Z+//o83vPra9+KVoGx1L9W/iAec+y+/8oXPvPFmnvjh89/+zSe++J2yzm2qfxEP | ||||||
|  |         qH6c4Nvqx/LOU35Q/YvYU/24pMeFPU7we5v7GIxbX/vxH//nT/9P+vIP/nD7aqD6V3CoCqW3pMWFAkCc | ||||||
|  |         9vGqP875IV4P9rwHkFwILmJ/9aO+peJ3RRQsW91L9S/i0LkfZ3fUt1Q8xQt/BIOy/rOo/kUcqn6Ibq/U | ||||||
|  |         PcV4WfMG1b+I51Z/e7LfbevjavCl7/77WGHrxquA6l/BoSqU3pIWFwoA93b/KXrEsvKzuBBcxP7q7wkA | ||||||
|  |         OyeA6l/EoXP/xokfXvvxH/3+53E5VP1XX/teqfjW/gyg+hdxo/pxIpfm/m59P/PGm9sVimf9HkD1r+BQ | ||||||
|  |         FUpvSYurBIA4scdJ/uUf/CGuC2H7S8DbvwEcXAguYn/1o9DR398V02BUP7qEstW9VP8i9lf/I5/+yqhy | ||||||
|  |         nO/x8h8jUe5t9f3+53HZX/0Pfvhj24t8FPrjn/tazIHtoPj3uDyr+nGdHzUdSgCIWo+bYg7EpSAGtxEx | ||||||
|  |         Lgvb9QfVv4JDVSi9JS2uEgDGGwNxho8P/GwvB5//9m/Gyje4EFzEoerfa/tekSbgcdlf/W1bsA3529Yw | ||||||
|  |         Fsb4Dap/Efurv+3ttiE/YsAYjzwwxm9Q/Yt4VvX/6r7f9JYAsJ0P25u2nxq6988CVf8KDlWh9Ja0uEQA | ||||||
|  |         ePmVL4zTu7zTP64az4r+hQvBReyv/r22bwzvzH5B9S9if/W3AaDctO0Yyk33Uv2L2F/97ae/xvs+afwK | ||||||
|  |         6Evf/fft+LOo/kU8q/p5OkeY33bzJQA8az5sA2HZJKn+FRyqQuktaXGJADByf77VF81fnOQhTvtYTjv/ | ||||||
|  |         FtCF4CL2V/9ez33L516qfxH7q78NANtzPF7+x7jfADwu+6s/Mt7dLl/8e6SeVf3PvPFmnOxxXm/f3Cnd | ||||||
|  |         /PaDANvxMDaJiVFuCqp/BYeqUHpLWlwiAIxuL0778cbPUK4Rt7kQXMT+6t+1bf52/uYnqf5F7K/+9r29 | ||||||
|  |         ePmPH6P6n/jid7bvBcb1oWx1L9W/iP3VH13+3dNcAHiknlv9GwFgjN/t8kdjcO9vhFT/Cg5VofSWtLhE | ||||||
|  |         ANhe6++1swMILgQXsb/6d23fFRb/HqND1R9v+93rNf8K0GOzv/rbX/RtqxwhMOo+btrz61/Vv4jnVv9h | ||||||
|  |         AeB2IFT9KzhUhdJb0uKKASCy/mfeeHP7FmCIq0bZ6l4uBBexv/p3bX8LFK1AufUG1b+IQ9Uv3V6x88QP | ||||||
|  |         qn8R+6tffv+TJ3t8f8DFX/Uv4rnVFwCeqkNVKL0lLS4XAMbLQNj+26DxkjDWv8GF4CL2V7/Y9gT7f/OT | ||||||
|  |         VP8iDlU/0v6o+F3bC8Jtqn8Rh6pffv9T3gxKeyaA6l/Ec6svADxVh6pQektaXC4AlDd7ti8P2/FncSG4 | ||||||
|  |         iP3VL7Zv/u1/9zep/kXsr/62G3jtx3989bXvxUiEwO01wd8APC6Hzv2XX/nCjd//pLLJvVT/Ip5b/bcY | ||||||
|  |         AGK2lJuC6l/BoSqU3pIWlwsA5aa4QDzrpnu5EFzE/upvbf/nh0N//ptU/yL2V3/7KfDyUe/tZcF7wI/I | ||||||
|  |         0XM/zvrymZ849283fHep/kU8t/o3AsCIgncDwNjk7k1B9a/gUBVKb0mLSwSAbRNQbhIAHqn91d/afhpk | ||||||
|  |         +x8D7aT6F7G/+qPP+9Kdf9xje+7v+V2Q6l/E/upH5Isqp8h4UeWQfw08IoEPfz4uz63+jQCwzfzb8e0b | ||||||
|  |         Q/f+PlD1r+BQFUpvSYtLBIDt///38f/7H333EaBHan/1t7YfBtj5ye8t1b+I/dUfL/l3f+GzfVfYvwPz | ||||||
|  |         iOyv/jbjbf8VoG3Dt/ONANW/iOdW/0YA2L4BtM382w7h3vmg+ldwqAqlt6TFJQLA9nK//Zs/fwT8eO2v | ||||||
|  |         /rAt99E//02qfxH7q7/97d/2fwGPjn+M+xDI47K/+tu/+N/2gtt3gne+EaD6F/Hc6t8IANv5MD7qExNg | ||||||
|  |         ++/CbYPioPpXcKgKpbekxSUCQNi+2xdne1wXtiNh+37ADS4EF3Go+mn7256d5S5U/yL2V3/bDYSYA3Hu | ||||||
|  |         RyrY/i5oZxpU/Ys4dO5ve7vo+aL625HPvPFmWf9ZVP8inlv9GwEg3J4PIxUUqn8Fh6pQektaXCUARMrf | ||||||
|  |         vuQX+98PdiG4iEPVD9t3fO9+HHwn1b+IQ9X3z4A+MYeqv33Tt9hf+qD6F/Hc6t8OAOUdga3oEO59+z+o | ||||||
|  |         /hUcqkLpLWlxlQAQ4lq//c3vsP9NoOBCcBFHqx+vBKPi24+CHKL6F/GA6t+b/z//7d9oAR+do9WP8/1u | ||||||
|  |         9eO1YH/pg+pfxHOrfzsAhHvnw5d/8Icbfwik+ldwqAqlt6TFhQJAyn8X4rPf+Hl8f/W17z0r8T+LC8FF | ||||||
|  |         HK1+FDpeGNKhF/4t1b+IB5z7UfR44Y+zPjn3H6+3Xv24CJQVnkv1L2JP9Z97qY/xuAJEGxA58DNvvBlz | ||||||
|  |         4/aLgupfwaEqlN6SFpcLAG+RC8FFqP7KVH9lqr8y1V/WoSqU3pIWAgCnUP2Vqf7KVH9lqr+sQ1UovSUt | ||||||
|  |         BABOoforU/2Vqf7KVH9Zh6pQektaCACcQvVXpvorU/2Vqf6yDlWh9Ja0EAA4heqvTPVXpvorU/1lHapC | ||||||
|  |         6S1pIQBwCtVfmeqvTPVXpvrLOlSF0lvSQgDgFKq/MtVfmeqvTPWXdagKpbekhQDAKVR/Zaq/MtVfmeov | ||||||
|  |         61AVSm9JCwGAU6j+ylR/Zaq/MtVf1qEqlN6SFgIAp1D9lan+ylR/Zaq/rENVKL0lLQQATqH6K1P9lan+ | ||||||
|  |         ylR/WYeqUHpLWggAnEL1V6b6K1P9lan+sg5VofSWtBAAOIXqr0z1V6b6K1P9ZR2qQuktaSEAcArVX5nq | ||||||
|  |         r0z1V6b6yzpUhdJb0kIA4BSqvzLVX5nqr0z1l3WoCqW3pIUAwClUf2WqvzLVX5nqL+tQFUpvSQsBgFOo | ||||||
|  |         /spUf2WqvzLVX9ahKpTekhYCAKdQ/ZWp/spUf2Wqv6xDVSi9JS0EAE6h+itT/ZWp/spUf1mHqlB6S1oI | ||||||
|  |         AJxC9Vem+itT/ZWp/rIOVaH0lrQQADiF6q9M9Vem+itT/WUdqkLpLWkhAHAK1V+Z6q9M9Vem+ss6VIXS | ||||||
|  |         W9JCAOAUqr8y1V+Z6q9M9Zd1qAqlt6TFuQHAly9fvnz58uXL15P/Kk3gDaW3pMWxAPCel95bqggAADuV | ||||||
|  |         3pIWxwLAu198qVQRAAD2iE6y9Ja0OBYA3vHOF0ohAQBgj+gkS29Ji2MBILzrhRdLLQEA4LboIUtXSZfD | ||||||
|  |         ASBEevNZIAAA9oi+0Xv/l/KQAAAAADxSAgAAACxEAAAAgIUIAAAAsBABAAAAFiIAAADAQgQAAABYiAAA | ||||||
|  |         AAALEQAAAGAhAgAAACxEAAAAgIUIAAAAsBABAAAAlvHf3/H/AQUa2VmH6cUpAAAAAElFTkSuQmCC | ||||||
| </value> | </value> | ||||||
|   </data> |   </data> | ||||||
|   <data name="pictureBox2.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> |   <data name="pictureBox2.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> | ||||||
|  | @ -1820,329 +2054,6 @@ | ||||||
|         BhgAAAAASUVORK5CYII= |         BhgAAAAASUVORK5CYII= | ||||||
| </value> | </value> | ||||||
|   </data> |   </data> | ||||||
|   <data name="smartGroupBox1.BackImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> |  | ||||||
|     <value> |  | ||||||
|         iVBORw0KGgoAAAANSUhEUgAAA1wAAAC+CAIAAACu45mHAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAACH |  | ||||||
|         DwAAjA8AAP1SAACBQAAAfXkAAOmLAAA85QAAGcxzPIV3AAAKOWlDQ1BQaG90b3Nob3AgSUNDIHByb2Zp |  | ||||||
|         bGUAAEjHnZZ3VFTXFofPvXd6oc0w0hl6ky4wgPQuIB0EURhmBhjKAMMMTWyIqEBEEREBRZCggAGjoUis |  | ||||||
|         iGIhKKhgD0gQUGIwiqioZEbWSnx5ee/l5ffHvd/aZ+9z99l7n7UuACRPHy4vBZYCIJkn4Ad6ONNXhUfQ |  | ||||||
|         sf0ABniAAaYAMFnpqb5B7sFAJC83F3q6yAn8i94MAUj8vmXo6U+ng/9P0qxUvgAAyF/E5mxOOkvE+SJO |  | ||||||
|         yhSkiu0zIqbGJIoZRomZL0pQxHJijlvkpZ99FtlRzOxkHlvE4pxT2clsMfeIeHuGkCNixEfEBRlcTqaI |  | ||||||
|         b4tYM0mYzBXxW3FsMoeZDgCKJLYLOKx4EZuImMQPDnQR8XIAcKS4LzjmCxZwsgTiQ7mkpGbzuXHxArou |  | ||||||
|         S49uam3NoHtyMpM4AoGhP5OVyOSz6S4pyalMXjYAi2f+LBlxbemiIluaWltaGpoZmX5RqP+6+Dcl7u0i |  | ||||||
|         vQr43DOI1veH7a/8UuoAYMyKarPrD1vMfgA6tgIgd/8Pm+YhACRFfWu/8cV5aOJ5iRcIUm2MjTMzM424 |  | ||||||
|         HJaRuKC/6386/A198T0j8Xa/l4fuyollCpMEdHHdWClJKUI+PT2VyeLQDf88xP848K/zWBrIieXwOTxR |  | ||||||
|         RKhoyri8OFG7eWyugJvCo3N5/6mJ/zDsT1qca5Eo9Z8ANcoISN2gAuTnPoCiEAESeVDc9d/75oMPBeKb |  | ||||||
|         F6Y6sTj3nwX9+65wifiRzo37HOcSGExnCfkZi2viawnQgAAkARXIAxWgAXSBITADVsAWOAI3sAL4gWAQ |  | ||||||
|         DtYCFogHyYAPMkEu2AwKQBHYBfaCSlAD6kEjaAEnQAc4DS6Ay+A6uAnugAdgBIyD52AGvAHzEARhITJE |  | ||||||
|         geQhVUgLMoDMIAZkD7lBPlAgFA5FQ3EQDxJCudAWqAgqhSqhWqgR+hY6BV2ArkID0D1oFJqCfoXewwhM |  | ||||||
|         gqmwMqwNG8MM2An2hoPhNXAcnAbnwPnwTrgCroOPwe3wBfg6fAcegZ/DswhAiAgNUUMMEQbigvghEUgs |  | ||||||
|         wkc2IIVIOVKHtCBdSC9yCxlBppF3KAyKgqKjDFG2KE9UCIqFSkNtQBWjKlFHUe2oHtQt1ChqBvUJTUYr |  | ||||||
|         oQ3QNmgv9Cp0HDoTXYAuRzeg29CX0HfQ4+g3GAyGhtHBWGE8MeGYBMw6TDHmAKYVcx4zgBnDzGKxWHms |  | ||||||
|         AdYO64dlYgXYAux+7DHsOewgdhz7FkfEqeLMcO64CBwPl4crxzXhzuIGcRO4ebwUXgtvg/fDs/HZ+BJ8 |  | ||||||
|         Pb4LfwM/jp8nSBN0CHaEYEICYTOhgtBCuER4SHhFJBLVidbEACKXuIlYQTxOvEIcJb4jyZD0SS6kSJKQ |  | ||||||
|         tJN0hHSedI/0ikwma5MdyRFkAXknuZF8kfyY/FaCImEk4SXBltgoUSXRLjEo8UISL6kl6SS5VjJHslzy |  | ||||||
|         pOQNyWkpvJS2lIsUU2qDVJXUKalhqVlpirSptJ90snSxdJP0VelJGayMtoybDFsmX+awzEWZMQpC0aC4 |  | ||||||
|         UFiULZR6yiXKOBVD1aF6UROoRdRvqP3UGVkZ2WWyobJZslWyZ2RHaAhNm+ZFS6KV0E7QhmjvlygvcVrC |  | ||||||
|         WbJjScuSwSVzcopyjnIcuUK5Vrk7cu/l6fJu8onyu+U75B8poBT0FQIUMhUOKlxSmFakKtoqshQLFU8o |  | ||||||
|         3leClfSVApXWKR1W6lOaVVZR9lBOVd6vfFF5WoWm4qiSoFKmclZlSpWiaq/KVS1TPaf6jC5Ld6In0Svo |  | ||||||
|         PfQZNSU1TzWhWq1av9q8uo56iHqeeqv6Iw2CBkMjVqNMo1tjRlNV01czV7NZ874WXouhFa+1T6tXa05b |  | ||||||
|         RztMe5t2h/akjpyOl06OTrPOQ12yroNumm6d7m09jB5DL1HvgN5NfVjfQj9ev0r/hgFsYGnANThgMLAU |  | ||||||
|         vdR6KW9p3dJhQ5Khk2GGYbPhqBHNyMcoz6jD6IWxpnGE8W7jXuNPJhYmSSb1Jg9MZUxXmOaZdpn+aqZv |  | ||||||
|         xjKrMrttTjZ3N99o3mn+cpnBMs6yg8vuWlAsfC22WXRbfLS0suRbtlhOWWlaRVtVWw0zqAx/RjHjijXa |  | ||||||
|         2tl6o/Vp63c2ljYCmxM2v9ga2ibaNtlOLtdZzllev3zMTt2OaVdrN2JPt4+2P2Q/4qDmwHSoc3jiqOHI |  | ||||||
|         dmxwnHDSc0pwOub0wtnEme/c5jznYuOy3uW8K+Lq4Vro2u8m4xbiVun22F3dPc692X3Gw8Jjncd5T7Sn |  | ||||||
|         t+duz2EvZS+WV6PXzAqrFetX9HiTvIO8K72f+Oj78H26fGHfFb57fB+u1FrJW9nhB/y8/Pb4PfLX8U/z |  | ||||||
|         /z4AE+AfUBXwNNA0MDewN4gSFBXUFPQm2Dm4JPhBiG6IMKQ7VDI0MrQxdC7MNaw0bGSV8ar1q66HK4Rz |  | ||||||
|         wzsjsBGhEQ0Rs6vdVu9dPR5pEVkQObRGZ03WmqtrFdYmrT0TJRnFjDoZjY4Oi26K/sD0Y9YxZ2O8Yqpj |  | ||||||
|         ZlgurH2s52xHdhl7imPHKeVMxNrFlsZOxtnF7YmbineIL4+f5rpwK7kvEzwTahLmEv0SjyQuJIUltSbj |  | ||||||
|         kqOTT/FkeIm8nhSVlKyUgVSD1ILUkTSbtL1pM3xvfkM6lL4mvVNAFf1M9Ql1hVuFoxn2GVUZbzNDM09m |  | ||||||
|         SWfxsvqy9bN3ZE/kuOd8vQ61jrWuO1ctd3Pu6Hqn9bUboA0xG7o3amzM3zi+yWPT0c2EzYmbf8gzySvN |  | ||||||
|         e70lbEtXvnL+pvyxrR5bmwskCvgFw9tst9VsR23nbu/fYb5j/45PhezCa0UmReVFH4pZxde+Mv2q4quF |  | ||||||
|         nbE7+0ssSw7uwuzi7Rra7bD7aKl0aU7p2B7fPe1l9LLCstd7o/ZeLV9WXrOPsE+4b6TCp6Jzv+b+Xfs/ |  | ||||||
|         VMZX3qlyrmqtVqreUT13gH1g8KDjwZYa5ZqimveHuIfu1nrUttdp15UfxhzOOPy0PrS+92vG140NCg1F |  | ||||||
|         DR+P8I6MHA082tNo1djYpNRU0gw3C5unjkUeu/mN6zedLYYtta201qLj4Ljw+LNvo78dOuF9ovsk42TL |  | ||||||
|         d1rfVbdR2grbofbs9pmO+I6RzvDOgVMrTnV32Xa1fW/0/ZHTaqerzsieKTlLOJt/duFczrnZ86nnpy/E |  | ||||||
|         XRjrjup+cHHVxds9AT39l7wvXbnsfvlir1PvuSt2V05ftbl66hrjWsd1y+vtfRZ9bT9Y/NDWb9nffsPq |  | ||||||
|         RudN65tdA8sHzg46DF645Xrr8m2v29fvrLwzMBQydHc4cnjkLvvu5L2key/vZ9yff7DpIfph4SOpR+WP |  | ||||||
|         lR7X/aj3Y+uI5ciZUdfRvidBTx6Mscae/5T+04fx/Kfkp+UTqhONk2aTp6fcp24+W/1s/Hnq8/npgp+l |  | ||||||
|         f65+ofviu18cf+mbWTUz/pL/cuHX4lfyr468Xva6e9Z/9vGb5Dfzc4Vv5d8efcd41/s+7P3EfOYH7IeK |  | ||||||
|         j3ofuz55f3q4kLyw8Bv3hPP74uYdwgAAAAlwSFlzAAAOxAAADsQBlSsOGwAADc5JREFUeF7t1sFtHFEM |  | ||||||
|         A9Dtvx2X4HsqSDHRagYKwBb4hHdZz7+RkPUxxhhjjDHGtM/P79/x/jB98/P7Z7w/TOVYAkYHjDHfsQvK |  | ||||||
|         x1FoLAGjAybn6QRVLncF6LS5v0dhfKKEJYAOMNHnxAsaXO4K0GlzdxRWswTQASb6nHhBg8tdATpt7o7C |  | ||||||
|         apYAOsBEnxMvaHC5K0Cnzd1RWM0SQAeY6HPiBQ0udwXotLk7CqtZAugAE31OvKDB5a4AnTZ3R2E1SwAd |  | ||||||
|         YKLPiRc0uNwVoNPm7iisZgmgA0z0OfGCBpe7AnTa3B2F1SwBdICJPide0OByV4BOm7ujsJolgA4w0efE |  | ||||||
|         Cxpc7grQaXN3FFazBNABJvqceEGDy10BOm3ujsJqlgA6wESfEy9ocLkrQKfN3VFYzRJAB5joc+IFDS53 |  | ||||||
|         Bei0uTsKq1kC6AATfU68oMHlrgCdNndHYTVLAB1gos+JFzS43BWg0+buKKxmCaADTPQ58YIGl7sCdNrc |  | ||||||
|         HYXVLAF0gIk+J17Q4HJXgE6bu6OwmiWADjDR58QLGlzuCtBpc3cUVrME0AEm+px4QYPLXQE6be6OwmqW |  | ||||||
|         ADrARJ8TL2hwuStAp83dUVjNEkAHmOhz4gUNLncF6LS5OwqrWQLoABN9TrygweWuAJ02d0dhNUsAHWCi |  | ||||||
|         z4kXNLjcFaDT5u4orGYJoANM9DnxggaXuwJ02twdhdUsAXSAiT4nXtDgcleATpu7o7CaJYAOMNHnxAsa |  | ||||||
|         XO4K0GlzdxRWswTQASb6nHhBg8tdATpt7o7CapYAOsBEnxMvaHC5K0Cnzd1RWM0SQAeY6HPiBQ0udwXo |  | ||||||
|         tLk7CqtZAugAE31OvKDB5a4AnTZ3R2E1SwAdYKLPiRc0uNwVoNPm7iisZgmgA0z0OfGCBpe7AnTa3B2F |  | ||||||
|         1SwBdICJPide0OByV4BOm7ujsJolgA4w0efECxpc7grQaXN3FFazBNABJvqceEGDy10BOm3ujsJqlgA6 |  | ||||||
|         wESfEy9ocLkrQKfN3VFYzRJAB5joc+IFDS53Bei0uTsKq1kC6AATfU68oMHlrgCdNndHYTVLAB1gos+J |  | ||||||
|         FzS43BWg0+buKKxmCaADTPQ58YIGl7sCdNrcHYXVLAF0gIk+J17Q4HJXgE6bu6OwmiWADjDR58QLGlzu |  | ||||||
|         CtBpc3cUVrME0AEm+px4QYPLXQE6be6OwmqWADrARJ8TL2hwuStAp83dUVjNEkAHmOhz4gUNLncF6LS5 |  | ||||||
|         OwqrWQLoABN9TrygweWuAJ02d0dhNUsAHWCiz4kXNLjcFaDT5u4orGYJoANM9DnxggaXuwJ02twdhdUs |  | ||||||
|         AXSAiT4nXtDgcleATpu7o7CaJYAOMNHnxAsaXO4K0GlzdxRWswTQASb6nHhBg8tdATpt7o7CapYAOsBE |  | ||||||
|         nxMvaHC5K0Cnzd1RWM0SQAeY6HPiBQ0udwXotLk7CqtZAugAE31OvKDB5a4AnTZ3R2E1SwAdYKLPiRc0 |  | ||||||
|         uNwVoNPm7iisZgmgA0z0OfGCBpe7AnTa3B2F1SwBdICJPide0OByV4BOm7ujsJolgA4w0efECxpc7grQ |  | ||||||
|         aXN3FFazBNABJvqceEGDy10BOm3ujsJqlgA6wESfEy9ocLkrQKfN3VFYzRJAB5joc+IFDS53Bei0uTsK |  | ||||||
|         q1kC6AATfU68oMHlrgCdNndHYTVLAB1gos+JFzS43BWg0+buKKxmCaADTPQ58YIGl7sCdNrcHYXVLAF0 |  | ||||||
|         gIk+J17Q4HJXgE6bu6OwmiWADjDR58QLGlzuCtBpc3cUVrME0AEm+px4QYPLXQE6be6OwmqWADrARJ8T |  | ||||||
|         L2hwuStAp83dUVjNEkAHmOhz4gUNLncF6LS5OwqrWQLoABN9TrygweWuAJ02d0dhNUsAHWCiz4kXNLjc |  | ||||||
|         FaDT5u4orGYJoANM9DnxggaXuwJ02twdhdUsAXSAiT4nXtDgcleATpu7o7CaJYAOMNHnxAsaXO4K0Glz |  | ||||||
|         dxRWswTQASb6nHhBg8tdATpt7o7CapYAOsBEnxMvaHC5K0Cnzd1RWM0SQAeY6HPiBQ0udwXotLk7CqtZ |  | ||||||
|         AugAE31OvKDB5a4AnTZ3R2E1SwAdYKLPiRc0uNwVoNPm7iisZgmgA0z0OfGCBpe7AnTa3B2F1SwBdICJ |  | ||||||
|         Pide0OByV4BOm7ujsJolgA4w0efECxpc7grQaXN3FFazBNABJvqceEGDy10BOm3ujsJqlgA6wESfEy9o |  | ||||||
|         cLkrQKfN3VFYzRJAB5joc+IFDS53Bei0uTsKq1kC6AATfU68oMHlrgCdNndHYTVLAB1gos+JFzS43BWg |  | ||||||
|         0+buKKxmCaADTPQ58YIGl7sCdNrcHYXVLAF0gIk+J17Q4HJXgE6bu6OwmiWADjDR58QLGlzuCtBpc3cU |  | ||||||
|         VrME0AEmemO+oxDlc0ehqR1LwOiA+T/PfwUKbfrvLohPNLjcFaCWJYAO8JgCfCf+So9N3y7odbkrQC1L |  | ||||||
|         AB3gMQUw7XO7wHSOXWAsAaMDJufpBFUudwXotLm/R2F8ooQlgA4w0efECxpc7grQaXN3FFazBNABJvqc |  | ||||||
|         eEGDy10BOm3ujsJqlgA6wESfEy9ocLkrQKfN3VFYzRJAB5joc+IFDS53Bei0uTsKq1kC6AATfU68oMHl |  | ||||||
|         rgCdNndHYTVLAB1gos+JFzS43BWg0+buKKxmCaADTPQ58YIGl7sCdNrcHYXVLAF0gIk+J17Q4HJXgE6b |  | ||||||
|         u6OwmiWADjDR58QLGlzuCtBpc3cUVrME0AEm+px4QYPLXQE6be6OwmqWADrARJ8TL2hwuStAp83dUVjN |  | ||||||
|         EkAHmOhz4gUNLncF6LS5OwqrWQLoABN9TrygweWuAJ02d0dhNUsAHWCiz4kXNLjcFaDT5u4orGYJoANM |  | ||||||
|         9DnxggaXuwJ02twdhdUsAXSAiT4nXtDgcleATpu7o7CaJYAOMNHnxAsaXO4K0GlzdxRWswTQASb6nHhB |  | ||||||
|         g8tdATpt7o7CapYAOsBEnxMvaHC5K0Cnzd1RWM0SQAeY6HPiBQ0udwXotLk7CqtZAugAE31OvKDB5a4A |  | ||||||
|         nTZ3R2E1SwAdYKLPiRc0uNwVoNPm7iisZgmgA0z0OfGCBpe7AnTa3B2F1SwBdICJPide0OByV4BOm7uj |  | ||||||
|         sJolgA4w0efECxpc7grQaXN3FFazBNABJvqceEGDy10BOm3ujsJqlgA6wESfEy9ocLkrQKfN3VFYzRJA |  | ||||||
|         B5joc+IFDS53Bei0uTsKq1kC6AATfU68oMHlrgCdNndHYTVLAB1gos+JFzS43BWg0+buKKxmCaADTPQ5 |  | ||||||
|         8YIGl7sCdNrcHYXVLAF0gIk+J17Q4HJXgE6bu6OwmiWADjDR58QLGlzuCtBpc3cUVrME0AEm+px4QYPL |  | ||||||
|         XQE6be6OwmqWADrARJ8TL2hwuStAp83dUVjNEkAHmOhz4gUNLncF6LS5OwqrWQLoABN9TrygweWuAJ02 |  | ||||||
|         d0dhNUsAHWCiz4kXNLjcFaDT5u4orGYJoANM9DnxggaXuwJ02twdhdUsAXSAiT4nXtDgcleATpu7o7Ca |  | ||||||
|         JYAOMNHnxAsaXO4K0GlzdxRWswTQASb6nHhBg8tdATpt7o7CapYAOsBEnxMvaHC5K0Cnzd1RWM0SQAeY |  | ||||||
|         6HPiBQ0udwXotLk7CqtZAugAE31OvKDB5a4AnTZ3R2E1SwAdYKLPiRc0uNwVoNPm7iisZgmgA0z0OfGC |  | ||||||
|         Bpe7AnTa3B2F1SwBdICJPide0OByV4BOm7ujsJolgA4w0efECxpc7grQaXN3FFazBNABJvqceEGDy10B |  | ||||||
|         Om3ujsJqlgA6wESfEy9ocLkrQKfN3VFYzRJAB5joc+IFDS53Bei0uTsKq1kC6AATfU68oMHlrgCdNndH |  | ||||||
|         YTVLAB1gos+JFzS43BWg0+buKKxmCaADTPQ58YIGl7sCdNrcHYXVLAF0gIk+J17Q4HJXgE6bu6OwmiWA |  | ||||||
|         DjDR58QLGlzuCtBpc3cUVrME0AEm+px4QYPLXQE6be6OwmqWADrARJ8TL2hwuStAp83dUVjNEkAHmOhz |  | ||||||
|         4gUNLncF6LS5OwqrWQLoABN9TrygweWuAJ02d0dhNUsAHWCiz4kXNLjcFaDT5u4orGYJoANM9DnxggaX |  | ||||||
|         uwJ02twdhdUsAXSAiT4nXtDgcleATpu7o7CaJYAOMNHnxAsaXO4K0GlzdxRWswTQASb6nHhBg8tdATpt |  | ||||||
|         7o7CapYAOsBEnxMvaHC5K0Cnzd1RWM0SQAeY6HPiBQ0udwXotLk7CqtZAugAE31OvKDB5a4AnTZ3R2E1 |  | ||||||
|         SwAdYKLPiRc0uNwVoNPm7iisZgmgA0z0OfGCBpe7AnTa3B2F1SwBdICJPide0OByV4BOm7ujsJolgA4w |  | ||||||
|         0efECxpc7grQaXN3FFazBNABJvqceEGDy10BOm3ujsJqlgA6wESfEy9ocLkrQKfN3VFYzRJAB5joc+IF |  | ||||||
|         DS53Bei0uTsKq1kC6AATfU68oMHlrgCdNndHYTVLAB1gos+JFzS43BWg0+buKKxmCaADTPQ58YIGl7sC |  | ||||||
|         dNrcHYXVLAF0gIk+J17Q4HJXgE6bu6OwmiWADjDR58QLGlzuCtBpc3cUVrME0AEm+px4QYPLXQE6be6O |  | ||||||
|         wmqWADrARJ8TL2hwuStAp83dUVjNEkAHmOhz4gUNLncF6LS5OwqrWQLoABN9TrygweWuAJ02d0dhNUsA |  | ||||||
|         HWCiz4kXNLjcFaDT5u4orGYJoANM9DnxggaXuwJ02twdhdUsAXSAiT4nXtDgcleATpu7o7CaJYAOMNHn |  | ||||||
|         xAsaXO4K0GlzdxRWswTQASZ6Y4wxxhhjjDHGGGOMMcYYY4wx5p3P5x/JBc1GRFwSdwAAAABJRU5ErkJg |  | ||||||
|         gg== |  | ||||||
| </value> |  | ||||||
|   </data> |  | ||||||
|   <data name="pictureBox1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> |  | ||||||
|     <value> |  | ||||||
|         iVBORw0KGgoAAAANSUhEUgAABAAAAABGCAIAAADdMXG2AAAABGdBTUEAALGOfPtRkwAAACBjSFJNAACH |  | ||||||
|         DwAAjA8AAP1SAACBQAAAfXkAAOmLAAA85QAAGcxzPIV3AAAKOWlDQ1BQaG90b3Nob3AgSUNDIHByb2Zp |  | ||||||
|         bGUAAEjHnZZ3VFTXFofPvXd6oc0w0hl6ky4wgPQuIB0EURhmBhjKAMMMTWyIqEBEEREBRZCggAGjoUis |  | ||||||
|         iGIhKKhgD0gQUGIwiqioZEbWSnx5ee/l5ffHvd/aZ+9z99l7n7UuACRPHy4vBZYCIJkn4Ad6ONNXhUfQ |  | ||||||
|         sf0ABniAAaYAMFnpqb5B7sFAJC83F3q6yAn8i94MAUj8vmXo6U+ng/9P0qxUvgAAyF/E5mxOOkvE+SJO |  | ||||||
|         yhSkiu0zIqbGJIoZRomZL0pQxHJijlvkpZ99FtlRzOxkHlvE4pxT2clsMfeIeHuGkCNixEfEBRlcTqaI |  | ||||||
|         b4tYM0mYzBXxW3FsMoeZDgCKJLYLOKx4EZuImMQPDnQR8XIAcKS4LzjmCxZwsgTiQ7mkpGbzuXHxArou |  | ||||||
|         S49uam3NoHtyMpM4AoGhP5OVyOSz6S4pyalMXjYAi2f+LBlxbemiIluaWltaGpoZmX5RqP+6+Dcl7u0i |  | ||||||
|         vQr43DOI1veH7a/8UuoAYMyKarPrD1vMfgA6tgIgd/8Pm+YhACRFfWu/8cV5aOJ5iRcIUm2MjTMzM424 |  | ||||||
|         HJaRuKC/6386/A198T0j8Xa/l4fuyollCpMEdHHdWClJKUI+PT2VyeLQDf88xP848K/zWBrIieXwOTxR |  | ||||||
|         RKhoyri8OFG7eWyugJvCo3N5/6mJ/zDsT1qca5Eo9Z8ANcoISN2gAuTnPoCiEAESeVDc9d/75oMPBeKb |  | ||||||
|         F6Y6sTj3nwX9+65wifiRzo37HOcSGExnCfkZi2viawnQgAAkARXIAxWgAXSBITADVsAWOAI3sAL4gWAQ |  | ||||||
|         DtYCFogHyYAPMkEu2AwKQBHYBfaCSlAD6kEjaAEnQAc4DS6Ay+A6uAnugAdgBIyD52AGvAHzEARhITJE |  | ||||||
|         geQhVUgLMoDMIAZkD7lBPlAgFA5FQ3EQDxJCudAWqAgqhSqhWqgR+hY6BV2ArkID0D1oFJqCfoXewwhM |  | ||||||
|         gqmwMqwNG8MM2An2hoPhNXAcnAbnwPnwTrgCroOPwe3wBfg6fAcegZ/DswhAiAgNUUMMEQbigvghEUgs |  | ||||||
|         wkc2IIVIOVKHtCBdSC9yCxlBppF3KAyKgqKjDFG2KE9UCIqFSkNtQBWjKlFHUe2oHtQt1ChqBvUJTUYr |  | ||||||
|         oQ3QNmgv9Cp0HDoTXYAuRzeg29CX0HfQ4+g3GAyGhtHBWGE8MeGYBMw6TDHmAKYVcx4zgBnDzGKxWHms |  | ||||||
|         AdYO64dlYgXYAux+7DHsOewgdhz7FkfEqeLMcO64CBwPl4crxzXhzuIGcRO4ebwUXgtvg/fDs/HZ+BJ8 |  | ||||||
|         Pb4LfwM/jp8nSBN0CHaEYEICYTOhgtBCuER4SHhFJBLVidbEACKXuIlYQTxOvEIcJb4jyZD0SS6kSJKQ |  | ||||||
|         tJN0hHSedI/0ikwma5MdyRFkAXknuZF8kfyY/FaCImEk4SXBltgoUSXRLjEo8UISL6kl6SS5VjJHslzy |  | ||||||
|         pOQNyWkpvJS2lIsUU2qDVJXUKalhqVlpirSptJ90snSxdJP0VelJGayMtoybDFsmX+awzEWZMQpC0aC4 |  | ||||||
|         UFiULZR6yiXKOBVD1aF6UROoRdRvqP3UGVkZ2WWyobJZslWyZ2RHaAhNm+ZFS6KV0E7QhmjvlygvcVrC |  | ||||||
|         WbJjScuSwSVzcopyjnIcuUK5Vrk7cu/l6fJu8onyu+U75B8poBT0FQIUMhUOKlxSmFakKtoqshQLFU8o |  | ||||||
|         3leClfSVApXWKR1W6lOaVVZR9lBOVd6vfFF5WoWm4qiSoFKmclZlSpWiaq/KVS1TPaf6jC5Ld6In0Svo |  | ||||||
|         PfQZNSU1TzWhWq1av9q8uo56iHqeeqv6Iw2CBkMjVqNMo1tjRlNV01czV7NZ874WXouhFa+1T6tXa05b |  | ||||||
|         RztMe5t2h/akjpyOl06OTrPOQ12yroNumm6d7m09jB5DL1HvgN5NfVjfQj9ev0r/hgFsYGnANThgMLAU |  | ||||||
|         vdR6KW9p3dJhQ5Khk2GGYbPhqBHNyMcoz6jD6IWxpnGE8W7jXuNPJhYmSSb1Jg9MZUxXmOaZdpn+aqZv |  | ||||||
|         xjKrMrttTjZ3N99o3mn+cpnBMs6yg8vuWlAsfC22WXRbfLS0suRbtlhOWWlaRVtVWw0zqAx/RjHjijXa |  | ||||||
|         2tl6o/Vp63c2ljYCmxM2v9ga2ibaNtlOLtdZzllev3zMTt2OaVdrN2JPt4+2P2Q/4qDmwHSoc3jiqOHI |  | ||||||
|         dmxwnHDSc0pwOub0wtnEme/c5jznYuOy3uW8K+Lq4Vro2u8m4xbiVun22F3dPc692X3Gw8Jjncd5T7Sn |  | ||||||
|         t+duz2EvZS+WV6PXzAqrFetX9HiTvIO8K72f+Oj78H26fGHfFb57fB+u1FrJW9nhB/y8/Pb4PfLX8U/z |  | ||||||
|         /z4AE+AfUBXwNNA0MDewN4gSFBXUFPQm2Dm4JPhBiG6IMKQ7VDI0MrQxdC7MNaw0bGSV8ar1q66HK4Rz |  | ||||||
|         wzsjsBGhEQ0Rs6vdVu9dPR5pEVkQObRGZ03WmqtrFdYmrT0TJRnFjDoZjY4Oi26K/sD0Y9YxZ2O8Yqpj |  | ||||||
|         ZlgurH2s52xHdhl7imPHKeVMxNrFlsZOxtnF7YmbineIL4+f5rpwK7kvEzwTahLmEv0SjyQuJIUltSbj |  | ||||||
|         kqOTT/FkeIm8nhSVlKyUgVSD1ILUkTSbtL1pM3xvfkM6lL4mvVNAFf1M9Ql1hVuFoxn2GVUZbzNDM09m |  | ||||||
|         SWfxsvqy9bN3ZE/kuOd8vQ61jrWuO1ctd3Pu6Hqn9bUboA0xG7o3amzM3zi+yWPT0c2EzYmbf8gzySvN |  | ||||||
|         e70lbEtXvnL+pvyxrR5bmwskCvgFw9tst9VsR23nbu/fYb5j/45PhezCa0UmReVFH4pZxde+Mv2q4quF |  | ||||||
|         nbE7+0ssSw7uwuzi7Rra7bD7aKl0aU7p2B7fPe1l9LLCstd7o/ZeLV9WXrOPsE+4b6TCp6Jzv+b+Xfs/ |  | ||||||
|         VMZX3qlyrmqtVqreUT13gH1g8KDjwZYa5ZqimveHuIfu1nrUttdp15UfxhzOOPy0PrS+92vG140NCg1F |  | ||||||
|         DR+P8I6MHA082tNo1djYpNRU0gw3C5unjkUeu/mN6zedLYYtta201qLj4Ljw+LNvo78dOuF9ovsk42TL |  | ||||||
|         d1rfVbdR2grbofbs9pmO+I6RzvDOgVMrTnV32Xa1fW/0/ZHTaqerzsieKTlLOJt/duFczrnZ86nnpy/E |  | ||||||
|         XRjrjup+cHHVxds9AT39l7wvXbnsfvlir1PvuSt2V05ftbl66hrjWsd1y+vtfRZ9bT9Y/NDWb9nffsPq |  | ||||||
|         RudN65tdA8sHzg46DF645Xrr8m2v29fvrLwzMBQydHc4cnjkLvvu5L2key/vZ9yff7DpIfph4SOpR+WP |  | ||||||
|         lR7X/aj3Y+uI5ciZUdfRvidBTx6Mscae/5T+04fx/Kfkp+UTqhONk2aTp6fcp24+W/1s/Hnq8/npgp+l |  | ||||||
|         f65+ofviu18cf+mbWTUz/pL/cuHX4lfyr468Xva6e9Z/9vGb5Dfzc4Vv5d8efcd41/s+7P3EfOYH7IeK |  | ||||||
|         j3ofuz55f3q4kLyw8Bv3hPP74uYdwgAAAAlwSFlzAAAOxAAADsQBlSsOGwAAJANJREFUeF7tnYmXVUWe |  | ||||||
|         5+dfmOmpc6bbhVrGpcausTynq6aq6/RYbZVVnuoap5QdBBVUXBDRYhMUygILEDcEcUGtRhASWW0gWRJy |  | ||||||
|         IZElSWQRM9kFhIRMKFoQBFuB+RI3uBXzjeVFvkySfDd/3/M5nHwRvxs34hdxb/x+7933+E8LV+0SBEEQ |  | ||||||
|         BEEQBKGNIAmAIAiCIAiCILQhJAEQBEEQBEEQhDaEJAAXKJ/1wfoJYz8Z0WfPI7fu7/Xjum7XN9xxxcoZ |  | ||||||
|         sxru+Lv6Du0O3H0TymuG9drw8qiy2QvpWEEQBEEQBEEoINpuArCkpHr9xHE1T/Uun/VvCPcR6xNJAkDU |  | ||||||
|         33ll6bwltUPvrnr1hSUlH1GbgiAIgiAIgtDKaYsJQEXRnO2DutS3vwoB/brXxu9+9DYzxE9xJgBgxxN3 |  | ||||||
|         Vo9/Fn/Ud2i3bXD38vfnU/uCIAiCIAiC0GppWwlA2ewFex6+NQ3l9/f+yaqp09KXhC8BACunzzzQ84fp |  | ||||||
|         y92P/mb5wgo6lyAIgiAIgiC0QtpKArCs+MMtox5DTL9+wtjP7vmHJHBf+8aEPQ//Mo3jiUACsPPx31W/ |  | ||||||
|         Mib5GxnFqnenoqlPht+/dOk6Oq8gCIIgCIIgtCraRAJQNenFQ52+l8Tru/r9y5q3Xl85fSbyAQTuSaGT |  | ||||||
|         QAIAKopmfzyyX8XMuWj8s3t/lBQe6nzN2jcm0tkFQRAEQRAEofWQ8QRgcemW7YO6pFF7Sl3X6yuK5pTP |  | ||||||
|         nIdMYNOYwbse+22aIaTYCcDhjt/e8/AvN/9pAI4qm7Ooctp7hzr/d7IBtUN7FpdtpZ4IgiAIgiAIQmsg |  | ||||||
|         ywlAyaLKfff9I0XnCYc7fVf9+M+FP3Y+cedHzz+NaL78/fkr3yta9/r46pef3TRmyPKFFZtHD9w4bljV |  | ||||||
|         xHGrpkyBPXKG9a+M2Tao66Eu1zTccUXZ7IX17a82m03Z2+fmZYvXUH8EQRAEQRAE4bKT2QSgdP6yAz3+ |  | ||||||
|         J8XlKZ+M6LP1mUeoENR3aLe/148/feiWnY//3xXzS3YM6Lj70d8gmq/rej1ZAqQH24Z0p8KUAz1vXL6g |  | ||||||
|         jHolCIIgCIIgCJeXbCYAiP7run2fInKTlTNmHep8DRUS4e8AgIPdb6j0/4gQgIH8OpAgCIIgCILQqshg |  | ||||||
|         AlCyqDLw3j/Yf++PVr89mQptciYAYNW7Uw/e9fdUaHKgx43yLJAgCIIgCILQeshaArC4dMu++35GUTix |  | ||||||
|         aeyQHb/vQIU2MQlA7dB7Ph7ZjwqJvX1ulu8EC4IgCIIgCK2ErCUA2wZ3o/jbpmLm3MMdv02FNjEJwKEu |  | ||||||
|         16x8r4gKbWqG3Uv9FIRmYenaPWu3HkzBSzIQmp3S6n21nx6tP3by2PHTBxtO7PrsGDxPNoKQAeT2IggZ |  | ||||||
|         JlMJQNWkFynytjnQ84er33mLCp3EJACgctp7zq8IE2smT6LeCi0GQrTzhrIUrmEselRKl25oiHf1OZQQ |  | ||||||
|         AZNBAMQN+rCLqtz0GdlcRnSflBDTUy1BaykVmdG85Gy2ENFjuyiqzRKY9K+/OavHef48roXGhsKwP3Hq |  | ||||||
|         K338+fNobcvOBrJphTTj7aUtXBGCUFhkJwFYtni1/av8R7pde2repK82V56aM+FI1wu1W0c8WPNUL9PG |  | ||||||
|         R2QCsGVkv9one1ChTV3X65YuW099FloGSQCaDuIVfQ4lRDNkEKApx7YAultK4biEBmKKLNtCuKPHdlFU |  | ||||||
|         myUwfXqQF9XY8H1v3ef6yIsqiCXRjLeXtnBFCEJhkZ0EYPvAzhRzg6+qlun7zfnzZ1Zd+OH/1e9MPnD3 |  | ||||||
|         TaaNj8gEYN99P1v32stU6KR2aE/qs9AySALQdJryLj7FT4369KAF0N1SCscl5pu4JLJsC+GOHttFUW2W |  | ||||||
|         oAUMNTaJPX3ma33kRRXEkmjG20tbuCIEobDISAJQUTSXom1wpPN3z587p+830LmzDe2vKpu9gMx8RCYA |  | ||||||
|         IL7NstkLqedCCyAJQLNATwHtrfucDJyUVu/TB1wUSsjm8qK7pRSOS7SREkK6LTsbMBb4HAuMLAs03MGI |  | ||||||
|         MJaEnG9y67FdFNVmCTsBgOKXMVJlfYwhSQDIQBCEFiYjCcCevr+mUPsC7a86d+qEvt+cP3/2+F/29/7J |  | ||||||
|         utdfYTMP8QnA6j+/ffCuH1Chk52P/456LrQAkgA0Cxu2HdKnUUIETAZOaj89qg9QaoUbP7qUEs5q9BiU |  | ||||||
|         DjacoFoTxHzxzbYe0FU9vIiZSkeXQLVZAqPTTjEU/0GW/fwPVBAea8bbS4FeEYKQYbKQAFTMdLz9n3Bi |  | ||||||
|         wuPnz35z4dZ19pvjL/WtHdrT+R8AO4lPADaPHrhjQEcq9FE2ZxH1X7jUSALQXJhfhYRingKix2Ya+/B0 |  | ||||||
|         q0KPQQmLimozACIzPTx5j9bAdEuq+KeA6KpJVBDubeHbiyAILUkWEoBtg7tTkG3ylwd/enxMr7/0+V/4 |  | ||||||
|         u/qVMZ8+dItZGyA+AdjV//aN456iQh81T/Wi/guXGkkAmouDDX/9SA3K+Tae/fxPQf+SoB6DkiQAbQdn |  | ||||||
|         AgDFPAVEn5ulkgRAEITLS8EnAEtKquvbX01Btg/E9PUd2lGhj/gEoK7b9R9OmUKFPg53/M7iFZtoFMIl |  | ||||||
|         RRKA5qKxTwHR8z/1x06SQWGhh6EkCUDbwZcAxDzHQjlzKkkABEG4vBR8AlD16gsUYZsc6/fPXy6YfLr0 |  | ||||||
|         ffx77LFbymd9gMIj3a/74u3hKAlzcNsO/Htq5ovH+usPDY72vunL4j+jNZvDez+jEnBy+nMN7a9Kjj3+ |  | ||||||
|         8sOnV7x3umwGqJs0sGZ4jwCbx/YvLtf/efCadyZ98oe7ycAHLNe98YI6cOe6159PDvzoxSd9KUf5rLkf |  | ||||||
|         j+oDmy3PPlQ6r5hqM8MlTQCSr4EmxH8v0Gap8X/uxP/ADoz1qJTwkgyaHfo9k3BX6fkf5A9k4MP0arw3 |  | ||||||
|         AqStUTlIq0D4XHoYSjkTALPZ+IXR9OVkLiRAtWEalQDAV+lZGjVH6VGAqvLAHG9TLsAAplvM53livgZj |  | ||||||
|         2jfKvSn53Rls8nAULHV3lfDSrEpJC8OYhzR2IE2/LhLMRXuJVosgFAoFnwDs7H97EmE7aH/V2eN/0beu |  | ||||||
|         8+fPfn5k1fSZKP+qaqkuitO50yeP3n3hO75nVi/URdE6PvY+HHj8uV76tdKZNR80dPzPYdZPHIXRrSwq |  | ||||||
|         ovIYKqe/t+btV82ST/5wj+m0hMUrNh7u+t9Sm7oe7cggM1yKBAC7KZqlaBjCfn+w4USjtpYtOxvs35dM |  | ||||||
|         2snZVRjoA5Sc9nvrPke0YdKUd6/pG42BN0HhBG2khBGRgY3Pq1D9sZMxEwdnmiNFCbIOMwiDTHugS5WS |  | ||||||
|         Q0zM1rSREjqZljudoO2UcjrcN3CUoBy1ZO8E/qFOJgq7zlwepqPwd1oO7IgNhdo0Lpx1rnMIhTHfDLFn |  | ||||||
|         Fl2yG0w8Zh7YdHA63boaqTlN4UDW/MQMs0DtkLENhmwvieTO0PQ7DFrG1IeXln17gT3dARLFdEmbKvmG |  | ||||||
|         75xl2wkoiVkzKegbekj3AShxQqOcKQiZobATgOLymsAjPUfuul5f5Re16d03Uf5Ng+NH2cL696fa48Cv |  | ||||||
|         P/1Ev47WF2+PwIEni8bq10rnTh1v6PKtNPJ2suXZhzDA6gkjqTwGHEUH7hzwG9NvCSXFlaYNIIPMgIBA |  | ||||||
|         u14pJo4MY8eUtmKiEOfeRnIGlyn2Dm3WYrem3+6EsBGaNo0FfdYNKaH/ZJBCz//kPG+MN9BIOGSx51r/ |  | ||||||
|         ZYgO0aVKdlyiK4KyjwK6Tim8GHIOHLWwoaNM4BNnbG3K5390XlsEZV815oFOD6QgwMp5FhiE4zCaWcR/ |  | ||||||
|         gWsQrYXXSaOgkZoRcPjyNK++JLTVL3J5LOZaiImAc3oePgy0Q5cPrujAMgs3BbSdkm/49izrv1yKvJXR |  | ||||||
|         jchWzp4LQiYp7ASgomh2Eus7sROAmtfGoDyfBODpJiUAp2aO068v6tign1PwTWwe/SgG2FwJwPbBjp8f |  | ||||||
|         lQQgP8J7kqnw/oQAJWcWkSgQPtIObQ7NGRTG/3ZhAApNfLEpnT3sdjQS6Q00G4jtaK6dbdIhulTJjkt0 |  | ||||||
|         RVDOaEbXKQVmMHLgsPH5OSb6T+RckOEAMZU9feaBvngOxM9sYIyAZjanwqF5o6CRopP6heozGadgXrSR |  | ||||||
|         El42u8fCYWvT26HbS4wCM6gtlHzDb+wsB66sBKx5bZpLkgMIbY3CTgCqX342ifWd2AnAjpeGojzvBOD0 |  | ||||||
|         ipn6dbQ+H9EJB9oJwIk3H6fgm/jw3bcvDDCPBKDT35TPmheTACxdVmXaADLIDLSphCPRMPaOiC0WewxO |  | ||||||
|         gX/tN+0CATcFbWin/thJXzu+N0epP+nQ7L0fL5trh6N31JyRFjqsq5UwIjIwQWxkRyqJN9C4Hd0GYjua |  | ||||||
|         a6foEF2qZMcluiIoZzSj65TQK6pNgJfsaUqWE4ZPVfChM/Mxw8pEAdfZi98+3KnwgU4PAHTYXswQegj0 |  | ||||||
|         C0O+MQLfzCaDhdPsJQT3UiP5YY/UHJTvmy3mOwXoJEoiPWbfGXx3GFT53GW3A/l8hZdOX9m3u0RoGasL |  | ||||||
|         Tdmn8I0LaAsln1l4lvGvPcs+DwBzChLBgakz7absRS4IGaawE4CaYb2SWN+JnQDs+VNflNsJwFebKtJv |  | ||||||
|         7p5ZOe/sCb4HJQnA0Z43nJz6J/DFW0+fnDHu6321utrQV+tLThY9f3La6FNFLxwf90DSE0oAvtpcfvCl |  | ||||||
|         fmvffNnHyunTkwHaCcDu/r+oen0c2f+VyS+Xzl9iH7jz97clDZosX7DCtAFkkBloU2nKXZ42YOwitP1Q |  | ||||||
|         cOzboWlnsuMetKzrlHyJBO3QydDsJ5TwMvDOXGNBrKDbVULnyQDEJAkpNFhEFeQNjItG5JtEZwCBs8Me |  | ||||||
|         bcIJMKBDtJFSIHwB2kjJbofQdko+YzMihGjg+JsCLLsdjEjXKcFLFMmRQ+Bqs5Yw+xN2BYgxppmFaCXT |  | ||||||
|         OoF8PaSBQLSqbXeFV1089kjNbvs6jGhVW1x8dznGY+QQ+1ogl/qyenIXLlLyFbXjHAXdXiD4nM5oB9m+ |  | ||||||
|         W42uVvIN355leMBc0vYs04pKgSXdNOzLx/YSGQhChinsBGDPI79KImwndgKw7w/3opwSgC/+/Ix5FDh6 |  | ||||||
|         /4/OnflSVyslCQBxtPdN58+d0xZKZyrnk00CJQBHul+3q//tNBYnFMcfuPfaRRU1ZOOEDvzsvr9fuGon |  | ||||||
|         2aya+q+mDSCDzEB3eV/smBPa6iL3MOf+lHMXx+6l65R856IdGi/t/Zh20GaB9mDbpWTgiwmAnU5QxJNA |  | ||||||
|         I/VFXXYA4XuDNkXbKfn8nKCNlOxggtB2Sk5jO3a3B54z16LxOkNeHKWrcw0QtdoulyXIaUydh+x1DuwV |  | ||||||
|         61yuNFKK/hPIpTmHEIk9UnNo6IlpnEBjT2Y2p8eAaQPZq5dads64HfvavrJt7OVHFx3knEG6m/kicl2t |  | ||||||
|         5Bu+Pct2r+ATXa2UfLpiE3NpADNPg5wDFIRMUtgJwIGeP6RQ28ROAPYP74lySgCO/f7X5lEJ/1FbpauV |  | ||||||
|         nAkA4Fzi9cFkkEAJwMkZow8N+m1JcaWPJcs/SgZIcfzu/r9Ixx7G/ujg41EPVMycVTqvOGH1v765/4Gb |  | ||||||
|         yIYayQy0E9jRaiS0VQSCWnNnRShMtYC2eWdTMeEC7dDULIQ+2zto06GgjcJxisPC76thY9Z2SoENmEZH |  | ||||||
|         tQk01z6/mWhTpbC9NlLCiaiW0HZKTmMauC9solSKgmNak861TTZUa2J6OKfrchrTm9noBhmkUA+dsVpk |  | ||||||
|         PKerlZrrDV3nSM15sRetOfb06sjpMUDT7bx4c2Z04cszhQJ3O9mg24vPn2TmuzR0tZJv+DTLTcklTC9B |  | ||||||
|         vtsgJVSBVSoIGaOwE4DDnb5LobaJnQAcePLCE/mcADxxq3lUwn9sXa2rlXwJAH0t+MSE/mSQYH8H4Ozn |  | ||||||
|         DRR8m9R3/q8I1jHAZkwAYqBGMgNtKnknAPp4JWdYn0I7a6NCcHQvwQwFfJscbb0k38bfdDAifQ4lehM0 |  | ||||||
|         MrRNiIl4EiigdM5jHnOtTZV8fk7QRkq+KCdF2yk5jSMDFFpLMSNKQBoGY0AtkJkJhq+NcrkC5DQ2DaDA |  | ||||||
|         RzH0nq7z4oqcWTop1eaHc6TmarSjRnNVpwN3thNPMpsg552BEiqfr8il9irFgbpOybfmKYb2melqJd/w |  | ||||||
|         qUuU7qboaiVnU40K6815oVuZIGSYwk4AKM4mWnMCcO7LLyj4Jra4fgVIEoD8oE3Ftx2Gob0Q0Rua9WHu |  | ||||||
|         KFD4jIgPEKJROEjy7ZfUK1OX+rNsCjLM8I7G4tvFE7SREnZf8qQJBbLOvAJmulopJvXSpko+PydoIyWc |  | ||||||
|         iGoJbadkG1MG5Qx5E+A9zHJKYESYAqRelFDZoqNMzHUbdgXIaazrLopqCW10UVQLImfW7BVEtfnhHCmF |  | ||||||
|         mGZ/zCozoMzpMRM0iEs4vzsDHUK1KbS07OsUhboJJbwkgxRtoeS7NHS1km/4NMtUm5IzBaKUEjZo2Qdd |  | ||||||
|         MoFLTBCyRGEnABVFcwN8OHeBvqAvas3iMpSfPnVKv1basGS5eVTC5w1HdLXSptKVZJBw8t//v3c6t62r |  | ||||||
|         JoOE+pWO/0GMgm/C+f8ASAKQH7jFa6crBbaxALQXNkq+M2KXMh8WCsi3X/p6hbiBLJsd32MG9PxPILQF |  | ||||||
|         FEU1SphWag3QXFOtE22q5PNzgjZScp7dRNsp2cY0ceHz5gSthcNEU3SsCbqhjSK6lNNY1ymFlwEwW4Ps |  | ||||||
|         h+IiZ5baodr88I3UDBzNfNvsqnkl+tqxQXLblDuDrlPCwqDaeGiV+u5jQFso+S4NXa3kG34es+xsitpp |  | ||||||
|         lALDFIQsIZ8AXKZPAE6fpOCb2PjCEAxQEoBmgTaD/O7vtBc2Ss4dkd7PDsu3XwZ6dak/AQBmjJK+00nP |  | ||||||
|         /4S70exejQwgTLSpks/PCdpIyXl2E22nZBvTwJuSsFEmllN0uEnOuMokp7GuU2pUa5B9kUbOLLVDtfnh |  | ||||||
|         G6n5FJBZbiZj5idjvnaIpt8ZdJ1S4EQ5oVVqT0qKtlDyXRq6WsnXqzxm2dkUtdMoBYYpCFmibX0HYN+I |  | ||||||
|         e1DeSr4DcOiuq3zsf+CmksWVGGBzJwD/pa5HuwP3Xnu4699aVRegRjIDbQb53d9pL2yUzCAggT6hToXQ |  | ||||||
|         AftZghlGODc5EO6Vfd7mhSKV5HT0VnT48/SmeDXmESCqdaJNlXx+TtBGSr4oJ0XbKdnGNPC8v3rocyDy |  | ||||||
|         MedCgqgFExhro1yuADmNdZ1So1qDMC4yiJxZaodq88M3UqxtXaqUPEJjfgKWZsUJvnZMaJipzDuDmXg7 |  | ||||||
|         29F1Sr4TxUCry56UFG2h5Ls0dLWSr1d5zLKzKZ8bY2Q/CiUImaSwE4ADPW+kUNvETgD2/vF+lF/2BODz |  | ||||||
|         Zzrv7/1TGouT5koA6jt/68MpbxUbPyG6bOma2qe6mjYgrc0YtBkEtrEAtBci9kVJDPbDDIBiMuzo6CTF |  | ||||||
|         yuZD9r79Eu1rCyV6mBXNOs/eXFAaA5/Q8z8541p6BAj9N10XwDeuyADCRJsqhaMlbaSEE1Etoe2UbGMM |  | ||||||
|         Qdcphc8bwJ5xzAJFMPE+yRlXmeQ01nVKWPBUS9BA7CAschRmryCqzY/ASM2LNMlIzU/AMBemcU6P4Q5g |  | ||||||
|         BveQ886Qsx1dp4QWqDYeWqV4SQYp2kLJd2noaiVnt0Ees+xsitrBpCT3jZxI9C+0HQo7AdjzsCN2T7ET |  | ||||||
|         AOd/BNbyCcDRnv8jv/8H4ODd3ysu30o2TmIyh9L5S0wbQAaZgTYD3OXJIAYKbWlrJxAZ46QpFK2iA7oV |  | ||||||
|         JcRGzrfJc25ygJrCeVs4BzAzGZyrUc//JGhTJXSeak0wWNOrznlEuW5LiWqdaFMln58TtJESTkS1hLZT |  | ||||||
|         chrrOqVAfEyjNmeT0iffXGOtagslqjWJWXIpOY3RH12t5FzkCajSRhdFBgBj13VKVJti9gqi2vwIjNR8 |  | ||||||
|         /ipZveYVQR/B5fQYPc2FBvO7M5h9gHyez3lBoUQ3oeS84hK0hRKaotoEXa3k7DbAsdpCiWpTcnqA3pvw |  | ||||||
|         dSkBbk88kCA5gNBGKOwEoLH/E/CucQNQftkTgG8ObD/y1rAtzz7k46OXhi2qqMUA7Sd59j70481jH9/4 |  | ||||||
|         /CAfle9NtQ/cNrRj6rSUpcuqTBtABpkB93TteqXANhZGH68UiNgAbcAUllF/8NKsTTHjJ99+ae/Q2Oxb |  | ||||||
|         MgegiN8UzkvGTsy9HAqEifS7Q87sgnxLtU60qZLPzwnaSMk3aynaTslpTIvEF3aQf8zVS7PvS0rpRFRr |  | ||||||
|         Yp4r7AqQ0zhmvhIo8HW2FjmzZq8gqs2PwEgpdTFnxF7/gXYSaIxOj9EZne1Eep5OZz9TZ99eyCBFWyj5 |  | ||||||
|         Lg1dreTsNshjlp1NUW4c+CiS/AkFbkGCkCUKOwHY8PIoCrVN7ARg+/inUd4avgNw4o3+FHwTVZPGYIB2 |  | ||||||
|         AhBD+ex5dGDN8B6m3xIWr9ho2gAyyAy0qQS2sTC0rfraoV3TThWoP879kt7B8u2Xzh0aG1iL5QBoVp/D |  | ||||||
|         UvhDkpQYbwDa0SHnPk2tUa0Tbark83OCNlLy9TNF2yk5jSl38rnLzAMhs4pm33kWe4LIwCRnXGWS05jC |  | ||||||
|         +kDOTMu1Kd/uMHsFUW1+hEdq3hbMgdgTmtNjNEbnHSYmWYqxAeR2+xbhvL040RZKvktDVyv5upTHLPua |  | ||||||
|         ikywzW9yQ4FUQRAyRmEnACtnzKJQ28ROALZOfhHlrSEBODbo5xR8E1tcPwMaCY7iTwCGdTL9lrBk+QbT |  | ||||||
|         BpBBZojZVmOgoBzbpx2DooQ2HjuaoS0HgSAZ2BG8b5Pz7dBogQLHS5cD0HhT0fMPPiiy9/WTsi9fuBwZ |  | ||||||
|         QJhoUyWfnxO0kZIvyknRdkpOYzs0twcejk5o9m2f2AsJIhuTmLgqJaexvQids4ZCXa2EQ3Ag2YA8QkOI |  | ||||||
|         avMjPFKKtlPZs5nTYzRG+9aBNmPuDLbn7Q8BaPE40zPf7cVGWyj5Lg1dreTsNshjln1N0bXjNMPNhxwV |  | ||||||
|         GKMgZIzCTgCKy2vqO7SjaDvlSPfr9DV9UZumTEY5JwD9f2EelRCbAOzapC2UfAnAyRmjtYXSuVPHG7p8 |  | ||||||
|         i4JvYsufHsEAqyeOovIY7ARgxyDHVw5KiitNG0AGmYE2Feyg2AxioHYA7b54aYa52DzIANuqHc1Q5Icd |  | ||||||
|         yNx17D0ecnYGBHZotEN7G5p1hlZNhNybyBlP+LBDQMQraVexSVP0D/nez4sMIEy0qZLPzwnaSMkX5aRo |  | ||||||
|         OyWfMY0rGXhSheHbjqXohHInyIzzUGsvJCg1sMHwtZFS6mSsJTo1MI19frOHgCGnTeEPe2Z9vqKmqDaF |  | ||||||
|         hkC1+REeKWZK1xlyrv+cHqO3GOjOgL/pioac7QDb82Y6gXVCTTndjjPqaiWzM4S2UPLNoK5Wiuw21abk |  | ||||||
|         9CTAvNAYYRn2p68pQcgkhZ0AgJ39b6do28R8h/6bw/sqZ8xE4Zm1i3XRhVj8xJFu15qHJJxeOlVbQN98 |  | ||||||
|         fbT3TWSQcGrWeG0DffP1sf63kEHC8TH3aBulM6vnU+RtU/XacxhdxfuzqTyGymnvrnlnkllSO6yz6bSE |  | ||||||
|         Jcs31Hf6m9Smrud3yCAz2HthpKgdYEfVibDfO8t9WybstYUhc1cj+Xam8A7dMjmAHYZC9scaAeytOhG8 |  | ||||||
|         5HSU/c5oSmQAYaJNlcIRgDZS8kU5KdpOyWcM1/kGrv8yRG//JzjXDGbZ2WwiasHE/kZHurDtIZinDvjN |  | ||||||
|         2UOfAu1EziydjmrzI+dIKYOFnOs/Zzu+C4EGZcrZToIz/fMV0rEJ4duLibZQ8q12Xa3k63YesxzwACVU |  | ||||||
|         qZxOgOdxw6QWBCHDFHwCUPXq8xRtmxzp8f0TE5/44u0RJ14dcLTnDWWzF1wo7H7dySkjv1ww+dTsV449 |  | ||||||
|         5g7ZYbNn05YLNnMnHhtwG9X+lTuvPD6mF9rfuWnrsX7/zLUpd17xxZtDTpdOP102A9RNGlgzvEeATeMG |  | ||||||
|         pD/ZWfXa2G1DO2wf/LsYYLnu9ecvHFi5Y/3EUYj7tw+5Y/PY/ktK1ietEZXTp9UMvwsHbn2mV9ncBVSb |  | ||||||
|         GWhTiRe1k7DF84m/LfPtWMK3M5kyQwHEYdRCQs4dumVyAHtDbexW6susbDkfI0mJDCBMtKlSIJgA2kjJ |  | ||||||
|         F+WkaDulgHHkwH2zhsO1RbSoBRNfQgLZQ4gMwtBtZ7xlK7wyI2fW7BVEtfmRc6T25exc/zEei7m9mHPk |  | ||||||
|         awdEeh73lvSjHqLQEwAQebuGSxt7yxKEQqfgE4AlJdX17a/mgNvDyhmzDnf8NhX6CH/BwKSu6/Wrpkyh |  | ||||||
|         Qh+HO35n8YrNNArhkkIPg8aL2knBVuF8jzYVagObZYL9KbwphLn0diwdnhCzQ9vRSTjSygPaZdE+GcSA |  | ||||||
|         KMTc123BqxgLHUVEBhAm2lQpHExoIyVflJOi7ZTCxlhO4YFjJQTmCz4JLCS0TAvJF+0l+AImewhmn8N+ |  | ||||||
|         AzQvtnL6k1qg2hTyJNXmR8xIzSnwrf9Ij4V9hdmMdAXAsrEfsjKF2sDSykACAMIXCIQWJPoX2iAFnwCA |  | ||||||
|         bYO6UpDtY/0rY/Y8/Esq9BGfAOzqf/vGcU9RoY+aYfdS/4UWAFtXHlAjBEIlbJ+08SNwzxmkpiAUw3Zu |  | ||||||
|         bmZoDW0mp0Ztzs5g8zZtfHs5tjfTLGCZN+YpmtI4DocPzfwKf8Mn8DZZOolxGmHah+MA0zIcRoNGGQMs |  | ||||||
|         Gxo4FgaWR8yxcDiyXNinq9FcSJGLJAVnRE/SZZms6qQpE3PGY+InNJt0Mmk2EV6iMGaMsElPB6g2hZY6 |  | ||||||
|         1eZHzEjN7vk8HO8xtEZ3BiyMdBYiXZECGxyLedRt+eeUiF85pplvNk2bGDcCqk2J92QCek4XCISXcHLg |  | ||||||
|         LIKQbbKQAFTMnEtBtg8E31ufeYQKfcQnAJtHD9wxoCMV+iibs4j6LwiCIAiCIAgtRhYSALDnkV9RnO1k |  | ||||||
|         X++frn1jAhX6iE8APvzzOwfv+gEVOtkZ9x8AC4IgCIIgCMIlIiMJQEVR7IcAZXMWUYmP2ATgzivLZi/k |  | ||||||
|         Qg+wpJ4LgiAIgiAIQkuSkQQAbB/YmaJtJ2vffHV/rx9ToZPIBODTB29ZP3EcFTqpfbIn9VkQBEEQBEEQ |  | ||||||
|         WpjsJADLFq8+1Ol7FHPb1Azr9fEf+1Khk8gEYNOYwTG5x6Eu1y5dWkV9FgRBEARBEIQWJjsJAKia9CKF |  | ||||||
|         3TZ13b5fOW06FTqJTADK359/uNN3qdBmzeRJ1FtBEARBEARBaHkylQCA7YO6UORts2rqtIPdb6BCm5gE |  | ||||||
|         4LN7/mHNW29QoU3t0Huon4IgCIIgCIJwWchaArC4dMu++/6R4m/ik6fvj3kKKCYBuPD8T66UY2+fm4vL |  | ||||||
|         tlI/BUEQBEEQBOGykLUEAJQsqgz/KOehLtdUFM2hQpuYBKBs9oLwfy18oMeNyxavoR4KgiAIgiAIwuUi |  | ||||||
|         gwkAKJ2/rK7b9ykWN1n7xoS9fW6mQiJnArCr379Ujx9NhSbow/IFZdQ3QRAEQRAEQbiMZDMBAMgBAp8D |  | ||||||
|         fPrgLeteG2+W1Le/an/vn+z4fYeP/9h343NDq18Zs3Rp1foJz1WPf3bz6IG1Q+/Z/ehthzpfYx6y+p3J |  | ||||||
|         OMQsMTnQ48blC8qpV4IgCIIgCIJweclsAgBKFlUGvg9QUTT3YPcbdj322w0vjawoml1RNGfdpJc2P/vE |  | ||||||
|         tsHddj32fz598OdlcxbufeB/73n41p2P37F1xIMbXnymcuq08lkfrH1jQu2TPfbd/7PArwnt7XPzsuIP |  | ||||||
|         qT+CIAiCIAiCcNnJcgIAFpdudn5Jd3ff28pnzlu2ePVHzw/f0/fX9R3akQHwPQK0v/dPtozsV1K8qmxO |  | ||||||
|         8bbB3evbX00GtU/2lG/9CoIgCIIgCK2TjCcACVWTXkz+j7DDHb/98R/7lr//QfX40Xsf+KfwV3gD3wE4 |  | ||||||
|         1OWa8ln/dvCuH2waM6hszsLNowcm/xUAyte9Pp7OLgiCIAiCIAithzaRAIBlxR9+9MJwBOtbRzyYBv34 |  | ||||||
|         e8vIfsnfNoEEYONzw7YNuSv5u/7OK2ue6lU+c96Gl0ctW7KWzisIgiAIgiAIrYq2kgAkVBTN3fPIrWkc |  | ||||||
|         X9/+6rLZCw93/E5aYuJLAJK3/xvuuCIt2f3ob8rfn0/nEgRBEARBEIRWSNtKABKQBmwf1KW+/VWI3WuG |  | ||||||
|         9do0Zkgaypv4EoANL43cPrAT/qjv0G7bkO7l739A7QuCIAiCIAhCq6UtJgAJS0qq108ct/Px35XOXVzX |  | ||||||
|         7XozxE9wJgAHet5YPusDHFX16gtLSj6iNgVBEARBEAShldN2EwCT0nlL178y5pPhD+x55Fef3fujuq7I |  | ||||||
|         B664kADceSX+RsnuvrdtHfHg+gljV3ywnI4VBEEQBEEQhAJCEgBBEARBEARBaENIAiAIgiAIgiAIbQhJ |  | ||||||
|         AARBEARBEAShDSEJgCAIgiAIgiC0GVbt+n9oKHOCwMZ65wAAAABJRU5ErkJggg== |  | ||||||
| </value> |  | ||||||
|   </data> |  | ||||||
|   <metadata name="smartDraw_ChartChannelPenStyle1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> |  | ||||||
|     <value>17, 17</value> |  | ||||||
|   </metadata> |  | ||||||
|   <metadata name="timerOff.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> |  | ||||||
|     <value>264, 17</value> |  | ||||||
|   </metadata> |  | ||||||
|   <metadata name="timerOn.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> |  | ||||||
|     <value>351, 17</value> |  | ||||||
|   </metadata> |  | ||||||
|   <metadata name="$this.FormFactorShadowProperty" xml:space="preserve"> |   <metadata name="$this.FormFactorShadowProperty" xml:space="preserve"> | ||||||
|     <value>WEBPAD</value> |     <value>WEBPAD</value> | ||||||
|   </metadata> |   </metadata> | ||||||
|  |  | ||||||
|  | @ -7,9 +7,12 @@ using System.Data; | ||||||
| using System.Drawing; | using System.Drawing; | ||||||
| using System.Text; | using System.Text; | ||||||
| using System.Windows.Forms; | using System.Windows.Forms; | ||||||
|  | using System.IO; | ||||||
| 
 | 
 | ||||||
|  | using SmartX; | ||||||
| using INT_PT002.Controls; | using INT_PT002.Controls; | ||||||
| using INT_PT002.DataStore; | using INT_PT002.DataStore; | ||||||
|  | using INT_PT002.DialogForms; | ||||||
| 
 | 
 | ||||||
| namespace INT_PT002.Forms | namespace INT_PT002.Forms | ||||||
| { | { | ||||||
|  | @ -39,6 +42,8 @@ namespace INT_PT002.Forms | ||||||
|         public Define.E_MenuManualStore SelectedMenuManual; |         public Define.E_MenuManualStore SelectedMenuManual; | ||||||
|         public Define.E_MenuLogStore SelectedMenuLog; |         public Define.E_MenuLogStore SelectedMenuLog; | ||||||
|         public Define.E_MenuSystemStore SelectedMenuSystem; |         public Define.E_MenuSystemStore SelectedMenuSystem; | ||||||
|  | 
 | ||||||
|  |         private Queue<string> Q_FileList = new Queue<string>(); | ||||||
|         #endregion |         #endregion | ||||||
| 
 | 
 | ||||||
|         #region Constructor |         #region Constructor | ||||||
|  | @ -103,6 +108,196 @@ namespace INT_PT002.Forms | ||||||
|             this.Child_System_Status.Location = new Point(0, 39); |             this.Child_System_Status.Location = new Point(0, 39); | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|  |         #region Log | ||||||
|  |         // Backup | ||||||
|  |         private void Backup(Define.E_DataType type, TreeView view) | ||||||
|  |         { | ||||||
|  |             string targetPath = "", sourceFilePath = "", destFilePath = "", dataFolderPath = ""; | ||||||
|  |             string[] result; | ||||||
|  |             DirectoryInfo dir; | ||||||
|  |             FileInfo[] files; | ||||||
|  |             List<string> listSelectedFile = new List<string>();     // 백업할 파일 리스트 (yyyy/MM/filename.csv) | ||||||
|  |             this.Q_FileList = new Queue<string>(); | ||||||
|  | 
 | ||||||
|  |             switch (type) | ||||||
|  |             { | ||||||
|  |                 case Define.E_DataType.None: | ||||||
|  |                     break; | ||||||
|  |                 case Define.E_DataType.History: | ||||||
|  |                     dataFolderPath = this.ParentForm.PathDataHistoryFolder; | ||||||
|  |                     break; | ||||||
|  |                 case Define.E_DataType.Inspection: | ||||||
|  |                     dataFolderPath = this.ParentForm.PathDataInspectionFolder; | ||||||
|  |                     break; | ||||||
|  |                 default: | ||||||
|  |                     break; | ||||||
|  |             } | ||||||
|  | 
 | ||||||
|  |             if (dataFolderPath == "") | ||||||
|  |                 return; | ||||||
|  | 
 | ||||||
|  |             #region 백업 할 파일 리스트 | ||||||
|  |             listSelectedFile = this.GetSeletedNodeList(view); | ||||||
|  |             #endregion | ||||||
|  | 
 | ||||||
|  |             if (listSelectedFile.Count == 0) | ||||||
|  |             { | ||||||
|  |                 DialogFormMessage msg = new DialogFormMessage(4, this.ParentForm.SystemConfig.LANGUAGE); | ||||||
|  |                 msg.ShowDialog(); | ||||||
|  |                 return; | ||||||
|  |             } | ||||||
|  | 
 | ||||||
|  |             SmartX.SmartSplash.Start(SmartSplash.BuiltInLoadingImages.PROCESSING1, 200); | ||||||
|  | 
 | ||||||
|  |             #region USB 장착 유무 체크 | ||||||
|  |             // USB 장착 유무 체크 | ||||||
|  |             dir = new DirectoryInfo(targetPath); | ||||||
|  |             if (dir.Exists == false) | ||||||
|  |             { | ||||||
|  |                 // USB메모리가 장착되지 않았습니다 | ||||||
|  |                 DialogFormMessage msg = new DialogFormMessage(5, this.ParentForm.SystemConfig.LANGUAGE); | ||||||
|  |                 msg.ShowDialog(); | ||||||
|  |                 SmartX.SmartSplash.Finish(); | ||||||
|  |                 return; | ||||||
|  |             } | ||||||
|  |             #endregion | ||||||
|  | 
 | ||||||
|  |             try | ||||||
|  |             { | ||||||
|  | 
 | ||||||
|  |             } | ||||||
|  |             catch | ||||||
|  |             { | ||||||
|  |                 // 제조사에 문의하세요 | ||||||
|  |                 DialogFormMessage msg = new DialogFormMessage(6, this.ParentForm.SystemConfig.LANGUAGE); | ||||||
|  |                 SmartX.SmartSplash.Finish(); | ||||||
|  |                 msg.ShowDialog(); | ||||||
|  |                 return; | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         // FileCopy | ||||||
|  |         private void FileCopy(Define.E_DataType type) | ||||||
|  |         { | ||||||
|  |             int count = 0; | ||||||
|  |             string targetPath = "", destTargetPath = "", sourceFilePath = "", destFilePath = ""; | ||||||
|  |             string[] result; | ||||||
|  |             DirectoryInfo dir; | ||||||
|  |             FileInfo[] files; | ||||||
|  | 
 | ||||||
|  |             try | ||||||
|  |             { | ||||||
|  |                 #region USB 복사 | ||||||
|  |                 targetPath = "하드 디스크\\"; | ||||||
|  | 
 | ||||||
|  |                 // USB\SerialNumber\ 루트 | ||||||
|  |                 destTargetPath = string.Format("{0}{1}\\Data\\{2}\\{3}\\", targetPath, this.ParentForm.SystemConfig.SERIAL_NUMBER, type, DateTime.Now.ToString("yyyyMMdd_HHmmss")); | ||||||
|  | 
 | ||||||
|  |                 // USB 폴더 체크 및 생성 | ||||||
|  |                 dir = new DirectoryInfo(destTargetPath); | ||||||
|  |                 if (dir.Exists == false) | ||||||
|  |                     dir.Create(); | ||||||
|  | 
 | ||||||
|  |                 // 파일 복사 | ||||||
|  |                 dir = new DirectoryInfo(this.ParentForm.PathDataInspectionFolder); | ||||||
|  |                 if (dir.Exists == false) | ||||||
|  |                     dir.Create(); | ||||||
|  | 
 | ||||||
|  |                 files = dir.GetFiles(); | ||||||
|  |                 count = files.Length; | ||||||
|  |                 foreach (FileInfo file in files) | ||||||
|  |                 { | ||||||
|  |                     result = file.FullName.Split('\\'); | ||||||
|  |                     sourceFilePath = file.FullName; | ||||||
|  |                     destFilePath = string.Format("{0}{1}", destTargetPath, result[result.Length - 1]); | ||||||
|  | 
 | ||||||
|  |                     // 파일 중복 검사 | ||||||
|  |                     if (File.Exists(destFilePath) == true) | ||||||
|  |                     { | ||||||
|  |                         DialogFormYesNo df = new DialogFormYesNo(this.ParentForm.SystemConfig.LANGUAGE, 31, Path.GetFileName(result[result.Length - 1])); | ||||||
|  |                         df.BringToFront(); | ||||||
|  |                         if (df.ShowDialog() == DialogResult.Yes) | ||||||
|  |                         { | ||||||
|  |                             this.Refresh(); | ||||||
|  |                             File.Delete(destFilePath);  // 존재하는 파일 삭제 | ||||||
|  |                             File.Copy(sourceFilePath, destFilePath); | ||||||
|  |                         } | ||||||
|  |                         else | ||||||
|  |                         { | ||||||
|  |                             count--; | ||||||
|  |                             this.Refresh(); | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  |                     else | ||||||
|  |                     { | ||||||
|  |                         File.Copy(sourceFilePath, destFilePath); | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  | 
 | ||||||
|  |                 // 복사 완료 메시지 | ||||||
|  |                 DialogFormMessage msg = new DialogFormMessage(count.ToString(), this.ParentForm.SystemConfig.LANGUAGE); | ||||||
|  |                 msg.ShowDialog(); | ||||||
|  |                 #endregion | ||||||
|  |             } | ||||||
|  |             catch | ||||||
|  |             { | ||||||
|  |                 // 제조사에 문의하세요 | ||||||
|  |                 DialogFormMessage msg = new DialogFormMessage(6, this.ParentForm.SystemConfig.LANGUAGE); | ||||||
|  |                 msg.ShowDialog(); | ||||||
|  |                 return; | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         public List<string> DirectorySort(DirectoryInfo[] directorys) | ||||||
|  |         { | ||||||
|  |             List<string> listDirectory = new List<string>(); | ||||||
|  |             Dictionary<string, int> dirNames = new Dictionary<string, int>(); | ||||||
|  | 
 | ||||||
|  |             foreach (DirectoryInfo dir in directorys) | ||||||
|  |                 dirNames.Add(dir.Name, int.Parse(dir.Name)); | ||||||
|  | 
 | ||||||
|  |             // 순서데로 오름차순 정렬 | ||||||
|  |             var vrList = dirNames.OrderBy(x => x.Value); | ||||||
|  |             foreach (var v in vrList) | ||||||
|  |                 listDirectory.Add(v.Key); | ||||||
|  | 
 | ||||||
|  |             return listDirectory; | ||||||
|  |         } | ||||||
|  |         private List<string> GetSeletedNodeList(TreeView tree) | ||||||
|  |         { | ||||||
|  |             int yearCNT, monthCNT, dayCNT; | ||||||
|  |             List<string> listSelectedFile = new List<string>(); | ||||||
|  | 
 | ||||||
|  |             yearCNT = tree.Nodes.Count; | ||||||
|  |             if (yearCNT != 0) | ||||||
|  |             { | ||||||
|  |                 for (int i = 0; i < yearCNT; i++) | ||||||
|  |                 { | ||||||
|  |                     monthCNT = tree.Nodes[i].Nodes.Count; | ||||||
|  |                     if (monthCNT != 0) | ||||||
|  |                     { | ||||||
|  |                         for (int j = 0; j < monthCNT; j++) | ||||||
|  |                         { | ||||||
|  |                             dayCNT = tree.Nodes[i].Nodes[j].Nodes.Count; | ||||||
|  |                             if (dayCNT != 0) | ||||||
|  |                             { | ||||||
|  |                                 for (int k = 0; k < dayCNT; k++) | ||||||
|  |                                 { | ||||||
|  |                                     if (tree.Nodes[i].Nodes[j].Nodes[k].Checked == true) | ||||||
|  |                                     { | ||||||
|  |                                         //listSelectedFile.Add(tree.Nodes[i].Nodes[j].Nodes[k].Text); | ||||||
|  |                                         listSelectedFile.Add(string.Format("{0}\\{1}\\{2}", tree.Nodes[i].Text, tree.Nodes[i].Nodes[j].Text, tree.Nodes[i].Nodes[j].Nodes[k].Text)); | ||||||
|  |                                     } | ||||||
|  |                                 } | ||||||
|  |                             } | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  | 
 | ||||||
|  |             return listSelectedFile; | ||||||
|  |         } | ||||||
|  |         #endregion | ||||||
|  | 
 | ||||||
|         private void SetTopMenu(Define.E_TopMenuStore bottom) |         private void SetTopMenu(Define.E_TopMenuStore bottom) | ||||||
|         { |         { | ||||||
|             switch (bottom) |             switch (bottom) | ||||||
|  |  | ||||||
|  | @ -81,6 +81,12 @@ | ||||||
|     <Compile Include="Controls\Bottom\ControlBottomSetting.Designer.cs"> |     <Compile Include="Controls\Bottom\ControlBottomSetting.Designer.cs"> | ||||||
|       <DependentUpon>ControlBottomSetting.cs</DependentUpon> |       <DependentUpon>ControlBottomSetting.cs</DependentUpon> | ||||||
|     </Compile> |     </Compile> | ||||||
|  |     <Compile Include="Controls\Log\ControlMenuLogTemporary.cs"> | ||||||
|  |       <SubType>UserControl</SubType> | ||||||
|  |     </Compile> | ||||||
|  |     <Compile Include="Controls\Log\ControlMenuLogTemporary.Designer.cs"> | ||||||
|  |       <DependentUpon>ControlMenuLogTemporary.cs</DependentUpon> | ||||||
|  |     </Compile> | ||||||
|     <Compile Include="Controls\System\ControlMenuSystemInformation.cs"> |     <Compile Include="Controls\System\ControlMenuSystemInformation.cs"> | ||||||
|       <SubType>UserControl</SubType> |       <SubType>UserControl</SubType> | ||||||
|     </Compile> |     </Compile> | ||||||
|  | @ -242,6 +248,10 @@ | ||||||
|       <DependentUpon>ControlMainDisplayDotGraph.cs</DependentUpon> |       <DependentUpon>ControlMainDisplayDotGraph.cs</DependentUpon> | ||||||
|       <SubType>Designer</SubType> |       <SubType>Designer</SubType> | ||||||
|     </EmbeddedResource> |     </EmbeddedResource> | ||||||
|  |     <EmbeddedResource Include="Controls\Log\ControlMenuLogTemporary.resx"> | ||||||
|  |       <DependentUpon>ControlMenuLogTemporary.cs</DependentUpon> | ||||||
|  |       <SubType>Designer</SubType> | ||||||
|  |     </EmbeddedResource> | ||||||
|     <EmbeddedResource Include="Controls\System\ControlMenuSystemInformation.resx"> |     <EmbeddedResource Include="Controls\System\ControlMenuSystemInformation.resx"> | ||||||
|       <DependentUpon>ControlMenuSystemInformation.cs</DependentUpon> |       <DependentUpon>ControlMenuSystemInformation.cs</DependentUpon> | ||||||
|       <SubType>Designer</SubType> |       <SubType>Designer</SubType> | ||||||
|  |  | ||||||
|  | @ -4,6 +4,8 @@ using System.Collections.Generic; | ||||||
| using System.Text; | using System.Text; | ||||||
| using System.Runtime.InteropServices; | using System.Runtime.InteropServices; | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| namespace INT_PT002.Part11_UserManager | namespace INT_PT002.Part11_UserManager | ||||||
| { | { | ||||||
|     public partial class UserManager |     public partial class UserManager | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue