[성현모] MiddleWare.Log 프로젝트 추가
|
After Width: | Height: | Size: 34 KiB |
@ -0,0 +1,70 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<configSections>
|
||||
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System">
|
||||
<section name="DevExpress.LookAndFeel.Design.AppSettings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
|
||||
</sectionGroup>
|
||||
</configSections>
|
||||
<applicationSettings>
|
||||
<DevExpress.LookAndFeel.Design.AppSettings>
|
||||
<setting name="DPIAwarenessMode" serializeAs="String">
|
||||
<value>System</value>
|
||||
</setting>
|
||||
</DevExpress.LookAndFeel.Design.AppSettings>
|
||||
</applicationSettings>
|
||||
<startup>
|
||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" />
|
||||
</startup>
|
||||
<runtime>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Threading.Tasks.Extensions" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.2.0.1" newVersion="4.2.0.1" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Microsoft.Extensions.DependencyInjection.Abstractions" publicKeyToken="adb9793829ddae60" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-3.1.32.0" newVersion="3.1.32.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.6.0" newVersion="4.0.6.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-13.0.0.0" newVersion="13.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.1" newVersion="4.0.1.1" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Microsoft.Extensions.Primitives" publicKeyToken="adb9793829ddae60" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-3.1.32.0" newVersion="3.1.32.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Microsoft.Extensions.Configuration.Abstractions" publicKeyToken="adb9793829ddae60" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-3.1.32.0" newVersion="3.1.32.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Microsoft.Extensions.Caching.Abstractions" publicKeyToken="adb9793829ddae60" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-3.1.32.0" newVersion="3.1.32.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Microsoft.Extensions.Options" publicKeyToken="adb9793829ddae60" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-3.1.32.0" newVersion="3.1.32.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Microsoft.Extensions.Logging.Abstractions" publicKeyToken="adb9793829ddae60" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-3.1.32.0" newVersion="3.1.32.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Microsoft.Extensions.DependencyInjection" publicKeyToken="adb9793829ddae60" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-3.1.32.0" newVersion="3.1.32.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.ComponentModel.Annotations" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.2.1.0" newVersion="4.2.1.0" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
</configuration>
|
||||
|
After Width: | Height: | Size: 15 KiB |
@ -0,0 +1,547 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.IO;
|
||||
using System.Security.Cryptography;
|
||||
using System.Data;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Net.Sockets;
|
||||
using System.Globalization;
|
||||
using System.Threading;
|
||||
using System.Diagnostics;
|
||||
using System.Net;
|
||||
|
||||
using SystemX.Net.BaseProtocol;
|
||||
using System.Xml.Linq;
|
||||
using static SystemX.Net.Platform.Common.Util.LogMessage;
|
||||
using System.Data.SqlClient;
|
||||
|
||||
namespace SystemX.Net.Middleware.Log.Commons
|
||||
{
|
||||
using ParamElement = Tuple<SqlDbType, int, byte, byte>;
|
||||
|
||||
public class HISTTesterSummary
|
||||
{
|
||||
public string StationName { set; get; }
|
||||
public string TestType { set; get; }
|
||||
public string Version { set; get; }
|
||||
public string ProdCode { set; get; }
|
||||
public int TestListFileNo { set; get; }
|
||||
public int TestListVariantNo { set; get; }
|
||||
public string TestListCntID { set; get; }
|
||||
|
||||
public int StepVersion { set; get; }
|
||||
public string Host { set; get; }
|
||||
public string Section { set; get; }
|
||||
public string ProdNoC { set; get; }
|
||||
public string ProdNoP { set; get; }
|
||||
public string TestCode { set; get; }
|
||||
public string TestListFileName { set; get; }
|
||||
public string ProductID { set; get; }
|
||||
public string Result { set; get; }
|
||||
public string Duration { set; get; }
|
||||
public DateTime TestDT { set; get; }
|
||||
}
|
||||
|
||||
public class HISTLogSummary
|
||||
{
|
||||
public string StationName { set; get; }
|
||||
public string TestType { set; get; }
|
||||
public string Version { set; get; }
|
||||
public string ProdCode { set; get; }
|
||||
public int TestListFileNo { set; get; }
|
||||
public int TestListVariantNo { set; get; }
|
||||
public string TestListCntID { set; get; }
|
||||
|
||||
public int StepVersion { set; get; }
|
||||
public string Host { set; get; }
|
||||
public string Section { set; get; }
|
||||
public string ProdNoC { set; get; }
|
||||
public string ProdNoP { set; get; }
|
||||
public string TestCode { set; get; }
|
||||
public string TestListFileName { set; get; }
|
||||
public string ProductID { set; get; }
|
||||
public string Result { set; get; }
|
||||
public string Duration { set; get; }
|
||||
public DateTime TestDT { set; get; }
|
||||
}
|
||||
|
||||
public static class ShortLogParamInfo
|
||||
{
|
||||
public static readonly int MessageLength = 4096;
|
||||
public static readonly int MessageValLength = 2024;
|
||||
|
||||
public static string STEP = "";
|
||||
public static string POSITION = "";
|
||||
public static string MO = "";
|
||||
public static string FNC_NAME = "";
|
||||
public static string MIN = "";
|
||||
public static string MEASURE = "";
|
||||
public static string MAX = "";
|
||||
public static string DIM = "";
|
||||
public static string CHECK = "";
|
||||
public static string SPENT_TIME = "";
|
||||
public static string INFO = "";
|
||||
|
||||
public static bool GLOBAL_SPEC = false;
|
||||
public static string VRFY_MIN = "";
|
||||
public static string VRFY_MAX = "";
|
||||
}
|
||||
|
||||
public static class LongLogParamInfo
|
||||
{
|
||||
public static readonly int MessageLength = 4096;
|
||||
public static readonly int MessageValLength = 2024;
|
||||
|
||||
public static string STEP = "";
|
||||
public static string POSITION = "";
|
||||
public static string MO = "";
|
||||
public static string FNC_NAME = "";
|
||||
public static string MIN = "";
|
||||
public static string MEASURE = "";
|
||||
public static string MAX = "";
|
||||
public static string DIM = "";
|
||||
public static string CHECK = "";
|
||||
public static string SPENT_TIME = "";
|
||||
public static string INFO = "";
|
||||
|
||||
public static bool GLOBAL_SPEC = false;
|
||||
public static string VRFY_MIN = "";
|
||||
public static string VRFY_MAX = "";
|
||||
}
|
||||
|
||||
public static class ParamSet
|
||||
{
|
||||
public static Dictionary<string, ParamElement> fParam = new Dictionary<string, ParamElement>();
|
||||
|
||||
public static void TestResultField()
|
||||
{
|
||||
fParam.Clear();
|
||||
fParam = new Dictionary<string, ParamElement>();
|
||||
fParam.Add("No", new ParamElement(SqlDbType.BigInt, 0, 0, 0));
|
||||
fParam.Add("TestDT", new ParamElement(SqlDbType.DateTime2, 7, 0, 0));
|
||||
fParam.Add("LogData", new ParamElement(SqlDbType.NVarChar, -1, 0, 0));
|
||||
}
|
||||
|
||||
public static void TesterSummaryField()
|
||||
{
|
||||
fParam.Clear();
|
||||
fParam = new Dictionary<string, ParamElement>();
|
||||
fParam.Add("StationName", new ParamElement(SqlDbType.NVarChar, 128, 0, 0));
|
||||
fParam.Add("TestType", new ParamElement(SqlDbType.NVarChar, 8, 0, 0));
|
||||
fParam.Add("Version", new ParamElement(SqlDbType.NVarChar, 4, 0, 0));
|
||||
fParam.Add("ProdCode", new ParamElement(SqlDbType.NVarChar, 4, 0, 0));
|
||||
fParam.Add("TestListFileNo", new ParamElement(SqlDbType.Int, 0, 0, 0));
|
||||
fParam.Add("TestListVariantNo", new ParamElement(SqlDbType.Int, 0, 0, 0));
|
||||
fParam.Add("TestListCntID", new ParamElement(SqlDbType.NVarChar, 256, 0, 0));
|
||||
fParam.Add("StepVersion", new ParamElement(SqlDbType.Int, 0, 0, 0));
|
||||
fParam.Add("HostID", new ParamElement(SqlDbType.NVarChar, 64, 0, 0));
|
||||
fParam.Add("Section", new ParamElement(SqlDbType.NVarChar, 64, 0, 0));
|
||||
fParam.Add("ProdNo_C", new ParamElement(SqlDbType.NVarChar, 32, 0, 0));
|
||||
fParam.Add("ProdNo_P", new ParamElement(SqlDbType.NVarChar, 32, 0, 0));
|
||||
fParam.Add("Testcode", new ParamElement(SqlDbType.NVarChar, 16, 0, 0));
|
||||
fParam.Add("TestListFileName", new ParamElement(SqlDbType.NVarChar, 256, 0, 0));
|
||||
fParam.Add("ProductID", new ParamElement(SqlDbType.NVarChar, 64, 0, 0));
|
||||
fParam.Add("Result", new ParamElement(SqlDbType.NVarChar, 16, 0, 0));
|
||||
fParam.Add("Duration", new ParamElement(SqlDbType.NVarChar, 16, 0, 0));
|
||||
fParam.Add("TestDT", new ParamElement(SqlDbType.DateTime2, 7, 0, 0));
|
||||
}
|
||||
|
||||
public static void LogSummaryField()
|
||||
{
|
||||
fParam.Clear();
|
||||
fParam = new Dictionary<string, ParamElement>();
|
||||
fParam.Add("StationName", new ParamElement(SqlDbType.NVarChar, 128, 0, 0));
|
||||
fParam.Add("TestType", new ParamElement(SqlDbType.NVarChar, 8, 0, 0));
|
||||
fParam.Add("Version", new ParamElement(SqlDbType.NVarChar, 4, 0, 0));
|
||||
fParam.Add("ProdCode", new ParamElement(SqlDbType.NVarChar, 4, 0, 0));
|
||||
fParam.Add("TestListFileNo", new ParamElement(SqlDbType.Int, 0, 0, 0));
|
||||
fParam.Add("TestListVariantNo", new ParamElement(SqlDbType.Int, 0, 0, 0));
|
||||
fParam.Add("TestListCntID", new ParamElement(SqlDbType.NVarChar, 256, 0, 0));
|
||||
fParam.Add("StepVersion", new ParamElement(SqlDbType.Int, 0, 0, 0));
|
||||
fParam.Add("HostID", new ParamElement(SqlDbType.NVarChar, 64, 0, 0));
|
||||
fParam.Add("Section", new ParamElement(SqlDbType.NVarChar, 64, 0, 0));
|
||||
fParam.Add("ProdNo_C", new ParamElement(SqlDbType.NVarChar, 32, 0, 0));
|
||||
fParam.Add("ProdNo_P", new ParamElement(SqlDbType.NVarChar, 32, 0, 0));
|
||||
fParam.Add("Testcode", new ParamElement(SqlDbType.NVarChar, 16, 0, 0));
|
||||
fParam.Add("TestListFileName", new ParamElement(SqlDbType.NVarChar, 256, 0, 0));
|
||||
fParam.Add("ProductID", new ParamElement(SqlDbType.NVarChar, 64, 0, 0));
|
||||
fParam.Add("Result", new ParamElement(SqlDbType.NVarChar, 16, 0, 0));
|
||||
fParam.Add("Duration", new ParamElement(SqlDbType.NVarChar, 16, 0, 0));
|
||||
fParam.Add("TestDT", new ParamElement(SqlDbType.DateTime2, 7, 0, 0));
|
||||
}
|
||||
|
||||
public static SqlParameter GetMakeSqlParameterInfo(Dictionary<string, ParamElement> refField, string strSetName, object objValue)
|
||||
{
|
||||
if (refField.ContainsKey(strSetName))
|
||||
{
|
||||
SqlParameter param = null;
|
||||
|
||||
if (refField[strSetName].Item2 != 0)
|
||||
param = new SqlParameter("@" + strSetName, refField[strSetName].Item1, refField[strSetName].Item2);
|
||||
else
|
||||
param = new SqlParameter("@" + strSetName, refField[strSetName].Item1);
|
||||
|
||||
if (refField[strSetName].Item1 == SqlDbType.Decimal)
|
||||
{
|
||||
param.Precision = refField[strSetName].Item3;
|
||||
param.Scale = refField[strSetName].Item4;
|
||||
}
|
||||
|
||||
param.Value = objValue;
|
||||
return param;
|
||||
}
|
||||
else
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public class CommonProtocol
|
||||
{
|
||||
public SqlCommand LogDataResultInsert(string strTableName, DataRow itemData)
|
||||
{
|
||||
string columns = string.Empty;
|
||||
columns = "No,TestDT,LogData";
|
||||
|
||||
string values = string.Join(",", columns.Split(',').Select(c => string.Format("@{0}", c)));
|
||||
string sqlCommand = string.Format("INSERT INTO [" + strTableName + "] ({0}) VALUES ({1})", columns, values);
|
||||
|
||||
ParamSet.TestResultField();
|
||||
|
||||
SqlCommand cmd = new SqlCommand(sqlCommand);
|
||||
|
||||
SqlParameter[] setParams = new SqlParameter[columns.Split(',').Count()];
|
||||
|
||||
setParams[0] = ParamSet.GetMakeSqlParameterInfo(ParamSet.fParam, "No", Convert.ToInt64(itemData["No"]));
|
||||
setParams[1] = ParamSet.GetMakeSqlParameterInfo(ParamSet.fParam, "TestDT", Convert.ToDateTime(itemData["TestDT"]));
|
||||
setParams[2] = ParamSet.GetMakeSqlParameterInfo(ParamSet.fParam, "LogData", Convert.ToString(itemData["LogData"]));
|
||||
|
||||
cmd.Parameters.AddRange(setParams);
|
||||
|
||||
return cmd;
|
||||
}
|
||||
|
||||
public SqlCommand LogDataSummaryInsert(string strTableName, HISTLogSummary itemSummary)
|
||||
{
|
||||
string columns = string.Empty;
|
||||
if (itemSummary.TestListCntID == string.Empty)
|
||||
columns = "StationName,TestType,Version,ProdCode,TestListFileNo,TestListVariantNo,StepVersion,HostID,Section,ProdNo_C,ProdNo_P,Testcode,TestListFileName,ProductID,Result,Duration,TestDT";
|
||||
else
|
||||
columns = "StationName,TestType,Version,ProdCode,TestListFileNo,TestListVariantNo,TestListCntID,StepVersion,HostID,Section,ProdNo_C,ProdNo_P,Testcode,TestListFileName,ProductID,Result,Duration,TestDT";
|
||||
|
||||
string values = string.Join(",", columns.Split(',').Select(c => string.Format("@{0}", c)));
|
||||
string sqlCommand = string.Format("INSERT INTO [" + strTableName + "] ({0}) VALUES ({1})", columns, values);
|
||||
|
||||
ParamSet.LogSummaryField();
|
||||
|
||||
SqlCommand cmd = new SqlCommand(sqlCommand);
|
||||
|
||||
SqlParameter[] setParams = new SqlParameter[columns.Split(',').Count()];
|
||||
|
||||
if (itemSummary.TestListCntID == string.Empty)
|
||||
{
|
||||
setParams[0] = ParamSet.GetMakeSqlParameterInfo(ParamSet.fParam, "StationName", itemSummary.StationName);
|
||||
setParams[1] = ParamSet.GetMakeSqlParameterInfo(ParamSet.fParam, "TestType", itemSummary.TestType);
|
||||
setParams[2] = ParamSet.GetMakeSqlParameterInfo(ParamSet.fParam, "Version", itemSummary.Version);
|
||||
setParams[3] = ParamSet.GetMakeSqlParameterInfo(ParamSet.fParam, "ProdCode", itemSummary.ProdCode);
|
||||
setParams[4] = ParamSet.GetMakeSqlParameterInfo(ParamSet.fParam, "TestListFileNo", itemSummary.TestListFileNo);
|
||||
setParams[5] = ParamSet.GetMakeSqlParameterInfo(ParamSet.fParam, "TestListVariantNo", itemSummary.TestListVariantNo);
|
||||
setParams[6] = ParamSet.GetMakeSqlParameterInfo(ParamSet.fParam, "StepVersion", itemSummary.StepVersion);
|
||||
setParams[7] = ParamSet.GetMakeSqlParameterInfo(ParamSet.fParam, "HostID", itemSummary.Host);
|
||||
setParams[8] = ParamSet.GetMakeSqlParameterInfo(ParamSet.fParam, "Section", itemSummary.Section);
|
||||
setParams[9] = ParamSet.GetMakeSqlParameterInfo(ParamSet.fParam, "ProdNo_C", itemSummary.ProdNoC);
|
||||
setParams[10] = ParamSet.GetMakeSqlParameterInfo(ParamSet.fParam, "ProdNo_P", itemSummary.ProdNoP);
|
||||
setParams[11] = ParamSet.GetMakeSqlParameterInfo(ParamSet.fParam, "Testcode", itemSummary.TestCode);
|
||||
setParams[12] = ParamSet.GetMakeSqlParameterInfo(ParamSet.fParam, "TestListFileName", itemSummary.TestListFileName);
|
||||
setParams[13] = ParamSet.GetMakeSqlParameterInfo(ParamSet.fParam, "ProductID", itemSummary.ProductID);
|
||||
setParams[14] = ParamSet.GetMakeSqlParameterInfo(ParamSet.fParam, "Result", itemSummary.Result);
|
||||
setParams[15] = ParamSet.GetMakeSqlParameterInfo(ParamSet.fParam, "Duration", itemSummary.Duration);
|
||||
setParams[16] = ParamSet.GetMakeSqlParameterInfo(ParamSet.fParam, "TestDT", itemSummary.TestDT);
|
||||
}
|
||||
else
|
||||
{
|
||||
setParams[0] = ParamSet.GetMakeSqlParameterInfo(ParamSet.fParam, "StationName", itemSummary.StationName);
|
||||
setParams[1] = ParamSet.GetMakeSqlParameterInfo(ParamSet.fParam, "TestType", itemSummary.TestType);
|
||||
setParams[2] = ParamSet.GetMakeSqlParameterInfo(ParamSet.fParam, "Version", itemSummary.Version);
|
||||
setParams[3] = ParamSet.GetMakeSqlParameterInfo(ParamSet.fParam, "ProdCode", itemSummary.ProdCode);
|
||||
setParams[4] = ParamSet.GetMakeSqlParameterInfo(ParamSet.fParam, "TestListFileNo", itemSummary.TestListFileNo);
|
||||
setParams[5] = ParamSet.GetMakeSqlParameterInfo(ParamSet.fParam, "TestListVariantNo", itemSummary.TestListVariantNo);
|
||||
setParams[6] = ParamSet.GetMakeSqlParameterInfo(ParamSet.fParam, "TestListCntID", itemSummary.TestListCntID);
|
||||
setParams[7] = ParamSet.GetMakeSqlParameterInfo(ParamSet.fParam, "StepVersion", itemSummary.StepVersion);
|
||||
setParams[8] = ParamSet.GetMakeSqlParameterInfo(ParamSet.fParam, "HostID", itemSummary.Host);
|
||||
setParams[9] = ParamSet.GetMakeSqlParameterInfo(ParamSet.fParam, "Section", itemSummary.Section);
|
||||
setParams[10] = ParamSet.GetMakeSqlParameterInfo(ParamSet.fParam, "ProdNo_C", itemSummary.ProdNoC);
|
||||
setParams[11] = ParamSet.GetMakeSqlParameterInfo(ParamSet.fParam, "ProdNo_P", itemSummary.ProdNoP);
|
||||
setParams[12] = ParamSet.GetMakeSqlParameterInfo(ParamSet.fParam, "Testcode", itemSummary.TestCode);
|
||||
setParams[13] = ParamSet.GetMakeSqlParameterInfo(ParamSet.fParam, "TestListFileName", itemSummary.TestListFileName);
|
||||
setParams[14] = ParamSet.GetMakeSqlParameterInfo(ParamSet.fParam, "ProductID", itemSummary.ProductID);
|
||||
setParams[15] = ParamSet.GetMakeSqlParameterInfo(ParamSet.fParam, "Result", itemSummary.Result);
|
||||
setParams[16] = ParamSet.GetMakeSqlParameterInfo(ParamSet.fParam, "Duration", itemSummary.Duration);
|
||||
setParams[17] = ParamSet.GetMakeSqlParameterInfo(ParamSet.fParam, "TestDT", itemSummary.TestDT);
|
||||
}
|
||||
|
||||
cmd.Parameters.AddRange(setParams);
|
||||
|
||||
return cmd;
|
||||
}
|
||||
}
|
||||
|
||||
public static class COMMON
|
||||
{
|
||||
[DllImport("winmm.dll")]
|
||||
public static extern uint timeGetTime();
|
||||
|
||||
public const string Png = "PNG Portable Network Graphics (*.png)|" + "*.png";
|
||||
public const string Jpg = "JPEG File Interchange Format (*.jpg *.jpeg *jfif)|" + "*.jpg;*.jpeg;*.jfif";
|
||||
public const string Bmp = "BMP Windows Bitmap (*.bmp)|" + "*.bmp";
|
||||
public const string Tif = "TIF Tagged Imaged File Format (*.tif *.tiff)|" + "*.tif;*.tiff";
|
||||
public const string Gif = "GIF Graphics Interchange Format (*.gif)|" + "*.gif";
|
||||
public const string AllImages = "Image file|" + "*.png; *.jpg; *.jpeg; *.jfif; *.bmp;*.tif; *.tiff; *.gif";
|
||||
public const string AllFiles = "All files (*.*)" + "|*.*";
|
||||
|
||||
public static string[] mediaExtensions = {
|
||||
".PNG", ".JPG", ".JPEG", ".BMP", ".GIF", //etc
|
||||
".WAV", ".MID", ".MIDI", ".WMA", ".MP3", ".OGG", ".RMA", //etc
|
||||
".AVI", ".MP4", ".DIVX", ".WMV", //etc
|
||||
};
|
||||
|
||||
public static DataTable ConvertCSVtoDataTable(string strFilePath, string strSetHeader)
|
||||
{
|
||||
DataTable dt = null;
|
||||
try
|
||||
{
|
||||
using (StreamReader sr = new StreamReader(strFilePath))
|
||||
{
|
||||
string[] headers = null;
|
||||
|
||||
if (strSetHeader.Length > 0)
|
||||
headers = strSetHeader.Split(',');
|
||||
else
|
||||
headers = sr.ReadLine().Split(',');
|
||||
|
||||
dt = new DataTable();
|
||||
foreach (string header in headers)
|
||||
{
|
||||
dt.Columns.Add(header);
|
||||
}
|
||||
while (!sr.EndOfStream)
|
||||
{
|
||||
string strReadData = sr.ReadLine().Trim();
|
||||
if (strReadData.Length <= 0)
|
||||
break;
|
||||
|
||||
string[] rows = Regex.Split(strReadData, ",(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)");
|
||||
DataRow dr = dt.NewRow();
|
||||
for (int i = 0; i < headers.Length; i++)
|
||||
{
|
||||
dr[i] = rows[i];
|
||||
}
|
||||
dt.Rows.Add(dr);
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
dt = null;
|
||||
}
|
||||
|
||||
return dt;
|
||||
}
|
||||
|
||||
public static T ConvertTextToTryValue<T>(string strText, object objFailValue)
|
||||
{
|
||||
object obj;
|
||||
obj = typeof(T);
|
||||
|
||||
int iGetValue = 0;
|
||||
uint uiGetValue = 0;
|
||||
double dGetValue = 0;
|
||||
|
||||
if (obj.ToString().IndexOf("Int") >= 0)
|
||||
{
|
||||
if (!int.TryParse(strText, out iGetValue))
|
||||
obj = objFailValue;
|
||||
else
|
||||
obj = iGetValue;
|
||||
}
|
||||
if (obj.ToString().IndexOf("UInt") >= 0)
|
||||
{
|
||||
if (!uint.TryParse(strText, out uiGetValue))
|
||||
obj = objFailValue;
|
||||
else
|
||||
obj = uiGetValue;
|
||||
}
|
||||
else if (obj.ToString().IndexOf("Double") >= 0)
|
||||
{
|
||||
if (!double.TryParse(strText, out dGetValue))
|
||||
obj = objFailValue;
|
||||
else
|
||||
obj = dGetValue;
|
||||
}
|
||||
|
||||
return (T)Convert.ChangeType(obj, typeof(T));
|
||||
}
|
||||
|
||||
public static T FindByName<T>(this object targetClass, string name) where T : class
|
||||
{
|
||||
System.Reflection.FieldInfo fi = targetClass.GetType().GetField(name, System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic);
|
||||
|
||||
return fi.GetValue(targetClass) as T;
|
||||
}
|
||||
|
||||
public static T FindByName<T>(this string name, object targetClass) where T : class
|
||||
{
|
||||
System.Reflection.FieldInfo fi = targetClass.GetType().GetField(name, System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic);
|
||||
|
||||
return fi.GetValue(targetClass) as T;
|
||||
}
|
||||
|
||||
public class LogProcessInfo
|
||||
{
|
||||
public bool READ_INFO_STATE { set; get; }
|
||||
|
||||
private string strInfoFilePos;
|
||||
|
||||
public string TITLE;
|
||||
|
||||
public string SERVER_SAVE_POS;
|
||||
public string MES_SAVE_POS;
|
||||
|
||||
//TODO : Server ALIS FTP
|
||||
public bool FTP_Use;
|
||||
|
||||
public string FTP_IPAddress;
|
||||
public string FTP_Port;
|
||||
public string FTP_Account;
|
||||
public string FTP_Password;
|
||||
|
||||
public long FTP_ScanTime_ms;
|
||||
|
||||
public long BULK_ProcessTime_ms;
|
||||
|
||||
public LogProcessInfo(string strGetInfoPath)
|
||||
{
|
||||
strInfoFilePos = strGetInfoPath;
|
||||
}
|
||||
public bool Load()
|
||||
{
|
||||
READ_INFO_STATE = true;
|
||||
|
||||
try
|
||||
{
|
||||
XDocument xDoc = XDocument.Load(strInfoFilePos);
|
||||
var xElement = xDoc.Element("ROOT");
|
||||
|
||||
if (xElement != null)
|
||||
{
|
||||
var xGetElement = xElement.Element("Configure");
|
||||
|
||||
TITLE = xGetElement.Element("Title").Value;
|
||||
|
||||
SERVER_SAVE_POS = @xGetElement.Element("LogFileSavePos").Value;
|
||||
MES_SAVE_POS = @xGetElement.Element("MESFileSavePos").Value;
|
||||
|
||||
//TODO : Server ALIS FTP
|
||||
XElement xEle = xGetElement.Element("UseFTP");
|
||||
|
||||
bool bValue;
|
||||
long lValue;
|
||||
//string strValue;
|
||||
|
||||
if (xEle?.IsEmpty == false)
|
||||
{
|
||||
if (bool.TryParse(xEle.Value, out bValue))
|
||||
FTP_Use = bValue;
|
||||
}
|
||||
else
|
||||
FTP_Use = false;
|
||||
|
||||
xEle = xGetElement.Element("IPAddressFTP");
|
||||
|
||||
if (xEle?.IsEmpty == false)
|
||||
FTP_IPAddress = xEle.Value;
|
||||
else
|
||||
FTP_IPAddress = "0.0.0.0";
|
||||
|
||||
xEle = xGetElement.Element("PortFTP");
|
||||
|
||||
if (xEle?.IsEmpty == false)
|
||||
FTP_Port = xEle.Value;
|
||||
else
|
||||
FTP_Port = "21";
|
||||
|
||||
xEle = xGetElement.Element("AccountFTP");
|
||||
|
||||
if (xEle?.IsEmpty == false)
|
||||
FTP_Account = xEle.Value;
|
||||
else
|
||||
FTP_Account = "";
|
||||
|
||||
xEle = xGetElement.Element("PasswordFTP");
|
||||
|
||||
if (xEle?.IsEmpty == false)
|
||||
FTP_Password = xEle.Value;
|
||||
else
|
||||
FTP_Password = "";
|
||||
|
||||
xEle = xGetElement.Element("ScanTimeFTPms");
|
||||
|
||||
if (xEle?.IsEmpty == false)
|
||||
{
|
||||
if (long.TryParse(xEle.Value, out lValue))
|
||||
FTP_ScanTime_ms = lValue;
|
||||
}
|
||||
else
|
||||
FTP_ScanTime_ms = 30000;
|
||||
|
||||
xEle = xGetElement.Element("ScanTimeBULKms");
|
||||
|
||||
if (xEle?.IsEmpty == false)
|
||||
{
|
||||
if (long.TryParse(xEle.Value, out lValue))
|
||||
BULK_ProcessTime_ms = lValue;
|
||||
}
|
||||
else
|
||||
BULK_ProcessTime_ms = 30000;
|
||||
|
||||
if (Base.CheckPath(SERVER_SAVE_POS))
|
||||
{
|
||||
if (Directory.Exists(SERVER_SAVE_POS) == false)
|
||||
Directory.CreateDirectory(SERVER_SAVE_POS);
|
||||
}
|
||||
else
|
||||
{
|
||||
MessageOutput.ConsoleWrite(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss>>") + @"ServerInfo read failed.(SERVER SAVE POS - Folder name error)[SystemX.Common : SystemX.Net.ServerInfo]", ConsoleColor.Yellow, LogMessageLevel.DEBUG);
|
||||
|
||||
throw new Exception();
|
||||
}
|
||||
|
||||
if (Base.CheckPath(MES_SAVE_POS))
|
||||
{
|
||||
if (Directory.Exists(MES_SAVE_POS) == false)
|
||||
Directory.CreateDirectory(MES_SAVE_POS);
|
||||
}
|
||||
else
|
||||
{
|
||||
MessageOutput.ConsoleWrite(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss>>") + @"ServerInfo read failed.(MES SAVE POS - Folder name error)[SystemX.Common : SystemX.Net.ServerInfo]", ConsoleColor.Yellow, LogMessageLevel.DEBUG);
|
||||
|
||||
throw new Exception();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
READ_INFO_STATE = false;
|
||||
|
||||
MessageOutput.ConsoleWrite(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss>>") + @"LogProcessInfo read failed. [LogProcessInfo : SystemX.Net.Middleware.Commons]\r\n" + e.Message, ConsoleColor.Yellow, LogMessageLevel.DEBUG);
|
||||
}
|
||||
|
||||
return READ_INFO_STATE;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,169 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.IO;
|
||||
using System.Security.Cryptography;
|
||||
using System.Data;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Net.Sockets;
|
||||
using System.Globalization;
|
||||
using System.Threading;
|
||||
using System.Diagnostics;
|
||||
using System.Net;
|
||||
|
||||
using SystemX.Net.BaseProtocol;
|
||||
using System.Xml.Linq;
|
||||
using static SystemX.Net.Platform.Common.Util.LogMessage;
|
||||
using System.Data.SqlClient;
|
||||
|
||||
namespace SystemX.Net.Middleware.Log.DeleteProc
|
||||
{
|
||||
public class DeleteProcSystem
|
||||
{
|
||||
public Stopwatch stDeleteLogScanTimer;
|
||||
|
||||
public DeleteProcSystem()
|
||||
{
|
||||
stDeleteLogScanTimer = new Stopwatch();
|
||||
}
|
||||
|
||||
protected void ScanTimerStart()
|
||||
{
|
||||
stDeleteLogScanTimer.Start();
|
||||
}
|
||||
|
||||
protected void ScanTimerRestart()
|
||||
{
|
||||
stDeleteLogScanTimer.Restart();
|
||||
}
|
||||
|
||||
protected long GetTimerTime()
|
||||
{
|
||||
return stDeleteLogScanTimer.ElapsedMilliseconds;
|
||||
}
|
||||
|
||||
protected bool GetTimeOverState(long lLimitTime)
|
||||
{
|
||||
return (stDeleteLogScanTimer.ElapsedMilliseconds >= lLimitTime) ? true : false;
|
||||
}
|
||||
}
|
||||
|
||||
public class DeleteProcOption
|
||||
{
|
||||
public enum eLogCheckItem
|
||||
{
|
||||
Summary = 0,
|
||||
ShortTerm = 1,
|
||||
LongTerm = 2
|
||||
}
|
||||
|
||||
//Option
|
||||
public eLogCheckItem ProcChkItem;
|
||||
|
||||
public long lLogScanTimeVal;
|
||||
|
||||
public int nSummaryScanItemCnt;
|
||||
public int nShortLogScanItemCnt;
|
||||
public int nLongLogScanItemCnt;
|
||||
|
||||
public int nSummaryDeleteNum;
|
||||
|
||||
public DeleteProcOption()
|
||||
{
|
||||
ProcChkItem = eLogCheckItem.Summary;
|
||||
|
||||
//3 Minute
|
||||
//Test 10000
|
||||
lLogScanTimeVal = 10000; //180000;
|
||||
|
||||
nSummaryScanItemCnt = 100;
|
||||
nShortLogScanItemCnt = 100;
|
||||
nLongLogScanItemCnt = 100;
|
||||
|
||||
nSummaryDeleteNum = 5;
|
||||
}
|
||||
}
|
||||
|
||||
public class DeleteProcInfo : DeleteProcSystem
|
||||
{
|
||||
public int[] nHistSummaryDeleteList;
|
||||
public int nHistSummaryDeleteSize;
|
||||
public int nHistSummaryDeletePos;
|
||||
//
|
||||
public int[] nShortLogSummaryDeleteListNo;
|
||||
public int[] nShortLogSummaryDeleteListAccessSt;
|
||||
public int[] nShortLogSummaryDeleteListAccessEn;
|
||||
|
||||
public int nShortLogSummaryDeleteSize;
|
||||
public int nShortLogSummaryDeletePos;
|
||||
|
||||
public bool bShortLogDataCheckResult;
|
||||
public int nShortLogDeleteProcPos;
|
||||
public bool bShortLogDataDeleteResult;
|
||||
//
|
||||
public int[] nLongLogSummaryDeleteListNo;
|
||||
public int[] nLongLogSummaryDeleteListAccessSt;
|
||||
public int[] nLongLogSummaryDeleteListAccessEn;
|
||||
|
||||
public int nLongLogSummaryDeleteSize;
|
||||
public int nLongLogSummaryDeletePos;
|
||||
|
||||
public bool bLongLogDataCheckResult;
|
||||
public int nLongLogDeleteProcPos;
|
||||
public bool bLongLogDataDeleteResult;
|
||||
//
|
||||
//Option
|
||||
public DeleteProcOption DeleteProcOp;
|
||||
|
||||
public DeleteProcInfo()
|
||||
{
|
||||
ScanTimerStart();
|
||||
|
||||
InitMember();
|
||||
}
|
||||
|
||||
private void InitMember()
|
||||
{
|
||||
nHistSummaryDeleteList = new int[1];
|
||||
nHistSummaryDeleteSize = 0;
|
||||
nHistSummaryDeletePos = 0;
|
||||
|
||||
nShortLogSummaryDeleteListNo = new int[1];
|
||||
nShortLogSummaryDeleteListAccessSt = new int[1];
|
||||
nShortLogSummaryDeleteListAccessEn = new int[1];
|
||||
|
||||
nShortLogSummaryDeleteSize = 0;
|
||||
nShortLogSummaryDeletePos = 0;
|
||||
|
||||
bShortLogDataCheckResult = false;
|
||||
nShortLogDeleteProcPos = 0;
|
||||
bShortLogDataDeleteResult = false;
|
||||
|
||||
nLongLogSummaryDeleteListNo = new int[1];
|
||||
nLongLogSummaryDeleteListAccessSt = new int[1];
|
||||
nLongLogSummaryDeleteListAccessEn = new int[1];
|
||||
|
||||
nLongLogSummaryDeleteSize = 0;
|
||||
nLongLogSummaryDeletePos = 0;
|
||||
|
||||
bLongLogDataCheckResult = false;
|
||||
nLongLogDeleteProcPos = 0;
|
||||
bLongLogDataDeleteResult = false;
|
||||
|
||||
DeleteProcOp = new DeleteProcOption();
|
||||
}
|
||||
|
||||
public bool GetScanTimeState()
|
||||
{
|
||||
return GetTimeOverState(DeleteProcOp.lLogScanTimeVal);
|
||||
}
|
||||
|
||||
public void ResetScanTimeState()
|
||||
{
|
||||
ScanTimerRestart();
|
||||
}
|
||||
}
|
||||
}
|
||||
849
SystemX.Net.CP.Middleware.Log/SystemX.Net.Middleware.UI/MainForm.Designer.cs
generated
Normal file
@ -0,0 +1,849 @@
|
||||
using DevExpress.XtraBars;
|
||||
using DevExpress.XtraBars.Ribbon;
|
||||
|
||||
namespace SystemX.Net.MiddlewareUI
|
||||
{
|
||||
partial class MainForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.components = new System.ComponentModel.Container();
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));
|
||||
this.fluentDesignFormContainer1 = new DevExpress.XtraBars.FluentDesignSystem.FluentDesignFormContainer();
|
||||
this.panel2 = new System.Windows.Forms.Panel();
|
||||
this.panelMain = new System.Windows.Forms.Panel();
|
||||
this.panelProcess = new System.Windows.Forms.Panel();
|
||||
this.richTextBoxProcess = new System.Windows.Forms.RichTextBox();
|
||||
this.panelRecv = new System.Windows.Forms.Panel();
|
||||
this.richTextBoxRecv = new System.Windows.Forms.RichTextBox();
|
||||
this.paneldDBConn = new System.Windows.Forms.Panel();
|
||||
this.panelDBPath = new System.Windows.Forms.Panel();
|
||||
this.labelDBPath = new System.Windows.Forms.Label();
|
||||
this.panelFTP = new System.Windows.Forms.Panel();
|
||||
this.panel4 = new System.Windows.Forms.Panel();
|
||||
this.labelFTP = new System.Windows.Forms.Label();
|
||||
this.panelDBLongTerm2 = new System.Windows.Forms.Panel();
|
||||
this.panelDBLongTerm1 = new System.Windows.Forms.Panel();
|
||||
this.labelDBLongTerm = new System.Windows.Forms.Label();
|
||||
this.panel7 = new System.Windows.Forms.Panel();
|
||||
this.panel8 = new System.Windows.Forms.Panel();
|
||||
this.labelShortTermLogTableName = new System.Windows.Forms.Label();
|
||||
this.panel5 = new System.Windows.Forms.Panel();
|
||||
this.panel6 = new System.Windows.Forms.Panel();
|
||||
this.labelShortTermSummaryTableName = new System.Windows.Forms.Label();
|
||||
this.panelDBShortTerm2 = new System.Windows.Forms.Panel();
|
||||
this.panelDBShortTerm1 = new System.Windows.Forms.Panel();
|
||||
this.labelDBShortTerm = new System.Windows.Forms.Label();
|
||||
this.panelDBMain2 = new System.Windows.Forms.Panel();
|
||||
this.panelDBMain1 = new System.Windows.Forms.Panel();
|
||||
this.labelDBMain = new System.Windows.Forms.Label();
|
||||
this.progressBarProgram = new System.Windows.Forms.ProgressBar();
|
||||
this.panelSubFunc = new System.Windows.Forms.Panel();
|
||||
this.buttonDbConnect = new System.Windows.Forms.Button();
|
||||
this.panel3 = new System.Windows.Forms.Panel();
|
||||
this.labelFTPTime = new System.Windows.Forms.Label();
|
||||
this.labelBulkTime = new System.Windows.Forms.Label();
|
||||
this.labelBulkCntInfo1 = new System.Windows.Forms.Label();
|
||||
this.labelBulkCntInfo2 = new System.Windows.Forms.Label();
|
||||
this.labelBulkCntInfo3 = new System.Windows.Forms.Label();
|
||||
this.buttonBulkInsertStart = new System.Windows.Forms.Button();
|
||||
this.panelSub1 = new System.Windows.Forms.Panel();
|
||||
this.panelSub2 = new System.Windows.Forms.Panel();
|
||||
this.panel1 = new System.Windows.Forms.Panel();
|
||||
this.pictureBox1 = new System.Windows.Forms.PictureBox();
|
||||
this.pictureBox3 = new System.Windows.Forms.PictureBox();
|
||||
this.pictureBox2 = new System.Windows.Forms.PictureBox();
|
||||
this.Title_label = new System.Windows.Forms.Label();
|
||||
this.AlisPictureBox = new System.Windows.Forms.PictureBox();
|
||||
this.fluentDesignFormControl1 = new DevExpress.XtraBars.FluentDesignSystem.FluentDesignFormControl();
|
||||
this.barCheckItemShowCpLogTime = new DevExpress.XtraBars.BarCheckItem();
|
||||
this.Chktimer = new System.Windows.Forms.Timer(this.components);
|
||||
this.UItimer = new System.Windows.Forms.Timer(this.components);
|
||||
this.notifyIcon = new System.Windows.Forms.NotifyIcon(this.components);
|
||||
this.contextMenuSubStrip = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.toolStripMenuItemExit = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolStripComboBox1 = new System.Windows.Forms.ToolStripComboBox();
|
||||
this.fluentDesignFormContainer1.SuspendLayout();
|
||||
this.panel2.SuspendLayout();
|
||||
this.panelMain.SuspendLayout();
|
||||
this.panelProcess.SuspendLayout();
|
||||
this.panelRecv.SuspendLayout();
|
||||
this.paneldDBConn.SuspendLayout();
|
||||
this.panelDBPath.SuspendLayout();
|
||||
this.panelFTP.SuspendLayout();
|
||||
this.panel4.SuspendLayout();
|
||||
this.panelDBLongTerm2.SuspendLayout();
|
||||
this.panelDBLongTerm1.SuspendLayout();
|
||||
this.panel7.SuspendLayout();
|
||||
this.panel8.SuspendLayout();
|
||||
this.panel5.SuspendLayout();
|
||||
this.panel6.SuspendLayout();
|
||||
this.panelDBShortTerm2.SuspendLayout();
|
||||
this.panelDBShortTerm1.SuspendLayout();
|
||||
this.panelDBMain2.SuspendLayout();
|
||||
this.panelDBMain1.SuspendLayout();
|
||||
this.panelSubFunc.SuspendLayout();
|
||||
this.panel3.SuspendLayout();
|
||||
this.panel1.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.AlisPictureBox)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.fluentDesignFormControl1)).BeginInit();
|
||||
this.contextMenuSubStrip.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// fluentDesignFormContainer1
|
||||
//
|
||||
this.fluentDesignFormContainer1.Controls.Add(this.panel2);
|
||||
this.fluentDesignFormContainer1.Controls.Add(this.panel1);
|
||||
this.fluentDesignFormContainer1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.fluentDesignFormContainer1.Location = new System.Drawing.Point(0, 46);
|
||||
this.fluentDesignFormContainer1.Name = "fluentDesignFormContainer1";
|
||||
this.fluentDesignFormContainer1.Size = new System.Drawing.Size(1979, 958);
|
||||
this.fluentDesignFormContainer1.TabIndex = 0;
|
||||
//
|
||||
// panel2
|
||||
//
|
||||
this.panel2.Controls.Add(this.panelMain);
|
||||
this.panel2.Controls.Add(this.panelSubFunc);
|
||||
this.panel2.Controls.Add(this.panelSub1);
|
||||
this.panel2.Controls.Add(this.panelSub2);
|
||||
this.panel2.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.panel2.Location = new System.Drawing.Point(0, 74);
|
||||
this.panel2.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
|
||||
this.panel2.Name = "panel2";
|
||||
this.panel2.Size = new System.Drawing.Size(1979, 884);
|
||||
this.panel2.TabIndex = 3;
|
||||
//
|
||||
// panelMain
|
||||
//
|
||||
this.panelMain.Controls.Add(this.panelProcess);
|
||||
this.panelMain.Controls.Add(this.panelRecv);
|
||||
this.panelMain.Controls.Add(this.paneldDBConn);
|
||||
this.panelMain.Controls.Add(this.progressBarProgram);
|
||||
this.panelMain.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.panelMain.Location = new System.Drawing.Point(0, 0);
|
||||
this.panelMain.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
|
||||
this.panelMain.Name = "panelMain";
|
||||
this.panelMain.Size = new System.Drawing.Size(1979, 592);
|
||||
this.panelMain.TabIndex = 18;
|
||||
//
|
||||
// panelProcess
|
||||
//
|
||||
this.panelProcess.Controls.Add(this.richTextBoxProcess);
|
||||
this.panelProcess.Dock = System.Windows.Forms.DockStyle.Bottom;
|
||||
this.panelProcess.Location = new System.Drawing.Point(433, 306);
|
||||
this.panelProcess.Margin = new System.Windows.Forms.Padding(20);
|
||||
this.panelProcess.Name = "panelProcess";
|
||||
this.panelProcess.Padding = new System.Windows.Forms.Padding(20);
|
||||
this.panelProcess.Size = new System.Drawing.Size(1546, 286);
|
||||
this.panelProcess.TabIndex = 23;
|
||||
//
|
||||
// richTextBoxProcess
|
||||
//
|
||||
this.richTextBoxProcess.BackColor = System.Drawing.Color.White;
|
||||
this.richTextBoxProcess.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
||||
this.richTextBoxProcess.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.richTextBoxProcess.Font = new System.Drawing.Font("Times New Roman", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.richTextBoxProcess.Location = new System.Drawing.Point(20, 20);
|
||||
this.richTextBoxProcess.Margin = new System.Windows.Forms.Padding(10);
|
||||
this.richTextBoxProcess.Name = "richTextBoxProcess";
|
||||
this.richTextBoxProcess.ReadOnly = true;
|
||||
this.richTextBoxProcess.Size = new System.Drawing.Size(1506, 246);
|
||||
this.richTextBoxProcess.TabIndex = 1;
|
||||
this.richTextBoxProcess.Text = "";
|
||||
//
|
||||
// panelRecv
|
||||
//
|
||||
this.panelRecv.Controls.Add(this.richTextBoxRecv);
|
||||
this.panelRecv.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.panelRecv.Location = new System.Drawing.Point(433, 60);
|
||||
this.panelRecv.Margin = new System.Windows.Forms.Padding(20);
|
||||
this.panelRecv.Name = "panelRecv";
|
||||
this.panelRecv.Padding = new System.Windows.Forms.Padding(20);
|
||||
this.panelRecv.Size = new System.Drawing.Size(1546, 233);
|
||||
this.panelRecv.TabIndex = 22;
|
||||
//
|
||||
// richTextBoxRecv
|
||||
//
|
||||
this.richTextBoxRecv.BackColor = System.Drawing.Color.White;
|
||||
this.richTextBoxRecv.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
||||
this.richTextBoxRecv.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.richTextBoxRecv.Font = new System.Drawing.Font("Times New Roman", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.richTextBoxRecv.Location = new System.Drawing.Point(20, 20);
|
||||
this.richTextBoxRecv.Margin = new System.Windows.Forms.Padding(10);
|
||||
this.richTextBoxRecv.Name = "richTextBoxRecv";
|
||||
this.richTextBoxRecv.ReadOnly = true;
|
||||
this.richTextBoxRecv.Size = new System.Drawing.Size(1506, 193);
|
||||
this.richTextBoxRecv.TabIndex = 0;
|
||||
this.richTextBoxRecv.Text = "";
|
||||
//
|
||||
// paneldDBConn
|
||||
//
|
||||
this.paneldDBConn.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224)))));
|
||||
this.paneldDBConn.Controls.Add(this.panelDBPath);
|
||||
this.paneldDBConn.Controls.Add(this.panelFTP);
|
||||
this.paneldDBConn.Controls.Add(this.panelDBLongTerm2);
|
||||
this.paneldDBConn.Controls.Add(this.panel7);
|
||||
this.paneldDBConn.Controls.Add(this.panel5);
|
||||
this.paneldDBConn.Controls.Add(this.panelDBShortTerm2);
|
||||
this.paneldDBConn.Controls.Add(this.panelDBMain2);
|
||||
this.paneldDBConn.Dock = System.Windows.Forms.DockStyle.Left;
|
||||
this.paneldDBConn.Location = new System.Drawing.Point(0, 60);
|
||||
this.paneldDBConn.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
|
||||
this.paneldDBConn.Name = "paneldDBConn";
|
||||
this.paneldDBConn.Size = new System.Drawing.Size(433, 532);
|
||||
this.paneldDBConn.TabIndex = 21;
|
||||
//
|
||||
// panelDBPath
|
||||
//
|
||||
this.panelDBPath.Controls.Add(this.labelDBPath);
|
||||
this.panelDBPath.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.panelDBPath.Location = new System.Drawing.Point(0, 228);
|
||||
this.panelDBPath.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
|
||||
this.panelDBPath.Name = "panelDBPath";
|
||||
this.panelDBPath.Size = new System.Drawing.Size(433, 39);
|
||||
this.panelDBPath.TabIndex = 33;
|
||||
//
|
||||
// labelDBPath
|
||||
//
|
||||
this.labelDBPath.BackColor = System.Drawing.Color.White;
|
||||
this.labelDBPath.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.labelDBPath.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.labelDBPath.Location = new System.Drawing.Point(0, 0);
|
||||
this.labelDBPath.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
|
||||
this.labelDBPath.Name = "labelDBPath";
|
||||
this.labelDBPath.Size = new System.Drawing.Size(433, 39);
|
||||
this.labelDBPath.TabIndex = 23;
|
||||
this.labelDBPath.Text = "Path";
|
||||
this.labelDBPath.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
//
|
||||
// panelFTP
|
||||
//
|
||||
this.panelFTP.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.panelFTP.Controls.Add(this.panel4);
|
||||
this.panelFTP.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.panelFTP.Location = new System.Drawing.Point(0, 190);
|
||||
this.panelFTP.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
|
||||
this.panelFTP.Name = "panelFTP";
|
||||
this.panelFTP.Size = new System.Drawing.Size(433, 38);
|
||||
this.panelFTP.TabIndex = 32;
|
||||
this.panelFTP.Visible = false;
|
||||
//
|
||||
// panel4
|
||||
//
|
||||
this.panel4.Controls.Add(this.labelFTP);
|
||||
this.panel4.Dock = System.Windows.Forms.DockStyle.Left;
|
||||
this.panel4.Location = new System.Drawing.Point(0, 0);
|
||||
this.panel4.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
|
||||
this.panel4.Name = "panel4";
|
||||
this.panel4.Size = new System.Drawing.Size(408, 36);
|
||||
this.panel4.TabIndex = 26;
|
||||
//
|
||||
// labelFTP
|
||||
//
|
||||
this.labelFTP.BackColor = System.Drawing.Color.White;
|
||||
this.labelFTP.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.labelFTP.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.labelFTP.Location = new System.Drawing.Point(0, 0);
|
||||
this.labelFTP.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
|
||||
this.labelFTP.Name = "labelFTP";
|
||||
this.labelFTP.Size = new System.Drawing.Size(408, 36);
|
||||
this.labelFTP.TabIndex = 23;
|
||||
this.labelFTP.Text = "FTP";
|
||||
this.labelFTP.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
//
|
||||
// panelDBLongTerm2
|
||||
//
|
||||
this.panelDBLongTerm2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.panelDBLongTerm2.Controls.Add(this.panelDBLongTerm1);
|
||||
this.panelDBLongTerm2.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.panelDBLongTerm2.Location = new System.Drawing.Point(0, 152);
|
||||
this.panelDBLongTerm2.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
|
||||
this.panelDBLongTerm2.Name = "panelDBLongTerm2";
|
||||
this.panelDBLongTerm2.Size = new System.Drawing.Size(433, 38);
|
||||
this.panelDBLongTerm2.TabIndex = 31;
|
||||
//
|
||||
// panelDBLongTerm1
|
||||
//
|
||||
this.panelDBLongTerm1.Controls.Add(this.labelDBLongTerm);
|
||||
this.panelDBLongTerm1.Dock = System.Windows.Forms.DockStyle.Left;
|
||||
this.panelDBLongTerm1.Location = new System.Drawing.Point(0, 0);
|
||||
this.panelDBLongTerm1.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
|
||||
this.panelDBLongTerm1.Name = "panelDBLongTerm1";
|
||||
this.panelDBLongTerm1.Size = new System.Drawing.Size(408, 36);
|
||||
this.panelDBLongTerm1.TabIndex = 26;
|
||||
//
|
||||
// labelDBLongTerm
|
||||
//
|
||||
this.labelDBLongTerm.BackColor = System.Drawing.Color.White;
|
||||
this.labelDBLongTerm.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.labelDBLongTerm.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.labelDBLongTerm.Location = new System.Drawing.Point(0, 0);
|
||||
this.labelDBLongTerm.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
|
||||
this.labelDBLongTerm.Name = "labelDBLongTerm";
|
||||
this.labelDBLongTerm.Size = new System.Drawing.Size(408, 36);
|
||||
this.labelDBLongTerm.TabIndex = 23;
|
||||
this.labelDBLongTerm.Text = "LongTerm";
|
||||
this.labelDBLongTerm.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
//
|
||||
// panel7
|
||||
//
|
||||
this.panel7.BackColor = System.Drawing.Color.WhiteSmoke;
|
||||
this.panel7.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.panel7.Controls.Add(this.panel8);
|
||||
this.panel7.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.panel7.Location = new System.Drawing.Point(0, 114);
|
||||
this.panel7.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
|
||||
this.panel7.Name = "panel7";
|
||||
this.panel7.Size = new System.Drawing.Size(433, 38);
|
||||
this.panel7.TabIndex = 29;
|
||||
//
|
||||
// panel8
|
||||
//
|
||||
this.panel8.Controls.Add(this.labelShortTermLogTableName);
|
||||
this.panel8.Dock = System.Windows.Forms.DockStyle.Left;
|
||||
this.panel8.Location = new System.Drawing.Point(0, 0);
|
||||
this.panel8.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
|
||||
this.panel8.Name = "panel8";
|
||||
this.panel8.Size = new System.Drawing.Size(408, 36);
|
||||
this.panel8.TabIndex = 26;
|
||||
//
|
||||
// labelShortTermLogTableName
|
||||
//
|
||||
this.labelShortTermLogTableName.BackColor = System.Drawing.Color.White;
|
||||
this.labelShortTermLogTableName.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.labelShortTermLogTableName.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.labelShortTermLogTableName.Location = new System.Drawing.Point(0, 0);
|
||||
this.labelShortTermLogTableName.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
|
||||
this.labelShortTermLogTableName.Name = "labelShortTermLogTableName";
|
||||
this.labelShortTermLogTableName.Size = new System.Drawing.Size(408, 36);
|
||||
this.labelShortTermLogTableName.TabIndex = 23;
|
||||
this.labelShortTermLogTableName.Text = "ShortTermLogTableName";
|
||||
this.labelShortTermLogTableName.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
//
|
||||
// panel5
|
||||
//
|
||||
this.panel5.BackColor = System.Drawing.Color.WhiteSmoke;
|
||||
this.panel5.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.panel5.Controls.Add(this.panel6);
|
||||
this.panel5.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.panel5.Location = new System.Drawing.Point(0, 76);
|
||||
this.panel5.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
|
||||
this.panel5.Name = "panel5";
|
||||
this.panel5.Size = new System.Drawing.Size(433, 38);
|
||||
this.panel5.TabIndex = 28;
|
||||
//
|
||||
// panel6
|
||||
//
|
||||
this.panel6.Controls.Add(this.labelShortTermSummaryTableName);
|
||||
this.panel6.Dock = System.Windows.Forms.DockStyle.Left;
|
||||
this.panel6.Location = new System.Drawing.Point(0, 0);
|
||||
this.panel6.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
|
||||
this.panel6.Name = "panel6";
|
||||
this.panel6.Size = new System.Drawing.Size(408, 36);
|
||||
this.panel6.TabIndex = 26;
|
||||
//
|
||||
// labelShortTermSummaryTableName
|
||||
//
|
||||
this.labelShortTermSummaryTableName.BackColor = System.Drawing.Color.White;
|
||||
this.labelShortTermSummaryTableName.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.labelShortTermSummaryTableName.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.labelShortTermSummaryTableName.Location = new System.Drawing.Point(0, 0);
|
||||
this.labelShortTermSummaryTableName.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
|
||||
this.labelShortTermSummaryTableName.Name = "labelShortTermSummaryTableName";
|
||||
this.labelShortTermSummaryTableName.Size = new System.Drawing.Size(408, 36);
|
||||
this.labelShortTermSummaryTableName.TabIndex = 23;
|
||||
this.labelShortTermSummaryTableName.Text = "ShortTermSummaryTableName";
|
||||
this.labelShortTermSummaryTableName.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
//
|
||||
// panelDBShortTerm2
|
||||
//
|
||||
this.panelDBShortTerm2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.panelDBShortTerm2.Controls.Add(this.panelDBShortTerm1);
|
||||
this.panelDBShortTerm2.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.panelDBShortTerm2.Location = new System.Drawing.Point(0, 38);
|
||||
this.panelDBShortTerm2.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
|
||||
this.panelDBShortTerm2.Name = "panelDBShortTerm2";
|
||||
this.panelDBShortTerm2.Size = new System.Drawing.Size(433, 38);
|
||||
this.panelDBShortTerm2.TabIndex = 23;
|
||||
//
|
||||
// panelDBShortTerm1
|
||||
//
|
||||
this.panelDBShortTerm1.Controls.Add(this.labelDBShortTerm);
|
||||
this.panelDBShortTerm1.Dock = System.Windows.Forms.DockStyle.Left;
|
||||
this.panelDBShortTerm1.Location = new System.Drawing.Point(0, 0);
|
||||
this.panelDBShortTerm1.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
|
||||
this.panelDBShortTerm1.Name = "panelDBShortTerm1";
|
||||
this.panelDBShortTerm1.Size = new System.Drawing.Size(408, 36);
|
||||
this.panelDBShortTerm1.TabIndex = 26;
|
||||
//
|
||||
// labelDBShortTerm
|
||||
//
|
||||
this.labelDBShortTerm.BackColor = System.Drawing.Color.White;
|
||||
this.labelDBShortTerm.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.labelDBShortTerm.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.labelDBShortTerm.Location = new System.Drawing.Point(0, 0);
|
||||
this.labelDBShortTerm.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
|
||||
this.labelDBShortTerm.Name = "labelDBShortTerm";
|
||||
this.labelDBShortTerm.Size = new System.Drawing.Size(408, 36);
|
||||
this.labelDBShortTerm.TabIndex = 23;
|
||||
this.labelDBShortTerm.Text = "ShortTerm";
|
||||
this.labelDBShortTerm.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
//
|
||||
// panelDBMain2
|
||||
//
|
||||
this.panelDBMain2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.panelDBMain2.Controls.Add(this.panelDBMain1);
|
||||
this.panelDBMain2.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.panelDBMain2.Location = new System.Drawing.Point(0, 0);
|
||||
this.panelDBMain2.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
|
||||
this.panelDBMain2.Name = "panelDBMain2";
|
||||
this.panelDBMain2.Size = new System.Drawing.Size(433, 38);
|
||||
this.panelDBMain2.TabIndex = 22;
|
||||
//
|
||||
// panelDBMain1
|
||||
//
|
||||
this.panelDBMain1.Controls.Add(this.labelDBMain);
|
||||
this.panelDBMain1.Dock = System.Windows.Forms.DockStyle.Left;
|
||||
this.panelDBMain1.Location = new System.Drawing.Point(0, 0);
|
||||
this.panelDBMain1.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
|
||||
this.panelDBMain1.Name = "panelDBMain1";
|
||||
this.panelDBMain1.Size = new System.Drawing.Size(408, 36);
|
||||
this.panelDBMain1.TabIndex = 25;
|
||||
//
|
||||
// labelDBMain
|
||||
//
|
||||
this.labelDBMain.BackColor = System.Drawing.Color.White;
|
||||
this.labelDBMain.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.labelDBMain.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.labelDBMain.Location = new System.Drawing.Point(0, 0);
|
||||
this.labelDBMain.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
|
||||
this.labelDBMain.Name = "labelDBMain";
|
||||
this.labelDBMain.Size = new System.Drawing.Size(408, 36);
|
||||
this.labelDBMain.TabIndex = 22;
|
||||
this.labelDBMain.Text = "Information";
|
||||
this.labelDBMain.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
//
|
||||
// progressBarProgram
|
||||
//
|
||||
this.progressBarProgram.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.progressBarProgram.ForeColor = System.Drawing.SystemColors.HotTrack;
|
||||
this.progressBarProgram.Location = new System.Drawing.Point(0, 0);
|
||||
this.progressBarProgram.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
|
||||
this.progressBarProgram.Name = "progressBarProgram";
|
||||
this.progressBarProgram.Size = new System.Drawing.Size(1979, 60);
|
||||
this.progressBarProgram.Style = System.Windows.Forms.ProgressBarStyle.Marquee;
|
||||
this.progressBarProgram.TabIndex = 20;
|
||||
//
|
||||
// panelSubFunc
|
||||
//
|
||||
this.panelSubFunc.BackColor = System.Drawing.Color.MidnightBlue;
|
||||
this.panelSubFunc.Controls.Add(this.buttonDbConnect);
|
||||
this.panelSubFunc.Controls.Add(this.panel3);
|
||||
this.panelSubFunc.Controls.Add(this.buttonBulkInsertStart);
|
||||
this.panelSubFunc.Dock = System.Windows.Forms.DockStyle.Bottom;
|
||||
this.panelSubFunc.Location = new System.Drawing.Point(0, 592);
|
||||
this.panelSubFunc.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
|
||||
this.panelSubFunc.Name = "panelSubFunc";
|
||||
this.panelSubFunc.Size = new System.Drawing.Size(1979, 58);
|
||||
this.panelSubFunc.TabIndex = 17;
|
||||
//
|
||||
// buttonDbConnect
|
||||
//
|
||||
this.buttonDbConnect.BackColor = System.Drawing.SystemColors.Control;
|
||||
this.buttonDbConnect.Dock = System.Windows.Forms.DockStyle.Right;
|
||||
this.buttonDbConnect.Location = new System.Drawing.Point(683, 0);
|
||||
this.buttonDbConnect.Name = "buttonDbConnect";
|
||||
this.buttonDbConnect.Size = new System.Drawing.Size(229, 58);
|
||||
this.buttonDbConnect.TabIndex = 2;
|
||||
this.buttonDbConnect.Text = "Database Connect Try";
|
||||
this.buttonDbConnect.UseVisualStyleBackColor = false;
|
||||
this.buttonDbConnect.Visible = false;
|
||||
this.buttonDbConnect.Click += new System.EventHandler(this.buttonDbConnect_Click);
|
||||
//
|
||||
// panel3
|
||||
//
|
||||
this.panel3.Controls.Add(this.labelFTPTime);
|
||||
this.panel3.Controls.Add(this.labelBulkTime);
|
||||
this.panel3.Controls.Add(this.labelBulkCntInfo1);
|
||||
this.panel3.Controls.Add(this.labelBulkCntInfo2);
|
||||
this.panel3.Controls.Add(this.labelBulkCntInfo3);
|
||||
this.panel3.Dock = System.Windows.Forms.DockStyle.Right;
|
||||
this.panel3.Location = new System.Drawing.Point(912, 0);
|
||||
this.panel3.Name = "panel3";
|
||||
this.panel3.Size = new System.Drawing.Size(851, 58);
|
||||
this.panel3.TabIndex = 1;
|
||||
//
|
||||
// labelFTPTime
|
||||
//
|
||||
this.labelFTPTime.BackColor = System.Drawing.Color.WhiteSmoke;
|
||||
this.labelFTPTime.Dock = System.Windows.Forms.DockStyle.Right;
|
||||
this.labelFTPTime.Font = new System.Drawing.Font("Times New Roman", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.labelFTPTime.Location = new System.Drawing.Point(121, 0);
|
||||
this.labelFTPTime.Name = "labelFTPTime";
|
||||
this.labelFTPTime.Size = new System.Drawing.Size(146, 58);
|
||||
this.labelFTPTime.TabIndex = 4;
|
||||
this.labelFTPTime.Text = "-";
|
||||
this.labelFTPTime.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
this.labelFTPTime.Visible = false;
|
||||
//
|
||||
// labelBulkTime
|
||||
//
|
||||
this.labelBulkTime.BackColor = System.Drawing.Color.Snow;
|
||||
this.labelBulkTime.Dock = System.Windows.Forms.DockStyle.Right;
|
||||
this.labelBulkTime.Font = new System.Drawing.Font("Times New Roman", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.labelBulkTime.Location = new System.Drawing.Point(267, 0);
|
||||
this.labelBulkTime.Name = "labelBulkTime";
|
||||
this.labelBulkTime.Size = new System.Drawing.Size(146, 58);
|
||||
this.labelBulkTime.TabIndex = 3;
|
||||
this.labelBulkTime.Text = "-";
|
||||
this.labelBulkTime.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
//
|
||||
// labelBulkCntInfo1
|
||||
//
|
||||
this.labelBulkCntInfo1.BackColor = System.Drawing.Color.Silver;
|
||||
this.labelBulkCntInfo1.Dock = System.Windows.Forms.DockStyle.Right;
|
||||
this.labelBulkCntInfo1.Font = new System.Drawing.Font("Times New Roman", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.labelBulkCntInfo1.Location = new System.Drawing.Point(413, 0);
|
||||
this.labelBulkCntInfo1.Name = "labelBulkCntInfo1";
|
||||
this.labelBulkCntInfo1.Size = new System.Drawing.Size(146, 58);
|
||||
this.labelBulkCntInfo1.TabIndex = 2;
|
||||
this.labelBulkCntInfo1.Text = "-";
|
||||
this.labelBulkCntInfo1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
//
|
||||
// labelBulkCntInfo2
|
||||
//
|
||||
this.labelBulkCntInfo2.BackColor = System.Drawing.Color.Silver;
|
||||
this.labelBulkCntInfo2.Dock = System.Windows.Forms.DockStyle.Right;
|
||||
this.labelBulkCntInfo2.Font = new System.Drawing.Font("Times New Roman", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.labelBulkCntInfo2.Location = new System.Drawing.Point(559, 0);
|
||||
this.labelBulkCntInfo2.Name = "labelBulkCntInfo2";
|
||||
this.labelBulkCntInfo2.Size = new System.Drawing.Size(146, 58);
|
||||
this.labelBulkCntInfo2.TabIndex = 1;
|
||||
this.labelBulkCntInfo2.Text = "-";
|
||||
this.labelBulkCntInfo2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
//
|
||||
// labelBulkCntInfo3
|
||||
//
|
||||
this.labelBulkCntInfo3.BackColor = System.Drawing.Color.Silver;
|
||||
this.labelBulkCntInfo3.Dock = System.Windows.Forms.DockStyle.Right;
|
||||
this.labelBulkCntInfo3.Font = new System.Drawing.Font("Times New Roman", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.labelBulkCntInfo3.Location = new System.Drawing.Point(705, 0);
|
||||
this.labelBulkCntInfo3.Name = "labelBulkCntInfo3";
|
||||
this.labelBulkCntInfo3.Size = new System.Drawing.Size(146, 58);
|
||||
this.labelBulkCntInfo3.TabIndex = 0;
|
||||
this.labelBulkCntInfo3.Text = "-";
|
||||
this.labelBulkCntInfo3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
//
|
||||
// buttonBulkInsertStart
|
||||
//
|
||||
this.buttonBulkInsertStart.BackColor = System.Drawing.SystemColors.Control;
|
||||
this.buttonBulkInsertStart.Dock = System.Windows.Forms.DockStyle.Right;
|
||||
this.buttonBulkInsertStart.Location = new System.Drawing.Point(1763, 0);
|
||||
this.buttonBulkInsertStart.Name = "buttonBulkInsertStart";
|
||||
this.buttonBulkInsertStart.Size = new System.Drawing.Size(216, 58);
|
||||
this.buttonBulkInsertStart.TabIndex = 0;
|
||||
this.buttonBulkInsertStart.Text = "Direct Bulk Insert Try";
|
||||
this.buttonBulkInsertStart.UseVisualStyleBackColor = false;
|
||||
this.buttonBulkInsertStart.Click += new System.EventHandler(this.buttonBulkInsertStart_Click);
|
||||
//
|
||||
// panelSub1
|
||||
//
|
||||
this.panelSub1.Dock = System.Windows.Forms.DockStyle.Bottom;
|
||||
this.panelSub1.Location = new System.Drawing.Point(0, 650);
|
||||
this.panelSub1.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
|
||||
this.panelSub1.Name = "panelSub1";
|
||||
this.panelSub1.Size = new System.Drawing.Size(1979, 94);
|
||||
this.panelSub1.TabIndex = 14;
|
||||
//
|
||||
// panelSub2
|
||||
//
|
||||
this.panelSub2.Dock = System.Windows.Forms.DockStyle.Bottom;
|
||||
this.panelSub2.Location = new System.Drawing.Point(0, 744);
|
||||
this.panelSub2.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
|
||||
this.panelSub2.Name = "panelSub2";
|
||||
this.panelSub2.Size = new System.Drawing.Size(1979, 140);
|
||||
this.panelSub2.TabIndex = 2;
|
||||
//
|
||||
// panel1
|
||||
//
|
||||
this.panel1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.panel1.Controls.Add(this.pictureBox1);
|
||||
this.panel1.Controls.Add(this.pictureBox3);
|
||||
this.panel1.Controls.Add(this.pictureBox2);
|
||||
this.panel1.Controls.Add(this.Title_label);
|
||||
this.panel1.Controls.Add(this.AlisPictureBox);
|
||||
this.panel1.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.panel1.Location = new System.Drawing.Point(0, 0);
|
||||
this.panel1.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
|
||||
this.panel1.Name = "panel1";
|
||||
this.panel1.Size = new System.Drawing.Size(1979, 74);
|
||||
this.panel1.TabIndex = 2;
|
||||
//
|
||||
// pictureBox1
|
||||
//
|
||||
this.pictureBox1.Dock = System.Windows.Forms.DockStyle.Left;
|
||||
this.pictureBox1.Image = global::SystemX.Net.MiddlewareUI.Log.Properties.Resources.AppIcon;
|
||||
this.pictureBox1.Location = new System.Drawing.Point(353, 0);
|
||||
this.pictureBox1.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
|
||||
this.pictureBox1.Name = "pictureBox1";
|
||||
this.pictureBox1.Size = new System.Drawing.Size(60, 72);
|
||||
this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
|
||||
this.pictureBox1.TabIndex = 5;
|
||||
this.pictureBox1.TabStop = false;
|
||||
//
|
||||
// pictureBox3
|
||||
//
|
||||
this.pictureBox3.Dock = System.Windows.Forms.DockStyle.Left;
|
||||
this.pictureBox3.Image = global::SystemX.Net.MiddlewareUI.Log.Properties.Resources.ALIS;
|
||||
this.pictureBox3.Location = new System.Drawing.Point(220, 0);
|
||||
this.pictureBox3.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
|
||||
this.pictureBox3.Name = "pictureBox3";
|
||||
this.pictureBox3.Size = new System.Drawing.Size(133, 72);
|
||||
this.pictureBox3.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
|
||||
this.pictureBox3.TabIndex = 4;
|
||||
this.pictureBox3.TabStop = false;
|
||||
//
|
||||
// pictureBox2
|
||||
//
|
||||
this.pictureBox2.Dock = System.Windows.Forms.DockStyle.Right;
|
||||
this.pictureBox2.Image = global::SystemX.Net.MiddlewareUI.Log.Properties.Resources.CI;
|
||||
this.pictureBox2.Location = new System.Drawing.Point(1770, 0);
|
||||
this.pictureBox2.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
|
||||
this.pictureBox2.Name = "pictureBox2";
|
||||
this.pictureBox2.Size = new System.Drawing.Size(207, 72);
|
||||
this.pictureBox2.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
|
||||
this.pictureBox2.TabIndex = 3;
|
||||
this.pictureBox2.TabStop = false;
|
||||
//
|
||||
// Title_label
|
||||
//
|
||||
this.Title_label.BackColor = System.Drawing.Color.White;
|
||||
this.Title_label.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.Title_label.Font = new System.Drawing.Font("Times New Roman", 20.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.Title_label.Location = new System.Drawing.Point(220, 0);
|
||||
this.Title_label.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
|
||||
this.Title_label.Name = "Title_label";
|
||||
this.Title_label.Size = new System.Drawing.Size(1757, 72);
|
||||
this.Title_label.TabIndex = 2;
|
||||
this.Title_label.Text = "CP ALIS";
|
||||
this.Title_label.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
this.Title_label.DoubleClick += new System.EventHandler(this.label1_DoubleClick);
|
||||
//
|
||||
// AlisPictureBox
|
||||
//
|
||||
this.AlisPictureBox.Dock = System.Windows.Forms.DockStyle.Left;
|
||||
this.AlisPictureBox.Image = global::SystemX.Net.MiddlewareUI.Log.Properties.Resources.Kefico_CI;
|
||||
this.AlisPictureBox.Location = new System.Drawing.Point(0, 0);
|
||||
this.AlisPictureBox.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
|
||||
this.AlisPictureBox.Name = "AlisPictureBox";
|
||||
this.AlisPictureBox.Size = new System.Drawing.Size(220, 72);
|
||||
this.AlisPictureBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
|
||||
this.AlisPictureBox.TabIndex = 1;
|
||||
this.AlisPictureBox.TabStop = false;
|
||||
//
|
||||
// fluentDesignFormControl1
|
||||
//
|
||||
this.fluentDesignFormControl1.FluentDesignForm = this;
|
||||
this.fluentDesignFormControl1.Items.AddRange(new DevExpress.XtraBars.BarItem[] {
|
||||
this.barCheckItemShowCpLogTime});
|
||||
this.fluentDesignFormControl1.Location = new System.Drawing.Point(0, 0);
|
||||
this.fluentDesignFormControl1.Name = "fluentDesignFormControl1";
|
||||
this.fluentDesignFormControl1.Size = new System.Drawing.Size(1979, 46);
|
||||
this.fluentDesignFormControl1.TabIndex = 2;
|
||||
this.fluentDesignFormControl1.TabStop = false;
|
||||
this.fluentDesignFormControl1.TitleItemLinks.Add(this.barCheckItemShowCpLogTime);
|
||||
//
|
||||
// barCheckItemShowCpLogTime
|
||||
//
|
||||
this.barCheckItemShowCpLogTime.CheckBoxVisibility = DevExpress.XtraBars.CheckBoxVisibility.BeforeText;
|
||||
this.barCheckItemShowCpLogTime.Id = 0;
|
||||
this.barCheckItemShowCpLogTime.Name = "barCheckItemShowCpLogTime";
|
||||
this.barCheckItemShowCpLogTime.CheckedChanged += new DevExpress.XtraBars.ItemClickEventHandler(this.barCheckItemShowCpLogTime_CheckedChanged);
|
||||
//
|
||||
// Chktimer
|
||||
//
|
||||
this.Chktimer.Interval = 1000;
|
||||
this.Chktimer.Tick += new System.EventHandler(this.Chktimer_Tick);
|
||||
//
|
||||
// UItimer
|
||||
//
|
||||
this.UItimer.Interval = 500;
|
||||
this.UItimer.Tick += new System.EventHandler(this.UItimer_Tick);
|
||||
//
|
||||
// notifyIcon
|
||||
//
|
||||
this.notifyIcon.BalloonTipIcon = System.Windows.Forms.ToolTipIcon.Info;
|
||||
this.notifyIcon.BalloonTipText = "v20230510 Middleware Log Process";
|
||||
this.notifyIcon.BalloonTipTitle = "For [ALIS] Middleware Program.";
|
||||
this.notifyIcon.ContextMenuStrip = this.contextMenuSubStrip;
|
||||
this.notifyIcon.Icon = ((System.Drawing.Icon)(resources.GetObject("notifyIcon.Icon")));
|
||||
this.notifyIcon.Text = "Middleware Log";
|
||||
this.notifyIcon.Visible = true;
|
||||
this.notifyIcon.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.notifyIcon_MouseDoubleClick);
|
||||
//
|
||||
// contextMenuSubStrip
|
||||
//
|
||||
this.contextMenuSubStrip.Font = new System.Drawing.Font("Times New Roman", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.contextMenuSubStrip.ImageScalingSize = new System.Drawing.Size(24, 24);
|
||||
this.contextMenuSubStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.toolStripSeparator1,
|
||||
this.toolStripMenuItemExit});
|
||||
this.contextMenuSubStrip.Name = "contextMenuSubStrip";
|
||||
this.contextMenuSubStrip.Size = new System.Drawing.Size(207, 42);
|
||||
this.contextMenuSubStrip.Text = "Menu";
|
||||
this.contextMenuSubStrip.ItemClicked += new System.Windows.Forms.ToolStripItemClickedEventHandler(this.contextMenuSubStrip_ItemClicked);
|
||||
//
|
||||
// toolStripSeparator1
|
||||
//
|
||||
this.toolStripSeparator1.Name = "toolStripSeparator1";
|
||||
this.toolStripSeparator1.Size = new System.Drawing.Size(203, 6);
|
||||
//
|
||||
// toolStripMenuItemExit
|
||||
//
|
||||
this.toolStripMenuItemExit.BackColor = System.Drawing.Color.Khaki;
|
||||
this.toolStripMenuItemExit.Name = "toolStripMenuItemExit";
|
||||
this.toolStripMenuItemExit.Size = new System.Drawing.Size(206, 32);
|
||||
this.toolStripMenuItemExit.Text = "Program Exit";
|
||||
//
|
||||
// toolStripComboBox1
|
||||
//
|
||||
this.toolStripComboBox1.Margin = new System.Windows.Forms.Padding(1, 0, 1, 0);
|
||||
this.toolStripComboBox1.Name = "toolStripComboBox1";
|
||||
this.toolStripComboBox1.Size = new System.Drawing.Size(121, 23);
|
||||
//
|
||||
// MainForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(10F, 22F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(1979, 1004);
|
||||
this.ControlContainer = this.fluentDesignFormContainer1;
|
||||
this.Controls.Add(this.fluentDesignFormContainer1);
|
||||
this.Controls.Add(this.fluentDesignFormControl1);
|
||||
this.FluentDesignFormControl = this.fluentDesignFormControl1;
|
||||
this.IconOptions.Icon = ((System.Drawing.Icon)(resources.GetObject("MainForm.IconOptions.Icon")));
|
||||
this.IconOptions.Image = global::SystemX.Net.MiddlewareUI.Log.Properties.Resources.AppIcon1;
|
||||
this.Name = "MainForm";
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
|
||||
this.Text = "SystemX.Net.Middleware.UI - Log CPX v240529";
|
||||
this.WindowState = System.Windows.Forms.FormWindowState.Maximized;
|
||||
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.MainForm_FormClosing);
|
||||
this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.MainForm_FormClosed);
|
||||
this.fluentDesignFormContainer1.ResumeLayout(false);
|
||||
this.panel2.ResumeLayout(false);
|
||||
this.panelMain.ResumeLayout(false);
|
||||
this.panelProcess.ResumeLayout(false);
|
||||
this.panelRecv.ResumeLayout(false);
|
||||
this.paneldDBConn.ResumeLayout(false);
|
||||
this.panelDBPath.ResumeLayout(false);
|
||||
this.panelFTP.ResumeLayout(false);
|
||||
this.panel4.ResumeLayout(false);
|
||||
this.panelDBLongTerm2.ResumeLayout(false);
|
||||
this.panelDBLongTerm1.ResumeLayout(false);
|
||||
this.panel7.ResumeLayout(false);
|
||||
this.panel8.ResumeLayout(false);
|
||||
this.panel5.ResumeLayout(false);
|
||||
this.panel6.ResumeLayout(false);
|
||||
this.panelDBShortTerm2.ResumeLayout(false);
|
||||
this.panelDBShortTerm1.ResumeLayout(false);
|
||||
this.panelDBMain2.ResumeLayout(false);
|
||||
this.panelDBMain1.ResumeLayout(false);
|
||||
this.panelSubFunc.ResumeLayout(false);
|
||||
this.panel3.ResumeLayout(false);
|
||||
this.panel1.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.AlisPictureBox)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.fluentDesignFormControl1)).EndInit();
|
||||
this.contextMenuSubStrip.ResumeLayout(false);
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
private DevExpress.XtraBars.FluentDesignSystem.FluentDesignFormContainer fluentDesignFormContainer1;
|
||||
private DevExpress.XtraBars.FluentDesignSystem.FluentDesignFormControl fluentDesignFormControl1;
|
||||
private System.Windows.Forms.PictureBox AlisPictureBox;
|
||||
private System.Windows.Forms.Panel panel1;
|
||||
private System.Windows.Forms.Label Title_label;
|
||||
private System.Windows.Forms.Panel panel2;
|
||||
private System.Windows.Forms.Timer Chktimer;
|
||||
private System.Windows.Forms.Timer UItimer;
|
||||
private System.Windows.Forms.Panel panelSub2;
|
||||
private System.Windows.Forms.NotifyIcon notifyIcon;
|
||||
private System.Windows.Forms.PictureBox pictureBox2;
|
||||
private System.Windows.Forms.PictureBox pictureBox3;
|
||||
private System.Windows.Forms.ContextMenuStrip contextMenuSubStrip;
|
||||
private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
|
||||
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItemExit;
|
||||
private System.Windows.Forms.ToolStripComboBox toolStripComboBox1;
|
||||
private System.Windows.Forms.Panel panelSub1;
|
||||
private System.Windows.Forms.Panel panelSubFunc;
|
||||
private BarCheckItem barCheckItemShowCpLogTime;
|
||||
private System.Windows.Forms.Panel panelMain;
|
||||
private System.Windows.Forms.ProgressBar progressBarProgram;
|
||||
private System.Windows.Forms.PictureBox pictureBox1;
|
||||
private System.Windows.Forms.Panel paneldDBConn;
|
||||
private System.Windows.Forms.Panel panelDBShortTerm2;
|
||||
private System.Windows.Forms.Panel panelDBShortTerm1;
|
||||
private System.Windows.Forms.Label labelDBShortTerm;
|
||||
private System.Windows.Forms.Panel panelDBMain2;
|
||||
private System.Windows.Forms.Panel panelDBMain1;
|
||||
private System.Windows.Forms.Label labelDBMain;
|
||||
private System.Windows.Forms.Panel panelProcess;
|
||||
private System.Windows.Forms.RichTextBox richTextBoxProcess;
|
||||
private System.Windows.Forms.Panel panelRecv;
|
||||
private System.Windows.Forms.RichTextBox richTextBoxRecv;
|
||||
private System.Windows.Forms.Button buttonBulkInsertStart;
|
||||
private System.Windows.Forms.Panel panel3;
|
||||
private System.Windows.Forms.Label labelBulkCntInfo1;
|
||||
private System.Windows.Forms.Label labelBulkCntInfo2;
|
||||
private System.Windows.Forms.Label labelBulkCntInfo3;
|
||||
private System.Windows.Forms.Label labelBulkTime;
|
||||
private System.Windows.Forms.Panel panelDBPath;
|
||||
private System.Windows.Forms.Label labelDBPath;
|
||||
private System.Windows.Forms.Panel panelFTP;
|
||||
private System.Windows.Forms.Panel panel4;
|
||||
private System.Windows.Forms.Label labelFTP;
|
||||
private System.Windows.Forms.Panel panelDBLongTerm2;
|
||||
private System.Windows.Forms.Panel panelDBLongTerm1;
|
||||
private System.Windows.Forms.Label labelDBLongTerm;
|
||||
private System.Windows.Forms.Panel panel7;
|
||||
private System.Windows.Forms.Panel panel8;
|
||||
private System.Windows.Forms.Label labelShortTermLogTableName;
|
||||
private System.Windows.Forms.Panel panel5;
|
||||
private System.Windows.Forms.Panel panel6;
|
||||
private System.Windows.Forms.Label labelShortTermSummaryTableName;
|
||||
private System.Windows.Forms.Button buttonDbConnect;
|
||||
private System.Windows.Forms.Label labelFTPTime;
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,604 @@
|
||||
using System;
|
||||
using System.Net;
|
||||
using System.Net.Sockets;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Data.SqlClient;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using System.Xml.Linq;
|
||||
using System.IO;
|
||||
using System.Diagnostics;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using System.Data.SqlTypes;
|
||||
|
||||
using DevExpress.Utils.DPI;
|
||||
using DevExpress.Utils.Helpers;
|
||||
using DevExpress.Data;
|
||||
using DevExpress.Data.Helpers;
|
||||
using DevExpress.XtraBars;
|
||||
using DevExpress.XtraBars.Navigation;
|
||||
|
||||
using SystemX.Net;
|
||||
using SystemX.Common;
|
||||
using SystemX.Net.BaseProtocol;
|
||||
using SystemX.Net.Comm;
|
||||
using SystemX.Net.Schedule;
|
||||
using SystemX.Net.DB.LogProcess;
|
||||
using SystemX.Common.Serialization;
|
||||
using SystemX.Common.Archive;
|
||||
using SystemX.Net.Platform.Common.Util;
|
||||
using SystemX.Net.Platform.Common.ExtensionMethods;
|
||||
|
||||
//using SystemX.Common.Protocol.SIA;
|
||||
|
||||
using static SystemX.Net.Platform.Common.Util.LogMessage;
|
||||
using static SystemX.Net.DB.LogProcess.XLogDBConnManager;
|
||||
|
||||
using SystemX.Net.Middleware.Log.Commons;
|
||||
using SystemX.Net.Platform.SystemX.Common;
|
||||
using System.Collections.Concurrent;
|
||||
using SystemX.Net.Comm.IIS_FTP;
|
||||
using SystemX.Net.Platform.SystemX.Net.XEFCore.DBContext.CPXV2LogJson;
|
||||
using SystemX.Net.Platform.SystemX.Net.XEFCore;
|
||||
|
||||
namespace SystemX.Net.MiddlewareUI
|
||||
{
|
||||
public partial class MainForm : DevExpress.XtraBars.FluentDesignSystem.FluentDesignForm
|
||||
{
|
||||
internal class ConnectInfoStore : ICloneable
|
||||
{
|
||||
/// <summary>
|
||||
/// Last Query Info
|
||||
/// </summary>
|
||||
public int nLastQueryTLStepVersion;
|
||||
public int nLastQueryTLFileNumber;
|
||||
public int nLastQueryTLVariantNumber;
|
||||
|
||||
public bool bQueryVRFYLoaded;
|
||||
|
||||
public DataSet getLatestStepVer;
|
||||
public DataSet geyLatestTestListInfo;
|
||||
|
||||
public DataSet dsLatestVRFYRel;
|
||||
public DataSet dsLongTermLatestVRFYRel;
|
||||
|
||||
public object Clone()
|
||||
{
|
||||
return this;
|
||||
}
|
||||
|
||||
public void Initialize()
|
||||
{
|
||||
nLastQueryTLStepVersion = int.MinValue;
|
||||
nLastQueryTLFileNumber = int.MinValue;
|
||||
nLastQueryTLVariantNumber = int.MinValue;
|
||||
|
||||
bQueryVRFYLoaded = false;
|
||||
|
||||
getLatestStepVer = null;
|
||||
geyLatestTestListInfo = null;
|
||||
|
||||
dsLatestVRFYRel = null;
|
||||
dsLongTermLatestVRFYRel = null;
|
||||
}
|
||||
|
||||
public void InitVRFYStatus()
|
||||
{
|
||||
nLastQueryTLStepVersion = int.MinValue;
|
||||
nLastQueryTLFileNumber = int.MinValue;
|
||||
nLastQueryTLVariantNumber = int.MinValue;
|
||||
|
||||
bQueryVRFYLoaded = false;
|
||||
|
||||
getLatestStepVer = null;
|
||||
geyLatestTestListInfo = null;
|
||||
|
||||
dsLatestVRFYRel = null;
|
||||
dsLongTermLatestVRFYRel = null;
|
||||
}
|
||||
|
||||
public ConnectInfoStore()
|
||||
{
|
||||
nLastQueryTLStepVersion = int.MinValue;
|
||||
nLastQueryTLFileNumber = int.MinValue;
|
||||
nLastQueryTLVariantNumber = int.MinValue;
|
||||
|
||||
bQueryVRFYLoaded = false;
|
||||
|
||||
getLatestStepVer = null;
|
||||
geyLatestTestListInfo = null;
|
||||
|
||||
dsLatestVRFYRel = null;
|
||||
dsLongTermLatestVRFYRel = null;
|
||||
}
|
||||
}
|
||||
|
||||
private const int SC_CLOSE = 0xF060;
|
||||
private const int MF_ENABLED = 0x0;
|
||||
private const int MF_GRAYED = 0x1;
|
||||
private const int MF_DISABLED = 0x2;
|
||||
|
||||
[DllImport("user32.dll")]
|
||||
private static extern IntPtr GetSystemMenu(IntPtr hWnd, bool bRevert);
|
||||
|
||||
[DllImport("user32.dll")]
|
||||
private static extern int EnableMenuItem(IntPtr hMenu, int wIDEnableItem, int wEnable);
|
||||
|
||||
private const int MF_BYCOMMAND = 0x00000000;
|
||||
|
||||
[DllImport("user32.dll")]
|
||||
public static extern int DeleteMenu(IntPtr hMenu, int nPosition, int wFlags);
|
||||
|
||||
[DllImport("kernel32.dll", ExactSpelling = true)]
|
||||
private static extern IntPtr GetConsoleWindow();
|
||||
|
||||
/// <summary>
|
||||
/// Base Variable
|
||||
/// </summary>
|
||||
private const int ALL_MANAGE_NUM = 110;
|
||||
|
||||
private const int PORT_DISTRIBUTION_NUM = 10;
|
||||
|
||||
private COMMON.LogProcessInfo LoadInfo;
|
||||
|
||||
private bool MiddlewareLogStartState { set; get; }
|
||||
|
||||
private bool bShowCpLogProcessTime { set; get; } = false;
|
||||
|
||||
//RecvCommandQueue Task
|
||||
private Stopwatch stCheckReleaseTime;
|
||||
|
||||
private Task taskRecvCommandProcess;
|
||||
private bool m_bTaskCommandBlock;
|
||||
|
||||
//RecvStreamQueue Task
|
||||
private Task taskRecvStreamProcess;
|
||||
private bool m_bTaskStreamBlock;
|
||||
//
|
||||
CancellationTokenSource CTS;
|
||||
CancellationToken CT;
|
||||
//
|
||||
private static bool bTaskCommandWaitLock = false;
|
||||
private static bool bTaskStreamWaitLock = false;
|
||||
//
|
||||
//DataBase
|
||||
private XLogDBConnManager MngDBLogConn;
|
||||
|
||||
private ConnectInfoStore[] thisConnInfo;
|
||||
|
||||
public ConcurrentQueue<LogMappedPacket>[] LogDataQueue;
|
||||
|
||||
public ConcurrentQueue<StringBuilder> LogDataRecvText;
|
||||
public ConcurrentQueue<StringBuilder> LogDataProcessText;
|
||||
|
||||
private MapLogOption OptionMapLog;
|
||||
|
||||
private CMapParameter ParamterMapLog;
|
||||
private CMapParameter ParamterMapInfoLog;
|
||||
|
||||
Int64 nEnqueueCount;
|
||||
Int64 nDequeueCount;
|
||||
|
||||
private static object objMappedLogDataInOutLock = new object();
|
||||
|
||||
private static object objMappedLogTextInOutLock = new object();
|
||||
private static object objMappedProcessTextInOutLock = new object();
|
||||
|
||||
private bool[] bBeforeLogReadyState;
|
||||
private bool[] bCompareLogReadyState;
|
||||
|
||||
// TODO : for Bulk Insert Log
|
||||
private Stopwatch stCheckTermBulkWaitTime;
|
||||
|
||||
private List<string> lstBulkTermLogInfo;
|
||||
private List<DataRow> lstBulkShortTermLog;
|
||||
private List<DataRow> lstBulkLongTermLog;
|
||||
|
||||
private bool bTryBulkInsertBuffer { set; get; } = false;
|
||||
private int nBulkLogCount { set; get; } = 0;
|
||||
private int nBulkShortTermCount { set; get; } = 0;
|
||||
private int nBulkLongTermCount { set; get; } = 0;
|
||||
private long nBulkTimeValue { set; get; } = 0;
|
||||
private long nFTPTimeValue { set; get; } = 0;
|
||||
private bool bDatabaseConnResult { set; get; } = false;
|
||||
|
||||
public object GetConnectInfo(int iPos)
|
||||
{
|
||||
return thisConnInfo[iPos];
|
||||
}
|
||||
|
||||
public XLogDBConnManager GetDBConn()
|
||||
{
|
||||
return MngDBLogConn;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// TimerLock
|
||||
/// </summary>
|
||||
private enum TIMER_LOCK
|
||||
{
|
||||
CHK_TIMER = 0,
|
||||
UI_TIMER = 1,
|
||||
}
|
||||
|
||||
private bool[] m_bTimerLock;
|
||||
//
|
||||
private static object objMainCommandWait = new object();
|
||||
private static object objShortTermCommandWait = new object();
|
||||
private static object objLongTermCommandWait = new object();
|
||||
|
||||
private static object objMainStreamWait = new object();
|
||||
private static object objShortTermStreamWait = new object();
|
||||
private static object objLongTermStreamWait = new object();
|
||||
|
||||
private static object objExcuteMainCommandWait = new object();
|
||||
private static object objExcuteShortTermCommandWait = new object();
|
||||
private static object objExcuteLongTermCommandWait = new object();
|
||||
|
||||
private static object objExcuteMainStreamWait = new object();
|
||||
private static object objExcuteShortTermStreamWait = new object();
|
||||
private static object objExcuteLongTermStreamWait = new object();
|
||||
//
|
||||
//private static object objSingleTransactionDataAccessWait = new object();
|
||||
|
||||
private static object objClearServerInstanceWait = new object();
|
||||
|
||||
// TODO : FTP ALIS
|
||||
public eFTPServiceStatus StateFTP { set; get; } = eFTPServiceStatus.None;
|
||||
|
||||
private CtrlFTP ControlFTP;
|
||||
|
||||
private Stopwatch stProcessCheckFTPTime;
|
||||
|
||||
// TODO : SHM JSON
|
||||
//private XEFCore<CPXV2ShortTermLogJson> CpxShorTermLogJson;
|
||||
public MainForm()//(XEFCore<CPXV2ShortTermLogJson> cpxShorTermLogJson)
|
||||
{
|
||||
//CpxShorTermLogJson = cpxShorTermLogJson;
|
||||
|
||||
InitializeComponent();
|
||||
|
||||
MessageOutput.ConsoleWrite(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss>>") +
|
||||
@"Use CP-Server[X] Middleware [LOG] Version for [CPXV2][v240529] " +
|
||||
"[SystemX.Net.Middleware.Log : MainForm]", ConsoleColor.Green, LogMessageLevel.FATAL);
|
||||
//
|
||||
EnableMenuItem(GetSystemMenu(this.Handle, false), SC_CLOSE, MF_GRAYED);
|
||||
|
||||
IntPtr hMenu = GetSystemMenu(GetConsoleWindow(), false);
|
||||
//EnableMenuItem(hMenu, SC_CLOSE, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
|
||||
DeleteMenu(hMenu, SC_CLOSE, MF_BYCOMMAND);
|
||||
|
||||
ConsoleUtil.ConsoleHide();
|
||||
|
||||
MessageOutput.PrintLogLevel = LogMessageLevel.INFO;
|
||||
|
||||
nEnqueueCount = 0;
|
||||
nDequeueCount = 0;
|
||||
|
||||
bBeforeLogReadyState = new bool[SharedMemory.nMaxInfoFullAccessSize];
|
||||
bCompareLogReadyState = new bool[SharedMemory.nMaxInfoFullAccessSize];
|
||||
|
||||
CTS = new CancellationTokenSource();
|
||||
CT = CTS.Token;
|
||||
//
|
||||
string strExcutePos = Environment.CurrentDirectory;
|
||||
string strServerInfoPos = strExcutePos + @"\Configure\LogInformation.xml";
|
||||
string strDBInfoPos = strExcutePos + @"\Configure\DBConnInfo.xml";
|
||||
string strMapLogOptionPos = strExcutePos + @"\Configure\MapLogOption.xml";
|
||||
|
||||
LoadInfo = new COMMON.LogProcessInfo(strServerInfoPos);
|
||||
|
||||
MiddlewareLogStartState = true;
|
||||
|
||||
OptionMapLog = new MapLogOption(strMapLogOptionPos);
|
||||
|
||||
if (OptionMapLog.Load() == false)
|
||||
{
|
||||
MiddlewareLogStartState = false;
|
||||
|
||||
MessageOutput.ConsoleWrite(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss>>") + @"Failed to load map-log option information. [SystemX.Net.Middleware.UI.Log : MainForm.MainForm]", ConsoleColor.Yellow, LogMessageLevel.DEBUG);
|
||||
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
ParamterMapLog = new CMapParameter();
|
||||
ParamterMapInfoLog = new CMapParameter();
|
||||
|
||||
ParamterMapLog.strSetEnterMutexName = OptionMapLog.strMapLogEnterMutexName;
|
||||
ParamterMapLog.strSetAccessMutexName = OptionMapLog.strMapLogAccessMutexName;
|
||||
ParamterMapLog.strSetPath = OptionMapLog.strMapLogPath;
|
||||
ParamterMapLog.strSetFileName = OptionMapLog.strMapLogFileName;
|
||||
ParamterMapLog.strSetMapName = OptionMapLog.strMapLogName;
|
||||
|
||||
ParamterMapInfoLog.strSetEnterMutexName = OptionMapLog.strMapInfoLogEnterMutexName;
|
||||
ParamterMapInfoLog.strSetAccessMutexName = OptionMapLog.strMapInfoLogAccessMutexName;
|
||||
ParamterMapInfoLog.strSetPath = OptionMapLog.strMapInfoLogPath;
|
||||
ParamterMapInfoLog.strSetFileName = OptionMapLog.strMapInfoLogFileName;
|
||||
ParamterMapInfoLog.strSetMapName = OptionMapLog.strMapInfoLogName;
|
||||
}
|
||||
|
||||
if (LoadInfo.Load() == false)
|
||||
{
|
||||
MiddlewareLogStartState = false;
|
||||
|
||||
MessageOutput.ConsoleWrite(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss>>") + @"Failed to load server information. [SystemX.Net.Middleware.UI.Log : MainForm.MainForm]", ConsoleColor.Yellow, LogMessageLevel.DEBUG);
|
||||
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
string strGetTitle = this.Text;
|
||||
|
||||
//this.Text = strGetTitle + " " + (LoadInfo.LOOP_BACK ? " [LocalHost]" : " [" + LoadInfo.SERVER_IP + "]");
|
||||
|
||||
Title_label.Text = "CP ALIS" + ((LoadInfo.TITLE.Length > 0) ? " [" + LoadInfo.TITLE + "]" : "");
|
||||
}
|
||||
|
||||
thisConnInfo = new ConnectInfoStore[ALL_MANAGE_NUM];
|
||||
LogDataQueue = new ConcurrentQueue<LogMappedPacket>[ALL_MANAGE_NUM];
|
||||
|
||||
LogDataRecvText = new ConcurrentQueue<StringBuilder>();
|
||||
LogDataProcessText = new ConcurrentQueue<StringBuilder>();
|
||||
|
||||
for (int i = 0; i < ALL_MANAGE_NUM; i++)
|
||||
{
|
||||
thisConnInfo[i] = new ConnectInfoStore();
|
||||
LogDataQueue[i] = new ConcurrentQueue<LogMappedPacket>();
|
||||
}
|
||||
|
||||
MngDBLogConn = new XLogDBConnManager();
|
||||
MngDBLogConn.SetConfigFilePath(strDBInfoPos, true);
|
||||
|
||||
string strGetFileName = Path.GetFileName(MngDBLogConn.GetConfigFilePath());
|
||||
string strGetFilePath = Path.GetDirectoryName(MngDBLogConn.GetConfigFilePath()).Split('\\').Last();
|
||||
|
||||
labelDBPath.Text = @"\" + strGetFilePath + @"\" + strGetFileName;
|
||||
|
||||
bDatabaseConnResult = MngDBLogConn.OpenConnection();
|
||||
|
||||
if (bDatabaseConnResult)
|
||||
{
|
||||
labelDBMain.Text = "Information [" + MngDBLogConn.GetDBConnectInfo().ConnMain.SCHEMA + "]";
|
||||
labelDBShortTerm.Text = "ShortTerm [" + MngDBLogConn.GetDBConnectInfo().ConnShortTerm.SCHEMA + "]";
|
||||
labelShortTermSummaryTableName.Text = "ShortTerm [" + MngDBLogConn.GetDBConnectInfo().ConnShortTerm.SUMMARY_TABLE + "]";
|
||||
labelShortTermLogTableName.Text = "ShortTerm [" + MngDBLogConn.GetDBConnectInfo().ConnShortTerm.LOG_TABLE + "]";
|
||||
labelDBLongTerm.Text = "LongTerm [" + MngDBLogConn.GetDBConnectInfo().ConnLongTerm.SCHEMA + "]";
|
||||
|
||||
panelDBMain2.BackColor = Color.LimeGreen;
|
||||
panelDBShortTerm2.BackColor = Color.LimeGreen;
|
||||
panelDBLongTerm2.BackColor = Color.LimeGreen;
|
||||
|
||||
//옵션 확인 및 ON
|
||||
//DECLARE @ARITHABORT VARCHAR(3) = 'OFF'; IF ( (64 & @@OPTIONS) = 64 ) SET @ARITHABORT = 'ON'; SELECT @ARITHABORT AS ARITHABORT;
|
||||
string strGetQuery1 = "DECLARE @ARITHABORT VARCHAR(3) = 'OFF'; IF ( (64 & @@OPTIONS) = 64 ) SET @ARITHABORT = 'ON'; SELECT @ARITHABORT AS ARITHABORT;";
|
||||
string strGetQuery2 = "DECLARE @ARITHIGNORE VARCHAR(3) = 'OFF'; IF ( (128 & @@OPTIONS) = 128 ) SET @ARITHIGNORE = 'ON'; SELECT @ARITHIGNORE AS ARITHIGNORE;";
|
||||
/*
|
||||
SET ARITHIGNORE ON
|
||||
|
||||
- 쿼리 실행 중 오버플로 또는 0으로 나누기 오류에서 오류 메시지를 반환할지 여부를 제어
|
||||
|
||||
오류 메시지가 반환될지 여부만 제어하며 이 설정에 상관 없이 오버플로 또는 0으로 나누기 오류를
|
||||
발생시킨 계산에 NULL을 반환한다. 없는 값 처리를 해야하므고 오류를 발생시킨 것에서 null 반환을 받아야 한다!
|
||||
|
||||
SET ARITHABORT ON이면 오버플로 또는 0으로 나누기 오류 발생 시 쿼리나 일괄 처리가 종료
|
||||
트랜잭션에서 해당 오류가 발생하면 트랜잭션이 롤백시킨다. 그러나 이 설정이 INSERT, UPDATE, DELETE 문 실행 중에
|
||||
발생한 오류에는 영향을 주지 않는다.
|
||||
*/
|
||||
DataSet ds1 = MngDBLogConn.CurrentConnection(eConnCategory.Main).QueryDataSet(strGetQuery1);
|
||||
DataSet ds2 = MngDBLogConn.CurrentConnection(eConnCategory.Main).QueryDataSet(strGetQuery2);
|
||||
|
||||
if (XCommons.isHasRow(ds1))
|
||||
{
|
||||
bool bOptionState = ds1.Tables[0].Rows[0]["ARITHABORT"].ToString() == "ON" ? true : false;
|
||||
|
||||
if (bOptionState == false)
|
||||
MngDBLogConn.CurrentConnection(eConnCategory.Main).QueryDataSet("SET ARITHABORT ON");
|
||||
}
|
||||
if (XCommons.isHasRow(ds2))
|
||||
{
|
||||
bool bOptionState = ds2.Tables[0].Rows[0]["ARITHIGNORE"].ToString() == "ON" ? true : false;
|
||||
|
||||
if (bOptionState == false)
|
||||
MngDBLogConn.CurrentConnection(eConnCategory.Main).QueryDataSet("SET ARITHIGNORE ON");
|
||||
}
|
||||
//
|
||||
ds1 = MngDBLogConn.CurrentConnection(eConnCategory.ShortTerm).QueryDataSet(strGetQuery1);
|
||||
ds2 = MngDBLogConn.CurrentConnection(eConnCategory.ShortTerm).QueryDataSet(strGetQuery2);
|
||||
|
||||
if (XCommons.isHasRow(ds1))
|
||||
{
|
||||
bool bOptionState = ds1.Tables[0].Rows[0]["ARITHABORT"].ToString() == "ON" ? true : false;
|
||||
|
||||
if (bOptionState == false)
|
||||
MngDBLogConn.CurrentConnection(eConnCategory.ShortTerm).QueryDataSet("SET ARITHABORT ON");
|
||||
}
|
||||
if (XCommons.isHasRow(ds2))
|
||||
{
|
||||
bool bOptionState = ds2.Tables[0].Rows[0]["ARITHIGNORE"].ToString() == "ON" ? true : false;
|
||||
|
||||
if (bOptionState == false)
|
||||
MngDBLogConn.CurrentConnection(eConnCategory.ShortTerm).QueryDataSet("SET ARITHIGNORE ON");
|
||||
}
|
||||
//
|
||||
ds1 = MngDBLogConn.CurrentConnection(eConnCategory.LongTerm).QueryDataSet(strGetQuery1);
|
||||
ds2 = MngDBLogConn.CurrentConnection(eConnCategory.LongTerm).QueryDataSet(strGetQuery2);
|
||||
|
||||
if (XCommons.isHasRow(ds1))
|
||||
{
|
||||
bool bOptionState = ds1.Tables[0].Rows[0]["ARITHABORT"].ToString() == "ON" ? true : false;
|
||||
|
||||
if (bOptionState == false)
|
||||
MngDBLogConn.CurrentConnection(eConnCategory.LongTerm).QueryDataSet("SET ARITHABORT ON");
|
||||
}
|
||||
if (XCommons.isHasRow(ds2))
|
||||
{
|
||||
bool bOptionState = ds2.Tables[0].Rows[0]["ARITHIGNORE"].ToString() == "ON" ? true : false;
|
||||
|
||||
if (bOptionState == false)
|
||||
MngDBLogConn.CurrentConnection(eConnCategory.LongTerm).QueryDataSet("SET ARITHIGNORE ON");
|
||||
}
|
||||
|
||||
if (MiddlewareLogStartState == false)
|
||||
MessageOutput.ConsoleWrite(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss>>") + @"The table registered in the configuration file does not exist in the actual database. [SystemX.Net.MiddlewareUI : MainForm.MainForm]", ConsoleColor.Yellow, LogMessageLevel.DEBUG);
|
||||
}
|
||||
else
|
||||
{
|
||||
panelDBMain2.BackColor = Color.Red;
|
||||
panelDBShortTerm2.BackColor = Color.Red;
|
||||
panelDBLongTerm2.BackColor = Color.Red;
|
||||
|
||||
MiddlewareLogStartState = false;
|
||||
|
||||
MessageOutput.ConsoleWrite(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss>>") + @"Failed to connect to DB and to get table information. [SystemX.Net.MiddlewareUI : MainForm.MainForm]", ConsoleColor.Yellow, LogMessageLevel.DEBUG);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
m_bTimerLock = new bool[10];
|
||||
Array.Clear(m_bTimerLock, 0, 10);
|
||||
|
||||
if (LoadInfo.FTP_Use)
|
||||
{
|
||||
panelFTP.Visible = true;
|
||||
labelFTP.Text = "FTP " + IPAddress.Parse(LoadInfo.FTP_IPAddress).ToString() + "@" + LoadInfo.FTP_Port + "@" + LoadInfo.FTP_Account;
|
||||
labelFTPTime.Visible = true;
|
||||
|
||||
StateFTP = StartFTPService();
|
||||
|
||||
if (StateFTP == eFTPServiceStatus.Connected)
|
||||
{
|
||||
stProcessCheckFTPTime = new Stopwatch();
|
||||
stProcessCheckFTPTime.Start();
|
||||
|
||||
panelFTP.BackColor = Color.LimeGreen;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (MessageBox.Show("FTP server connection is not confirmed. Do you still want to proceed with running the middleware log handler?", "SystemX.Net.Middleware.UI.Log", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
|
||||
MiddlewareLogStartState = false;
|
||||
|
||||
panelFTP.BackColor = Color.Red;
|
||||
}
|
||||
}
|
||||
else
|
||||
StateFTP = eFTPServiceStatus.Unused;
|
||||
|
||||
if (MiddlewareLogStartState)
|
||||
{
|
||||
stCheckTermBulkWaitTime = new Stopwatch();
|
||||
|
||||
lstBulkTermLogInfo = new List<string>();
|
||||
lstBulkShortTermLog = new List<DataRow>();
|
||||
lstBulkLongTermLog = new List<DataRow>();
|
||||
|
||||
stCheckReleaseTime = new Stopwatch();
|
||||
stCheckReleaseTime.Start();
|
||||
|
||||
taskRecvCommandProcess = null;
|
||||
m_bTaskCommandBlock = false;
|
||||
|
||||
taskRecvCommandProcess = new Task(new Action(WatchRecvCommandQueue), CT);
|
||||
taskRecvCommandProcess.Start();
|
||||
//
|
||||
taskRecvStreamProcess = null;
|
||||
m_bTaskStreamBlock = false;
|
||||
|
||||
taskRecvStreamProcess = new Task(new Action(WatchRecvStreamQueue), CT);
|
||||
taskRecvStreamProcess.Start();
|
||||
//
|
||||
UItimer.Enabled = true;
|
||||
|
||||
MessageOutput.ConsoleWrite(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss>>") + @"MiddlewareUI start success. [SystemX.Net.MiddlewareUI : MainForm.MainForm]", ConsoleColor.White, LogMessageLevel.INFO);
|
||||
}
|
||||
|
||||
Chktimer.Enabled = true;
|
||||
}
|
||||
|
||||
private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
|
||||
{
|
||||
if (MiddlewareLogStartState == true)
|
||||
{
|
||||
if (MessageBox.Show("You want to program exit?", "SystemX.Net.Middleware.UI.Log", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
|
||||
e.Cancel = true;
|
||||
else
|
||||
e.Cancel = false;
|
||||
}
|
||||
else
|
||||
e.Cancel = false;
|
||||
}
|
||||
|
||||
private void MainForm_FormClosed(object sender, FormClosedEventArgs e)
|
||||
{
|
||||
CTS.Cancel();
|
||||
|
||||
if (taskRecvCommandProcess != null)
|
||||
{
|
||||
m_bTaskCommandBlock = true;
|
||||
|
||||
taskRecvCommandProcess.Wait();
|
||||
taskRecvCommandProcess.ContinueWith(t => {
|
||||
MessageOutput.ConsoleWrite(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss>>") +
|
||||
@"taskRecvCommandProcess END. [SystemX.Net.MiddlewareUI : MainForm.MainForm_FormClosed]",
|
||||
ConsoleColor.White,
|
||||
LogMessageLevel.DEBUG);
|
||||
});
|
||||
}
|
||||
|
||||
if (taskRecvStreamProcess != null)
|
||||
{
|
||||
m_bTaskStreamBlock = true;
|
||||
|
||||
taskRecvStreamProcess.Wait();
|
||||
taskRecvStreamProcess.ContinueWith(t => {
|
||||
MessageOutput.ConsoleWrite(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss>>") +
|
||||
@"taskRecvStreamProcess END. [SystemX.Net.MiddlewareUI : MainForm.MainForm_FormClosed]",
|
||||
ConsoleColor.White,
|
||||
LogMessageLevel.DEBUG);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
private void notifyIcon_MouseDoubleClick(object sender, MouseEventArgs e)
|
||||
{
|
||||
if (this.Visible)
|
||||
this.Visible = false;
|
||||
else
|
||||
this.Visible = true;
|
||||
}
|
||||
|
||||
private void label1_DoubleClick(object sender, EventArgs e)
|
||||
{
|
||||
ConsoleUtil.ConsoleVisibleControl();
|
||||
}
|
||||
|
||||
private void contextMenuSubStrip_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
|
||||
{
|
||||
ToolStripItem tsi = e.ClickedItem;
|
||||
|
||||
this.Close();
|
||||
}
|
||||
|
||||
private void barCheckItemShowCpLogTime_CheckedChanged(object sender, ItemClickEventArgs e)
|
||||
{
|
||||
bShowCpLogProcessTime = barCheckItemShowCpLogTime.Checked;
|
||||
}
|
||||
|
||||
private void buttonBulkInsertStart_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (bTryBulkInsertBuffer == false)
|
||||
bTryBulkInsertBuffer = true;
|
||||
}
|
||||
|
||||
private void buttonDbConnect_Click(object sender, EventArgs e)
|
||||
{
|
||||
bDatabaseConnResult = MngDBLogConn.CheckDatabaseConnection();
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,973 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="MainForm.IconOptions.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
AAABAAUAEBAAAAEAIABoBAAAVgAAABgYAAABACAAiAkAAL4EAAAgIAAAAQAgAKgQAABGDgAAMDAAAAEA
|
||||
IACoJQAA7h4AAAAAAAABACAAQUMAAJZEAAAoAAAAEAAAACAAAAABACAAAAAAAAAEAADDDgAAww4AAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAMAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAA
|
||||
AAQAAAAEAAAABAAAAAQAAAACAAAAAQAAABIAAAAmAAAALQAAAC0AAAAtAAAALQAAAC0AAAAtAAAALQAA
|
||||
AC0AAAAtAAAALQAAAC0AAAAqAAAAGwAAAAfQz8+MsK+uo6urq6urq6urrKysq6ysrKusrKyrrKysq6ys
|
||||
rKusrKyrrKysq6usrKusrKysoKCgoC4uLk0AAAAS+vj4/76onf/p4t7//Pr6//Pv7v/28/H/9fLw//Pu
|
||||
7P/z7+3/8+7s//Lu7P/39PP//////+/v7+9NTU1mAAAAF//////BrKL/tp6S/9bIwv+RbVv/rpOG/5t6
|
||||
av+ggXL/nXxs/6GBcv+lhnj/o4V2/9fJw//w8PDvTExMZwAAABf/////7+rn/5x7bP/bz8n/m3lp/8i2
|
||||
rf+beWn/6eLf/6qOgP/Vx8H/4dfT/6qOgP+vlIb/7/Dw701NTWcAAAAX//////////+8pZv/jmhW/6uP
|
||||
gf/o4d3/nXxs//Tx7/+1nZH/x7Wr/5t5af+0m4//6ODc//Dw8O9MTExnAAAAF///////////6+Th/4lh
|
||||
Tv/Zzcb/7ujl/6KCc//18vH/uLTg/8m/yv+cemn/uKGW/7ylmv/Uy8buUlNUYwAAABX///////////38
|
||||
/P/e087/+fj3//v5+P/o4Nz//Pz8/+Hg9v/z8vr/5dzX/9HCuv/Sw7z/493Z6WxtbkoAAAAN////Y///
|
||||
/2P///9j////Y////2P///9j////Y////2P///9j////Y////2P///9j////ZPr6+lmbm5sUAAAAAgAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAP//AAD//wAA//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAD//wAA//8AAP//AAAoAAAAGAAAADAAAAABACAAAAAAAAAJAADDDgAAww4AAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA
|
||||
AAQAAAAFAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAA
|
||||
AAYAAAAGAAAABgAAAAYAAAAFAAAABAAAAAIAAAAAAAAACwAAABYAAAAeAAAAIQAAACEAAAAhAAAAIQAA
|
||||
ACEAAAAhAAAAIQAAACEAAAAhAAAAIQAAACEAAAAhAAAAIQAAACEAAAAhAAAAIQAAACEAAAAeAAAAFgAA
|
||||
AAoAAAADDg4OHwcHBzsFBgZQBQUFVgUFBVYFBQVWBQUFVgUFBVYFBQVWBQUFVgUFBVYFBQVWBQUFVgUF
|
||||
BVYFBQVWBQUFVgUFBVYFBQVWBQUFVgUFBVYFBQVQAQEBOgAAABsAAAAH6+vrstnZ2cDPz8/KzMzMzcvL
|
||||
y83Ly8vNy8vLzcvLy83Ly8vNy8vLzcvLy83Ly8vNy8vLzcvLy83Ly8vNy8vLzcvLy83Ly8vNy8vLzczM
|
||||
zM6/v7+/NDQ0ZAAAACkAAAAL/////+Tb1v+4n5P/8u3r////////////////////////////////////
|
||||
///////////////////////////////////////////////////v7+/vRkZGdQAAAC8AAAAN/////+zm
|
||||
4/+EW0f/wKug///////g1dD/xrOq/8i1rP/azcj/0MC4/8azqv/Gs6r/xrOq/8ezq//Gs6r/xrOq/8az
|
||||
qv/Zzcb/+ff2///////u7u7vREREdwAAADAAAAAO//////////+5oZb/imNQ/+/q5/+2npL/gVdD/3BB
|
||||
Kv+8ppv/gFZB/4NZRv+Qa1r/i2VS/4piUP+Qaln/kGpa/5BrWf+DWkb/spiL//38/P/v7+/vREREdwAA
|
||||
ADAAAAAO///////////r5OH/glhF/8Swp//6+fj/poh6/5FsW//j2tX/gVVB/8y6sv/8+vr/u6Sa/6WI
|
||||
ef/28/H/+fj3//by8f+3n5P/g1lF//Pv7P/v8PDvREREdwAAADAAAAAO////////////////r5WI/49p
|
||||
V//c0Mr/gVdD/8u6sv/u6Ob/gFVB/9DAuf//////rZOG/5FuXP/08O//vqid/5ZzY/9/Uz//pYd4//z7
|
||||
+v/v7+/vREREdwAAADAAAAAO////////////////5NvX/39UP/+EW0b/jWZU//Xx8P/t5+T/gFVB/9DA
|
||||
uf//////wayg/62Rgf/SxLz/e1A6/7Sajv/Sw7v/9fHw///////u7u7vREREdwAAADAAAAAO////////
|
||||
/////////v39/6uOgf9nNRz/wq2k///////s5uP/f1M//9C/uP//////y8jm/7+64v/UxsD/f1VA/8e0
|
||||
q//XysP/1Ma//9rNx//o5uXuRkZGdQAAAC4AAAAN/////////////////////93SzP+Vc2H/8Ovo////
|
||||
///y7ev/o4R1/93SzP//////s7Hm/5mX3v/18vL/tZyQ/41nVP+LZFL/imRR/5p4Z//f2dbsT1BRaQAA
|
||||
ACgAAAAL//////////////////////r5+P/q5OD//v7+///////+/v7/+/n4//39/P//////+/v+//r6
|
||||
/f///////v39//bz8f/08O7/9PDu//bz8f/19PToampqTQAAABgAAAAH////jv///47///+O////jv//
|
||||
/47///+O////jv///47///+O////jv///47///+O////jv///47///+O////jv///47///+O////jv//
|
||||
/4/7+/t+lpaWHgAAAAYAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAA////AP///wD///8A////AP///wAAAAEAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wD///8A////AP///wD///8AKAAAACAA
|
||||
AABAAAAAAQAgAAAAAAAAEAAAww4AAMMOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAQAAAAFAAAABwAAAAcAAAAHAAAABwAA
|
||||
AAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAA
|
||||
AAcAAAAHAAAABwAAAAcAAAAHAAAABgAAAAUAAAADAAAAAQAAAAAAAAAIAAAADwAAABUAAAAZAAAAGwAA
|
||||
ABsAAAAbAAAAGwAAABsAAAAbAAAAGwAAABsAAAAbAAAAGwAAABsAAAAbAAAAGwAAABsAAAAbAAAAGwAA
|
||||
ABsAAAAbAAAAGwAAABsAAAAbAAAAGwAAABoAAAAYAAAAEwAAAAwAAAAFAAAAAgAAABIAAAAiAAAAMwAA
|
||||
ADwAAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAA
|
||||
AD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPgAAADoAAAAvAAAAHQAAAA0AAAAEZmZmLkND
|
||||
Q0cxMTFgKysrbikpKXIpKSlzKSkpcykpKXMpKSlzKSkpcykpKXMpKSlzKSkpcykpKXMpKSlzKSkpcykp
|
||||
KXMpKSlzKSkpcykpKXMpKSlzKSkpcykpKXMpKSlzKSkpcykpKXMqKipxJycnaQgICE8AAAAwAAAAFQAA
|
||||
AAf39/fU8PDw2urr6+Dn6Ojk5eXl5eTk5OXk5OTl5OTk5eTk5OXk5OTl5OTk5eTk5OXk5OTl5OTk5eTk
|
||||
5OXk5OTl5OTk5eTk5OXk5OTl5OTk5eTk5OXk5OTl5OTk5eTk5OXk5OTl5OTk5ebm5ubX19fVOzs7cAAA
|
||||
AD0AAAAbAAAACf/////8+vr/zr61/8e0qv/39PP/////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////+/v
|
||||
7+5DQ0N8AAAAQwAAAB4AAAAK//////7+/v+0m4//bz8n/86+tv////////////v6+f/49fT/+PX0//j1
|
||||
9P/6+Pf/+ff2//j29P/49vT/+Pb0//j19P/49fT/+Pb0//j29P/49fT/+PX0//j29f/+/f3/////////
|
||||
////////7u7u7kFBQX4AAABEAAAAHgAAAAr//////////+ff3P99UT3/lHFf//f08//59/b/rpOF/45o
|
||||
Vv+Ra1r/lHBf/8e0q/+ihHT/j2tY/49pWP+PaVf/j2lY/5BqWP+Qaln/kGlY/49pWP+PaVj/kWxa/7KX
|
||||
iv/o4N3////////////u7u7vQUFBfgAAAEQAAAAeAAAACv///////////v7+/7KYjf9wQCn/08S9//Ht
|
||||
6/+jhXb/jGZU/2k3H/+AV0L/18rD/3xQO/90RjD/k29f/5RwYP+SbVz/jWhV/5JtXP+UcWD/lHBg/5Vw
|
||||
YP+SbVz/dUcw/49pV//v6uf//////+7u7u9BQUF+AAAARAAAAB4AAAAK////////////////5dzY/3lN
|
||||
OP+YdmX/+PX0//38+//EsKf/bTwl/7efk//s5uP/e086/5p3Z//49vT//Pv7/9HCu/+Palj/1Ma///z7
|
||||
+//7+vr//fz8//z7+v+zmY3/bTwk/9TGvv//////7u7u70FBQX4AAABEAAAAHgAAAAr/////////////
|
||||
///9/Pz/qIt9/3FBKv/ZzMb/9vPx/49qWP9/VED/6uPg/+3o5f97Tjr/nHlq//z7+///////xbOq/2o5
|
||||
If/KubD///////Hs6v/Yy8X/vqmf/41mVP91Ri//4NXQ///////u7u7vQUFBfgAAAEQAAAAeAAAACv//
|
||||
///////////////////e087/dEUv/55+bv/Jt67/bz8o/7WckP//////7Obj/3tPOv+beWr//Pv7////
|
||||
///Fs6n/ajkg/8q6sf/s5uP/kW1b/3FBKv9xQSr/fFA7/7efk//6+fj//////+7u7u9BQUF+AAAARAAA
|
||||
AB4AAAAK//////////////////////r5+P+ff3D/bz8n/3tPN/95TDb/49rV///////s5uP/e086/5t5
|
||||
av/8+/v//////9TGvv+Ra1X/2c3F/8e2rf9tPCT/sJWI/9zQyv/r5OH//fz8////////////7u7u70FB
|
||||
QX4AAABEAAAAHgAAAAr//////////////////////////9nMxv9zRC7/ZDEY/6mMfv/9/Pv//////+zm
|
||||
4/97Tzr/m3lq//z7+///////6ujz/8C63v/y8fn/yLWs/29AKP/Esaf/8Ovp/+/q5//u6OX/7ejk//Tx
|
||||
7//u7u7uQkJCfAAAAEMAAAAeAAAACv//////////////////////////+vj3/5p5aP91SDL/4NbR////
|
||||
////////7ebk/31RPP+ce2v//Pv7//////+6uOj/QTzA/8bE7f/s5N//jGZT/3JELf98UT3/fVI9/31S
|
||||
Pf98UDr/qY19/+zr6u1GRkZ2AAAAPwAAABwAAAAJ////////////////////////////////zb20/6+V
|
||||
h//8+/r////////////49fT/zLuz/9jMxf/+/v3//////+bm9/+tq+T/6ur4///////r5eL/wq6k/7GY
|
||||
iv+xl4v/sZiL/7CWif/NvbT/8PDv61FRUWYAAAAzAAAAFwAAAAf/////////////////////////////
|
||||
///6+Pf/9vPx////////////////////////////////////////////////////////////////////
|
||||
///////////////////////////////////39/fnbGxsTQAAAB8AAAAOAAAABf///7b///+2////tv//
|
||||
/7b///+2////tv///7b///+2////tv///7b///+2////tv///7b///+2////tv///7b///+2////tv//
|
||||
/7b///+2////tv///7b///+2////tv///7b///+2////t/v7+6KUlJQoAAAACwAAAAYAAAAC////Bv//
|
||||
/wb///8G////Bv///wb///8G////Bv///wb///8G////Bv///wb///8G////Bv///wb///8G////Bv//
|
||||
/wb///8G////Bv///wb///8G////Bv///wb///8G////Bv///wb///8G/v7+BdPT0wEAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////////////
|
||||
////////////////////////AAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB////////////////////////////////ygA
|
||||
AAAwAAAAYAAAAAEAIAAAAAAAACQAAMMOAADDDgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAABAAAAAQAA
|
||||
AAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAA
|
||||
AAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAA
|
||||
AAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAEAAAABAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAACAAAABAAA
|
||||
AAUAAAAHAAAACAAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAA
|
||||
AAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAA
|
||||
AAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAgAAAAHAAAABQAAAAQAAAACAAAAAQAA
|
||||
AAAAAAAFAAAACQAAAA0AAAARAAAAEwAAABUAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAA
|
||||
ABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAA
|
||||
ABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFQAAABMAAAARAAAADQAA
|
||||
AAkAAAAFAAAAAwAAAAEAAAAKAAAAEQAAABoAAAAhAAAAJgAAACkAAAAqAAAAKwAAACsAAAArAAAAKwAA
|
||||
ACsAAAArAAAAKwAAACsAAAArAAAAKwAAACsAAAArAAAAKwAAACsAAAArAAAAKwAAACsAAAArAAAAKwAA
|
||||
ACsAAAArAAAAKwAAACsAAAArAAAAKwAAACsAAAArAAAAKwAAACsAAAArAAAAKwAAACsAAAAqAAAAKQAA
|
||||
ACYAAAAhAAAAGgAAABEAAAAKAAAABQAAAAIAAAARAAAAHAAAACsAAAA3AAAAPwAAAEQAAABGAAAARwAA
|
||||
AEcAAABHAAAARwAAAEcAAABHAAAARwAAAEcAAABHAAAARwAAAEcAAABHAAAARwAAAEcAAABHAAAARwAA
|
||||
AEcAAABHAAAARwAAAEcAAABHAAAARwAAAEcAAABHAAAARwAAAEcAAABHAAAARwAAAEcAAABHAAAARwAA
|
||||
AEcAAABGAAAARAAAAD8AAAA3AAAAKwAAAB0AAAAQAAAACAAAAAMAAAAVAAAAJQAAADkAAABLAAAAVwAA
|
||||
AF4AAABhAAAAYgAAAGIAAABiAAAAYgAAAGIAAABiAAAAYgAAAGIAAABiAAAAYgAAAGIAAABiAAAAYgAA
|
||||
AGIAAABiAAAAYgAAAGIAAABiAAAAYgAAAGIAAABiAAAAYgAAAGIAAABiAAAAYgAAAGIAAABiAAAAYgAA
|
||||
AGIAAABiAAAAYgAAAGIAAABhAAAAXgAAAFgAAABNAAAAPAAAACkAAAAXAAAACwAAAATW1tZswMDAeaur
|
||||
q4ibm5uVkpKSn42OjqSMjIymi4uLp4uLi6eLi4uni4uLp4uLi6eLi4uni4uLp4uLi6eLi4uni4uLp4uL
|
||||
i6eLi4uni4uLp4uLi6eLi4uni4uLp4uLi6eLi4uni4uLp4uLi6eLi4uni4uLp4uLi6eLi4uni4uLp4uL
|
||||
i6eLi4uni4uLp4uLi6eLi4uni4uLp4uLi6eMjIymjo6OpIWFhZgfHx9mAAAASgAAADIAAAAdAAAADQAA
|
||||
AAb+/v78/v7+/P7+/vz+///9/////f7+//39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39
|
||||
/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39
|
||||
/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/v7+/u3t7etFRUV9AAAAUwAA
|
||||
ADkAAAAgAAAADwAAAAb///////////z7+//j2tX/2MvE/+Xc2P/9/Pz/////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////+7u
|
||||
7u1DQ0OCAAAAWAAAADwAAAAiAAAAEAAAAAf///////////v6+v+1nJD/dUcw/4ZeSf/f1M//////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/////////////+3t7e1CQkKEAAAAWQAAAD0AAAAjAAAAEQAAAAf////////////////bz8n/eEo1/2Y0
|
||||
G/+zmYz//fz8//////////////7+//v5+f/6+Pf/+vj3//r49//6+Pf/+vj3//z7+//7+fn/+vj3//r4
|
||||
9//6+Pf/+vj3//r49//6+Pf/+vj3//r49//6+Pf/+vj3//r49//6+Pf/+vj3//r49//6+Pf//Pv7////
|
||||
/////////////////////////////+3t7e5BQUGFAAAAWgAAAD4AAAAjAAAAEQAAAAf/////////////
|
||||
///59/b/pod5/2czG/+BVkL/5NvW////////////7ejl/6uPgf+efW7/n35w/59+cP+efW//p4p9/9jL
|
||||
xf+wl4n/nn9u/5+AcP+ff2//nn5v/59+b/+ffm//n35v/59+b/+ff3D/oH9w/6B/cP+ffnD/n35w/59+
|
||||
cP+efm7/r5SH/9fJw//28/H//////////////////////+3t7e5BQUGFAAAAWgAAAD4AAAAjAAAAEQAA
|
||||
AAf/////////////////////2s7I/3hLNv9oNh3/s5mM//38+///////wa6j/2s6Iv9lMRn/ZTMa/2Yz
|
||||
G/9lMhn/lHFf/9zRy/+AVkH/ZTEY/2YyGv9lMhr/ZTEZ/2UxGf9lMhr/ZjIa/2YyGv9mMhr/ZjIa/2Uy
|
||||
Gv9lMhr/ZjEa/2YxGv9lMhn/aDUc/3RFL/+ninz/8Ozp/////////////////+3t7e5BQUGFAAAAWgAA
|
||||
AD4AAAAjAAAAEQAAAAf/////////////////////+ff2/6WHef9mMxv/hFtI/+nh3v/+/v7/zLyz/6aJ
|
||||
ev+ninz/hl5L/2c0G/9uPyf/yLat/+vl4v+BVkL/ZjIa/4ZeSv+niXz/p4l8/6eKe/+miXv/o4R1/6KD
|
||||
dP+khnn/p4p8/6eKfP+ninz/p4l8/6eKfP+ninz/lXFg/207JP9qOSD/tp6R//38+////////////+3t
|
||||
7e5BQUGFAAAAWgAAAD4AAAAjAAAAEQAAAAf//////////////////////////9fJxP90RjD/aTcf/7ig
|
||||
lf/+/f3//v79//7+/f/r5eL/jmZV/2UxGP+Qa1n/8Ozq/+zl4v+BVkL/ZjIZ/7CVif/8/Pv//f38//79
|
||||
/f/u6OX/qY1//5t7av/Ov7f//f39//39/P/9/fz//fz8//39/P/+/v3/8ezq/5l2Zv9kMRf/jmhV//Lu
|
||||
7P///////////+3t7e5BQUGFAAAAWgAAAD4AAAAjAAAAEQAAAAf///////////////////////////bz
|
||||
8v+ce2z/ZTAY/4ZcSf/r5eH////////////Fsaj/bTwk/209Jv/Fsqn//////+vk4f+AVUL/ZjEZ/7GW
|
||||
iv/+/v7////////////m39v/e1A7/2UzGv+2n5P////////////////////////////8+/v/9PDu/59+
|
||||
bv9kMBf/imRQ//Ht6v///////////+3t7e5BQUGFAAAAWgAAAD4AAAAjAAAAEQAAAAf/////////////
|
||||
///////////////////Mu7P/cUAo/2w6Iv/DrqX//////+/q5/+Palj/ZTIZ/49qWP/v6uj//////+vk
|
||||
4f+AVkL/ZjIa/7GWiv/+/v7////////////m39v/fFE7/2Y1G/+2n5T////////////28/H/28/J/8e1
|
||||
rP+qjoH/lXJh/3NDLf9mMxr/qo1///v6+v///////////+3t7e5BQUGFAAAAWgAAAD4AAAAjAAAAEQAA
|
||||
AAf////////////////////////////////z7+3/lHFf/2UwF/+MZVL/7Obk/86+t/9vPyj/bz4m/8Wy
|
||||
qP///////////+vk4f+AVkL/ZjIa/7GWi//+/v7////////////m39v/fFE7/2Y1G/+2oJT///////Lu
|
||||
7P+qjX7/dkkx/2o5Iv9lMRj/ZTEY/2k2Hv+JYU3/3tTO/////////////////+3t7e5BQUGFAAAAWgAA
|
||||
AD4AAAAjAAAAEQAAAAf/////////////////////////////////////xbGo/207JP9sOiL/sZaJ/5d1
|
||||
Y/9lMRj/iWFP/+3n5f///////////+vk4f+AVkL/ZjIZ/7GWiv/+/v7////////////m3tr/ek85/2Qy
|
||||
GP+2npL//////8Kvpf9tPCT/ZzUc/35TP/+Tblz/oYBw/7qjmP/n4Nz//v79/////////////////+3t
|
||||
7e5BQUGFAAAAWgAAAD4AAAAjAAAAEQAAAAf/////////////////////////////////////7ujl/4xl
|
||||
U/9lMxn/c0Mq/2s6If9pNx7/tJuP//38+////////////+vk4f+BVkL/ZjIZ/7GWiv/+/v7/////////
|
||||
///u6eb/pYZ1/5ZyXv/NvLP//f39/6yShf9lMhj/imJP/9/V0P/18vD/+vj4///+/v//////////////
|
||||
/////////////+3t7e5BQUGFAAAAWgAAAD4AAAAjAAAAEQAAAAf/////////////////////////////
|
||||
/////////////8OupP9uOyT/ZjIa/2UyGv+BV0P/5dzY/////////////////+vk4f+BVkL/ZjIa/7GW
|
||||
iv/+/v7////////////9/f3/6+jv/+Xh6//6+Pj//v39/62Thv9kMRj/lnNj//Pv7f//////////////
|
||||
/////////////////////////////+3t7e1CQkKEAAAAWQAAAD0AAAAjAAAAEQAAAAf/////////////
|
||||
/////////////////////////////+7n5f+MZFP/ZTIa/2g3H/+zmY3//Pz7/////////////////+vk
|
||||
4f+BVkP/ZjIZ/7GWiv/+/v7////////////t7fn/f3vU/2ZhzP/Qz/D//////8Owpv9rOyL/bj4m/55+
|
||||
bv+6o5j/uqSZ/7qkmf+6pJj/u6SZ/7qkmP/Dr6X/9PDu/+7u7+1DQ0OBAAAAVwAAADsAAAAiAAAAEAAA
|
||||
AAf////////////////////////////////////////////+/v+6o5f/aDYe/39WQf/k3Nf/////////
|
||||
/////////////+vk4f+BVkL/ZjIZ/7GXiv/+/v7////////////g3/T/SUTC/ygit/+in+D///////Dq
|
||||
6P+ignT/bT0l/2YzGv9lMxr/ZTIa/2YyGv9mMxr/ZjMa/2UxGP94SzP/49rU//Dx8exHR0d7AAAAUQAA
|
||||
ADgAAAAgAAAADwAAAAb////////////////////////////////////////////////i2dP/f1ZA/66U
|
||||
h//8+/v///////////////////////Tx7/+7pJn/rJGD/9THv////v7////////////39/z/pKLh/4aC
|
||||
1//f3vT////////////y7uz/yLas/6SGdf+Vc2D/lXNh/5ZzYv+Vc2H/lXNh/5RyYP+kh3b/7ujl//Hy
|
||||
8upOTk5wAAAARwAAADEAAAAcAAAADQAAAAX/////////////////////////////////////////////
|
||||
///7+fj/ybiu/+be2f/////////////////////////////////+/v7//v7+///+/v//////////////
|
||||
/////////Pv+//r6/f////////////////////////////r5+P/29PL/9vTy//b08v/29PL/9vTy//b0
|
||||
8v/49vX////+//T09OdbW1tfAAAANwAAACYAAAAWAAAACgAAAAT/////////////////////////////
|
||||
/////////////////////////f39//7+/v//////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//////////////////////////////f39+Rzc3NMAAAAJQAAABoAAAAPAAAABwAAAAP////v////7///
|
||||
/+/////v////7////+/////v////7////+/////v////7////+/////v////7////+/////v////7///
|
||||
/+/////v////7////+/////v////7////+/////v////7////+/////v////7////+/////v////7///
|
||||
/+/////v////7////+/////v////7////+/////v////8fr6+tOVlZU3AAAAFAAAAA8AAAAJAAAABAAA
|
||||
AAL///8y////Mv///zL///8y////Mv///zL///8y////Mv///zL///8y////Mv///zL///8y////Mv//
|
||||
/zL///8y////Mv///zL///8y////Mv///zL///8y////Mv///zL///8y////Mv///zL///8y////Mv//
|
||||
/zL///8y////Mv///zL///8y////Mv///zL///8y////Mv///zL///8y////Mvv7+yyrq6sKAAAAAwAA
|
||||
AAIAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////
|
||||
AAD///////8AAP///////wAA////////AAD///////8AAIAAAAAABwAAAAAAAAABAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAQAA////////AAD///////8AAP///////wAA////////AAD///////8AAP//
|
||||
/////wAA////////AAD///////8AAP///////wAA////////AACJUE5HDQoaCgAAAA1JSERSAAABAAAA
|
||||
AQAIBgAAAFxyqGYAAEMISURBVHja7b3ZdhtJmuf5N9+xryS4SJQUERmZVVk1PefMe9SD1HNNv0df1Nz1
|
||||
nJrpqsrMyAiFJO7Yd9/NrC/MHXA4HRtJkRRlPx0IgNPhMHe4ffbZtxkgkUgkEolEIpFIJBKJRCKRSCQS
|
||||
iUQikUgkEolEIpFIJBKJRCKRSCQSiUQikUgkEolEIpFIJBKJRCKRSCQSiUQikUgkEolEIpFIJBKJRCKR
|
||||
SCQSiUQikUgkEolEIpFIJBKJRCKRSCQSiUQikUgkEolEIpFIJBKJRCKRSCQSiUQikUgkEolEIpFIJBKJ
|
||||
RCKRSCQSiUQikUgkEolEIpFIJBKJRCKRSCQSiUQikUgkEolEIpFIJBKJRCKRSCQSiUQikUgkEolEIpFI
|
||||
JBLJU0I45/y5GyGRfG9wzn3Hcf7Hx48f//u//uu//o9/+7d/GwHQAZB4l9SDZWyLH1jzOvl+5evjF9pz
|
||||
XwiJ5DuGMMbAGCMQHT9+pOFrtif/jmifvQZ0KQAkkmeCc44wDJUgCBQAavSIO3Fy5FdS79ceMvGaZGy7
|
||||
gxQAEskzwRgjQRCoQRBoEH1Rg+i4sbrPsBQI8TZguyAA7gqDTEEgBYBE8kxwzhXf99UwDJMCABAjfrrz
|
||||
x4IBuDvX30UYJIXA4rUUABLJMxFpAEpCAMRTgLjDJwVBspPHHTnelrYPrJsKpIWAFAASyXMRTwEopVlT
|
||||
gPhBMh5JYRDbCJLaQVIgJN+nhYAUABLJc8E5V4Ig0CIBoENoAMCyQ1Ns9g7EsMTf13kR4r+tCAEpACSS
|
||||
Z2KNBgCsdvykIACy1f30dGEddwyBr1oAcM4hwpw4QAgUQh56SInkUeCck1gAMMZ0rGoAWR0/8zAQHR9Y
|
||||
nS7Ef8vi+5kCcA6ElIJzDlVRQFQVUgZIXgqccyUMQ5UxljQCAqKT0sQzEtsXH8eqNyA9VdhJELxaAcA5
|
||||
hx8EsB0fIWUwDQ35nAldUx9+cInkEcjQAOLRPO7INONj6TBf4G4nT7oQNwkC8uoEAOccjHF4foD+aIbb
|
||||
7giuF6BWKeDksIZyMQdVVUCkKiB5ZjjnJAxDlXOe1AC2hf2uHALZXoLkY8Xth5QgeHUCIO7846mN38/b
|
||||
+P//+gWjyRw/nLWgqgoMQ4NlGlAVSCEgeVYYYwqlVIsEQKwBJAXAOot+VojwJmGQHv1frxcgDClmtod2
|
||||
b4xfP9/if/6vj+gMJpjZLg6bFZQKFmoVAsvQoapSAGwlmSy6cms+37XjnCO27b4klpeE7HR5Yg0gmgJo
|
||||
WHbotR/BUktI5wekhcdK0xKff91GQC8I0RtO8Pmyi08XbVze9NEfTlEt5vD751sULBMEBM16GaqqPPwL
|
||||
XzOcgzMGTql4MAaiKFB0HUR7nltH2HZC+EEIxh4uAfYRY2utaURok6qiQFEUaJoKbYd7izFGKKXJKUAy
|
||||
oCfL4Jfs/HGHT3f+bdOA1z0FcDwf1+0h/v7pBl8uu5hObXiuj253jF9+u4ah6chZBirlPEzj1Z3+o8IZ
|
||||
A/M8MN8H9TzwIATRVOjFItRi8VnaFFKG2dzFdO4gCIWNjIBk6rhPcIXEdxECVVWgaxpMQ0c+Z0C1jK1T
|
||||
TM65khIAsT8/+QXph5J4JKMA0x6A9PvXnQwUG/9mcxfXnSE+XXZw0xnCdjzQkGI4nuPTeQeFnIWToxre
|
||||
njSQj36k57AFcM4RhBSeHyIIKBhjiGuzbBppNFWFaWgwDE24Nh+77ZwLFZtS0PkcwWiMYDoBndtgvg9F
|
||||
16FXazDqVaj5PBTDANE0EEV5lGkB59FvyRnCkCEIQ4QhA+McjDHMHQ+D4QzDyQyeHy6mKFnB71nvkNr7
|
||||
MTQAhRBoqgrD1FEu5nBQL0NRCAxdj+6vrPMUcQCU0jgVOBkGnPzKrNTgbUIg+Y0bvQGvQgBwzhFSCtcL
|
||||
MJ7O0emPcdUeojecwvF8MMownbu47Y5QrxbR608wnTko5i0YugZFJU80YiwJAor+aIbr9gD9wRSuF4BR
|
||||
caNzYPFzcXDErdM0BZVSHseHVbSaVRTyJlRFhaI8Xus552BhCGrbcK6vYX/8Hc7VNcLRBCwIoBgGjHoN
|
||||
ZusQ5vERcifHMOp1KKYpWvlAIUAIQBmD6/oYTWz0BhMMJzZcL4AXhJjNXfRHM4zGM3h+AMZ4JDizOnV0
|
||||
5XhKmyZ3TeMbr8mWvyhEgaIqME0DRwdV/OnHE6gqQbVcgK5pa6eakRBIagDJJm3q9FlCIGvU33R6rycO
|
||||
QFj+Q4wmc/QGE3T6E/SGE4xnDsKQgnCAej6G4zm6gwm6gwmGoxnKxRxIIQdTIU9m1Iptan4Qotuf4C+/
|
||||
XOC3z7eYTG0EAQVlHCAicpFDRDKSqHmmqeO0VcM//+kdcpYJw9Cg6EpCRDxC+ygFtW243R7mHz9h9P/+
|
||||
O2a//IpgMAQPKRTDgF6rwDw5RvHnP4CHFETToFcqwjag3j/OgoMjCChsx8NoMsfVzQC/f2nj8naI8cyB
|
||||
7fmYzl2MJnNMZw48L0DIhG0C4HeuAQEB4eKx3CgELCc72g/4ylMk5FLfE/1AlmXiw9tDaJqCRrWAnGVE
|
||||
doFsLZNzntQAkpmAwLLjq7grBLa5/tIawDp34OuIA6CUYTpzcNMZ4vJmgG5vjNnUhe+FIgqQEIQhhe16
|
||||
GE1sdPpj3HSGKBYsaJr6DLYAvmjz1e0Av326RX84hR9QUErFL6VEQwDnIAqBQoCcZcD3A5y06nA9fzn6
|
||||
7eM5XtskYfAL53O4t23MP3/B9Je/Y/r3XzH/7SPC0RigDETXoZaK8CdjcEqhmAZACHKnJzDqNaj5/N7T
|
||||
EsY4HNfHbO5gPLMxigT1xVUfn847uEoIANv1MZu7sF0Pvh+CMTF9AnDHErAQAKkhn4NHSsFuQiDpCFkn
|
||||
ABgAyzKhaSr6wyls10cYUrANJTcjDUDhnMdTgJh1Hf++QmAtr0IABCFFbzDFx89tfPzcRr83ReCFIKky
|
||||
CYxx2K6H2+4Iny46KOQtFAs5lEv5J5wCiBGIRZGKs7mL4XiO/nAGPwgXhq34nuVYCoB8zkSjWoLj+KB0
|
||||
aTN4eJOEIGG+j2AwxOzX3zD+X/+B2d9/g3t1jXA2Awv8aILOwKcMIABRVIADdGaDuS4U9Q9iKrCnh4Ax
|
||||
ht5ggk8XHVxc93DdGaLdG6HTm6A/mGI8ceD6AYKQwg8o/CBEGIag8ZQpmgIsf8Olt0uM/mR1M/bXAFZY
|
||||
jKHRHwkB5YCihpHNgoKGLDE9WXfZOeGcJzWA5LcyrAoBgtWOnyUE1rU0fv06k4HCkGIwmuHLZQ/nl10M
|
||||
hzOwgEHhZDH9i0clzwvQ6Y3x6aKDarmA48MaDpsVKE8cIsy50AL8IITr+XBcXxgEKV3cqDz6JwSAUCNd
|
||||
L0AQMqSmvQ9uCxgDCwIE4zHsT58x+a+/wv5yjnAyAachoCiL4Y+FIcLpFC7nYH4A5nnQigVYJ8fQG3VA
|
||||
07CYu2yARYbb8dTGxXUf//m3c/zy+zXOr3to98eYzlwEfihsI4wvNCLOOQgHVIVA5UmNNk0qniZz4v+w
|
||||
i8ij34pwDiURYRobpTcdPqUBxIaCtKV/l1E/fcLpk7+TBhzzKgQA4xy262MwmaE/nmPueqAsWUItNgeJ
|
||||
KMHecIrCTR+tZhXDyRyu50Mh5tq52teAg4NFQkBYu+niEWcvpgVAGFIx6m0ZWe7bIlAK5nkIpjP4gyGC
|
||||
8RjM8wAWtQlEaABM3Nwh5iCKCr9cRjCZgPk+wLdVp1pi2x4Goxmubgb466+X+Ntv1/j45RY3vRFGUxue
|
||||
FwA86RcjewfbxKd25/2Dp0x3g/Fj4ZTs99t+pUgDiLWAZKWfbYa/dQa/ndV/4BUJAD8IMXd9zF0PXhCC
|
||||
cbZi/I2DNYKQYjSew9BV3HSH6I+mmM5d6JoGXVOfMDqQRL8UWbQPkbGP88VWca+S1ZHsa7Qwdr8JbYCC
|
||||
M4psNYNEt5iYo3BKwYIQPKTgVAgHzvnWNjLGMRzP8ctv1/jbb1f45bcr/PblFrfdEaaOB0qZcKFlnu+u
|
||||
nZ+nPADZv8Ni3z2uVfIrkLAn7COWY1cgVjt0UgPYZZ6/iwEQyBj9gW9cADDGEFKGuS0CQ4RxyIcfUrDI
|
||||
3bO4EtEdQynF3KEYjObo9MZod0fo9icwdA2lgvXE0YFk0ekJSCImgS+fEfe3hMD4mjIqdkOutJEk5rvC
|
||||
SQFCgMh7QpTFSWyFMaHtzG0PVzcD/PLxGv/xt3N8vuig3R1hMnMQcCaOSxQQwpH6KeNmiOaubFkjrHaK
|
||||
ElobK3N3z8TliKdFJBJKZPdLsTgc5zwZAJQ1Bdi386+LBbjDNysAOOfwvBCTmY3bzgjd3hij0QzzuYsg
|
||||
CNaqyJxx4Wf2fAxHM1xe93FQK8PQhTfANPTnOSGybnP0jy+1ha8SAy9UAPGgLBrNWbQNC1djXGCFgAGE
|
||||
g6gKiKaKZyV6bPga1wvQG0xx3R7gL79e4q8fr/D7RRud3hgz20UQ0mjao6yc6vKUxfw/9n6Ip4RvP2tA
|
||||
TwoQQlJCY9sFJZt35QAIBwWDGmtAO07REkbAZGhvVqdOq/zJxq2TjZtO6NvPBeAcsF0P7e4I55ddXN8O
|
||||
MRrN4dgewoAKo1mG4IuvMKMMk6mN88suSgULpYKFZq2EUiH3pOcRa9ObTzbSYB7R8He3IfHQpQCqKqL7
|
||||
VA2cMoCJ+pSig0VXUFWgmAbUYh5aqQgtnxdxAHFE4JoO4LgBrtsD/NffL/Ffv17i44WY88/mrvguBcJy
|
||||
z/mis/LE6KqAQIue43l43PF5wkfHY6/AwkOQ9BEQbJ+kxL/Lhv0WTgACCgbTVGEZYiqpKAp20QOi0T9r
|
||||
9N42umep+imrZ6ZweB1GQM455nMX17dDfLro4LY9xGzmIAxCcMYBlay/DwkBjcOG20MU8zkcHdbw7u0h
|
||||
qpWiSOQgXzE6cH3c6t2mpozpX6tNhBAQVYNqWdDLZRj1OuhsLlyAngceBKLhRAFRCdScBaNeR/7tGxTe
|
||||
v4PZOoCayy1G7nVSLQhCDEZzXN0OcHU7QG8wxWRuI/BDqERZTHWAOOuPCKGgEOiaipyhoWgZKJgGdF10
|
||||
NEKURdyEkAvL+5wk7BjLnAGyq7K/2Si89AKCcQbDVHF20sRho4xC3ozat/7zkQYQ/6zxI6sSMJDd8Tfd
|
||||
EptulcUl/nYFAIDp3MX5dQ+/fbrBdWcIx/N3OPWlXjB3A9z2JrBME+/eHmI8cXDQCKIILuwwND8WTxeF
|
||||
kH1JCLiiQLVMaJUKrJNj5N+/A6cU3u0tguEILBSClRAFimHCKNeQf3OGyj//GaV/+CPyH95DL5eEu3AD
|
||||
lDI4jo/x1MFs7sALgpWsvjvuec5AoEBTVeQsA41KAW9aNRwfVFEp5mBaBnRNBVFIWuuPrmy2e3AXAbCP
|
||||
yZVzJiIA6yX89O4YzVoZOcuApqrbPEuxih9PAbbN+YH1wmBvvjkBEFurPS/AcDTH5fUAXy576PUn8P0Q
|
||||
hBBsugUJAB7dLK4fIgxt5MwJ2t0xeoMJDhplqAqB+aT1Ajbcjk/RhMj4SAwDeqWE3OkJgslU3JmqCkXT
|
||||
oExnYCGFomnQi0VYrRaKP/6I8j/9E0r/8PMyH2CDAOCcww9D2K6H2dyB44o8DYUAPEPjIgRQFVHEpVjM
|
||||
oVEt4fSojj+8a+GHt4c4qJdQKFgwDB2KItymz1IjgIhzUwgRwVq1EmrlAnRd2yUjcF+Vft87InmsO+bQ
|
||||
b04AUErhuH5kxZ+g05tgMLAxm/ugLAqQScwP110RcGGR9kOG2dxBpz/G5XUf1XI+iuVWn6FewJpJ/pMp
|
||||
IgRqLg+r1QIPKbR8Dma9Bq/bQzCdiWQgTYNeKsE6OEDhxw/IvzuD0WwK9X/NzR4HxQRBiPncxWg8x3A0
|
||||
w2TqwA/CaPK+vLc5ogw7TYFh6KiU8zg9buDD20O8e3OAdydNnLZqqJbzyOUM6LoGheyq1t/3d9myRzRV
|
||||
0zUVlinyNHbp/IlpwOJXSP8qGc+bpgF73S3fnADwgxDD8RyX131c3Q4wHNqw7QCBz1b0x03uX8IT7qEo
|
||||
hqA/mOLTeRvFvIlC3kSllIf+BA6B9Xa95yl3o5oGzIMm1HwO1uEB/A/vEU7idOAARFWhFQvQq1UY9RqM
|
||||
ZgOqsTn3Pa7OPHc8TKY2BuOZiL+YOfD9KKc/NtrGpdwVAlPXUY06/z//6Qz/5z99wPs3B6iWCsjnjaiq
|
||||
k/os2ZzrUAiBul3tT7PJfw/cFQLJfdYFA6X3z+TbEwB+iP5wivPrnrD8T2x4vogLV+J8KmB7vidfxLKA
|
||||
UorheIbzqy7KxRxah1WctOowjfX53F+XxwhVux9E06CXitCKBfB6DZbbAvM8UMcFCwIQRYGay0EtiFoA
|
||||
IgNws6YUawC+H8B2fcxtF3Pbg+v5UcRm7LGJLfQMhACWZaBZL+PspIk//nCCf/r5Dd6eNKFHuQbJqMAX
|
||||
w/5hGus6+6YT2+UrdmrGNycA4sSfz5ddXNz2MZ47CBgFJwnXz47ERp4wZBhP5ri8GaBcyuPDuxbmtod8
|
||||
3tzFiPMo8Gca8bMvTGQTME2R7RdS8CAApxQgBIqhA7qx5wnyKHFnmcDDOIeI+VmtWCWMjQTFvImTVg0/
|
||||
nB3izXEdtUrx+eI0vj4P6ez35psTAI7ro9Mf48tVD9fdEaaOA0rY0na6B3HHZoxhOvcAPkG1IrLQhpM5
|
||||
CgUL+ZwBnXw9IZB0Ur1IOMAVBdB1EE2P/O1EuNf2uSaJaEclih5UCAGLOn/ycDyKeyjkTRwfVvH2pIFG
|
||||
rfQq13RYEzC0i7HvUW6Yb0IAcM4RhhReEGI4nqHdHeO2M0Q/qvgjIsHWzKR5wpmTYQsVPlyOMAgxtV0M
|
||||
orUErm8HorabUn78Gy/50/FtO2yo5/QViMOraVSGa9N3xm1SFFETT1O3VCeKf4Q1avKy9pX4Rl3XUCxY
|
||||
qJTzyOdMqK9QACSuTHxnbtMEttkG9uKbEACUiWy/4WiK6/YQt90ResMpZnNRRQecL0eP5O3KCTiNro8i
|
||||
gtwIWe7DE4YCxrkoOGl7uOkM8em8jZxlIGcZKBSsrzs+rxUC/EmtAXGdQtvx4Di+SDsGT8S9i1AazhN9
|
||||
mUQBOpaBQt6EoWy7pfjCQ7M1Y44QUYU4rqrzRNfhGdnmAdjlM3vxbQgASjGd2ri6GeD8qiuSRqY2XNdf
|
||||
uIzEDZm6lThElBhiQx5fxo2nU7qi2ADHD3DbHeP38w5KxRwOmxU062UR7/41T3IlIOzueSzqGnzFJjDO
|
||||
4XpiRaX+YJaoOrRo4KKpBEREDSsKcjkDjWoJmqaKoJydiuLHL7JPjEPUeXBcH3Pbg+MFCCnbpczAa+bR
|
||||
BcE3IgAYBqM5fj/v4ONnkTgSW5CVOEj8ThyYGD3EgqAKOBg46NokjfgIol7ABOc3Jg6aZfw4mcP1AuQJ
|
||||
+Yr1AraEm5IMve8R5wJxGnAQhBhPbXy+7OH38w7GUxssVXko8pyKmAFVgaGpqFYK+PHsUGhMpg5to6qe
|
||||
7PBEJBSBrHwHIeK97fho98a4vB2gWi6gXi2iVLDwdDrRi4DsuO1efBMCIAgouv0Jfvt0g98+3aI7mCAM
|
||||
2aJKzvKarBqUFE2BbhggqgIahggCBk7XpJeS+LtCDKc2jN4QN90a+qMZZnMXejS6PflqQonJ/6LjP7Ih
|
||||
gGO5pNpgNMPfP93gf/7nZ3R7Y1BKFyXD4lh6MatSoGkKcqaBk8MqFELQalZQqxQWAVTrhaXQdBa+/zt2
|
||||
GSEApjMH55c9WIaBSjGP1kEVlVIehv5N3La7sC6oZ5sR8NHugBd9JWOD1GTmoN0d4/xKBP9MJg4oY9EN
|
||||
dvc6ERAoigIrZ6BULkAzNDi2i+mEwqNh5nfFGQJxfYHBSEVnMEG7J0KEDV1FsZB71OhAnn61LYX0a1kA
|
||||
I/ecWFbNxW1vjN+/tHHdHiAMw2WacCwAOABFLIRRyJnw/QDvThoitJdtrwgU58uThCSOlThCCBRFfN3c
|
||||
8XDbGcHQNDSqRTQbZRCFoFwQ5dw1TY1sA2mrIonKFZCF/eAlktB6nq2BL1YAcC5KfU9nNtqdEdrdEfoD
|
||||
ET7q+cFKpRyy+h84AVRVRaWYx5uTBvJ5E73+GIHrwXP8aIkrktmhOGOgjMNxPAwGM1xc99CsCheUoWuP
|
||||
XEE4Ga/M1zxHkDsRs497vRGVKWMMYRDA83y4ri+yK/myyk8sAIhCQHUNGuHwPR9hGIrOv0lIRUVFwRgI
|
||||
Z+J1XFxk5VTFb+P7Ykpy1R7A+lUH5Qw37SGOD6uoV4soFiyYhiYi76LfU7gZxe9vmhpylgnl+5oy7MUL
|
||||
FgCA43jo9Ma4uO6h3R1FteBF1B9ZE/4ZV9UxdWGY+vHsELVKAeemgdnYhucE8H2R2spTHZDE8eSMIwwo
|
||||
JpM5rq77qJXyKJdyaNRKKBUfu14A3zrwi71Srx/9nhYjqUJEsU1dJdAVIoyjHOBsOcoqnEFRAF3BYj81
|
||||
6nibJACJ7CiqAqgkKigUewWSBU+iJ8oYHM9HbzRF+DEq/HrRxYe3hzg7baJeKwrPg6FHuQAkCsUlMCIX
|
||||
YrXMUMhbUJXIzkCihTxeqFbw1LxYAQAII9BtZ4zzqy5uu2NMo4oxjANqqsbpYt5PxOKMxbyFg3oJH06b
|
||||
aB1UkTd1OLYHRSHoDyaYz134QSgG1OQIFFWaYVHaan8wRac3wWRiL0t2f5WzTb8jO+z3dUjnnyaqgS2i
|
||||
LQkXufYEHITwjQm2hACKosDQxdLs+ZyJQt6AZergXoiQ8mV13eS5Mg7KGShjIpHI9jCdubAdD+OpjVql
|
||||
gHwkAAhRos4tjJOmIZbpijUFJSoOoWkq8jnRhpxlwDQ0aLr23eoIL1YAcABz28V1e4BPF120e2M4XrCy
|
||||
cNqKy59zcE6gaQQ500CtnMdRs4J3x02cvWmiVilAUVUUCib+9tsVzi86cL0gKmuXtrELIRCEIoFlOlum
|
||||
rn5f8OxNewYnEEKgqQpyORPlch61WhG1WgnDqYOQOgjDYFlIND0diCSQqCPoLrwVveEMOUtkAsZTABJ5
|
||||
flRViWw2FqrlPIo5M2o7RzFvonVQWZSDb9RLKGvqd+tbfJECgHOAhmI9v5vOCBc3A3SHM7hBuFL2Kf0Z
|
||||
QCyeWS7kcNgo4+SgiuPDqogjrxWhREaj8cRGpzPE3HbvHishEMRqQr4oOGq7cDyx2ouqfoVFOXfkSb41
|
||||
WWcrqwF3wxQ2t5kQKIoKy1RQLuZx0KjiqFXHZObB8xk8P3upb3GJlcU3UMaiJCJRV5BEi6PGS3MhYfTT
|
||||
NBV5y0Apb8IydYAJAVMp53F22sCHs0PMbBd+tJBHLmdCU5WNS3m9Rl6cAOCcL+Z+k6mN7mCKbn+MycwW
|
||||
6/wBmfelSCABTF1Ds17C2UkDp0c11Mp5FPMWTNPA2bGY13+sl1DMWaKEGGVI1g6Lj88B+AHFbO5iMJ6j
|
||||
P5xiMJqhUSsin4sWFX2keeQ+gd9PnTKU9FTw5Bx9T2NkXJY9n7dwdFjDj++O4LgBZraH2dwFDdnC+Bcf
|
||||
mye0sbgQDOUUQRAuBP7iVxNzOSEQFAJVUTDVNYxNHYamLjSM4sjEzHYxntpo98a4uh3g6LCGg3oJtWoR
|
||||
lVIO+ZwlhMZ3wIsTAJRx+H6IydTGcDLHcDzDaGrDcbxFAO8d7190M6iEoGCJFVp/eNfCyXEd+bwJhRAY
|
||||
uopGpYBWvYyDWgnVch6TmR1FmAm7QjoCPwhDTOciP6DdG+OmPUS1nMdBQ6i0ivJqY9PX8HDxY5k6Tlq1
|
||||
aDWkAL3BDMPRHDTk4FSEa3EiqjYJYwwg3Hp8+cyFS+ROa0iUWci5MOSGHA5j8BIeH9fzMbNdtHsjVL60
|
||||
Ua+VcHRYxYe3B/jxXQtvTxpoHVSjmI+nLgjz9Lw4ARCGIaYzJ1obbozRZA7b8RCEIVQlW/UmiujglmGg
|
||||
Vini9KiGszdNtJoVWJYoVqEqBMWciVq5gMNGGa1mBTNbLDU9d8QqQovBh5CoiAUD8wJMZi46/Qkubweo
|
||||
lPMLQ5b2wOSUXZO6713u5RFZmfY/wBVp6BoatVK0OKqLTm+Cue2ho44xn3tw/QCU8MypRrJKb6aKTlZ9
|
||||
JZwyYWBMbPV8YDp30B8SGIaGQt7CTWeI8WS+WJ6Nc0BVVBTyZiToX68geHECwPNDtHsjfPxyi/OrLsaT
|
||||
OcKQ3l2hFctAClUVEWn1ShEnxzW8OW3g9KiOerUIy9AX9h1VVVAsWDhu1fDDuxZcP4Tnh7AdX0whlFUz
|
||||
tCiRz+F4IbqDGT5ddlEoWKhVRFDKY7BPX3pw6tc9WZ+ss/+xVFURdfPqJfxwdgjXD2CZOv728Qa/n3fg
|
||||
DkPQkEZqvxjN0ykeSmY64d1W8tQiJxxxcRKx3kFI2WK5tSCkmDoeRlMHfkBBQHDYrKBUENPH12oSeHEC
|
||||
wHF9XLUH+PXTDb5cdTGZOeBcuHey4FzcVOVyDqcndbx728Sb4wYOmxUUizloKYOdZepoHVTx4ayFycxF
|
||||
dzBBbzBdrDCbvLNIlPseUIr+eI7PV30UCzm8PW7gnddEIbYuPwIv+f4Sg/HjWCGUKHuwVMjhzXEThqGh
|
||||
XMxB0VTMPR9OEAKOK5b9piwz9Jlk1nu7qzJkLqkW1SOIz4gxjpntwvYC9Mc2JlMXqqJEA4eY6hnR69fI
|
||||
ixAAsYEnpBTTmYPbzghfLru46Ywwtz1hwFkk/UQ/88IwBOiqhka1hPdvD/DhXQtHh1WUirnMmHFD11Ct
|
||||
5NE6qKBRLyJnGZtVPM5BQ9GudneERqWATn+C8dSGZRkwdO0rzBW3JX19pXDAfZtzD1mwCNQyFFTLJKqd
|
||||
r2LuBpi7ASzLwHA0hT13RcIXZYuEJA4ORoVLMAyjbRnxA8sIy7jKdmw/WLYh/jNjHJSFCFwfc8eHqipo
|
||||
VAqolnKwTLFcXKmYe7X2nhciALio9ut4GE3maPfGuG4P0R1M4bjBokJM0kIPYGG403UNB40K/vD+GD+/
|
||||
P8ZBo7x2fq6qCnKWiXIph1IxB9PSoWokof6vrtpBovBY13ExJkC3P0anK6oGWaaBSikPy3rACLG2LydH
|
||||
tOdS/jfxcIOgCMoxcdgs4x//cIq8ZeD9aQOX1z20OyOMonm574swY8YYXD/AbO5iZnsIw7ijxyN8nK4U
|
||||
jw5x11cQ/7wkWnUZIODxKkdRFCLhIgT8qj1AMW+gWBAei8ODCjRIAfDVYJzB9QIMx2LBzk5vjN5ghsnM
|
||||
AaNxau/y5udRARCFKNBURazs06yKENGTJiql/Nopg6IQWKaOUtFCqWihkDdhWYbIL0it6UbiKQFjCEKO
|
||||
OVyMRjPcdka4iioGGboG09QfcY6Y1fHTr5+JpfHlkdoj/PXlQg76qYZ6uYjTVg2fGhWcX3XQG0wxm4vi
|
||||
oSGlYJRi7rjoj+YYTeZwfYp4+ULKomXTGQM4jfIMCDiUZTGFVIWjeEHPhfuQADQM0RuMYegKDhpl/OnH
|
||||
U/h+CGOHGv/fIi9DADCO8dTGxXUPX6566PSmmDkBgoBFmX3LfWPVjRCymD+2mmW0Dio4aJRRKRdgmetH
|
||||
ZFVVYJk6yqU86tUiGtUiauU8Aj+A6wYIQpEtmPx8bDgKghDTmYvbzhCfLzooRuXDK+U8HtohXlBJ0FWt
|
||||
hCS06UdufLwqshJl9pmGDiNaW69SymE8tReWecYoWBQI1B9NMRjP4boBQhonjTmYzBx4XpTsFeVYcEYQ
|
||||
UgY/COEHIUIah3OTjLaI2hOzmYu+PkNvOMV4asN2PJimvr3k2TfIixAAYUjRG0zw8fMtPn6+RXcwRRAw
|
||||
iDpeqZ3jzDRCUMiZaDUreBP5bsvFPMxoQYa1AkCJ48TzaFRLOD6o4qZZhe8F6NMZgjBc2hwSxO9dz8dN
|
||||
Z4RioY1yKY+TozpalN3fDsCxUzJQtOvK81fnKc0MkXGwHBluG7USgiAU9QkTNgDX9TGazDGaCOHgB8I+
|
||||
c307xNVtXxQxYWxRZIRxwPUDjKc2RtM5Ao+CM9xZPSpOKWZM1J+c2x4mUwejyRzjqROVhzNfnS3gWQVA
|
||||
bMSJQzs/X3bx5bKH4WiOMGTRvD/bvaNAVI09Oqzi3anw+efz233zhMRhomIJp7OTJkbjOfwghOsH8P0w
|
||||
ER2Y/OCyYlB/NEPupo/WQQWD0Qy24y0KY+6rJm7tzAttm2c8ngbC79jXs0/ggU2Kp2emoaNWyT6Y74ci
|
||||
NHvuwvWCRdBYs1ZCtZTDcDIHi8qKi6hSDtv1cNMdgXSI+K19Ch6mlvCObMyMcVDK4HkBJlMH3f4End5I
|
||||
rPOnqdB1KQAeDcY5gijcttuf4Op2iJvOEJOpDUYp7i73SBaLTHAAhZyJk1YV79400WqW9wrf1DQVjVoJ
|
||||
f/zxFERRwBjH3BY3leOKpCPG+CJdNa4pGFKK6dxBbzhFuzdGpz/GYDSFohDkcuZeFYQzb/HYHZkIdU0u
|
||||
bv3kU4VEJuCKCpJwxZFHlkebluU2TT2axhkIQ4qQUtSqBZSKObSaFcydpddIBAQKN9/HL7ewTB0XWh+j
|
||||
0Ry27SMI6UoxkWTUQMgYpjMHFzd9NGolWJaBYsFE/hFdvy+BZxMAwvLP4Hk+xhMb/aFIu+0PxYgKnjX6
|
||||
L3uFqkRBPYc1nJ020KiX9ioVRQhEean3RzBNHdOZjavbPobjOSgD/FDMOXmc7hqNxJQJg+Vk6qA3mOK2
|
||||
M8TtYRV6NI/dRwAkrAyJiXZsuk4Y2ni2WfApWJgkF8F5yRzsRV2fJ0VRhB2HGxo4Bwp5C5VyAW9OGmKl
|
||||
oVSDpnMXlWIenAFgAAs5PI8iCGlUVHZV7sYG55nt4up2gEopj2a9hDdHjSc+06/Ps2oANGSwHZH0M546
|
||||
mM4dOI6HIKAigAe4s8ZfnOllmQbKpTwOGmURsVXM7RWaGxsRDUODH4Q4aJRRLRdQyJtwvBBByIFk8vHC
|
||||
kBy5LD0fw/EMV7cDNOsl5HMmSoXcA0aIdHWgOBGGPLsDgKQEEM8IUN5vTaaHoSjkzlx8U5mWSjkP2/Ew
|
||||
Gs9h2x4mUxfDsQ3uLguSAAkNgIjXnh9iFA1O05nzVetBPBfPGORMEIQhZnORmTWfuwgCGi1GkT3vB6Iy
|
||||
1JaOSimHWkVUiq2WC2KhyHvGbMcCpVjIoZjPwdA0EW7K+Do9HWEo5p4X1338/qWNdncE1/O/4tV6PinA
|
||||
M7ekYrOfODZpHzRVRaNaxPuzA7x/e4BarQhVVSO3oXAZEs4W5xJnJVJG4QcBXM+HH4Zg/PXVg3gWAcC5
|
||||
qPU/tz10BxPcRkEfQRgiXj7qzmeih6apKJfyOGyUcdgoo1opoJC3FgUi7wMBkLMM1CoF1CpFsQpNnEG2
|
||||
bhbCGWa2i5v2EF8ue7jtjjCbu1Gq6m5lvu60Iiu/ZbHtqRTtuwa+1SSgb6fjL06Dc+SjQiBHh1UReqwo
|
||||
iVwDFj2v6jEsik4NGcucWrwGnlwACMssXazx9+una/zltwtc3PRhO140517mnS+MX0wY/wxDw2GzjPdn
|
||||
h3h70kSlVIC262IUa9A0FbVqEW9Om3hz0kC1LKoHsUVCClam54BIEnJdH4OxSBVu9yYLVdH3w7XrD2ST
|
||||
NEQBy3xn8pXq/2X+MvEPJF6y5TVnnIFzGkXj8eV2Jhb4FEbZ+wi9p4EQEXKcMw1YlgFdV6EqScPqmuvM
|
||||
lzEg6cSi18KT2wBYVHBzOnNwdTvAf/79Av/fXz7jtjsWWXnAar5/FALMIlu4aRo4adXxxx9P8O7tAcrF
|
||||
3IPVY10XHoEfzlqwHR/XnTG+XA8WRSlWA2GiaDIOeAEFbA+DKILxtjtCrVIAIQSle9QL4KlOv5Q9HPzJ
|
||||
otBIZICN/y3POjb38bhq0gsf+ZPEHoFYoJO4rkTs/4vPHSmNB5lvXg3PIAAYPD/AZGaj2x/j8qaP8+s+
|
||||
pjMnmsMnf5C4djxZFPssRem8H84OcdKqoZA3H/zbqKqKcimH41YNo4mNw0YZpaKFme1EZbGTS1JFCUlR
|
||||
+KnnBZjOXXQHU1xFK9g8qF7AojoRyXLAJ3d8xF+FLKZecUHNnGWikLOg68piSe/YAMghLPFxgU3L0sWo
|
||||
qr7MUlocHDRk8P0Qvh+CUorFEnEpA2Y6p3BTUNlr4MkFAKUMjutjMnVEhVfbR+CHoCGDoikg6eA/zkVF
|
||||
H00UlaxVCjiK6vw1akURh//ANqkKgWXoqFXyOKiX0GqWcdgowXFcTGY2PC9eHousDBacAzRaT683mODz
|
||||
ZRfFvIVquYBGvQQT9y0rRTJfxhsWI/Miu+2BF4DEdftE6mupmEOzXkRIQwSR8Ysn4uiF60wIgJyli8q7
|
||||
eQt6VCYt9sG/FBRCEFKx6Kltu/D8IMowxCIXAIuzS7AsLvQq5//AMwiAgFJMZ6LM1mRqg4YMKlGiaj93
|
||||
Oz8X6RwwTWGkazUqOGqKuP9SMQdNfdj8X0CgqipylolqJY+jwyreHtfhuh4oFTXoxIo3d+PHAVE9eDia
|
||||
4/yqh1Ihh9PjBt6eNlDIW/dsz6ZkG774t5y284dfAxJ5WEwD9VoRp8d1mJYuirGAL5YKX7QuypU3I5tM
|
||||
vVKIcuiV5F4P/F0eBz+gmM1cDAYzDIYzzOeeWGgUsXdlOe4vys4h0nJUDYami8rDr1ATeHIB4Psh+sMp
|
||||
Lm/6aHfHsG1vUfAjPZfn0Uoyqq6hUsrhzVEdZ6cNHDbLKBZyj7ZGXFyw0lA0lEt5nJ00MJ7MQalQG10v
|
||||
gMP9RZuWS5ELLT0MKSYzG+2uilqlgG5/jPHERs4yRYDQvesFiBTVpIEwmckW37sPvTFJcopVzOHNcX1R
|
||||
m4FGHSVpBIuDZxRFxO9Xy3kcH9aE90TdULLrCeEcCELx240nQjj/9rmNzxc9DMczhJRiOfivRjnEhljL
|
||||
FNrNQb2MSim/V5DXt8KTCwDX9XHTGeLj51tcXPUwmdnCv7pcMG6BsCxzaJqCZr2Enz608NP7IxzUy9C/
|
||||
UsHGYt7Ch7PDxY08mTkYT21QyhBSCpooXx2XJ2GMwnE9DMYEnf4Y7e4I3d4EOUsEK6lRXcJtJE1Ry/ty
|
||||
KRiFMTCeuz6eTkoAQBHG0Go5jx/OWmjUSiIPn6+OjCufi2otmqaGaqmAUtF6MfXzGGewHQ+9/gSXNwP8
|
||||
5e9X+I+/XeDTeQe3vTGCkEJRVqdPnACcE1FnQlFQLIhB58ezQ1Ff0nh9lYKfRAAkK/5MZg5uO0N8ueji
|
||||
pjPEzPai5I3szypE3GCHzTJ+PGvhw9khatXC2huNR19Imaj35vsiXpwvDGur+5PVT4JSBl1TUa8W0ayV
|
||||
RE04Q8SfU85A2F3lljMOn4aYwcVwNMNtd4Sr9kCsWqPrsPaoKZeuBrCICobo9GKxEhE8NRzNYJvGnbJn
|
||||
idPJfpuRYRnvxTiHaYjCnbu4MuNRVFEV2I6o9LuwpT9ECVjz1XFk6LZD+0GIwXCGy5sePn5p47/+fom/
|
||||
/HqFm84Qnu+DgyXiRhblYBEnfqiqglIxh9OjOt6dNnHYKMN41HUhXwZPJABE/Px07qDbH6PdG6M7EGW1
|
||||
4nX6kq6/+OdQVVHwo1DIoVkv4/S4geNWbeMqvXHevu34GIxm6PTGGE9thJQtij4kyaq1oygEtuPh4qaH
|
||||
0WS+XLgi9lGmOka8loEfhpjYLm66I3y+EgVEy6U8yqX8g4KUxAvxHVPbwcV1H//x13PctIfR+gRKtoDZ
|
||||
0okyr0NUaIUs/OSb2h27RPlKktajkXWwbZcxunn8IMRgNMdNZ4jL6z4+XXTRG0wwd1xwzu4s87509Qov
|
||||
lKKqyFkGquUC6rUSigXrwVWgXyJPIgAoZZjN3UUlnW5/gsnMgeMGIsIKQLocL1EIdE1D3jJRrZRw0Kyi
|
||||
dVBFs1aCoetrOxSlDI4XoD+e4ffzNv7yyyUurntw/UAIjUSKcaxmr0S1R3NqP1p+6uK6j6ntiDoBi5am
|
||||
nUXigxyA4wW47Y1QOm+jUsrjpFVH64BBe0DMVdytQsYwntr49dMNphMH+Zy56PyLkmlY1SKW4QvJOHek
|
||||
VJjELxAdZ6Ugypp2kdSxWeL1Y1sANgmWVUElagAENF7UZYbR2MZk6sDxvDvnlv4GoijQiQbL1JHPWygW
|
||||
cygVLFimce9Q85fMkwiAkIob9/Kmj/OrHrqDCeaOSMcEuVvxV9i9FFimiUa9LIpuHFRRqxa3WtY5FwUd
|
||||
HMdHtz/Br59v8Mtv17BdT+TrK6u3C0ne/DFRXrhYFkwUp4xzzNfdivEp+H6I/miGfHuI48MaJlFkoK6r
|
||||
d42c2y5cqiczKiri3LSHGI9sYVyMl0hfMaEsM/Q4z5i9J20tqcjevdqXuH6ZB3gMMo6f5V9Ing6PSn67
|
||||
foC5I5YSE6XlNrtMiUJgGhoKUZbpyWENjeieM4zHWwnqJfFkGsBgNMPni06kik3hB+Ey5y0R7y4M/xyK
|
||||
qqBcyOPs9AA/fTjGyVF9xzLcy/qBfiASdnqDMWa2EADiR0xUiF2jZoqFQWi0GnGWIzjjZuAEQRi5nKKl
|
||||
xKYzB67nw7KEHWFb6Hxy5E6PsJwRhD7FjHpwnUAsiZ2YE6+Gsyyu6OqMJT3nWRGAGTkYWRcoKTS+dp5y
|
||||
cr6Skbe/2LwSpCVsGUFIEQQUlFGAi3LgJAr+WWoqPJrVCXdzqWDgw9kB/vTjG/z557c4OaoJ9f8VlgMD
|
||||
nkgAuJ4vAmUuuji/6mE4ni/m5Msfji9HPC58sOVSAe9OD/DT+yMcHVR3MsIQIrK/dF2FpimLOm+BHyCM
|
||||
VLhdorsWri/OomjEeGuW1WD5jsWBTjNHLG02mUUlxIUxUFNVpIVJusZPIhl4OZZzACxSbxkFJTQVMZl9
|
||||
EmnRRdZ8IPtIPF37AyuXAlg9+qZruoP8XLtvxnwlQy4s7qXYELzIICVZpeVEpCWBWFJOUwksS0erUcI/
|
||||
/niC/+v/+AE/vjvC8UEVuZzxYqMcH8pXEwAciKzwwcIYd9sZodufLCz/K+FsWM5NOSFQVAX5vIlmvYSj
|
||||
gyqq5Tz0Hfz+sW86nzNRzIua7oWCCcfzxWgQLfG9LuMwybKOfHqvrBtBdFnGeVTnwMNwNMN1e4irgz50
|
||||
XUWzVoaWUzdOJbZdVM7F+nl0fZGu1fPh688r+em74mzZ0e6MuDsqRGsv8M77Zu/IVyVQxknFQcurX7eY
|
||||
DiUkLVcIdF1DuZRD66CMP3w4xp9+PMFP71o4btVQKliv0v8f8/U0AM7hecISf9MZ4rYzWmbLeYFIbiGp
|
||||
Ulfxgo8qoBgqTEtHsZhDuZhHzjJ3MsIoRIGhiwUdmrUSTlo13HbrYIxH6wz6SMTWLJv7wNONQ0o5hDXc
|
||||
80MMRjN8Om+jlDdh6BoKOWvHgiH7jzQPi7vL/vRe12Rz8OL+kAd8Nv31kSRcPicHHwWWZeHs9BD/9Kc3
|
||||
+NNPp/j5hxO0DqooFqxXVwMwzVcTAIxz2I6Pdm+M86sebqNaf67rI6QMSjQfXhAVv1E1BZauo1LJo1or
|
||||
oFLOo5g3YRqayNHfgohFV1DImajXSjg9bqA7mMDxfDi+LwxCLKPqL9Z4ncj97sCQUownNi6uushbYtHS
|
||||
o4OaqHqrq9gcLL+5O6+rmberAFinya7qAUkjSfZ0Z6cv32Sx2621Ge1PLFW+9sSWVo2FlyR+IK4spcE0
|
||||
DLQOqvjphxP8t3/8gJ9/PMZRs4pySWicz1mI5Sn4elMALmqqXd4M8Pt5BzedkVjNJSrxfCdQhTNRmMM0
|
||||
cNis4N3bFn56d4ijqNxX7O/ehbjyb7mYw0mrhv5wiv5ohpvuGCHnYJRBU4BdnMp8k2698qXL8+aMg3Lh
|
||||
+rzpjGCZYsnyt8dNFPImSkVLTIHEN4BBZNsxzhaJNwsvPF/3/Rlt2KWpWR7MjFeJK3D3+mYaQFNz8W3y
|
||||
bfum6FCRBIlNIWsyJPmdi7V01qqKAl0TC7gYugpDFz7+UjGHRq2MN8cN/MPPp/jp/RGOD2soFXIw9Mdc
|
||||
7OXl8tUEAKUM46kIWvn9vIPb3gSuHy79zKmbkjMOogLFnIH3p038tz+d4R9/OsXxYVUs06ype/0gBGLd
|
||||
gKODKkaTOS5vBzBMA4tbKl32O/Mga4dKQdJaF1vTeRS8ywl8L8RobOPWGuO6PcJNd4hyKQdVJWCciZFJ
|
||||
IYiXPRSP2F3F17eBJxuyKeQv1d6t7Bb5twzy26AZ7PSdfOUp+/tWQ/9EFAfP2hE8oW7Eo75CRIZjMW+h
|
||||
UhI+/UJeLOl2cljFu7eHeHvaxEmrJtLAC7m977VvmUcXAKKuugjC6A9nuGmPcH07xGA0hx9QZI4f0e+p
|
||||
KApyloGjgwp+eHuAs+MGapUCTEPf2wVDiFgJuFEr4eRQxBHUq0WMJzZoQKEpOwiAfUhF3sTyhSgkWmjC
|
||||
xWg8x3hqo1zMQdUU6JoaBZyYKBRM6IaKMKRIFB/Axp6UHt75457SnXPD0nhKtnkgdj72XY/I6jHXB+3w
|
||||
lS18RS4qRIGma7AMUeuxVimItQPKeZQKJqrlPE6Panj/9hAnrTrKpRxMQ3+V0X6beHQBENK4zv8Y7e4Q
|
||||
3cEYw/EctuNFC24AmT8qUUAUFbpholQsoF4toVLK36vzRweEoWsoF/M4bFbwJorp5pTDc30xdrINo+w+
|
||||
RB3xrmFR3JSlkhhVXE8sbOn5IYq6BcsyUSkXcFCvQFUU+EEYZd/xLXPPjDA+jj1z8Hc4Z579hpA4lmIZ
|
||||
RLBqz9lSKjwxhSGJDVmTjbXnm9h71YUqjH2aqqBUzKNZK+OgUUHroILDhsjqs0wNectAtVJAs15CuSRW
|
||||
lHopiUxPyaMLAN8PMRzPcHnTx3V7gP5whrntwg/CxT5p4x9RCXSiI5czUSwUUCrmUSxYYjUWVblXvjsh
|
||||
8eqzBPVqEW+O6vj5/RFyhg7b9sEoW8zD793971iq+Yp8i29ryzJQrxagqcqilp6qKCjmTBw2Kjg7baJS
|
||||
ziMIYzflpiLbWZE8ydoAuzZ6XwGQ3JBcaptHAiAegQni9QIyAxDu2C+yfIrJD8XBPctNZKW7320qYwy6
|
||||
pqFRL+HtSRNvjkQOyUG9FOWREGEEjONFXmmu/y48ugDw/ADdvqiOc3ndx2g8g+cHoJSJQoxRNBbBskab
|
||||
rmgoFnNoHdbw7vQARwe1RWktkfRzvx8nNgbGC4j80fFQrxThuqI9CwHwiL/93TAakWZbyFuoVQrRCKRH
|
||||
vuc8zk6aUBQFtuNFK9zuUno6WwNYed758w88X5IRJMWjMltb1IDk6L+prXzDlvTfYjesponaDCetOo4O
|
||||
qmjWS6iWC6/erbcvjy4AHFcsnvnb5za+XPcxnjlglK2Ut44FAOcMlDNYqoFWs4w//+EUf/75Ld6/aaJa
|
||||
LizUsod2UF3XcNisQNc1vDv1Fp2fJxJkHsqmQyhRYpNp6shH1mfT0FEtF/DT+yO0Dioi5JgtK/1sPucN
|
||||
AgC7xAQ8LGIg/oJFB86KstvviDu1dXle6+0GcQSnoijImTqKhRwKebGkl+z8d3kUARDXwQ/CEJOZg5vO
|
||||
CF+uerjtjDC3PVFQMmHpjjU7wqMEDFPD0UEFf/rhGP/w0wnetOqL9MvHUM1URUGlnEepmANnCXPRV7GY
|
||||
IdvEkfBDxzHpcVFNxqt7lhF/AnbKBHqE42/3xG7+3vRxklOFxbUW+SF8q2D9/ngUAcA4h+eJJZg7vWVF
|
||||
nPHEhu8FIr032lfM+ETiBVEJDE1DqZjD4UEVZ6dNvD1uoFLOi+y5R/q1CEFUd/B5LvKmdr225aYl3xaP
|
||||
IwCifP92d4zr2yG6vQkmUxuO44tMLCTcRlEsOyeApmnImSYqlSIOGmW0DqtoNEqwDP1OirBEInl8HkUA
|
||||
UMYxjQp+CMv/FLbjIQiF5T/pxovnaATCQFeIymhXK0UR9luwXnnwpURyh2eb/z2KUsw5x2zu4KY7xHV7
|
||||
iNHUFhV0okqyqwEbkUuHE+iqimLeRKWUQzFKmJGdX/K9sGWKu70I0iPwYA2AAwgCsYzyTWeE2+4Ik7mN
|
||||
kDFAIZnu30XFH8NArZRHo1pEKW89oHy2RPJNkhUEkTVmZn3uUXiQAAjifP/xHO3eGDftIdq9MaYzN1GJ
|
||||
N9XySAAoioJi3sLRYQ1vjxto1kswX2HZZYnkibiXULi3AOCcw/MDDMdzXN8ORORfZ4jecIq57YqQVh7X
|
||||
tOEpd42Y/1fKouLPHz4c4fiwCsuUAkDyXcPXvN8rzGsfHiAARNjveDJHpz/GYDjFfO4iCEIoCoFhaIlK
|
||||
KiTW+6EoClRVLMd90qrj3ZsDnJ0eRBrA66u7LpHswKZ46OQ+wPYpw148oMdx+EGIabRyTkApLEtHtVJA
|
||||
GFJh+U80Ky7CYUWr5Rwf1vDnn9/g3WkTjVpJVPyRNgCJJF0ictu+D+L+GgBEzr/rhwgpg2UaaB1UkM+Z
|
||||
YIzdybdnTNT6LxdzOI1G/vdvD3F6VEexYIoCntL3L/nOSN3z+3ToR5kO3FsAiLJKCixTR7mYw3FL1FDz
|
||||
/GDh5096ABgTy3yXSzm8OW7g7XEDh80K6tUiTEOXnV/yvZJVFDr9d+yw7T77PEAAEIJCXlTcyVkGTp36
|
||||
Ip8duOuojIsA56I87Fq5gGLBgrXjwpkSyXfEumkA37LP3kbDhwmAnAjeOWiUwVicYbf5c3EetqYpUBUF
|
||||
ipz3S75TouQwTgjZNu/fJS7gXp6CB5ndVVWJDHfSfSeR3IN0VZR1D+ABnXzT/nL4lUiekdTov6sgAPb3
|
||||
FGRqDtLxLpE8E/EUAJGdPNqcmT6DbGHwEDjwRGsDSiSSTJKdf5/pQPoY6467LbJQCgCJ5DnJmAKwxDPD
|
||||
7tODe2kGUgBIJM8AIYQoigJFUTghJO7swP06/DobQRYr26UAkEieAUVRVFVVFVVVgVUbAFvzeIhgWKsd
|
||||
aAAWBftT6bu7Lyh1z89JJN8rlNIwCAKfUhoCoNgsAHZV+/efAjiO8/8AAOeccM4JY4ykXivxtvj9mv0I
|
||||
52JFiPh1JBjuPEffF7dhc1mUl1YtVyLB1mo+AMAT+/DEkmocABhj4efPn69ub2+nYRhSrNoA0p1/V2GA
|
||||
Ne+R8RoAoH3+/Pn/5pyTMAyVIAiUIAjU6KGEYRi/VsMwXDwopVr0rFBKVUqpyhhTokf8eiEs0g9EQgIQ
|
||||
gie+pneu4I5CQiJ5YvgaASBGOPG3OMJvEe2XeDDGGLu6uhr/+7//e8/3/QDLjk6x1Ag2CYNNMQJIvV87
|
||||
BSD/8i//8p5SqgRBoPi+r/m+r4ZhqAVBoEUdXaeUaowxjTGmR88a51yPnjXOuRo/A1Cj9woAFaKzx8v7
|
||||
xM8LQYDNa1XJji95qWxyyS2eIwPfoqMmDH7M9/3QcZzA9/2Ac04hpuPxcxA9J1+ve05+LilA0oLkjtAg
|
||||
AMrRswphE0g+9C3P6YeaeFYSzyTjOavzSyEg+RbYqfOnHtvU+bgDh6nXmwRBiGwBwDKeM2MO4s4cC4C0
|
||||
EFBTDyXjsWkUj780uZB9ek5CMvbJWvtFInmJ8A2vd1HRk2p/1oPh7mi+b9jw2nZrWB2N06NzsnOnPxw3
|
||||
XomeSeI5a//4+Bzrhca61xLJS4RveZ3VMdPz+uRInVTh1wmCTbaBTXP+TDuAltoh2aHTjdxFMCDaX00c
|
||||
K60p7Kr+SwEgeensmq+/SQgkBUD8WCcItnX+vSMENdyVGsnRPNn5k6/XXQyOpQBJThkI9hcA2LJdInlO
|
||||
tsXlr3PNZXXiXYTAOqPeOo/ATqQFQNz5k1pAsvOvuxDJk1MTn99HAKRfY4ftEslzsEvnTz+nBUBy/p8U
|
||||
BPsKgfvGBwBYFQBxZ08KApp4TpI20qVH/7Tqv822IK3/km+RbfH2yQ6XZYnfpgXsIgTSx9wnPmAhAOLO
|
||||
m+z88WOXkT9pP8jyEmQJAEB2fMnrYJtbcBeX4DotYBdbwH09AdCQPfKnhcCmTpkUILuO/NuEwKbtEslL
|
||||
YR8NIGukXjcdWKcNrOv8uwiBtV6ArAYC2ztgWnPI6vibRn6pBUheA7sKgftoAmkhsC5UOEsIAGs6fbJ9
|
||||
aRtADEG2IEgeWMX+835gfwOgRPKtsCkWIPn6PkJgkwFwkxDY1MYVAZBsINvy4XVqf7LTb5v3b+r8UhhI
|
||||
vhV2DQuOn/cVArsIgF0jA++QFgDrOj5wV5JlGf22zftjpAYgeY1scgXGr+8rBDZ1/E2CIP3dK21KCwBg
|
||||
Ny0g7vBpDwDBdqMfdnwtkXxLrAsLTr5fpwlsMgxuSwveFgiUJQgWrBMA6Zj+5MEJsjv+tnDfdd4Eqf5L
|
||||
vnW2BQbF7/c1DG4SCLuGAG+MBdAy/piOBgSWnTIdL6Cknrd1/E0uRdnxJa+BXWMC0u83CYF1gmGX42HD
|
||||
c6YGEJPUAuJRP5nNl3ydFBrx/g91+UmBIPkW2Mnanti2rmOui+hjO7zepR2Zf48FAMF2QZDu0Bx31X2G
|
||||
9R1fdnTJ98QumkBy267q/LaQ33UGwEy0DTukO3iWmp+l6q9z98mAH8n3xKYReZMGkH6/6yN97E1tWLBu
|
||||
ChB3/iT3meNLISD5HtlmFNwlTiD9fpdOzzd8V+b7pADYNA3IUveB3Ud8Gfcv+Z7YVwCkt21S6XcRALu0
|
||||
AcBmI+C6E9s3rFem/Uq+N3Z1C6a3r9MIdn2NHV8v0NbskKUNJI2FDx31ZaeXfC9sMwZiw+tdnvdW+5Pb
|
||||
kq67+H38vOvILkd+iSSbXVyE+wqDrG2bXH0bt6UFQLwt63nX19v+tm6bRPIa2dUesO1v26YQe3d+IFsA
|
||||
xNuTz9jyftdOLju+5HvlPh30PoJir23rBED8t6zX+27b5W8SyffCvpGDm7Y99FiZEXoPqdK7SyeXgkDy
|
||||
PbLN27ZPZ05vv++xxeKdGdvvo77Lji2RZLOrq/0+HfnenR9Yr/4/VuPW7bdP7IFE8i3zWJ1fIpFIJBKJ
|
||||
RCKRSCQSiUQikUgkEolEIpFIJBKJRCKRSCQSiUQikUgkEolEIpFIJBKJRCKRSCQSiUQikUgkEolEIpFI
|
||||
JBKJRCKRSCQSiUQikUgkEolEIpFIJBKJRCKRSCQSiUQikUgkEolEIpFIJBKJRCKRSCQSiUQikUgkEolE
|
||||
IpFIJBKJRCKRSCQSiUQikUgkEolEIpFIJBKJRCKRSCQSiUQikUgkEolEIpFIJBKJRCKRSCQSiUQikUgk
|
||||
EolEIpFIJBKJRCJ5PfxvBnmoeWris4AAAAAASUVORK5CYII=
|
||||
</value>
|
||||
</data>
|
||||
<metadata name="Chktimer.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
<metadata name="UItimer.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>123, 21</value>
|
||||
</metadata>
|
||||
<metadata name="notifyIcon.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>220, 24</value>
|
||||
</metadata>
|
||||
<metadata name="contextMenuSubStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>329, 28</value>
|
||||
</metadata>
|
||||
<data name="notifyIcon.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
AAABAAMAMDAAAAEAIACoJQAANgAAACAgAAABACAAqBAAAN4lAAAQEAAAAQAgAGgEAACGNgAAKAAAADAA
|
||||
AABgAAAAAQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACyexsbsnsbq7J7G+eyexv/snsb/7J7
|
||||
G/+yexv/snsb/7J7G/+yexv/snsb/7J7G/+yexv/snsb/7J7G/+yexv/snsb/7J7G/+yexv/snsb/7J7
|
||||
G/+yexv/snsb/7J7G/+yexv/snsb/7J7G/+yexv/snsb/7J7G/+yexv/snsb/7J7G/+yexv/snsb/7J7
|
||||
G/+yexv/snsb/7J7G/+yexv/snsb/7J7G/+yexv/snsb57J7G6uyexsbAAAAALJ7Gyqyexvtsnsb/7J7
|
||||
G/+yexv/snsb/7J7G/+yexv/snsb/7J7G/+yexv/snsb/7J7G/+yexv/snsb/7J7G/+yexv/snsb/7J7
|
||||
G/+yexv/snsb/7J7G/+yexv/snsb/7J7G/+yexv/snsb/7J7G/+yexv/snsb/7J7G/+yexv/snsb/7J7
|
||||
G/+yexv/snsb/7J7G/+yexv/snsb/7J7G/+yexv/snsb/7J7G/+yexv/snsb/7J7G/+yexvtsnsbKrJ7
|
||||
G66yexv/snsb/7J7G/+yexv/snsb/7J7G/+yexv/snsb/7J7G/+yexv/snsb/7J7G/+yexv/snsb/7J7
|
||||
G/+yexv/snsb/7J7G/+yexv/snsb/7J7G/+yexv/snsb/7J7G/+yexv/snsb/7J7G/+yexv/snsb/7J7
|
||||
G/+yexv/snsb/7J7G/+yexv/snsb/7J7G/+yexv/snsb/7J7G/+yexv/snsb/7J7G/+yexv/snsb/7J7
|
||||
G/+yexv/snsbrrJ7G/C3fxz/z5Yi/9mgJf/dpCb/3aQm/92kJv/dpCb/3aQm/92kJv/dpCb/3aQm/92k
|
||||
Jv/dpCb/3aQm/92kJv/dpCb/3aQm/92kJv/dpCb/3aQm/92kJv/dpCb/3aQm/92kJv/dpCb/3aQm/92k
|
||||
Jv/dpCb/3aQm/92kJv/dpCb/3aQm/92kJv/dpCb/3aQm/92kJv/dpCb/3aQm/92kJv/dpCb/3aQm/92k
|
||||
Jv/dpCb/2aAl/8+WIv+3fxz/snsb87mCHf/boSX/3qQm/96kJv/epCb/3qQm/96kJv/epCb/3qQm/96k
|
||||
Jv/epCb/3qQm/96kJv/epCb/3qQm/96kJv/epCb/3qQm/96kJv/epCb/3qQm/96kJv/epCb/3qQm/96k
|
||||
Jv/epCb/3qQm/96kJv/epCb/3qQm/96kJv/epCb/3qQm/96kJv/epCb/3qQm/96kJv/epCb/3qQm/96k
|
||||
Jv/epCb/3qQm/96kJv/epCb/3qQm/96kJv/boSX/uYId/9CYI//epSb/3qUm/96lJv/epSb/3qUm/96l
|
||||
Jv/epSb/3qUm/96lJv/epSb/3qUm/96lJv/epSb/3qUm/96lJv/epSb/3qUm/96lJv/epSb/3qUm/96l
|
||||
Jv/epSb/3qUm/96lJv/epSb/3qUm/96lJv/epSb/3qUm/96lJv/epSb/3qUm/96lJv/epSb/3qUm/96l
|
||||
Jv/epSb/3qUm/96lJv/epSb/3qUm/96lJv/epSb/3qUm/96lJv/epSb/0Jgj/9ujJv/epSf/3qUn/96l
|
||||
J//epSf/3qUn/96lJ//epSf/3qUn/96lJ//epSf/3qUn/96lJ//epSf/3qUn/96lJ//epSf/3qUn/96l
|
||||
J//epSf/3qUn/96lJ//epSf/3qUn/96lJ//epSf/3qUn/96lJ//epSf/3qUn/96lJ//epSf/3qUn/96l
|
||||
J//epSf/3qUn/96lJ//epSf/3qUn/96lJ//epSf/3qUn/96lJ//epSf/3qUn/96lJ//epSf/3KMm/96l
|
||||
J//epSf/3qUn/96lJ//epSf/3qUn/96lJ//epSf/3qUn/96lJ//epSf/3qUn/96lJ//epSf/3qUn/96l
|
||||
J//epSf/3qUn/96lJ//epSf/3qUn/96lJ//epSf/3qUn/96lJ//epSf/3qUn/96lJ//epSf/3qUn/96l
|
||||
J//epSf/3qUn/96lJ//epSf/3qUn/96lJ//epSf/3qUn/96lJ//epSf/3qUn/96lJ//epSf/3qUn/96l
|
||||
J//epSf/3qUn/9+mJ//fpif/36Yn/9+mJ//fpif/36Yn/9+mJ//fpif/36Yn/9+mJ//fpif/36Yn/9+m
|
||||
J//fpif/36Yn/9+mJ//fpif/36Yn/9+mJ//fpif/36Yn/9+mJ//fpif/36Yn/9+mJ//fpif/36Yn/9+m
|
||||
J//fpif/36Yn/9+mJ//fpif/36Yn/9+mJ//fpif/36Yn/9+mJ//fpif/36Yn/9+mJ//fpif/36Yn/9+m
|
||||
J//fpif/36Yn/9+mJ//fpif/36Yn/9+mJ//fpif/36Yn/9+mJ//fpif/36Yn/9+mJ//fpif/3aUn//Xl
|
||||
wv//////////////////////////////////////////////////////////////////////////////
|
||||
///////////////////////////////////////////////////15cL/3aUn/9+mJ//fpif/36Yn/9+m
|
||||
J//fpif/36Yn/9+mJ//fpif/36Yn/9+mJ//fpif/36Yn/+CmJ//gpif/4KYn/+CmJ//gpif/4KYn/+Cm
|
||||
J//gpif/26Im////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////26Im/+Cm
|
||||
J//gpif/4KYn/+CmJ//gpif/4KYn/+CmJ//gpif/4KYn/+CmJ//gpif/4KYn/+CnKP/gpyj/4Kco/+Cn
|
||||
KP/gpyj/4Kco/+CnKP/gpyj/2KEn////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////xpQj/8mWJP/JliT/yZYk/8iV
|
||||
JP/my5H/2aIn/+CnKP/gpyj/4Kco/+CnKP/gpyj/4Kco/+CnKP/gpyj/4Kco/+CnKP/gpyj/4Kco/+Cn
|
||||
KP/gpyj/4Kco/+CnKP/gpyj/4Kco/+CnKP/gpyj/2KEn////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////0pwl/9ih
|
||||
J//YoSf/2KEn/9agJv/WoCb/3KQn/+CnKP/gpyj/4Kco/+CnKP/gpyj/4Kco/+CnKP/gpyj/4Kco/+Cn
|
||||
KP/gpyj/4Kco/+GnKP/hpyj/4aco/+GnKP/hpyj/4aco/+GnKP/hpyj/2aEn////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////2aEn/+CmKP/u0pT////////////t0pT/36Yo/+GnKP/hpyj/4aco/+GnKP/hpyj/4aco/+Gn
|
||||
KP/hpyj/4aco/+GnKP/hpyj/4aco/+GoKP/hqCj/4ago/+GoKP/hqCj/4ago/+GoKP/hqCj/2aIn////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////2KEm/+3SlP//////////////////////7dKU/+CnKP/hqCj/4ago/+Go
|
||||
KP/hqCj/4ago/+GoKP/hqCj/4ago/+GoKP/hqCj/4ago/+KoKf/iqCn/4qgp/+KoKf/iqCn/4qgp/+Ko
|
||||
Kf/iqCn/2qIn////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////6s+U/////////////////8ucM//w4sH//////+7S
|
||||
lf/hpyn/4qgp/+KoKf/iqCn/4qgp/+KoKf/iqCn/4qgp/+KoKf/iqCn/4qgp/+KpKf/iqSn/4qkp/+Kp
|
||||
Kf/iqSn/4qkp/+KpKf/iqSn/2qMn////////////////////////////////////////////////////
|
||||
//////////////////////////////////////////////////////////////////////////////Pn
|
||||
zP/RoTT/8eLB///////u05X/4agp/+KpKf/iqSn/4qkp/+KpKf/iqSn/4qkp/+KpKf/iqSn/4qkp/+Op
|
||||
Kf/jqSn/46kp/+OpKf/jqSn/46kp/+OpKf/jqSn/2qMn////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
///LnDP/8OHB///////06Mz/0qI0//Hiwf//////7tOV/+KoKf/jqSn/46kp/+OpKf/jqSn/46kp/+Op
|
||||
Kf/jqSn/46kp/+OqKv/jqir/46oq/+OqKv/jqir/46oq/+OqKv/jqir/2qQo////////////////////
|
||||
///////////////////9+/f/7d26/97AfP/Uq1H/06tO/8qYJf/KmCX/06tO/9SrUf/ewHz/7d26//37
|
||||
9//////////////////58+X/0aE1//Diwf//////9OjM/9KiNf/x4sL//////+7Tlf/iqSr/46oq/+Oq
|
||||
Kv/jqir/46oq/+OqKv/jqir/46oq/+SqKv/kqir/5Koq/+SqKv/kqir/5Koq/+SqKv/kqir/26Qo////
|
||||
////////////////////////+/fw/96/ev/OnTD/0Jsm/9WfJ//YoSj/2qIo/9ukKP/bpCj/2qIo/9ih
|
||||
KP/Vnyf/0Jsm/86dMP/ev3r/+/fw////////////+vPm/9KiNf/w4sH///////XozP/TojX/8eLC////
|
||||
///v05X/46kq/+SqKv/kqir/5Koq/+SqKv/kqir/5Koq/+WqKv/lqir/5aoq/+WqKv/lqir/5aoq/+Wq
|
||||
Kv/lqir/3KQo///////////////////////38OD/06RA/9afJ//coyj/36Yp/+KnKf/jqSr/5Kkq/+Wq
|
||||
Kv/lqir/5Kkq/+OpKv/ipyn/36Yp/9yjKP/Wnyf/06RA//fw4P////////////rz5v/TojX/8eLB////
|
||||
///16Mz/1KI1//Hiwv//////79OV/+SpKv/lqir/5aoq/+WqKv/lqir/5aoq/+WrKv/lqyr/5asq/+Wr
|
||||
Kv/lqyr/5asq/+WrKv/lqyr/3KUo///////////////////////btWH/2aIo/+GoKf/kqir/5asq/+Wr
|
||||
Kv/lqyr/5asq/+WrKv/lqyr/5asq/+WrKv/lqyr/5asq/+SqKv/hqCn/2aIo/9u0Xv//////////////
|
||||
///69Ob/06M1//Hiwf//////9ejM/9SjNf/x4sL//////+/Ulf/kqir/5asq/+WrKv/lqyr/5asq/+ar
|
||||
K//mqyv/5qsr/+arK//mqyv/5qsr/+arK//mqyv/3aUp///////////////////////YoSj/46gq/+ar
|
||||
K//mrjX/7MRu//Ter//57dT/+vDc////////////+vDc//nt1P/03q//7MRu/+auNf/mqyv/46gq/9ih
|
||||
KP//////////////////////9ejM/9SjNv/x4sL///////XozP/Uozb////////////w1Jb/5aor/+ar
|
||||
K//mqyv/5qsr/+asK//mrCv/5qwr/+asK//mrCv/5qwr/+asK//mrCv/3aYp////////////////////
|
||||
///dpSn/5Ksr/+/Oh//9+/X///////////////////////////////////////////////////////37
|
||||
9f/vzof/5Ksr/92lKf////////////////////////////XozP/UpDb/8eLC////////////////////
|
||||
////////8NSW/+WrK//mrCv/5qwr/+esK//nrCv/56wr/+esK//nrCv/56wr/+esK//nrCv/3qYp////
|
||||
///////////////////dpSn/892s////////////////////////////////////////////////////
|
||||
////////////////////////892s/92lKf//////////////////////5cuR///////16Mz/1KM2////
|
||||
/////////////////////////////+OpKv/nrCv/56wr/+etLP/nrSz/560s/+etLP/nrSz/560s/+et
|
||||
LP/nrSz/3qcq///////////////////////cpzT//Pjw////////////////////////////5cyU/82a
|
||||
J//Pmyf/z5sn/8+bJ//Pmyf/z5sn/9CcKP/Vnyn/3aUq/92nL///////////////////////0Jwo/+fN
|
||||
kv//////////////////////////////////////6M6S/+GoK//nrSz/560s/+itLP/orSz/6K0s/+it
|
||||
LP/orSz/6K0s/+itLP/orSz/36cq///////////////////////iumP/7tms////////////////////
|
||||
/////////////+zRlf/epir/36cq/9+nKv/fpyr/36cq/9+nKv/gpyv/46kr/+a9ZP//////////////
|
||||
////////2aIp/9ihKf/nzJL////////////////////////////my5L/2KEp/+SqK//orSz/6K0s/+iu
|
||||
LP/oriz/6K4s/+iuLP/oriz/6K4s/+iuLP/oriz/36gq///////////////////////68+P/3LFQ/+LF
|
||||
gv/8+vX////////////////////////////x1Zb/560s/+iuLP/oriz/6K4s/+iuLP/oriz/6rtT//rz
|
||||
4///////////////////////3qcq/+KpK//Xoin/5syS/////////////////+bMkv/Xoin/4qkr/+et
|
||||
LP/oriz/6K4s/+muLf/pri3/6a4t/+muLf/pri3/6a4t/+muLf/pri3/4Kgr////////////////////
|
||||
/////////vz3/+jKif/Wpj7/3blq/+rWqf/06tT/9evW////////////78yD/+itLf/pri3/6a4t/+my
|
||||
Of/w0Ir//vz3////////////////////////////4Kgr/+itLf/jqSz/2KIq/+bMkv//////5syS/9ii
|
||||
Kv/jqSz/6K0t/+muLf/pri3/6a4t/+mvLf/pry3/6a8t/+mvLf/pry3/6a8t/+mvLf/pry3/4Kgr////
|
||||
///////////////////////////////////+/fr/8uK+/+XHgf/cs1b/2rFT/9KeK//Woiz/5blV/+u+
|
||||
Wf/wzoP/9uW+//79+v//////////////////////////////////////4Kgr/+mvLf/ori3/46os/9mj
|
||||
Kv/Unyn/2aMq/+OqLP/ori3/6a8t/+mvLf/pry3/6a8t/+qvLf/qry3/6q8t/+qvLf/qry3/6q8t/+qv
|
||||
Lf/qry3/4agr////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////4agr/+qv
|
||||
Lf/qry3/6a4t/+asLP/kqiz/5qws/+muLf/qry3/6q8t/+qvLf/qry3/6q8t/+uwLv/rsC7/67Au/+uw
|
||||
Lv/rsC7/67Au/+uwLv/rsC7/4qks////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////4qks/+uwLv/rsC7/67Au/+uwLv/rsC7/67Au/+uwLv/rsC7/67Au/+uwLv/rsC7/67Au/+uw
|
||||
Lv/rsC7/67Au/+uwLv/rsC7/67Au/+uwLv/rsC7/4qks////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////4qks/+uwLv/rsC7/67Au/+uwLv/rsC7/67Au/+uwLv/rsC7/67Au/+uw
|
||||
Lv/rsC7/67Au/+yxLv/ssS7/7LEu/+yxLv/ssS7/7LEu/+yxLv/ssS7/46os////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////46os/+yxLv/ssS7/7LEu/+yxLv/ssS7/7LEu/+yx
|
||||
Lv/ssS7/7LEu/+yxLv/ssS7/7LEu/+yxLv/ssS7/7LEu/+yxLv/ssS7/7LEu/+yxLv/ssS7/46os////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
///////////////////btFz/0p4p/9OfKf/Tnyn/058p/9OfKf/Zoyr/5qwt/+yxLv/ssS7/7LEu/+yx
|
||||
Lv/ssS7/7LEu/+yxLv/ssS7/7LEu/+yxLv/ssS7/7LEu/+2xL//tsS//7bEv/+2xL//tsS//7bEv/+2x
|
||||
L//tsS//5Kot////////////////////////////////////////////////////////////////////
|
||||
///////////////////////////////////aoyv////////////////////////////w05X/6a4u/+2x
|
||||
L//tsS//7bEv/+2xL//tsS//7bEv/+2xL//tsS//7bEv/+2xL//tsS//7bEv/+2yL//tsi//7bIv/+2y
|
||||
L//tsi//7bIv/+2yL//tsi//5Kst////////////////////////////////////////////////////
|
||||
///////////////////////////////////////////////////dpiz//////////////////////+zR
|
||||
lP/jqy3/67Ev/+2yL//tsi//7bIv/+2yL//tsi//7bIv/+2yL//tsi//7bIv/+2yL//tsi//7bIv/+6y
|
||||
L//usi//7rIv/+6yL//usi//7rIv/+6yL//usi//5ast////////////////////////////////////
|
||||
///////////////////////////////////////////////////////////////////dpSz/////////
|
||||
////////6M2T/92lLP/orS7/7bEv/+6yL//usi//7rIv/+6yL//usi//7rIv/+6yL//usi//7rIv/+6y
|
||||
L//usi//7rIv/+6zL//usy//7rMv/+6zL//usy//7rMv/+6zL//usy//5awt////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
///dpiz////////////ozpP/3aYs/+iuLv/tsi//7rMv/+6zL//usy//7rMv/+6zL//usy//7rMv/+6z
|
||||
L//usy//7rMv/+6zL//usy//7rMv/+6zMP/uszD/7rMw/+6zMP/uszD/7rMw/+6zMP/uszD/5awu////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
///////////////////dpi3//////+jOlP/dpi3/6K4v/+2yMP/uszD/7rMw/+6zMP/uszD/7rMw/+6z
|
||||
MP/uszD/7rMw/+6zMP/uszD/7rMw/+6zMP/uszD/7rMw/++zMP/vszD/77Mw/++zMP/vszD/77Mw/++z
|
||||
MP/vszD/560u//XnyP//////////////////////////////////////////////////////////////
|
||||
///////////////////////////////////fpy3/7dGU/96mLf/pri//7rIw/++zMP/vszD/77Mw/++z
|
||||
MP/vszD/77Mw/++zMP/vszD/77Mw/++zMP/vszD/77Mw/++zMP/vszD/77Mw/++0MP/vtDD/77Qw/++0
|
||||
MP/vtDD/77Qw/++0MP/vtDD/6rAv/96nLf/Xoiv/1qEr/9ahK//WoSv/1qEr/9ahK//WoSv/1qEr/9ah
|
||||
K//WoSv/1qEr/9ahK//WoSv/1qEr/9ahK//WoSv/1qEr/9ymLP/krC7/5a0u/+mvL//uszD/77Qw/++0
|
||||
MP/vtDD/77Qw/++0MP/vtDD/77Qw/++0MP/vtDD/77Qw/++0MP/vtDD/77Qw/++0MP/vtDD/77Qw//C0
|
||||
MP/wtDD/8LQw//C0MP/wtDD/8LQw//C0MP/wtDD/7rMw/+uwL//ori7/560u/+etLv/nrS7/560u/+et
|
||||
Lv/nrS7/560u/+etLv/nrS7/560u/+etLv/nrS7/560u/+etLv/nrS7/560u/+qvL//ssS//7rMw/++z
|
||||
MP/wtDD/8LQw//C0MP/wtDD/8LQw//C0MP/wtDD/8LQw//C0MP/wtDD/8LQw//C0MP/wtDD/8LQw//C0
|
||||
MP/wtDD/8LQw//C0Mf/wtDH/8LQx//C0Mf/wtDH/8LQx//C0Mf/wtDH/8LQx//C0Mf/wtDH/8LQx//C0
|
||||
Mf/wtDH/8LQx//C0Mf/wtDH/8LQx//C0Mf/wtDH/8LQx//C0Mf/wtDH/8LQx//C0Mf/wtDH/8LQx//C0
|
||||
Mf/wtDH/8LQx//C0Mf/wtDH/8LQx//C0Mf/wtDH/8LQx//C0Mf/wtDH/8LQx//C0Mf/wtDH/8LQx//C0
|
||||
Mf/wtDH/8LQx//C0Mf/wtDH/8LQx//C1MfDwtTH/8LUx//C1Mf/wtTH/8LUx//C1Mf/wtTH/8LUx//C1
|
||||
Mf/wtTH/8LUx//C1Mf/wtTH/8LUx//C1Mf/wtTH/8LUx//C1Mf/wtTH/8LUx//C1Mf/wtTH/8LUx//C1
|
||||
Mf/wtTH/8LUx//C1Mf/wtTH/8LUx//C1Mf/wtTH/8LUx//C1Mf/wtTH/8LUx//C1Mf/wtTH/8LUx//C1
|
||||
Mf/wtTH/8LUx//C1Mf/wtTH/8LUx//C1Mf/wtTH/8LUx8/C1MavwtTH/8LUx//C1Mf/wtTH/8LUx//C1
|
||||
Mf/wtTH/8LUx//C1Mf/wtTH/8LUx//C1Mf/wtTH/8LUx//C1Mf/wtTH/8LUx//C1Mf/wtTH/8LUx//C1
|
||||
Mf/wtTH/8LUx//C1Mf/wtTH/8LUx//C1Mf/wtTH/8LUx//C1Mf/wtTH/8LUx//C1Mf/wtTH/8LUx//C1
|
||||
Mf/wtTH/8LUx//C1Mf/wtTH/8LUx//C1Mf/wtTH/8LUx//C1Mf/wtTH/8LUxrvG1MSfxtTHt8bUx//G1
|
||||
Mf/xtTH/8bUx//G1Mf/xtTH/8bUx//G1Mf/xtTH/8bUx//G1Mf/xtTH/8bUx//G1Mf/xtTH/8bUx//G1
|
||||
Mf/xtTH/8bUx//G1Mf/xtTH/8bUx//G1Mf/xtTH/8bUx//G1Mf/xtTH/8bUx//G1Mf/xtTH/8bUx//G1
|
||||
Mf/xtTH/8bUx//G1Mf/xtTH/8bUx//G1Mf/xtTH/8bUx//G1Mf/xtTH/8bUx//G1Mf/xtTHt8bUxKgAA
|
||||
AADxtTEb8bUxqPG1MeTxtTH/8bUx//G1Mf/xtTH/8bUx//G1Mf/xtTH/8bUx//G1Mf/xtTH/8bUx//G1
|
||||
Mf/xtTH/8bUx//G1Mf/xtTH/8bUx//G1Mf/xtTH/8bUx//G1Mf/xtTH/8bUx//G1Mf/xtTH/8bUx//G1
|
||||
Mf/xtTH/8bUx//G1Mf/xtTH/8bUx//G1Mf/xtTH/8bUx//G1Mf/xtTH/8bUx//G1Mf/xtTH/8bUx5PG1
|
||||
MajxtTEbAAAAAIAAAAAAAaiMAAAAAAAAqIwAAAAAAACojAAAAAAAAKiMAAAAAAAAqIwAAAAAAACojAAA
|
||||
AAAAAKiMAAAAAAAAqIwAAAAAAACojAAAAAAAAKiMAAAAAAAAqIwAAAAAAACojAAAAAAAAKiMAAAAAAAA
|
||||
qIwAAAAAAACojAAAAAAAAKiMAAAAAAAAqIwAAAAAAACojAAAAAAAAKiMAAAAAAAAqIwAAAAAAACojAAA
|
||||
AAAAAKiMAAAAAAAAqIwAAAAAAACojAAAAAAAAKiMAAAAAAAAqIwAAAAAAACojAAAAAAAAKiMAAAAAAAA
|
||||
qIwAAAAAAACojAAAAAAAAKiMAAAAAAAAqIwAAAAAAACojAAAAAAAAKiMAAAAAAAAqIwAAAAAAACojAAA
|
||||
AAAAAKiMAAAAAAAAqIwAAAAAAACojAAAAAAAAKiMAAAAAAAAqIwAAAAAAACojAAAAAAAAKiMAAAAAAAA
|
||||
qIwAAAAAAACojAAAAAAAAKiMAAAAAAAAqIyAAAAAAAGojCgAAAAgAAAAQAAAAAEAIAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAACyexsGsnsbjbJ7G+eyexv/snsb/7J7G/+yexv/snsb/7J7G/+yexv/snsb/7J7
|
||||
G/+yexv/snsb/7J7G/+yexv/snsb/7J7G/+yexv/snsb/7J7G/+yexv/snsb/7J7G/+yexv/snsb/7J7
|
||||
G/+yexv/snsb/7J7G+eyexuNsnsbBrJ7G4eyexv/snsb/7J7G/+yexv/snsb/7J7G/+yexv/snsb/7J7
|
||||
G/+yexv/snsb/7J7G/+yexv/snsb/7J7G/+yexv/snsb/7J7G/+yexv/snsb/7J7G/+yexv/snsb/7J7
|
||||
G/+yexv/snsb/7J7G/+yexv/snsb/7J7G/+yexuKs3wb6sqSIf/ZoCX/3aQm/92kJv/dpCb/3aQm/92k
|
||||
Jv/dpCb/3aQm/92kJv/dpCb/3aQm/92kJv/dpCb/3aQm/92kJv/dpCb/3aQm/92kJv/dpCb/3aQm/92k
|
||||
Jv/dpCb/3aQm/92kJv/dpCb/3aQm/92kJv/ZoCX/ypIh/7N8G+rJkSH/3qUm/96lJv/epSb/3qUm/96l
|
||||
Jv/epSb/3qUm/96lJv/epSb/3qUm/96lJv/epSb/3qUm/96lJv/epSb/3qUm/96lJv/epSb/3qUm/96l
|
||||
Jv/epSb/3qUm/96lJv/epSb/3qUm/96lJv/epSb/3qUm/96lJv/epSb/ypIh/9qiJv/epSf/3qUn/96l
|
||||
J//epSf/3qUn/96lJ//epSf/3qUn/96lJ//epSf/3qUn/96lJ//epSf/3qUn/96lJ//epSf/3qUn/96l
|
||||
J//epSf/3qUn/96lJ//epSf/3qUn/96lJ//epSf/3qUn/96lJ//epSf/3qUn/96lJ//aoib/36Yn/9+m
|
||||
J//fpif/36Yn/9+mJ//fpif/36Yn/9+mJ//fpif/36Yn/9+mJ//fpif/36Yn/9+mJ//fpif/36Yn/9+m
|
||||
J//fpif/36Yn/9+mJ//fpif/36Yn/9+mJ//fpif/36Yn/9+mJ//fpif/36Yn/9+mJ//fpif/36Yn/9+m
|
||||
J//fpif/36Yn/9+mJ//fpif/36Yn/92lJ//15cL/////////////////////////////////////////
|
||||
//////////////////////////////////////////////Xlwv/dpSf/36Yn/9+mJ//fpif/36Yn/9+m
|
||||
J//fpif/36Yn/+CnKP/gpyj/4Kco/+CnKP/gpyj/26Mn////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////9ujJ//gpyj/4Kco/+Cn
|
||||
KP/gpyj/4Kco/+CnKP/gpyj/4aco/+GnKP/hpyj/4aco/+GnKP/ZoSf/////////////////////////
|
||||
/////////////////////////////////////////////8eUI//JliT/yZYk/8mVJP/my5H/2qIn/+Gn
|
||||
KP/hpyj/4aco/+GnKP/hpyj/4aco/+GnKP/hqCj/4ago/+GoKP/hqCj/4ago/9miJ///////////////
|
||||
////////////////////////////////////////////////////////050l/9ihJv/q0JT//////+nP
|
||||
k//cpCf/4ago/+GoKP/hqCj/4ago/+GoKP/hqCj/4ago/+KoKf/iqCn/4qgp/+KoKf/iqCn/2qIn////
|
||||
///////////////////////////////////////////////////////////////////ZoSf/7tKV////
|
||||
/////////Pjw/+3Slf/hpyn/4qgp/+KoKf/iqCn/4qgp/+KoKf/iqCn/46kp/+OpKf/jqSn/46kp/+Op
|
||||
Kf/aoyf//////////////////////////////////////////////////////////////////////+rP
|
||||
lP////////////jy5P/RoDT/+fHh/+7Tlf/iqCn/46kp/+OpKf/jqSn/46kp/+OpKf/kqir/5Koq/+Sq
|
||||
Kv/kqir/5Koq/9ukKP//////////////////////////////////////////////////////////////
|
||||
///////////////////8+fL/0aA1//Xpz//WpDb/+fLh/+/Tlf/jqSr/5Koq/+SqKv/kqir/5Koq/+Wq
|
||||
Kv/lqir/5aoq/+WqKv/lqir/3KQo////////////////////////////8OLE/9u5bf/VrFH/zZoq/82a
|
||||
Kv/VrFH/27lt//DixP/////////////////68+b/2aY2//bqz//XpDb/+fLh/+/Tlf/kqSr/5aoq/+Wq
|
||||
Kv/lqir/5asr/+WrK//lqyv/5asr/+WrK//cpSn/////////////////+vbt/9auVP/RnCf/1qAo/9qj
|
||||
Kf/cpCn/3KQp/9qjKf/WoCj/0Zwn/9exXP/8+fL////////////69Ob/2ac3//bqz//XpTf/+fLh/+/U
|
||||
lv/kqiv/5asr/+WrK//mrCv/5qwr/+asK//mrCv/5qwr/92mKf/////////////////duWj/2KIo/9+n
|
||||
Kv/jqSr/5Ksr/+WrK//lqyv/5Ksr/+OpKv/fpyr/2KIo/9y4Zv/////////////////69Ob/2qg3//bq
|
||||
z//Ypjf//Pjw//DUlv/lqyv/5qwr/+etLP/nrSz/560s/+etLP/nrSz/3qcq/////////////////9ii
|
||||
Kf/jqiv/6r9e//Terf/579f////////////579f/9N6t/+q/Xv/jqiv/2KIp/////////////////+jN
|
||||
kv/69Ob/26k4//rz5f///////////+OqK//nrSz/6K0s/+itLP/orSz/6K0s/+itLP/fpyr/////////
|
||||
////////3qUq//DSkf////////////////////////////////////////////DSkf/epSr/////////
|
||||
////////054o/+vPk//9+fL////////////pzpL/4qgr/+itLP/priz/6a4s/+muLP/priz/6a4s/+Co
|
||||
Kv////////////7+/P/dpSr//fv1/////////////////+fPmf/Qmyf/0Z0o/9SeKP/Yoin/4Kgq/9+m
|
||||
Kv/////////////////bpCn/26Qp/+nOkv//////5syS/9miKf/lqyv/6a4s/+mvLf/pry3/6a8t/+mv
|
||||
Lf/pry3/4Kgr/////////////////+O6X//pzZD//////////////////////+7Um//fqCv/4Kgr/+Kq
|
||||
LP/lrCz/6MFp/////////////////9+oK//jqiz/2qQq/9SfKf/Zoyr/46os/+iuLf/pry3/6q8t/+qv
|
||||
Lf/qry3/6q8t/+qvLf/hqCv//////////////////Pjw/+K4Xv/cs1v/69er//Xq1P/+/fr//v36/+/O
|
||||
hf/pri3/6a4t/+zBYP/8+fD/////////////////4agr/+muLf/mrCz/5Kos/+asLP/pri3/6q8t/+qv
|
||||
Lf/rsC7/67Au/+uwLv/rsC7/67Au/+KpLP////////////////////////////TkwP/jvm7/3LFS/9Oe
|
||||
Kf/Yoir/5rhU/+7GcP/35sH////////////////////////////iqSz/67Au/+uwLv/rsC7/67Au/+uw
|
||||
Lv/rsC7/67Au/+yxLv/ssS7/7LEu/+yxLv/ssS7/46os////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////+OqLP/ssS7/7LEu/+yx
|
||||
Lv/ssS7/7LEu/+yxLv/ssS7/7bEv/+2xL//tsS//7bEv/+2xL//kqi3/////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////5Kot/+2x
|
||||
L//tsS//7bEv/+2xL//tsS//7bEv/+2xL//tsi//7bIv/+2yL//tsi//7bIv/+SrLf//////////////
|
||||
/////////////////////////////////////////////////////////////9y0XP/Tnyr/1J8q/9qk
|
||||
K//nrS7/7bIv/+2yL//tsi//7bIv/+2yL//tsi//7bIv/+6zL//usy//7rMv/+6zL//usy//5awt////
|
||||
////////////////////////////////////////////////////////////////////////3aYs/+Ss
|
||||
Lf/lrC3/6K4u/+yyL//usy//7rMv/+6zL//usy//7rMv/+6zL//usy//77Mw/++zMP/vszD/77Mw/++z
|
||||
MP/mrC7/////////////////////////////////////////////////////////////////////////
|
||||
///lrC7/7rIw/++zMP/vszD/77Mw/++zMP/vszD/77Mw/++zMP/vszD/77Mw/++zMP/vtDD/77Qw/++0
|
||||
MP/vtDD/77Qw/+euLv/158j/////////////////////////////////////////////////////////
|
||||
/////////////+atLv/vtDD/77Qw/++0MP/vtDD/77Qw/++0MP/vtDD/77Qw/++0MP/vtDD/77Qw//C0
|
||||
MP/wtDD/8LQw//C0MP/wtDD/67Av/9+nLf/Yoiv/16Er/9ehK//XoSv/16Er/9ehK//XoSv/16Er/9eh
|
||||
K//XoSv/16Er/9ehK//dpiz/6q8v//C0MP/wtDD/8LQw//C0MP/wtDD/8LQw//C0MP/wtDD/8LQw//C0
|
||||
MP/wtDD/8LUx6vC1Mf/wtTH/8LUx//C1Mf/utDH/67Ew/+ivL//nri//564v/+euL//nri//564v/+eu
|
||||
L//nri//564v/+euL//nri//564v/+qwMP/utDH/8LUx//C1Mf/wtTH/8LUx//C1Mf/wtTH/8LUx//C1
|
||||
Mf/wtTH/8LUx//C1MerxtTGH8bUx//G1Mf/xtTH/8bUx//G1Mf/xtTH/8bUx//G1Mf/xtTH/8bUx//G1
|
||||
Mf/xtTH/8bUx//G1Mf/xtTH/8bUx//G1Mf/xtTH/8bUx//G1Mf/xtTH/8bUx//G1Mf/xtTH/8bUx//G1
|
||||
Mf/xtTH/8bUx//G1Mf/xtTH/8bUxh/G1MQbxtTGE8bUx5PG1Mf/xtTH/8bUx//G1Mf/xtTH/8bUx//G1
|
||||
Mf/xtTH/8bUx//G1Mf/xtTH/8bUx//G1Mf/xtTH/8bUx//G1Mf/xtTH/8bUx//G1Mf/xtTH/8bUx//G1
|
||||
Mf/xtTH/8bUx//G1Mf/xtTH/8bUx5PG1MYTxtTEGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAEAAAACAAAAABACAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAsnsbSLJ7G+eyexv/snsb/7J7G/+yexv/snsb/7J7G/+yexv/snsb/7J7
|
||||
G/+yexv/snsb/7J7G/+yexvnsnsbSL+IHuzaoSX/3qUm/96lJv/epSb/3qUm/96lJv/epSb/3qUm/96l
|
||||
Jv/epSb/3qUm/96lJv/epSb/2qEl/7+IHuzaoSb/36Yn//79+///////////////////////////////
|
||||
///////////////////fpif/36Yn/9+mJ//aoSb/4Kco/+CnKP/+/fv/////////////////////////
|
||||
///KlyT/ypck/8qXJP/kypD/4Kco/+CnKP/gpyj/4Kco/+GoKP/hqCj//v37////////////////////
|
||||
////////4ago/+GoKP/pvl//1qAm/+GoKP/hqCj/4ago/+GoKP/jqSn/46kp//79+///////////////
|
||||
/////////////+OpKf/x1ZX///////HVlf/jqSn/46kp/+OpKf/jqSn/5aoq/+WqKv/+/fv/////////
|
||||
////////////////////////////////////////8tWW/+WqKv/lqir/5aoq/+asK//mrCv//v37////
|
||||
///r06H/2K1N/9CbJ//YrU3/69Oh///////////////////////z1pb/5qwr/+asK//orSz/6K0s//79
|
||||
+//p0Jr/4rVV//ns0P//////+ezQ/+K1Vf/ozZL///////////////////////TWl//orSz/6a8t/+mv
|
||||
Lf/+/fv/4K08//z05P/////////////////89OT/4a48////////////////////////////6a8t/+uw
|
||||
Lv/rsC7//v37/+u2P//68+P//////9SfKv/Unyr/16Eq/+u2P////////////+nOk///////6c6T/+uw
|
||||
Lv/tsS//7bEv//79+//23KL/4LJQ//Hguf/tsS//7bEv/+2xL//12Jj////////////hqC3/1qAr/+Go
|
||||
Lf/tsS//7rMv/+6zL//+/fv///////bepv/luFT/7rMv//HBVv/436f/////////////////7rMv/+6z
|
||||
L//usy//7rMv/++0MP/vtDD//v37/////////////////////////////////////////////////++0
|
||||
MP/vtDD/77Qw/++0MP/vtDDt8LUx/9mkLP/Zoyz/2aMs/9mjLP/Zoyz/2aMs/9mjLP/Zoyz/2aMs/9mj
|
||||
LP/wtTH/8LUx//C1Mf/vtDDt8bUxP/G1McnxtTH/8bUx//G1Mf/xtTH/8bUx//G1Mf/xtTH/8bUx//G1
|
||||
Mf/xtTH/8bUx//G1Mf/xtTHJ8bUxPwAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAA
|
||||
rEEAAKxBAACsQQAArEEAAKxBAACsQQAArEE=
|
||||
</value>
|
||||
</data>
|
||||
</root>
|
||||
@ -0,0 +1,57 @@
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Linq;
|
||||
using System.Threading;
|
||||
using System.Windows.Forms;
|
||||
using SystemX.Net.Platform.SystemX.Net.XEFCore;
|
||||
using SystemX.Net.Platform.SystemX.Net.XEFCore.DBContext.CPXV2Log;
|
||||
using SystemX.Net.Platform.SystemX.Net.XEFCore.DBContext.CPXV2LogJson;
|
||||
|
||||
namespace SystemX.Net.MiddlewareUI
|
||||
{
|
||||
static class Program
|
||||
{
|
||||
/// <summary>
|
||||
/// The main entry point for the application.
|
||||
/// </summary>
|
||||
[STAThread]
|
||||
static void Main()
|
||||
{
|
||||
bool bCreateProgram = false;
|
||||
|
||||
Mutex SetMutex = new Mutex(true, "SystemX.Net.Middleware.UI.Log CPXV2", out bCreateProgram);
|
||||
|
||||
if (bCreateProgram)
|
||||
{
|
||||
//종속성 주입
|
||||
/*
|
||||
ServiceCollection collection = new ServiceCollection();
|
||||
collection.AddSingleton<XEFCore<CPXV2ShortTermLogJson>>();
|
||||
collection.AddSingleton<MainForm>();
|
||||
|
||||
ServiceProvider provider = collection.BuildServiceProvider();
|
||||
var shortTermJson = provider.GetService<XEFCore<CPXV2ShortTermLogJson>>();
|
||||
shortTermJson.SetConnectionString("Server=127.0.0.1;Database=CPXV2ShortTermLogJson;User Id=Alis;Password=Kefico!@34;");
|
||||
|
||||
|
||||
Application.EnableVisualStyles();
|
||||
Application.SetCompatibleTextRenderingDefault(false);
|
||||
Application.Run(provider.GetService<MainForm>());
|
||||
*/
|
||||
Application.EnableVisualStyles();
|
||||
Application.SetCompatibleTextRenderingDefault(false);
|
||||
Application.Run(new MainForm());
|
||||
|
||||
SetMutex.ReleaseMutex();
|
||||
}
|
||||
else
|
||||
{
|
||||
MessageBox.Show("[SystemX.Net.Middleware.UI.Log CPXV2] Already this program excute now. Check the process.", "SystemX.Net.Middleware.UI.Log", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,32 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
[assembly: AssemblyTitle("SystemX.Net.MiddlewareUI")]
|
||||
[assembly: AssemblyDescription("SystemX")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("SystemX")]
|
||||
[assembly: AssemblyProduct("SystemX.Net.MiddlewareUI")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2022")]
|
||||
[assembly: AssemblyTrademark("CP-ServerX")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
// Setting ComVisible to false makes the types in this assembly not visible
|
||||
// to COM components. If you need to access a type in this assembly from
|
||||
// COM, set the ComVisible attribute to true on that type.
|
||||
[assembly: ComVisible(false)]
|
||||
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||
[assembly: Guid("83f9d8f8-1fc1-4c57-bef0-9b0f33d4ff9e")]
|
||||
// Version information for an assembly consists of the following four values:
|
||||
//
|
||||
// Major Version
|
||||
// Minor Version
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
// You can specify all the values or you can default the Build and Revision Numbers
|
||||
// by using the '*' as shown below:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("20.22.11.29")]
|
||||
[assembly: AssemblyFileVersion("20.22.11.29")]
|
||||
193
SystemX.Net.CP.Middleware.Log/SystemX.Net.Middleware.UI/Properties/Resources.Designer.cs
generated
Normal file
@ -0,0 +1,193 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// 이 코드는 도구를 사용하여 생성되었습니다.
|
||||
// 런타임 버전:4.0.30319.42000
|
||||
//
|
||||
// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면
|
||||
// 이러한 변경 내용이 손실됩니다.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace SystemX.Net.MiddlewareUI.Log.Properties {
|
||||
using System;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 지역화된 문자열 등을 찾기 위한 강력한 형식의 리소스 클래스입니다.
|
||||
/// </summary>
|
||||
// 이 클래스는 ResGen 또는 Visual Studio와 같은 도구를 통해 StronglyTypedResourceBuilder
|
||||
// 클래스에서 자동으로 생성되었습니다.
|
||||
// 멤버를 추가하거나 제거하려면 .ResX 파일을 편집한 다음 /str 옵션을 사용하여 ResGen을
|
||||
// 다시 실행하거나 VS 프로젝트를 다시 빌드하십시오.
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
internal class Resources {
|
||||
|
||||
private static global::System.Resources.ResourceManager resourceMan;
|
||||
|
||||
private static global::System.Globalization.CultureInfo resourceCulture;
|
||||
|
||||
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
||||
internal Resources() {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 이 클래스에서 사용하는 캐시된 ResourceManager 인스턴스를 반환합니다.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Resources.ResourceManager ResourceManager {
|
||||
get {
|
||||
if (object.ReferenceEquals(resourceMan, null)) {
|
||||
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("SystemX.Net.MiddlewareUI.Log.Properties.Resources", typeof(Resources).Assembly);
|
||||
resourceMan = temp;
|
||||
}
|
||||
return resourceMan;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 이 강력한 형식의 리소스 클래스를 사용하여 모든 리소스 조회에 대해 현재 스레드의 CurrentUICulture 속성을
|
||||
/// 재정의합니다.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Globalization.CultureInfo Culture {
|
||||
get {
|
||||
return resourceCulture;
|
||||
}
|
||||
set {
|
||||
resourceCulture = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap ALIS {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("ALIS", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap AppIcon {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("AppIcon", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap AppIcon1 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("AppIcon1", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap Bubble_16x16 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("Bubble_16x16", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap Bubble_32x32 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("Bubble_32x32", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap Cancel_16x16 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("Cancel_16x16", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap Cancel_32x32 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("Cancel_32x32", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap CI {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("CI", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap Database_16x16 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("Database_16x16", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap Database_32x32 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("Database_32x32", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap Kefico_CI {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("Kefico_CI", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap Publish_16x16 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("Publish_16x16", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap Publish_32x32 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("Publish_32x32", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,160 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="Bubble_32x32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\Bubble_32x32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="Database_16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\Database_16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="ALIS" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\ALIS.PNG;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="Cancel_16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\Cancel_16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="AppIcon" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\AppIcon.ico;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="Cancel_32x32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\Cancel_32x32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="Publish_32x32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\Publish_32x32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="Kefico_CI" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\Kefico CI.PNG;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="Publish_16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\Publish_16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="CI" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\CI.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="Bubble_16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\Bubble_16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="Database_32x32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\Database_32x32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="AppIcon1" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\AppIcon1.ico;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
</root>
|
||||
26
SystemX.Net.CP.Middleware.Log/SystemX.Net.Middleware.UI/Properties/Settings.Designer.cs
generated
Normal file
@ -0,0 +1,26 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// 이 코드는 도구를 사용하여 생성되었습니다.
|
||||
// 런타임 버전:4.0.30319.42000
|
||||
//
|
||||
// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면
|
||||
// 이러한 변경 내용이 손실됩니다.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace SystemX.Net.MiddlewareUI.Log.Properties {
|
||||
|
||||
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.10.0.0")]
|
||||
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
|
||||
|
||||
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
|
||||
|
||||
public static Settings Default {
|
||||
get {
|
||||
return defaultInstance;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,5 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
|
||||
<Profiles />
|
||||
<Settings />
|
||||
</SettingsFile>
|
||||
@ -0,0 +1 @@
|
||||
DevExpress.XtraEditors.ProgressBarControl, DevExpress.XtraEditors.v20.2, Version=20.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
|
After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 259 B |
|
After Width: | Height: | Size: 339 B |
|
After Width: | Height: | Size: 9.3 KiB |
|
After Width: | Height: | Size: 289 B |
|
After Width: | Height: | Size: 386 B |
|
After Width: | Height: | Size: 265 B |
|
After Width: | Height: | Size: 368 B |
|
After Width: | Height: | Size: 3.9 KiB |
|
After Width: | Height: | Size: 431 B |
|
After Width: | Height: | Size: 765 B |
@ -0,0 +1,268 @@
|
||||
using DevExpress.Data.Helpers;
|
||||
using DevExpress.XtraBars;
|
||||
using DevExpress.XtraBars.Navigation;
|
||||
|
||||
using System;
|
||||
using System.Net;
|
||||
using System.Net.Sockets;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Data.SqlClient;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using System.Xml.Linq;
|
||||
using System.IO;
|
||||
using System.Diagnostics;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
using SystemX.Net;
|
||||
using SystemX.Common;
|
||||
using SystemX.Net.BaseProtocol;
|
||||
using SystemX.Net.Comm;
|
||||
using SystemX.Net.Schedule;
|
||||
using SystemX.Net.DB.LogProcess;
|
||||
using SystemX.Common.Serialization;
|
||||
using SystemX.Common.Archive;
|
||||
|
||||
//using SystemX.Common.Protocol.SIA;
|
||||
|
||||
using DevExpress.Utils.Extensions;
|
||||
|
||||
using static SystemX.Net.Platform.Common.Util.LogMessage;
|
||||
using static SystemX.Net.DB.LogProcess.XLogDBConnManager;
|
||||
using SystemX.Net.Platform.SystemX.Common;
|
||||
|
||||
namespace SystemX.Net.MiddlewareUI
|
||||
{
|
||||
public partial class MainForm : DevExpress.XtraBars.FluentDesignSystem.FluentDesignForm
|
||||
{
|
||||
private async void WatchRecvCommandQueue()
|
||||
{
|
||||
await Task.Delay(250);
|
||||
|
||||
while (!m_bTaskCommandBlock)
|
||||
{
|
||||
try
|
||||
{
|
||||
CT.ThrowIfCancellationRequested();
|
||||
}
|
||||
catch (OperationCanceledException CancelEx)
|
||||
{
|
||||
MessageOutput.ConsoleWrite(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss>>") + @" Work Canceled. [SystemX.Net.MiddlewareUI : MainForm.WatchRecvCommndQueue]\r\n" + CancelEx.Message, ConsoleColor.Yellow, LogMessageLevel.DEBUG);
|
||||
|
||||
break;
|
||||
}
|
||||
//
|
||||
try
|
||||
{
|
||||
if (bTaskCommandWaitLock == false)
|
||||
QueryRecvCommandQueue();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
MessageOutput.ConsoleWrite(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss>>") + @"General Queue Process failed.[1] [SystemX.Net.MiddlewareUI : MainForm.WatchRecvCommndQueue]\r\n" + e.Message, ConsoleColor.Yellow, LogMessageLevel.DEBUG);
|
||||
}
|
||||
|
||||
await Task.Delay(500);
|
||||
}
|
||||
}
|
||||
|
||||
private bool LogMemoryPushProcess(int nPos, int nStPos)
|
||||
{
|
||||
int nSetSize = int.MaxValue;
|
||||
byte[] ucSetLogArray = null;
|
||||
|
||||
bool bProcResult = false;
|
||||
|
||||
using (LogSharedMemory memLog = new LogSharedMemory(ParamterMapLog))
|
||||
{
|
||||
if (memLog.CheckFile(nPos))
|
||||
{
|
||||
LogMappedPacket LogMapFile = new LogMappedPacket();
|
||||
nSetSize = Marshal.SizeOf(LogMapFile);
|
||||
ucSetLogArray = new byte[nSetSize];
|
||||
LogMapFile = (LogMappedPacket)SystemXNetSerialization.RawDeSerialize(ucSetLogArray, LogMapFile.GetType());
|
||||
|
||||
bool bFindLogResult = false;
|
||||
|
||||
LogMapFile = memLog.Get(nPos, nStPos, out bFindLogResult, nSetSize).Value;
|
||||
|
||||
if (bFindLogResult == false)
|
||||
return false;
|
||||
|
||||
if (LogMapFile.bLogFileReadComplete == false)
|
||||
{
|
||||
LogMapFile.bLogFileReadComplete = true;
|
||||
|
||||
memLog.Set(nPos, LogMapFile);
|
||||
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.Append("[" + (++nEnqueueCount).ToString() + "][Enqueue]");
|
||||
sb.Append("[");
|
||||
sb.Append(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
|
||||
sb.Append("], ");
|
||||
sb.Append("Type [" + LogMapFile.objLogType[0].Data.ToString() + "], ");
|
||||
sb.Append("S Port [" + LogMapFile.nStreamPort.ToString() + "], ");
|
||||
sb.Append("C Port [" + LogMapFile.nCommandPort.ToString() + "], ");
|
||||
sb.Append("Size [" + LogMapFile.nLogDataSize.ToString() + "], ");
|
||||
sb.Append("Number [" + LogMapFile.nNumber.ToString() + "], ");
|
||||
sb.Append("Host [" + LogMapFile.objHost[0].Data + "], ");
|
||||
sb.Append("Section [" + LogMapFile.objSection[0].Data + "], ");
|
||||
sb.Append("St Name [" + LogMapFile.objStationName[0].Data + "], ");
|
||||
sb.Append("St ID [" + LogMapFile.nStationID.ToString() + "], ");
|
||||
sb.Append("File Name [" + LogMapFile.objOptionFileName[0].Data + "], ");
|
||||
sb.Append("File Extension [" + LogMapFile.objOptionFileExtension[0].Data + "] ");
|
||||
|
||||
/*
|
||||
sb.Append("TL ID[" + LogMapFile.objResultTestListCntID[0].Data + "], ");
|
||||
sb.Append("V[" + LogMapFile.objProdPNo[0].Data + "], ");
|
||||
sb.Append("PN[" + LogMapFile.objProdCNo[0].Data + "], ");
|
||||
sb.Append("TT[" + LogMapFile.objTestType[0].Data + "], ");
|
||||
sb.Append("TC[" + LogMapFile.objTestCode[0].Data + "], ");
|
||||
sb.Append("Ver[" + LogMapFile.objVersion[0].Data + "], ");
|
||||
sb.Append("PC[" + LogMapFile.objProdCode[0].Data + "], ");
|
||||
sb.Append("DB V No[" + LogMapFile.nTestListVariantNo.ToString() + "] ");
|
||||
*/
|
||||
|
||||
sb.AppendLine();
|
||||
|
||||
if (nEnqueueCount >= Int64.MaxValue)
|
||||
nEnqueueCount = 0;
|
||||
|
||||
LogDataRecvText.Enqueue(sb);
|
||||
|
||||
LogDataQueue[nPos].Enqueue(LogMapFile);
|
||||
|
||||
bProcResult = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return bProcResult;
|
||||
}
|
||||
|
||||
private bool QueryRecvCommandQueue()
|
||||
{
|
||||
bool bState = true;
|
||||
|
||||
string strProcessDebugInfo = string.Empty;
|
||||
|
||||
long l1 = long.MinValue;
|
||||
long l2 = long.MinValue;
|
||||
|
||||
try
|
||||
{
|
||||
bTaskCommandWaitLock = true;
|
||||
|
||||
Stopwatch stProcessTimeChk = new Stopwatch();
|
||||
stProcessTimeChk.Start();
|
||||
|
||||
using (InfoLogSharedMemory memInfoLog = new InfoLogSharedMemory(ParamterMapInfoLog))
|
||||
{
|
||||
InfoLogMappedPacket InfoLogMapFile = new InfoLogMappedPacket();
|
||||
int nSetSize = Marshal.SizeOf(InfoLogMapFile);
|
||||
byte[] ucSetLogArray = new byte[nSetSize];
|
||||
InfoLogMapFile = (InfoLogMappedPacket)SystemXNetSerialization.RawDeSerialize(ucSetLogArray, InfoLogMapFile.GetType());
|
||||
|
||||
if (memInfoLog.CheckFile())
|
||||
{
|
||||
bool bFindInfoLogResult = false;
|
||||
|
||||
//로그 처리가 필요한 위치 조회
|
||||
bool[] bGetStationReadyLog = memInfoLog.Get(out bFindInfoLogResult, nSetSize);
|
||||
|
||||
if (bFindInfoLogResult == false)
|
||||
return bState;
|
||||
|
||||
//Array.Copy(bGetStationReadyLog, 0, InfoLogMapFile.bLogDataReady, 0, SharedMemory.nMaxInfoFullAccessSize);
|
||||
|
||||
Array.Clear(bCompareLogReadyState, 0, SharedMemory.nMaxInfoFullAccessSize);
|
||||
for (int i = 0; i < SharedMemory.nMaxInfoFullAccessSize; i++)
|
||||
{
|
||||
if (bGetStationReadyLog[i] != bBeforeLogReadyState[i])
|
||||
bCompareLogReadyState[i] = true;
|
||||
}
|
||||
|
||||
//존재할 경우
|
||||
if (bCompareLogReadyState.Any(x => x == true))
|
||||
{
|
||||
//존재하는 개수 파악
|
||||
bool[] arrCheckNum = Array.FindAll(bCompareLogReadyState, x => x == true);
|
||||
|
||||
//개수 확인
|
||||
int nFindCount = arrCheckNum.Count();
|
||||
|
||||
//개수 만큼 Index 확인
|
||||
for (int i = 0; i < nFindCount; i++)
|
||||
{
|
||||
Stopwatch stItemTimeChk = new Stopwatch();
|
||||
stItemTimeChk.Start();
|
||||
|
||||
int nIdx = Array.FindIndex(bCompareLogReadyState, x => x == true);
|
||||
|
||||
//Index 포트 변환 및 Station(최대 8) 확인
|
||||
int nPos = (nIdx / SharedMemory.nMaxStationSize) + PORT_DISTRIBUTION_NUM;
|
||||
|
||||
int nAccessPart = nIdx / SharedMemory.nMaxStationSize;
|
||||
int nSubPos = nIdx % SharedMemory.nMaxStationSize;
|
||||
|
||||
if (bCompareLogReadyState[nIdx])
|
||||
{
|
||||
LogMemoryPushProcess(nPos, nSubPos);
|
||||
|
||||
bCompareLogReadyState[nIdx] = false;
|
||||
}
|
||||
|
||||
l2 = stItemTimeChk.ElapsedMilliseconds;
|
||||
}
|
||||
|
||||
/*for (int i = PORT_DISTRIBUTION_NUM; i < ALL_MANAGE_NUM && !m_bTaskStreamBlock; i++)
|
||||
{
|
||||
for (int j = (i - PORT_DISTRIBUTION_NUM) * SharedMemory.nMaxStationSize;
|
||||
j < ((i - PORT_DISTRIBUTION_NUM) * SharedMemory.nMaxStationSize) + SharedMemory.nMaxStationSize; j++)
|
||||
{
|
||||
if (bGetStationReadyLog[j])
|
||||
{
|
||||
LogMemoryProcess(i, j);
|
||||
|
||||
bGetStationReadyLog[j] = false;
|
||||
}
|
||||
}
|
||||
|
||||
Thread.Sleep(10);
|
||||
}*/
|
||||
|
||||
//memInfoLog.Set(bGetStationReadyLog);
|
||||
Array.Copy(bGetStationReadyLog, 0, bBeforeLogReadyState, 0, SharedMemory.nMaxInfoFullAccessSize);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
l1 = stProcessTimeChk.ElapsedMilliseconds;
|
||||
|
||||
if (l1 != long.MinValue && l2 != long.MinValue)
|
||||
{
|
||||
LogDataRecvText.Enqueue(new StringBuilder(">>[Enqueue-Process][" + l1.ToString() + "][Enqueue-Item][" + l2.ToString() + "]\r\n"));
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
MessageOutput.ConsoleWrite(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss>>") + strProcessDebugInfo + @" Recv queue process fail.[SystemX.Net.MiddlewareUI : MainForm.QueryRecvCommandQueue]\r\n" + e.Message, ConsoleColor.Yellow, LogMessageLevel.DEBUG);
|
||||
|
||||
bState = false;
|
||||
}
|
||||
finally
|
||||
{
|
||||
bTaskCommandWaitLock = false;
|
||||
}
|
||||
|
||||
return bState;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,73 @@
|
||||
using DevExpress.Data.Helpers;
|
||||
using DevExpress.XtraBars;
|
||||
using DevExpress.XtraBars.Navigation;
|
||||
|
||||
using System;
|
||||
using System.Net;
|
||||
using System.Net.Sockets;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Data.SqlClient;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using System.Xml.Linq;
|
||||
using System.IO;
|
||||
using System.Diagnostics;
|
||||
|
||||
using SystemX.Net;
|
||||
using SystemX.Common;
|
||||
using SystemX.Net.BaseProtocol;
|
||||
using SystemX.Net.Comm;
|
||||
using SystemX.Net.Schedule;
|
||||
using SystemX.Net.DB.LogProcess;
|
||||
using SystemX.Common.Serialization;
|
||||
using SystemX.Common.Archive;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
//using SystemX.Common.Protocol.SIA;
|
||||
|
||||
using static SystemX.Net.Platform.Common.Util.LogMessage;
|
||||
using SystemX.Net.Platform.Common.ExtensionMethods;
|
||||
using SystemX.Net.Platform.SystemX.Common;
|
||||
|
||||
namespace SystemX.Net.MiddlewareUI
|
||||
{
|
||||
public partial class MainForm : DevExpress.XtraBars.FluentDesignSystem.FluentDesignForm
|
||||
{
|
||||
/*
|
||||
private string GetFileName(int iPos, LogMappedPacket GetMappedInfo, string strCreateName, string strSubName)
|
||||
{
|
||||
Random randNumber = new Random();
|
||||
|
||||
string strFileName = strCreateName;
|
||||
|
||||
if (GetMappedInfo.objOptionFileName[0].Data.CompareTo("-") == 0)
|
||||
strFileName += @strSubName + @randNumber.Next().ToString() + @GetMappedInfo.objOptionFileExtension[0].Data;
|
||||
else
|
||||
strFileName += @GetMappedInfo.objOptionFileName[0].Data + @GetMappedInfo.objOptionFileExtension[0].Data;
|
||||
|
||||
if (File.Exists(strFileName) == true)
|
||||
{
|
||||
while (true)
|
||||
{
|
||||
strFileName = strCreateName;
|
||||
|
||||
if (GetMappedInfo.objOptionFileName[0].Data.CompareTo("-") == 0)
|
||||
strFileName += @strSubName + @randNumber.Next().ToString() + @GetMappedInfo.objOptionFileExtension[0].Data;
|
||||
else
|
||||
strFileName += @GetMappedInfo.objOptionFileName[0].Data + "_" + @randNumber.Next().ToString() + @GetMappedInfo.objOptionFileExtension[0].Data;
|
||||
|
||||
if (File.Exists(strFileName) == false)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return strFileName;
|
||||
}
|
||||
*/
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,214 @@
|
||||
using System;
|
||||
using System.Net;
|
||||
using System.Net.Sockets;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Data.SqlClient;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using System.Xml.Linq;
|
||||
using System.IO;
|
||||
using System.Diagnostics;
|
||||
|
||||
using SystemX.Net;
|
||||
using SystemX.Common;
|
||||
using SystemX.Net.BaseProtocol;
|
||||
using SystemX.Net.Comm;
|
||||
using SystemX.Net.Schedule;
|
||||
using SystemX.Net.DB.LogProcess;
|
||||
using SystemX.Common.Serialization;
|
||||
using SystemX.Common.Archive;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
//using SystemX.Common.Protocol.SIA;
|
||||
|
||||
using static SystemX.Net.Platform.Common.Util.LogMessage;
|
||||
using System.Threading;
|
||||
using SystemX.Net.Platform.Common.ExtensionMethods;
|
||||
|
||||
using DevExpress.Data.Helpers;
|
||||
using DevExpress.XtraBars;
|
||||
using DevExpress.XtraBars.Navigation;
|
||||
using static SystemX.Net.DB.LogProcess.XLogDBConnManager;
|
||||
using System.Net.NetworkInformation;
|
||||
|
||||
namespace SystemX.Net.MiddlewareUI
|
||||
{
|
||||
public partial class MainForm : DevExpress.XtraBars.FluentDesignSystem.FluentDesignForm
|
||||
{
|
||||
public bool CPX_ReadVRFYList(int nConnId, int nTestListNo, string strProcessDebugInfo, out int nReadStepVersion, /*int nSetReadStepVersion,*/ int nLoadPosition = 0, bool bForceRead = true)
|
||||
{
|
||||
nReadStepVersion = int.MaxValue;
|
||||
|
||||
try
|
||||
{
|
||||
string strGetVersionTableName = MngDBLogConn.GetDBConnectInfo().ConnMain.VERSION_TABLE;
|
||||
string strGetVRFYTableName = MngDBLogConn.GetDBConnectInfo().ConnMain.VRFY_TABLE;
|
||||
|
||||
try
|
||||
{
|
||||
//해당 테스트리스 정보 마지막 업데이트 번호 가져오기
|
||||
thisConnInfo[nConnId].getLatestStepVer = QueryStreamProcess(eConnCategory.Main, "SELECT LatestStepVersion FROM [" + strGetVersionTableName + "] WHERE TestlistNo = " + nTestListNo + ";");
|
||||
|
||||
nReadStepVersion = Convert.ToInt32(thisConnInfo[nConnId].getLatestStepVer.Tables[0].Rows[0]["LatestStepVersion"]);
|
||||
}
|
||||
catch
|
||||
{
|
||||
MessageOutput.ConsoleWrite(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss>>") + strProcessDebugInfo +
|
||||
@" CpLogProcess [" + strGetVersionTableName + "] MSV failed to obtain the most recent update number for VRFY (VRFY could not be found with the loading test list information.). [SystemX.Net.MiddlewareUI : MainForm.ReadVRFYList]", ConsoleColor.Red, LogMessageLevel.FATAL);
|
||||
|
||||
throw new Exception();
|
||||
}
|
||||
|
||||
//이전 버전 사용 일시
|
||||
if (nLoadPosition > 0)
|
||||
nReadStepVersion -= nLoadPosition;
|
||||
|
||||
/* Changed
|
||||
* 마지막 업데이트 번호가 다를때만 테스트리스트(VRFY) 갱신(Enabled Step 별 가장 최근 업데이트 번호 목록 정리)
|
||||
* > 항상 최근 해당 테스트리스트(VRFY) 조회로 변경
|
||||
* > 매번 조회시 속도 문제로 동일한 VRFY일 경우 SKIP
|
||||
* > INDEX 사용
|
||||
*/
|
||||
if (bForceRead ||
|
||||
(thisConnInfo[nConnId].bQueryVRFYLoaded == false ||
|
||||
thisConnInfo[nConnId].nLastQueryTLFileNumber != nTestListNo ||
|
||||
thisConnInfo[nConnId].nLastQueryTLStepVersion != nReadStepVersion))
|
||||
{
|
||||
try
|
||||
{
|
||||
thisConnInfo[nConnId].dsLatestVRFYRel = QueryStreamProcess(eConnCategory.Main, "SELECT * FROM ( " +
|
||||
"SELECT *, ROW_NUMBER() OVER(PARTITION BY StepID ORDER BY StepVersion DESC) " +
|
||||
"AS RN FROM [" + strGetVRFYTableName + "] WITH (INDEX=[CSK_VRFY_Release_1]) WHERE TestlistNo = " + nTestListNo + " " +
|
||||
"AND StepVersion <= " + nReadStepVersion + ") X WHERE RN = 1 ORDER BY X.StepID ASC;");
|
||||
|
||||
thisConnInfo[nConnId].dsLongTermLatestVRFYRel = thisConnInfo[nConnId].dsLatestVRFYRel.Copy();
|
||||
|
||||
DataColumn[] keys1 = new DataColumn[1];
|
||||
keys1[0] = new DataColumn();
|
||||
keys1[0] = thisConnInfo[nConnId].dsLatestVRFYRel.Tables[0].Columns["StepID"];
|
||||
|
||||
thisConnInfo[nConnId].dsLatestVRFYRel.Tables[0].PrimaryKey = keys1;
|
||||
|
||||
DataColumn[] keys2 = new DataColumn[1];
|
||||
keys2[0] = new DataColumn();
|
||||
keys2[0] = thisConnInfo[nConnId].dsLongTermLatestVRFYRel.Tables[0].Columns["StepID"];
|
||||
|
||||
thisConnInfo[nConnId].dsLongTermLatestVRFYRel.Tables[0].PrimaryKey = keys2;
|
||||
|
||||
thisConnInfo[nConnId].nLastQueryTLFileNumber = nTestListNo;
|
||||
thisConnInfo[nConnId].nLastQueryTLStepVersion = nReadStepVersion;
|
||||
|
||||
thisConnInfo[nConnId].bQueryVRFYLoaded = true;
|
||||
}
|
||||
catch
|
||||
{
|
||||
MessageOutput.ConsoleWrite(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss>>") + strProcessDebugInfo +
|
||||
@" CpLogProcess Failed to get list from [" + strGetVRFYTableName + "]. [SystemX.Net.MiddlewareUI : MainForm.ReadVRFYList]", ConsoleColor.Red, LogMessageLevel.FATAL);
|
||||
|
||||
throw new Exception();
|
||||
}
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public bool CPXV2_ReadVRFYList(int nConnId, int nTestListFileNo, int nTestListVariantNo, string strProcessDebugInfo, out int nReadStepVersion, /*int nSetReadStepVersion,*/ int nLoadPosition = 0, bool bForceRead = true)
|
||||
{
|
||||
nReadStepVersion = int.MaxValue;
|
||||
|
||||
try
|
||||
{
|
||||
//HIST_TestListFileLatestStepVersion
|
||||
//VRFY_TestListFileRelease
|
||||
|
||||
string strGetVersionTableName = MngDBLogConn.GetDBConnectInfo().ConnMain.VERSION_TABLE;
|
||||
string strGetVRFYTableName = MngDBLogConn.GetDBConnectInfo().ConnMain.VRFY_TABLE;
|
||||
|
||||
try
|
||||
{
|
||||
//해당 테스트리스 정보 마지막 업데이트 번호 가져오기
|
||||
thisConnInfo[nConnId].getLatestStepVer = QueryStreamProcess(eConnCategory.Main, "SELECT LatestStepVersion FROM [" + strGetVersionTableName + "] WITH(NOLOCK) WHERE TestListFileNo = " + nTestListFileNo + ";");
|
||||
|
||||
nReadStepVersion = Convert.ToInt32(thisConnInfo[nConnId].getLatestStepVer.Tables[0].Rows[0]["LatestStepVersion"]);
|
||||
}
|
||||
catch
|
||||
{
|
||||
MessageOutput.ConsoleWrite(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss>>") + strProcessDebugInfo +
|
||||
@" CpLogProcess [" + strGetVersionTableName + "] MSV failed to obtain the most recent update number for VRFY (VRFY could not be found with the loading test list information.). [SystemX.Net.MiddlewareUI : MainForm.ReadVRFYList]", ConsoleColor.Red, LogMessageLevel.FATAL);
|
||||
|
||||
throw new Exception();
|
||||
}
|
||||
|
||||
//이전 버전 사용 일시
|
||||
if (nLoadPosition > 0)
|
||||
nReadStepVersion -= nLoadPosition;
|
||||
|
||||
/* Changed
|
||||
* 마지막 업데이트 번호가 다를때만 테스트리스트(VRFY) 갱신(Enabled Step 별 가장 최근 업데이트 번호 목록 정리)
|
||||
* > 항상 최근 해당 테스트리스트(VRFY) 조회로 변경
|
||||
* > 매번 조회시 속도 문제로 동일한 VRFY일 경우 SKIP
|
||||
* > INDEX 사용
|
||||
*/
|
||||
if (bForceRead ||
|
||||
(thisConnInfo[nConnId].bQueryVRFYLoaded == false ||
|
||||
thisConnInfo[nConnId].nLastQueryTLFileNumber != nTestListFileNo ||
|
||||
thisConnInfo[nConnId].nLastQueryTLVariantNumber != nTestListVariantNo ||
|
||||
thisConnInfo[nConnId].nLastQueryTLStepVersion != nReadStepVersion))
|
||||
{
|
||||
try
|
||||
{
|
||||
string strQueryVRFY = "SELECT * FROM ( " +
|
||||
"SELECT *, ROW_NUMBER() OVER(PARTITION BY StepID ORDER BY StepVersion DESC) " +
|
||||
"AS RN FROM [" + strGetVRFYTableName + "] WITH (NOLOCK, INDEX=[CSK_VRFY_Release_2]) WHERE TestListFileNo = " + nTestListFileNo + " " +
|
||||
"AND StepVersion <= " + nReadStepVersion + ") X WHERE RN = 1 ORDER BY X.StepID ASC;";
|
||||
|
||||
thisConnInfo[nConnId].dsLatestVRFYRel = QueryStreamProcess(eConnCategory.Main, strQueryVRFY);
|
||||
|
||||
thisConnInfo[nConnId].dsLongTermLatestVRFYRel = thisConnInfo[nConnId].dsLatestVRFYRel.Copy();
|
||||
|
||||
DataColumn[] keys1 = new DataColumn[1];
|
||||
keys1[0] = new DataColumn();
|
||||
keys1[0] = thisConnInfo[nConnId].dsLatestVRFYRel.Tables[0].Columns["StepID"];
|
||||
|
||||
thisConnInfo[nConnId].dsLatestVRFYRel.Tables[0].PrimaryKey = keys1;
|
||||
|
||||
DataColumn[] keys2 = new DataColumn[1];
|
||||
keys2[0] = new DataColumn();
|
||||
keys2[0] = thisConnInfo[nConnId].dsLongTermLatestVRFYRel.Tables[0].Columns["StepID"];
|
||||
|
||||
thisConnInfo[nConnId].dsLongTermLatestVRFYRel.Tables[0].PrimaryKey = keys2;
|
||||
|
||||
thisConnInfo[nConnId].nLastQueryTLFileNumber = nTestListFileNo;
|
||||
thisConnInfo[nConnId].nLastQueryTLVariantNumber = nTestListVariantNo;
|
||||
thisConnInfo[nConnId].nLastQueryTLStepVersion = nReadStepVersion;
|
||||
|
||||
thisConnInfo[nConnId].bQueryVRFYLoaded = true;
|
||||
}
|
||||
catch
|
||||
{
|
||||
MessageOutput.ConsoleWrite(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss>>") + strProcessDebugInfo +
|
||||
@" CpLogProcess Failed to get list from [" + strGetVRFYTableName + "]. [SystemX.Net.MiddlewareUI : MainForm.ReadVRFYList]", ConsoleColor.Red, LogMessageLevel.FATAL);
|
||||
|
||||
throw new Exception();
|
||||
}
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,456 @@
|
||||
using DevExpress.Data.Helpers;
|
||||
using DevExpress.XtraBars;
|
||||
using DevExpress.XtraBars.Navigation;
|
||||
|
||||
using System;
|
||||
using System.Net;
|
||||
using System.Net.Sockets;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Data.SqlClient;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using System.Xml.Linq;
|
||||
using System.IO;
|
||||
using System.Diagnostics;
|
||||
|
||||
using SystemX.Net;
|
||||
using SystemX.Common;
|
||||
using SystemX.Net.BaseProtocol;
|
||||
using SystemX.Net.Comm;
|
||||
using SystemX.Net.Schedule;
|
||||
using SystemX.Net.DB.LogProcess;
|
||||
using SystemX.Common.Serialization;
|
||||
using SystemX.Common.Archive;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
//using SystemX.Common.Protocol.SIA;
|
||||
|
||||
using SystemX.Net.Middleware.Log.Commons;
|
||||
|
||||
using static SystemX.Net.Platform.Common.Util.LogMessage;
|
||||
using System.Threading;
|
||||
using static SystemX.Net.DB.LogProcess.XLogDBConnManager;
|
||||
|
||||
namespace SystemX.Net.MiddlewareUI
|
||||
{
|
||||
public partial class MainForm : DevExpress.XtraBars.FluentDesignSystem.FluentDesignForm
|
||||
{
|
||||
private bool IsImageExtension(string strFileNameInfo, bool bOnlyExtension = true)
|
||||
{
|
||||
if (bOnlyExtension)
|
||||
return -1 != Array.IndexOf(COMMON.mediaExtensions, strFileNameInfo.ToUpperInvariant());
|
||||
else
|
||||
return -1 != Array.IndexOf(COMMON.mediaExtensions, Path.GetExtension(strFileNameInfo).ToUpperInvariant());
|
||||
}
|
||||
|
||||
public List<byte[]> QueryStreamProcess(string strGetQuery, out byte[] ucQueryByteArray, out DataSet setResultDataSet)
|
||||
{
|
||||
SqlDataReader xSqlReader = null;
|
||||
|
||||
int iFieldCnt = 0;
|
||||
int iRecordsAffectedCnt = 0;
|
||||
bool bHasRow = false;
|
||||
|
||||
ucQueryByteArray = null;
|
||||
|
||||
setResultDataSet = null;
|
||||
|
||||
DataSet ds = new DataSet();
|
||||
DataTable dt = new DataTable();
|
||||
|
||||
DataSet getDS = Task.Run(() =>
|
||||
{
|
||||
try
|
||||
{
|
||||
try
|
||||
{
|
||||
xSqlReader = MngDBLogConn.CurrentConnection(eConnCategory.Main).QueryDatabase(strGetQuery);
|
||||
|
||||
if (xSqlReader != null)
|
||||
{
|
||||
iFieldCnt = xSqlReader.FieldCount;
|
||||
iRecordsAffectedCnt = xSqlReader.RecordsAffected;
|
||||
bHasRow = xSqlReader.HasRows;
|
||||
|
||||
dt.Load(xSqlReader);
|
||||
ds.Tables.Add(dt);
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
MessageOutput.ConsoleWrite(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss>>") + @"<" + strGetQuery + "> Query process fail![SystemX.Net.MiddlewareUI : MainForm.QueryProcess]\r\n" + e.Message, ConsoleColor.Yellow, LogMessageLevel.DEBUG);
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (xSqlReader != null)
|
||||
xSqlReader.Close();
|
||||
|
||||
xSqlReader = null;
|
||||
}
|
||||
|
||||
return ds;
|
||||
}).Result;
|
||||
|
||||
if(XCommons.isHasRow(ds))
|
||||
setResultDataSet = ds.Copy();
|
||||
|
||||
List<byte[]> getStreamList = XCommons.ObjectToByteStreamList(new BASE_PROTOCOL(BASE_PROTOCOL.PROTOCOL_CODE.RAW_SIZE), getDS);
|
||||
|
||||
return getStreamList;
|
||||
}
|
||||
|
||||
public void QueryResultRemake(DataSet dsResult, int iSetFieldCnt, int iSetRecordsAffectedCnt, bool bSetHasRow, out byte[] ucQueryByteArray, params string[] strParameters)
|
||||
{
|
||||
int iFieldCnt = iSetFieldCnt;
|
||||
int iRecordsAffectedCnt = iSetRecordsAffectedCnt;
|
||||
bool bHasRow = bSetHasRow;
|
||||
|
||||
ucQueryByteArray = null;
|
||||
|
||||
ucQueryByteArray = XCommons.ObjectToByteStream(new BASE_PROTOCOL(BASE_PROTOCOL.PROTOCOL_CODE.DATASET_TRANSEFER),
|
||||
dsResult,
|
||||
null,
|
||||
0,
|
||||
iRecordsAffectedCnt,
|
||||
bHasRow,
|
||||
iFieldCnt,
|
||||
strParameters);
|
||||
}
|
||||
|
||||
public Tuple<DataSet, int, int, bool> QueryProcess(string strGetQuery, out byte[] ucQueryByteArray, params string[] strParameters)
|
||||
{
|
||||
SqlDataReader xSqlReader = null;
|
||||
|
||||
int iFieldCnt = 0;
|
||||
int iRecordsAffectedCnt = 0;
|
||||
bool bHasRow = false;
|
||||
|
||||
ucQueryByteArray = null;
|
||||
|
||||
DataSet getDS = Task.Run(() =>
|
||||
{
|
||||
DataSet ds = new DataSet();
|
||||
DataTable dt = new DataTable();
|
||||
|
||||
try
|
||||
{
|
||||
try
|
||||
{
|
||||
xSqlReader = MngDBLogConn.CurrentConnection(eConnCategory.Main).QueryDatabase(strGetQuery);
|
||||
|
||||
if (xSqlReader != null)
|
||||
{
|
||||
iFieldCnt = xSqlReader.FieldCount;
|
||||
iRecordsAffectedCnt = xSqlReader.RecordsAffected;
|
||||
bHasRow = xSqlReader.HasRows;
|
||||
|
||||
dt.Load(xSqlReader);
|
||||
ds.Tables.Add(dt);
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
MessageOutput.ConsoleWrite(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss>>") + @"<" + strGetQuery + "> Query process fail![SystemX.Net.MiddlewareUI : MainForm.QueryProcess]\r\n" + e.Message, ConsoleColor.Yellow, LogMessageLevel.DEBUG);
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (xSqlReader != null)
|
||||
xSqlReader.Close();
|
||||
|
||||
xSqlReader = null;
|
||||
}
|
||||
|
||||
return ds;
|
||||
}).Result;
|
||||
|
||||
ucQueryByteArray = XCommons.ObjectToByteStream(new BASE_PROTOCOL(BASE_PROTOCOL.PROTOCOL_CODE.DATASET_TRANSEFER),
|
||||
getDS,
|
||||
null,
|
||||
0,
|
||||
iRecordsAffectedCnt,
|
||||
bHasRow,
|
||||
iFieldCnt,
|
||||
strParameters);
|
||||
|
||||
return new Tuple<DataSet, int, int, bool>(getDS, iRecordsAffectedCnt, iFieldCnt, bHasRow);
|
||||
}
|
||||
|
||||
private bool ExcuteNonQueryCommandProcess(SqlCommand cmd)
|
||||
{
|
||||
return Task.Run(() =>
|
||||
{
|
||||
bool bExcuteResult = true;
|
||||
|
||||
try
|
||||
{
|
||||
try
|
||||
{
|
||||
bExcuteResult = MngDBLogConn.CurrentConnection(eConnCategory.Main).ExecuteNonCommandQuery(cmd);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
bExcuteResult = false;
|
||||
|
||||
MessageOutput.ConsoleWrite(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss>>") + @"<" + cmd.CommandText + "> Query excute fail![SystemX.Net.MiddlewareUI : MainForm.AsyncExcuteNonQueryProcess]\r\n" + e.Message, ConsoleColor.Yellow, LogMessageLevel.DEBUG);
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
;
|
||||
}
|
||||
|
||||
return bExcuteResult;
|
||||
}).Result;
|
||||
}
|
||||
|
||||
private bool ExcuteNonQueryStreamProcess(eConnCategory eConnType, SqlCommand cmd)
|
||||
{
|
||||
return Task.Run(() =>
|
||||
{
|
||||
bool bExcuteResult = true;
|
||||
|
||||
try
|
||||
{
|
||||
try
|
||||
{
|
||||
bExcuteResult = MngDBLogConn.CurrentConnection(eConnType).ExecuteNonStreamQuery(cmd);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
bExcuteResult = false;
|
||||
|
||||
MessageOutput.ConsoleWrite(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss>>") + @"<" + cmd.CommandText + "> Query excute fail![SystemX.Net.MiddlewareUI : MainForm.AsyncExcuteNonQueryProcess]\r\n" + e.Message, ConsoleColor.Yellow, LogMessageLevel.DEBUG);
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
;
|
||||
}
|
||||
|
||||
return bExcuteResult;
|
||||
}).Result;
|
||||
}
|
||||
|
||||
private DataSet QueryCommandProcess(eConnCategory eConnType, string strGetQuery, bool bUseTransaction = false)
|
||||
{
|
||||
return Task.Run(() =>
|
||||
{
|
||||
DataSet ds = new DataSet();
|
||||
DataTable dt = new DataTable();
|
||||
|
||||
try
|
||||
{
|
||||
SqlDataReader xSqlReader = null;
|
||||
|
||||
try
|
||||
{
|
||||
int iFieldCnt = 0;
|
||||
int iRecordsAffectedCnt = 0;
|
||||
bool bHasRow = false;
|
||||
|
||||
try
|
||||
{
|
||||
xSqlReader = MngDBLogConn.CurrentConnection(eConnType).QueryCommandDatabase(strGetQuery, bUseTransaction);
|
||||
|
||||
if (xSqlReader != null)
|
||||
{
|
||||
iFieldCnt = xSqlReader.FieldCount;
|
||||
iRecordsAffectedCnt = xSqlReader.RecordsAffected;
|
||||
bHasRow = xSqlReader.HasRows;
|
||||
|
||||
dt.Load(xSqlReader);
|
||||
ds.Tables.Add(dt);
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
MessageOutput.ConsoleWrite(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss>>") + @"<" + strGetQuery + "> Query process fail![SystemX.Net.MiddlewareUI : MainForm.AsyncQueryProcess]\r\n" + e.Message, ConsoleColor.Yellow, LogMessageLevel.DEBUG);
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (xSqlReader != null)
|
||||
xSqlReader.Close();
|
||||
|
||||
xSqlReader = null;
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
;
|
||||
}
|
||||
|
||||
return ds;
|
||||
}).Result;
|
||||
}
|
||||
|
||||
private DataSet QueryStreamProcess(eConnCategory eConnType, string strGetQuery)
|
||||
{
|
||||
return Task.Run(() =>
|
||||
{
|
||||
DataSet ds = new DataSet();
|
||||
DataTable dt = new DataTable();
|
||||
|
||||
try
|
||||
{
|
||||
SqlDataReader xSqlReader = null;
|
||||
|
||||
try
|
||||
{
|
||||
int iFieldCnt = 0;
|
||||
int iRecordsAffectedCnt = 0;
|
||||
bool bHasRow = false;
|
||||
|
||||
try
|
||||
{
|
||||
xSqlReader = MngDBLogConn.CurrentConnection(eConnType).QueryStreamDatabase(strGetQuery);
|
||||
|
||||
if (xSqlReader != null)
|
||||
{
|
||||
iFieldCnt = xSqlReader.FieldCount;
|
||||
iRecordsAffectedCnt = xSqlReader.RecordsAffected;
|
||||
bHasRow = xSqlReader.HasRows;
|
||||
|
||||
dt.Load(xSqlReader);
|
||||
ds.Tables.Add(dt);
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
MessageOutput.ConsoleWrite(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss>>") + @"<" + strGetQuery + "> Query process fail![SystemX.Net.MiddlewareUI : MainForm.AsyncQueryProcess]\r\n" + e.Message, ConsoleColor.Yellow, LogMessageLevel.DEBUG);
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (xSqlReader != null)
|
||||
xSqlReader.Close();
|
||||
|
||||
xSqlReader = null;
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
;
|
||||
}
|
||||
|
||||
return ds;
|
||||
}).Result;
|
||||
}
|
||||
|
||||
private DataSet QueryStreamProcess(eConnCategory eConnType, string strGetQuery, ref int nRecAffectedCnt)
|
||||
{
|
||||
nRecAffectedCnt = -2;
|
||||
|
||||
int iFieldCnt = 0;
|
||||
int iRecordsAffectedCnt = -2;
|
||||
bool bHasRow = false;
|
||||
|
||||
DataSet dsResult = null;
|
||||
|
||||
dsResult = Task.Run(() =>
|
||||
{
|
||||
DataSet ds = new DataSet();
|
||||
DataTable dt = new DataTable();
|
||||
|
||||
try
|
||||
{
|
||||
SqlDataReader xSqlReader = null;
|
||||
|
||||
try
|
||||
{
|
||||
|
||||
try
|
||||
{
|
||||
xSqlReader = MngDBLogConn.CurrentConnection(eConnType).QueryStreamDatabase(strGetQuery);
|
||||
|
||||
if (xSqlReader != null)
|
||||
{
|
||||
iFieldCnt = xSqlReader.FieldCount;
|
||||
//Default -2 Fail 0 Select -1
|
||||
iRecordsAffectedCnt = xSqlReader.RecordsAffected;
|
||||
bHasRow = xSqlReader.HasRows;
|
||||
|
||||
dt.Load(xSqlReader);
|
||||
ds.Tables.Add(dt);
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
MessageOutput.ConsoleWrite(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss>>") + @"<" + strGetQuery + "> Query process fail![SystemX.Net.MiddlewareUI : MainForm.AsyncQueryProcess]\r\n" + e.Message, ConsoleColor.Yellow, LogMessageLevel.DEBUG);
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (xSqlReader != null)
|
||||
xSqlReader.Close();
|
||||
|
||||
xSqlReader = null;
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
;
|
||||
}
|
||||
|
||||
return ds;
|
||||
}).Result;
|
||||
|
||||
nRecAffectedCnt = iRecordsAffectedCnt;
|
||||
|
||||
return dsResult;
|
||||
}
|
||||
|
||||
private DataSet QueryProcess(string strGetQuery)
|
||||
{
|
||||
return Task.Run(() =>
|
||||
{
|
||||
SqlDataReader xSqlReader = null;
|
||||
|
||||
DataSet ds = new DataSet();
|
||||
DataTable dt = new DataTable();
|
||||
|
||||
int iFieldCnt = 0;
|
||||
int iRecordsAffectedCnt = 0;
|
||||
bool bHasRow = false;
|
||||
|
||||
try
|
||||
{
|
||||
try
|
||||
{
|
||||
xSqlReader = MngDBLogConn.CurrentConnection(eConnCategory.Main).QueryDatabaseSub(strGetQuery);
|
||||
|
||||
if (xSqlReader != null)
|
||||
{
|
||||
iFieldCnt = xSqlReader.FieldCount;
|
||||
iRecordsAffectedCnt = xSqlReader.RecordsAffected;
|
||||
bHasRow = xSqlReader.HasRows;
|
||||
|
||||
dt.Load(xSqlReader);
|
||||
ds.Tables.Add(dt);
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
MessageOutput.ConsoleWrite(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss>>") + @"<" + strGetQuery + "> Query process fail![SystemX.Net.MiddlewareUI : MainForm.QueryProcess]\r\n" + e.Message, ConsoleColor.Yellow, LogMessageLevel.DEBUG);
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (xSqlReader != null)
|
||||
xSqlReader.Close();
|
||||
|
||||
xSqlReader = null;
|
||||
}
|
||||
|
||||
return ds;
|
||||
}).Result;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,701 @@
|
||||
using DevExpress.Data.Helpers;
|
||||
using DevExpress.XtraBars;
|
||||
using DevExpress.XtraBars.Navigation;
|
||||
|
||||
using System;
|
||||
using System.Net;
|
||||
using System.Net.Sockets;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Data.SqlClient;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using System.Xml.Linq;
|
||||
using System.IO;
|
||||
using System.IO.Compression;
|
||||
using System.Diagnostics;
|
||||
|
||||
using SystemX.Net;
|
||||
using SystemX.Common;
|
||||
using SystemX.Net.BaseProtocol;
|
||||
using SystemX.Net.Comm;
|
||||
using SystemX.Net.Schedule;
|
||||
using SystemX.Net.DB.LogProcess;
|
||||
using SystemX.Common.Serialization;
|
||||
using SystemX.Common.Archive;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
//using SystemX.Common.Protocol.SIA;
|
||||
|
||||
using static SystemX.Net.Platform.Common.Util.LogMessage;
|
||||
using System.Threading;
|
||||
using SystemX.Net.Middleware.Log.Commons;
|
||||
using SystemX.Net.Platform.SystemX.Common;
|
||||
using static SystemX.Net.DB.LogProcess.XLogDBConnManager;
|
||||
using SystemX.Net.Middleware.Log.DeleteProc;
|
||||
using SystemX.Net.Comm.IIS_FTP;
|
||||
|
||||
namespace SystemX.Net.MiddlewareUI
|
||||
{
|
||||
public partial class MainForm : DevExpress.XtraBars.FluentDesignSystem.FluentDesignForm
|
||||
{
|
||||
private async void WatchRecvStreamQueue()
|
||||
{
|
||||
await Task.Delay(250);
|
||||
|
||||
stCheckTermBulkWaitTime.Start();
|
||||
while (!m_bTaskStreamBlock)
|
||||
{
|
||||
try
|
||||
{
|
||||
CT.ThrowIfCancellationRequested();
|
||||
}
|
||||
catch (OperationCanceledException CancelEx)
|
||||
{
|
||||
MessageOutput.ConsoleWrite(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss>>") + @" Work Canceled. [SystemX.Net.MiddlewareUI : MainForm.WatchRecvStreamQueue]\r\n" + CancelEx.Message, ConsoleColor.Yellow, LogMessageLevel.DEBUG);
|
||||
|
||||
break;
|
||||
}
|
||||
//
|
||||
try
|
||||
{
|
||||
if (bDatabaseConnResult == false)
|
||||
continue;
|
||||
|
||||
if (MngDBLogConn.GetMainDBAccessTime() >= 120000)
|
||||
QueryStreamProcess(eConnCategory.Main, "SELECT GETDATE() AS 'CHECK PING';");
|
||||
if (MngDBLogConn.GetShortTermDBAccessTime() >= 120000)
|
||||
QueryStreamProcess(eConnCategory.ShortTerm, "SELECT GETDATE() AS 'CHECK PING';");
|
||||
if (MngDBLogConn.GetLongTermDBAccessTime() >= 120000)
|
||||
QueryStreamProcess(eConnCategory.LongTerm, "SELECT GETDATE() AS 'CHECK PING';");
|
||||
|
||||
nBulkLogCount = lstBulkTermLogInfo.Count;
|
||||
nBulkLongTermCount = lstBulkShortTermLog.Count;
|
||||
nBulkShortTermCount = lstBulkLongTermLog.Count;
|
||||
nBulkTimeValue = stCheckTermBulkWaitTime.ElapsedMilliseconds;
|
||||
|
||||
if (stCheckTermBulkWaitTime.ElapsedMilliseconds >= LoadInfo.BULK_ProcessTime_ms || bTryBulkInsertBuffer)
|
||||
{
|
||||
Stopwatch stMeasProcTime = new Stopwatch();
|
||||
|
||||
if (lstBulkTermLogInfo.Count > 0)
|
||||
{
|
||||
stMeasProcTime.Start();
|
||||
|
||||
foreach (string str in lstBulkTermLogInfo.ToArray())
|
||||
{
|
||||
LogDataRecvText.Enqueue(new StringBuilder(str));
|
||||
LogDataRecvText.Enqueue(new StringBuilder("\r\n"));
|
||||
}
|
||||
|
||||
lstBulkTermLogInfo.Clear();
|
||||
}
|
||||
//
|
||||
if(lstBulkShortTermLog.Count > 0)
|
||||
SetLogDataInsertProc(eConnCategory.ShortTerm);
|
||||
if (lstBulkLongTermLog.Count > 0)
|
||||
SetLogDataInsertProc(eConnCategory.LongTerm);
|
||||
|
||||
BULK_INSERT_EXIT:
|
||||
|
||||
if (stMeasProcTime.IsRunning)
|
||||
{
|
||||
LogDataRecvText.Enqueue(new StringBuilder(">>[BulkInsert-Process][" + stMeasProcTime.ElapsedMilliseconds.ToString() + "]\r\n"));
|
||||
|
||||
//Check Server Time And Db Change
|
||||
bDatabaseConnResult = MngDBLogConn.CheckDatabaseConnection();
|
||||
}
|
||||
|
||||
bTryBulkInsertBuffer = false;
|
||||
|
||||
stCheckTermBulkWaitTime.Restart();
|
||||
}
|
||||
|
||||
//Map Log File Check
|
||||
if (bTaskStreamWaitLock == false)
|
||||
QueryRecvStreamQueue();
|
||||
|
||||
// TODO : FTP ALIS
|
||||
if (StateFTP != eFTPServiceStatus.Connected)
|
||||
goto ROUTINE_END;
|
||||
|
||||
//FTP Server Check
|
||||
nFTPTimeValue = stProcessCheckFTPTime.ElapsedMilliseconds;
|
||||
|
||||
if (stProcessCheckFTPTime.ElapsedMilliseconds >= LoadInfo.FTP_ScanTime_ms)
|
||||
{
|
||||
List<string> lstFile = ControlFTP.PositionRootCheckList();
|
||||
|
||||
List<string> lstDownlaodFile = new List<string>();
|
||||
List<string> lstDeleteFailedFile = new List<string>();
|
||||
|
||||
if (lstFile.Count == 0)
|
||||
goto BRANCH_EXIT;
|
||||
|
||||
string strGetDownloadPath = GetFTPDownloadPath();
|
||||
|
||||
foreach (string f in lstFile)
|
||||
lstDownlaodFile.Add(await ControlFTP.FileDownload(f, strGetDownloadPath));
|
||||
|
||||
foreach (string f in lstDownlaodFile)
|
||||
{
|
||||
string strGetFileName = Path.GetFileName(f);
|
||||
|
||||
if (ControlFTP.DeleteFile(strGetFileName) == false)
|
||||
lstDeleteFailedFile.Add(strGetFileName);
|
||||
}
|
||||
|
||||
BRANCH_EXIT:
|
||||
|
||||
ProcFTPCheckLogFiles();
|
||||
|
||||
foreach (string f in lstDeleteFailedFile)
|
||||
{
|
||||
string strGetFileName = Path.GetFileName(f);
|
||||
|
||||
if (ControlFTP.DeleteFile(strGetFileName) == false)
|
||||
{
|
||||
MessageOutput.ConsoleWrite(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss>>") + @"FTP > file delete process failed. [SystemX.Net.MiddlewareUI : MainForm.WatchRecvStreamQueue]\r\n", ConsoleColor.Yellow, LogMessageLevel.DEBUG);
|
||||
}
|
||||
}
|
||||
|
||||
stProcessCheckFTPTime.Restart();
|
||||
}
|
||||
|
||||
ROUTINE_END:;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
MessageOutput.ConsoleWrite(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss>>") + @"General Queue Process failed. [SystemX.Net.MiddlewareUI : MainForm.WatchRecvStreamQueue]\r\n" + e.Message, ConsoleColor.Yellow, LogMessageLevel.DEBUG);
|
||||
}
|
||||
|
||||
await Task.Delay(100);
|
||||
}
|
||||
}
|
||||
|
||||
private void SetLogDataInsertProc(eConnCategory SetCategory)
|
||||
{
|
||||
bool bBulkCopyResult = true;
|
||||
|
||||
string strSetLogTable = string.Empty;
|
||||
string strAddText = string.Empty;
|
||||
|
||||
if (SetCategory == eConnCategory.ShortTerm)
|
||||
{
|
||||
strSetLogTable = MngDBLogConn.GetDBConnectInfo().ConnShortTerm.LOG_TABLE;
|
||||
strAddText = "ShortTerm";
|
||||
}
|
||||
else if (SetCategory == eConnCategory.LongTerm)
|
||||
{
|
||||
strSetLogTable = MngDBLogConn.GetDBConnectInfo().ConnLongTerm.LOG_TABLE;
|
||||
strAddText = "LongTerm";
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
//LogData Set Bulk
|
||||
using (SqlTransaction sqlTran = MngDBLogConn.CurrentConnection(SetCategory).getConnection().BeginTransaction())
|
||||
{
|
||||
//Sql Bulk Insert 준비 - Short Log
|
||||
//Make Result Command
|
||||
SqlBulkCopy sbc = new SqlBulkCopy(sqlTran.Connection,
|
||||
SqlBulkCopyOptions.CheckConstraints |
|
||||
SqlBulkCopyOptions.FireTriggers |
|
||||
SqlBulkCopyOptions.KeepNulls, sqlTran);
|
||||
sbc.BatchSize = 5000;
|
||||
sbc.DestinationTableName = "dbo." + strSetLogTable;
|
||||
sbc.BulkCopyTimeout = 120;
|
||||
|
||||
try
|
||||
{
|
||||
// Write from the source to the destination.
|
||||
//생성된 DataRow 들을 Bulk Copy 실시
|
||||
if (SetCategory == eConnCategory.ShortTerm)
|
||||
sbc.WriteToServer(lstBulkShortTermLog.ToArray());
|
||||
else if (SetCategory == eConnCategory.LongTerm)
|
||||
sbc.WriteToServer(lstBulkLongTermLog.ToArray());
|
||||
|
||||
//if (MngDBConn.InfoConnection.UTSI_STATE)
|
||||
//{
|
||||
// //Long Log
|
||||
// SqlBulkCopy sbcL = new SqlBulkCopy(sqlTran.Connection,
|
||||
// SqlBulkCopyOptions.CheckConstraints |
|
||||
// SqlBulkCopyOptions.FireTriggers |
|
||||
// SqlBulkCopyOptions.KeepNulls, sqlTran);
|
||||
// sbcL.BatchSize = 5000;
|
||||
// sbcL.DestinationTableName = "dbo.HIST_TestResultLongTerm";
|
||||
// sbcL.BulkCopyTimeout = 120;
|
||||
//
|
||||
// sbcL.WriteToServer(SetMakeLogRows);
|
||||
//}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss>>") + $@" CPXV2 CpLogProcess fail.({strAddText} - Bulk Upload) [SystemX.Net.MiddlewareUI : MainForm.SetLogDataInsertProc]\r\n" + ex.Message, ConsoleColor.Red, LogMessageLevel.FATAL);
|
||||
|
||||
bBulkCopyResult = false;
|
||||
}
|
||||
finally
|
||||
{
|
||||
// Close the SqlDataReader. The SqlBulkCopy
|
||||
// object is automatically closed at the end
|
||||
// of the using block.
|
||||
if (bBulkCopyResult)
|
||||
{
|
||||
sqlTran.Commit();
|
||||
|
||||
if (SetCategory == eConnCategory.ShortTerm)
|
||||
lstBulkShortTermLog.Clear();
|
||||
else if (SetCategory == eConnCategory.LongTerm)
|
||||
lstBulkLongTermLog.Clear();
|
||||
|
||||
LogDataRecvText.Enqueue(new StringBuilder($"<{strAddText} - All CpLogs(Bulk)Process Result [OK]>\r\n"));
|
||||
}
|
||||
else
|
||||
{
|
||||
sqlTran.Rollback();
|
||||
|
||||
LogDataRecvText.Enqueue(new StringBuilder($"<{strAddText} - All CpLogs(Bulk)Process Result [NOK]>\r\n"));
|
||||
|
||||
//throw new Exception();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
;//
|
||||
}
|
||||
finally
|
||||
{
|
||||
;//
|
||||
}
|
||||
|
||||
if (bBulkCopyResult == false)
|
||||
{
|
||||
CommonProtocol cp = new CommonProtocol();
|
||||
|
||||
List<DataRow> lstRefRow = null;
|
||||
|
||||
if (SetCategory == eConnCategory.ShortTerm)
|
||||
lstRefRow = lstBulkShortTermLog;
|
||||
else if (SetCategory == eConnCategory.LongTerm)
|
||||
lstRefRow = lstBulkLongTermLog;
|
||||
|
||||
foreach (DataRow dr in lstRefRow)
|
||||
{
|
||||
if (Convert.ToInt64(dr["No"]) == Int64.MinValue)
|
||||
continue;
|
||||
|
||||
//Summary 객체를 이용해 DB 삽입할 SqlCommand 생성
|
||||
SqlCommand cmd = cp.LogDataResultInsert(strSetLogTable, dr);
|
||||
|
||||
//Summary 삽입 > 실패시 처리
|
||||
bool bProcessResult = ExcuteNonQueryStreamProcess(SetCategory, cmd);
|
||||
|
||||
if (bProcessResult == false)
|
||||
{
|
||||
LogDataRecvText.Enqueue(new StringBuilder($"<{strAddText} - CpLogs(Command) Process Result [NOK]>\r\n"));
|
||||
|
||||
continue;
|
||||
}
|
||||
else
|
||||
LogDataRecvText.Enqueue(new StringBuilder($"<{strAddText} - CpLogs(Command) Process Result [OK]>\r\n"));
|
||||
}
|
||||
|
||||
if (SetCategory == eConnCategory.ShortTerm)
|
||||
lstBulkShortTermLog.Clear();
|
||||
else if (SetCategory == eConnCategory.LongTerm)
|
||||
lstBulkLongTermLog.Clear();
|
||||
}
|
||||
}
|
||||
|
||||
private bool QueryRecvStreamQueue()
|
||||
{
|
||||
//StackTrace st = new StackTrace(true);
|
||||
|
||||
bool bState = true;
|
||||
|
||||
string strProcessDebugInfo = string.Empty;
|
||||
|
||||
long l1 = long.MinValue;
|
||||
long l2 = long.MinValue;
|
||||
|
||||
try
|
||||
{
|
||||
bTaskStreamWaitLock = true;
|
||||
|
||||
//Log Process
|
||||
Stopwatch stProcessTimeChk = new Stopwatch();
|
||||
stProcessTimeChk.Start();
|
||||
|
||||
for (int i = PORT_DISTRIBUTION_NUM; i < ALL_MANAGE_NUM && !m_bTaskCommandBlock; i++)
|
||||
{
|
||||
Stopwatch stItemTimeChk = new Stopwatch();
|
||||
stItemTimeChk.Start();
|
||||
|
||||
if (LogDataQueue[i].Count <= 0)
|
||||
continue;
|
||||
|
||||
LogMappedPacket LogMapFile = new LogMappedPacket();
|
||||
int nSetSize = Marshal.SizeOf(LogMapFile);
|
||||
byte[] ucSetLogArray = new byte[nSetSize];
|
||||
LogMapFile = (LogMappedPacket)SystemXNetSerialization.RawDeSerialize(ucSetLogArray, LogMapFile.GetType());
|
||||
|
||||
int iPos = LogMapFile.nNumber;
|
||||
strProcessDebugInfo = "[" + (iPos).ToString("D2") + "]" +
|
||||
"[" + LogMapFile.nCommandPort + "]" +
|
||||
"[" + LogMapFile.objHost[0].Data + "]" +
|
||||
"[" + LogMapFile.objSection[0].Data + "]";
|
||||
//
|
||||
if (LogDataQueue[i].TryPeek(out LogMapFile)) //LogDataQueue[i].TryDequeue(out LogMapFile))
|
||||
{
|
||||
if (bShowCpLogProcessTime)
|
||||
LogMapFile.bShowCpLogProcessTime = true;
|
||||
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.Append("[" + (++nDequeueCount).ToString() + "][TryDequeue]");
|
||||
sb.Append("[");
|
||||
sb.Append(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"));
|
||||
sb.Append("], ");
|
||||
sb.Append("Type [" + LogMapFile.objLogType[0].Data.ToString() + "], ");
|
||||
sb.Append("S Port [" + LogMapFile.nStreamPort.ToString() + "], ");
|
||||
sb.Append("C Port [" + LogMapFile.nCommandPort.ToString() + "], ");
|
||||
sb.Append("Size [" + LogMapFile.nLogDataSize.ToString() + "], ");
|
||||
sb.Append("Number [" + LogMapFile.nNumber.ToString() + "], ");
|
||||
sb.Append("Host [" + LogMapFile.objHost[0].Data + "], ");
|
||||
sb.Append("Section [" + LogMapFile.objSection[0].Data + "], ");
|
||||
sb.Append("St Name [" + LogMapFile.objStationName[0].Data + "], ");
|
||||
sb.Append("St ID [" + LogMapFile.nStationID.ToString() + "], ");
|
||||
sb.Append("File Name [" + LogMapFile.objOptionFileName[0].Data + "], ");
|
||||
sb.Append("File Extension [" + LogMapFile.objOptionFileExtension[0].Data + "] ");
|
||||
sb.Append("TL ID[" + LogMapFile.objResultTestListCntID[0].Data + "], ");
|
||||
sb.Append("V[" + LogMapFile.objProdPNo[0].Data + "], ");
|
||||
sb.Append("PN[" + LogMapFile.objProdCNo[0].Data + "], ");
|
||||
sb.Append("TT[" + LogMapFile.objTestType[0].Data + "], ");
|
||||
sb.Append("TC[" + LogMapFile.objTestCode[0].Data + "], ");
|
||||
sb.Append("Ver[" + LogMapFile.objVersion[0].Data + "], ");
|
||||
sb.Append("PC[" + LogMapFile.objProdCode[0].Data + "], ");
|
||||
sb.Append("DB V No[" + LogMapFile.nTestListVariantNo.ToString() + "], ");
|
||||
|
||||
if (nDequeueCount >= Int64.MaxValue)
|
||||
nDequeueCount = 0;
|
||||
|
||||
bool bProcResult = false;
|
||||
|
||||
if (MngDBLogConn.GetDBConnectInfo().ConnVersion == XDBConnInfo.eVersion.CPX)
|
||||
{
|
||||
sb.Append("!Use Log Process Version [CPX] - No longer supported.");
|
||||
|
||||
//bProcResult = CPX_CpLogProcess(LogMapFile);
|
||||
|
||||
bProcResult = false;
|
||||
}
|
||||
else if (MngDBLogConn.GetDBConnectInfo().ConnVersion == XDBConnInfo.eVersion.CPXV2)
|
||||
{
|
||||
bProcResult = CPXV2_CpLogProcess(LogMapFile);
|
||||
|
||||
if(bProcResult == true)
|
||||
lstBulkTermLogInfo.Add(sb.ToString());
|
||||
|
||||
sb.Append("!Use Log Process Version [CPXV2] ");
|
||||
}
|
||||
|
||||
if (bProcResult)
|
||||
sb.Append("<CpLogProcess Make Log Result [OK]>");
|
||||
else
|
||||
sb.Append("<CpLogProcess Make Log Result [NOK]>");
|
||||
|
||||
sb.AppendLine();
|
||||
|
||||
LogDataProcessText.Enqueue(sb);
|
||||
|
||||
if (LogDataQueue[i].TryDequeue(out LogMapFile) == false)
|
||||
{
|
||||
if (LogDataQueue[i].TryDequeue(out LogMapFile) == false)
|
||||
{
|
||||
MessageOutput.ConsoleWrite(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss>>") + strProcessDebugInfo + @" Recv queue try-dequeue failed. [SystemX.Net.MiddlewareUI : MainForm.QueryRecvStreamQueue]\r\n", ConsoleColor.Yellow, LogMessageLevel.DEBUG);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
l2 = stItemTimeChk.ElapsedMilliseconds;
|
||||
}
|
||||
|
||||
l1 = stProcessTimeChk.ElapsedMilliseconds;
|
||||
|
||||
if (l1 != long.MinValue && l2 != long.MinValue)
|
||||
{
|
||||
LogDataProcessText.Enqueue(new StringBuilder(">>[TryDequeue-Process][" + l1.ToString() + "][TryDequeue-Item][" + l2.ToString() + "]\r\n"));
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
MessageOutput.ConsoleWrite(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss>>") + strProcessDebugInfo + @" Recv queue stream process unknown fail. [SystemX.Net.MiddlewareUI : MainForm.QueryRecvStreamQueue]\r\n" + e.Message, ConsoleColor.Yellow, LogMessageLevel.DEBUG);
|
||||
|
||||
bState = false;
|
||||
}
|
||||
finally
|
||||
{
|
||||
bTaskStreamWaitLock = false;
|
||||
}
|
||||
|
||||
return bState;
|
||||
}
|
||||
|
||||
// TODO : FTP ALIS
|
||||
internal eFTPServiceStatus StartFTPService()
|
||||
{
|
||||
ControlFTP = new CtrlFTP(LoadInfo.FTP_Use,
|
||||
IPAddress.Parse(LoadInfo.FTP_IPAddress), Convert.ToInt32(LoadInfo.FTP_Port),
|
||||
LoadInfo.FTP_Account, LoadInfo.FTP_Password);
|
||||
|
||||
if (ControlFTP.FTPConnState)
|
||||
return eFTPServiceStatus.Connected;
|
||||
else
|
||||
return eFTPServiceStatus.Disconnected;
|
||||
}
|
||||
|
||||
private string GetFTPDownloadPath()
|
||||
{
|
||||
string strYYYY = DateTime.Today.ToString("yyyy");
|
||||
string strMM = DateTime.Today.ToString("MM");
|
||||
string strdd = DateTime.Today.ToString("dd");
|
||||
|
||||
string strHHmmssfff = DateTime.Now.ToString("HHmmssfff");
|
||||
string strGetRoot = Path.GetPathRoot(Environment.CurrentDirectory);
|
||||
string DirPath = @strGetRoot + $@"\XProc\FTP\CpLog\{strYYYY}\{strMM}\{strdd}\";
|
||||
|
||||
//string CpLogDirPath = @strGetRoot + $@"XProcCpLog\Temp\{strYYYY}\{strMM}\{strdd}\{strHHmmssfff}\";
|
||||
|
||||
DirectoryInfo di1 = new DirectoryInfo(@DirPath);
|
||||
if (!di1.Exists) Directory.CreateDirectory(@DirPath);
|
||||
|
||||
//DirectoryInfo di2 = new DirectoryInfo(@CpLogDirPath);
|
||||
//if (!di2.Exists) Directory.CreateDirectory(@CpLogDirPath);
|
||||
|
||||
return DirPath;
|
||||
}
|
||||
|
||||
private void ProcFTPCheckLogFiles()
|
||||
{
|
||||
//Scan And Send File
|
||||
string strGetRoot = Path.GetPathRoot(Environment.CurrentDirectory);
|
||||
|
||||
//오늘 포함 -6일전까지 검색
|
||||
string[] strScanYYYY = new string[7];
|
||||
string[] strScanMM = new string[7];
|
||||
string[] strScandd = new string[7];
|
||||
|
||||
for (int n = 6; n >= 0; n--)
|
||||
{
|
||||
DateTime dtSet = DateTime.Today.AddDays(-n);
|
||||
strScanYYYY[n] = dtSet.ToString("yyyy");
|
||||
strScanMM[n] = dtSet.ToString("MM");
|
||||
strScandd[n] = dtSet.ToString("dd");
|
||||
}
|
||||
//
|
||||
// 7일치 위치 확인
|
||||
//
|
||||
for (int n = 0; n < 7; n++)
|
||||
{
|
||||
string DirPath = strGetRoot + $@"\XProc\FTP\CpLog\{strScanYYYY[n]}\{strScanMM[n]}\{strScandd[n]}\";
|
||||
string DirMovePath = strGetRoot + $@"\XProc\FTP\CpLog\{strScanYYYY[n]}\{strScanMM[n]}\{strScandd[n]}\History\";
|
||||
|
||||
//생성 폴더가 없을경우 SKIP
|
||||
if (Directory.Exists(DirPath) == false)
|
||||
continue;
|
||||
|
||||
if (Directory.Exists(DirMovePath) == false)
|
||||
Directory.CreateDirectory(DirMovePath);
|
||||
|
||||
string fileExtension = "zip";
|
||||
|
||||
string[] dirs = Directory.GetDirectories(DirPath);
|
||||
string[] files = Directory.GetFiles(DirPath, $"*.{fileExtension}", SearchOption.TopDirectoryOnly);
|
||||
|
||||
if (files.Length <= 0)
|
||||
continue;
|
||||
|
||||
ProcFTPLogFiles(files, DirPath, DirMovePath);
|
||||
}
|
||||
}
|
||||
|
||||
private void ProcFTPLogFiles(string[] strArrFiles, string strReadDirPath, string strMoveDirPath)
|
||||
{
|
||||
string strExtractFilePos = string.Empty;
|
||||
string strOrgRemoveFilePos = string.Empty;
|
||||
|
||||
string strHeaderInfo = string.Empty;
|
||||
string strLogFileNameInfo = string.Empty;
|
||||
|
||||
long l1 = long.MinValue;
|
||||
|
||||
//Log Process
|
||||
Stopwatch stProcessTimeChk = new Stopwatch();
|
||||
stProcessTimeChk.Start();
|
||||
|
||||
foreach (string f in strArrFiles)
|
||||
{
|
||||
strOrgRemoveFilePos = f;
|
||||
|
||||
strHeaderInfo = string.Empty;
|
||||
strLogFileNameInfo = string.Empty;
|
||||
|
||||
string[] strInfos = f.Split(';');
|
||||
|
||||
//파일정보 확인(로그 저장관련 정보)
|
||||
/*
|
||||
string strSetDateTime = strInfos[1];
|
||||
string strSetStationName = strInfos[2];
|
||||
int nSetTestListVariantNo = int.Parse(strInfos[3]);
|
||||
string strSetProcNoP = strInfos[4];
|
||||
string strSetProcNoC = strInfos[5];
|
||||
string strSetTestType = strInfos[6];
|
||||
string strSetTestCode = strInfos[7];
|
||||
string strSetVersion = strInfos[8];
|
||||
string strSetProdCode = strInfos[9];
|
||||
string strSetTestListCntID = strInfos[10];
|
||||
string strHost = strInfos[11];
|
||||
string strSection = strInfos[12];
|
||||
*/
|
||||
int nSetTryNo = int.Parse(strInfos[13]);
|
||||
|
||||
Dictionary<string, string> dicSetLogInfo = new Dictionary<string, string>();
|
||||
dicSetLogInfo.Add("DATE_TIME", strInfos[1]);
|
||||
dicSetLogInfo.Add("STATION_NAME", strInfos[2]);
|
||||
dicSetLogInfo.Add("VARIANT_NO", strInfos[3]);
|
||||
dicSetLogInfo.Add("P_TTNR", strInfos[4]);
|
||||
dicSetLogInfo.Add("TTNR", strInfos[5]);
|
||||
dicSetLogInfo.Add("TEST_TYPE", strInfos[6]);
|
||||
dicSetLogInfo.Add("TEST_CODE", strInfos[7]);
|
||||
dicSetLogInfo.Add("VERSION", strInfos[8]);
|
||||
dicSetLogInfo.Add("PROD_CODE", strInfos[9]);
|
||||
dicSetLogInfo.Add("TESTLIST_ID", strInfos[10]);
|
||||
dicSetLogInfo.Add("HOST", strInfos[11]);
|
||||
dicSetLogInfo.Add("SECTION", strInfos[12]);
|
||||
|
||||
for (int m = 1; m < 12; m++)
|
||||
strHeaderInfo += (strInfos[m + 1] + ";");
|
||||
|
||||
strHeaderInfo = strHeaderInfo.Remove(strHeaderInfo.Length - 1, 1);
|
||||
|
||||
//압축해제 하여 로그 파일 추출
|
||||
using (FileStream fs = new FileStream(f, FileMode.Open))
|
||||
using (ZipArchive zip = new ZipArchive(fs, ZipArchiveMode.Update, false))
|
||||
{
|
||||
foreach (ZipArchiveEntry zae in zip.Entries)
|
||||
{
|
||||
strLogFileNameInfo = zae.FullName;
|
||||
|
||||
if (strLogFileNameInfo.IndexOf(".txt") >= 0)
|
||||
continue;
|
||||
|
||||
strExtractFilePos = strReadDirPath + strLogFileNameInfo;
|
||||
|
||||
//ZipFileExtensions
|
||||
zae.ExtractToFile(strExtractFilePos, true);
|
||||
}
|
||||
}
|
||||
|
||||
//Sometihing Procee
|
||||
LogMappedPacket EmptyLogMapFile = new LogMappedPacket();
|
||||
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.Append("[" + (++nDequeueCount).ToString() + "][TryDequeue]");
|
||||
sb.Append("[");
|
||||
sb.Append(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"));
|
||||
sb.Append("], ");
|
||||
sb.Append("Type [FTP], ");
|
||||
sb.Append("Host [" + dicSetLogInfo["HOST"] + "], ");
|
||||
sb.Append("Section [" + dicSetLogInfo["SECTION"] + "], ");
|
||||
sb.Append("St Name [" + dicSetLogInfo["STATION_NAME"] + "], ");
|
||||
sb.Append("File Name [" + Path.GetFileName(strExtractFilePos) + "], ");
|
||||
sb.Append("File Extension [" + Path.GetExtension(strExtractFilePos) + "] ");
|
||||
sb.Append("TL ID[" + dicSetLogInfo["TESTLIST_ID"] + "], ");
|
||||
sb.Append("V[" + dicSetLogInfo["P_TTNR"] + "], ");
|
||||
sb.Append("PN[" + dicSetLogInfo["TTNR"] + "], ");
|
||||
sb.Append("TT[" + dicSetLogInfo["TEST_TYPE"] + "], ");
|
||||
sb.Append("TC[" + dicSetLogInfo["TEST_CODE"] + "], ");
|
||||
sb.Append("Ver[" + dicSetLogInfo["VERSION"] + "], ");
|
||||
sb.Append("PC[" + dicSetLogInfo["PROD_CODE"] + "], ");
|
||||
sb.Append("DB V No[" + dicSetLogInfo["VARIANT_NO"] + "], ");
|
||||
|
||||
if (nDequeueCount >= Int64.MaxValue)
|
||||
nDequeueCount = 0;
|
||||
|
||||
bool bGetLogProcResult = CPXV2_CpLogProcess(EmptyLogMapFile, dicSetLogInfo, strExtractFilePos);
|
||||
|
||||
if (bGetLogProcResult == true)
|
||||
lstBulkTermLogInfo.Add(sb.ToString());
|
||||
|
||||
sb.Append("!Use Log Process Version [FTP-CPXV2] ");
|
||||
|
||||
if (bGetLogProcResult)
|
||||
sb.Append("<CpLogProcess Make Log Result [OK]>");
|
||||
else
|
||||
sb.Append("<CpLogProcess Make Log Result [NOK]>");
|
||||
|
||||
sb.AppendLine();
|
||||
|
||||
LogDataProcessText.Enqueue(sb);
|
||||
|
||||
l1 = stProcessTimeChk.ElapsedMilliseconds;
|
||||
|
||||
if (l1 != long.MinValue)
|
||||
{
|
||||
LogDataProcessText.Enqueue(new StringBuilder(">>[FTP-Process][" + l1.ToString() + "]\r\n"));
|
||||
}
|
||||
|
||||
//Failed
|
||||
if (bGetLogProcResult == false)
|
||||
{
|
||||
//실패시
|
||||
nSetTryNo++;
|
||||
|
||||
string strTryNo = string.Empty;
|
||||
|
||||
string strCopyPos = string.Empty;
|
||||
|
||||
//재시도 3회 초과 일시 히스토리로 이동
|
||||
if (nSetTryNo > 3)
|
||||
{
|
||||
strCopyPos = strMoveDirPath;
|
||||
|
||||
strTryNo = "X";
|
||||
}
|
||||
else
|
||||
{
|
||||
strCopyPos = strReadDirPath;
|
||||
|
||||
strTryNo = nSetTryNo.ToString();
|
||||
}
|
||||
|
||||
for (int m = 0; m < 12; m++)
|
||||
strCopyPos += (";" + strInfos[m + 1]);
|
||||
|
||||
strCopyPos += (";" + strTryNo + ";.zip");
|
||||
|
||||
File.Copy(f, strCopyPos, true);
|
||||
}
|
||||
|
||||
//압축해제 파일 삭제
|
||||
if (File.Exists(strExtractFilePos))
|
||||
File.Delete(strExtractFilePos);
|
||||
|
||||
//성공시나 실패시 새로운 파일생성 되기 때문에 기존 파일 삭제
|
||||
if (strOrgRemoveFilePos != string.Empty)
|
||||
{
|
||||
if (File.Exists(strOrgRemoveFilePos))
|
||||
File.Delete(strOrgRemoveFilePos);
|
||||
}
|
||||
|
||||
stProcessTimeChk.Restart();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,166 @@
|
||||
using DevExpress.Data.Helpers;
|
||||
using DevExpress.XtraBars;
|
||||
using DevExpress.XtraBars.Navigation;
|
||||
|
||||
using System;
|
||||
using System.Net;
|
||||
using System.Net.Sockets;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Data.SqlClient;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using System.Xml.Linq;
|
||||
using System.IO;
|
||||
using System.Diagnostics;
|
||||
|
||||
using SystemX.Net;
|
||||
using SystemX.Common;
|
||||
using SystemX.Net.BaseProtocol;
|
||||
using SystemX.Net.Comm;
|
||||
using SystemX.Net.Schedule;
|
||||
using SystemX.Net.DB.LogProcess;
|
||||
using SystemX.Common.Serialization;
|
||||
using SystemX.Common.Archive;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
//using SystemX.Common.Protocol.SIA;
|
||||
|
||||
using static SystemX.Net.Platform.Common.Util.LogMessage;
|
||||
using System.Threading;
|
||||
using SystemX.Net.Platform.Common.Util;
|
||||
using SystemX.Net.Platform.Common.ExtensionMethods;
|
||||
using SystemX.Net.Middleware.Log.Commons;
|
||||
using static SystemX.Net.DB.LogProcess.XLogDBConnManager;
|
||||
|
||||
namespace SystemX.Net.MiddlewareUI
|
||||
{
|
||||
public partial class MainForm : DevExpress.XtraBars.FluentDesignSystem.FluentDesignForm
|
||||
{
|
||||
private void Chktimer_Tick(object sender, EventArgs e)
|
||||
{
|
||||
Chktimer.Enabled = false;
|
||||
|
||||
if (MiddlewareLogStartState == false)
|
||||
{
|
||||
ConsoleUtil.ConsoleVisibleControl();
|
||||
|
||||
//The program is automatically terminated.
|
||||
MessageBox.Show("Server information could not be retrieved. Check the console error text.", "SystemX.Net.Middleware.UI.Log", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
|
||||
// TODO : FTP ALIS
|
||||
this.Close();
|
||||
}
|
||||
}
|
||||
|
||||
private void UItimer_Tick(object sender, EventArgs e)
|
||||
{
|
||||
if (m_bTimerLock[(int)TIMER_LOCK.UI_TIMER] == false)
|
||||
{
|
||||
m_bTimerLock[(int)TIMER_LOCK.UI_TIMER] = true;
|
||||
|
||||
if (bTryBulkInsertBuffer)
|
||||
{
|
||||
if (buttonBulkInsertStart.BackColor != Color.Yellow)
|
||||
buttonBulkInsertStart.BackColor = Color.Yellow;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (buttonBulkInsertStart.BackColor != Color.Silver)
|
||||
buttonBulkInsertStart.BackColor = Color.Silver;
|
||||
}
|
||||
|
||||
labelBulkCntInfo1.Text = nBulkLogCount.ToString();
|
||||
labelBulkCntInfo2.Text = nBulkShortTermCount.ToString();
|
||||
labelBulkCntInfo3.Text = nBulkLongTermCount.ToString();
|
||||
|
||||
labelBulkTime.Text = nBulkTimeValue.ToString();
|
||||
labelFTPTime.Text = nFTPTimeValue.ToString();
|
||||
|
||||
labelDBMain.Text = "Information [" + MngDBLogConn.GetDBConnectInfo().ConnMain.SCHEMA + "]";
|
||||
labelDBShortTerm.Text = "ShortTerm [" + MngDBLogConn.GetDBConnectInfo().ConnShortTerm.SCHEMA + "]";
|
||||
labelShortTermSummaryTableName.Text = "└ [" + MngDBLogConn.GetDBConnectInfo().ConnShortTerm.SUMMARY_TABLE + "]";
|
||||
labelShortTermLogTableName.Text = "└ [" + MngDBLogConn.GetDBConnectInfo().ConnShortTerm.LOG_TABLE + "]";
|
||||
labelDBLongTerm.Text = "LongTerm [" + MngDBLogConn.GetDBConnectInfo().ConnLongTerm.SCHEMA + "]";
|
||||
|
||||
if (bDatabaseConnResult)
|
||||
{
|
||||
if (panelDBMain2.BackColor != Color.LimeGreen) panelDBMain2.BackColor = Color.LimeGreen;
|
||||
if (panelDBShortTerm2.BackColor != Color.LimeGreen) panelDBShortTerm2.BackColor = Color.LimeGreen;
|
||||
if (panelDBLongTerm2.BackColor != Color.LimeGreen) panelDBLongTerm2.BackColor = Color.LimeGreen;
|
||||
|
||||
if (buttonDbConnect.Visible) buttonDbConnect.Visible = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (panelDBMain2.BackColor != Color.Red) panelDBMain2.BackColor = Color.Red;
|
||||
if (panelDBShortTerm2.BackColor != Color.Red) panelDBShortTerm2.BackColor = Color.Red;
|
||||
if (panelDBLongTerm2.BackColor != Color.Red) panelDBLongTerm2.BackColor = Color.Red;
|
||||
|
||||
if (buttonDbConnect.Visible == false) buttonDbConnect.Visible = true;
|
||||
}
|
||||
|
||||
if (progressBarProgram.Value + 20 <= 100)
|
||||
progressBarProgram.Value += 20;
|
||||
else
|
||||
progressBarProgram.Value = 0;
|
||||
|
||||
int nPanelHeight = panelMain.Height / 2;
|
||||
|
||||
panelRecv.Height = nPanelHeight - 20;
|
||||
panelProcess.Height = nPanelHeight - 20;
|
||||
|
||||
int n1 = richTextBoxRecv.Lines.Count();
|
||||
int n2 = richTextBoxProcess.Lines.Count();
|
||||
|
||||
if (richTextBoxRecv.Lines.Count() > 8192)
|
||||
richTextBoxRecv.Clear();
|
||||
if (richTextBoxProcess.Lines.Count() > 8192)
|
||||
richTextBoxProcess.Clear();
|
||||
|
||||
if (LogDataRecvText.Count > 0)
|
||||
{
|
||||
StringBuilder sb = null;
|
||||
|
||||
if (LogDataRecvText.TryDequeue(out sb))
|
||||
{
|
||||
//richTextBoxRecv.SuspendLayout();
|
||||
richTextBoxRecv.AppendText(sb.ToString());
|
||||
|
||||
richTextBoxRecv.ScrollToCaret();
|
||||
//richTextBoxRecv.ResumeLayout();
|
||||
}
|
||||
}
|
||||
|
||||
if (LogDataProcessText.Count > 0)
|
||||
{
|
||||
StringBuilder sb = null;
|
||||
|
||||
if (LogDataProcessText.TryDequeue(out sb))
|
||||
{
|
||||
//richTextBoxProcess.SuspendLayout();
|
||||
richTextBoxProcess.AppendText(sb.ToString());
|
||||
|
||||
richTextBoxProcess.ScrollToCaret();
|
||||
//richTextBoxProcess.ResumeLayout();
|
||||
}
|
||||
}
|
||||
|
||||
m_bTimerLock[(int)TIMER_LOCK.UI_TIMER] = false;
|
||||
}
|
||||
}
|
||||
|
||||
private string MakeInfoConnectProcessText(int nPos, int nCommandPort, int nStreamPort)
|
||||
{
|
||||
string strSetProcessInfo = nPos.ToString("D2") + ":" +
|
||||
nCommandPort.ToString("D4") + ":" +
|
||||
nStreamPort.ToString("D4");
|
||||
|
||||
return strSetProcessInfo;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,343 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
|
||||
<ProductVersion>8.0.30703</ProductVersion>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectGuid>{3658FBE5-9A84-4F76-8E19-867DB9F4484D}</ProjectGuid>
|
||||
<OutputType>Exe</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>SystemX.Net.MiddlewareUI.Log</RootNamespace>
|
||||
<AssemblyName>SystemX.Net.MiddlewareUI.Log</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<TargetFrameworkProfile />
|
||||
<NuGetPackageImportStamp>
|
||||
</NuGetPackageImportStamp>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<ApplicationIcon>AppIcon.ico</ApplicationIcon>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<StartupObject />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>bin\x64\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<LangVersion>7.3</LangVersion>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<Prefer32Bit>true</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
|
||||
<OutputPath>bin\x64\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<Optimize>true</Optimize>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<LangVersion>7.3</LangVersion>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<Prefer32Bit>true</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="Common.Logging, Version=3.4.1.0, Culture=neutral, PublicKeyToken=af08829b84f0328e, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Common.Logging.3.4.1\lib\net40\Common.Logging.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Common.Logging.Core, Version=3.4.1.0, Culture=neutral, PublicKeyToken=af08829b84f0328e, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Common.Logging.Core.3.4.1\lib\net40\Common.Logging.Core.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="CpApplciationIntrf">
|
||||
<HintPath>..\..\Output.SystemX\CpApplciationIntrf.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="CpApplication">
|
||||
<HintPath>..\..\Output.SystemX\CpApplication.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="CpCommon">
|
||||
<HintPath>..\..\Output.SystemX\CpCommon.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="DevExpress.Data.Desktop.v20.2, Version=20.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.Data.v20.2, Version=20.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.Utils.v20.2, Version=20.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.XtraBars.v20.2, Version=20.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.XtraEditors.v20.2, Version=20.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="log4net">
|
||||
<HintPath>..\..\Output.SystemX\log4net.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Bcl.AsyncInterfaces, Version=1.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.1\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Bcl.HashCode, Version=1.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Bcl.HashCode.1.1.1\lib\net461\Microsoft.Bcl.HashCode.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Data.SqlClient, Version=1.13.20136.2, Culture=neutral, PublicKeyToken=23ec7fc2d6eaa4a5, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Data.SqlClient.1.1.3\lib\net46\Microsoft.Data.SqlClient.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.EntityFrameworkCore, Version=3.1.32.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.EntityFrameworkCore.3.1.32\lib\netstandard2.0\Microsoft.EntityFrameworkCore.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.EntityFrameworkCore.Abstractions, Version=3.1.32.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.EntityFrameworkCore.Abstractions.3.1.32\lib\netstandard2.0\Microsoft.EntityFrameworkCore.Abstractions.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.EntityFrameworkCore.Relational, Version=3.1.32.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.EntityFrameworkCore.Relational.3.1.32\lib\netstandard2.0\Microsoft.EntityFrameworkCore.Relational.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.EntityFrameworkCore.SqlServer, Version=3.1.32.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.EntityFrameworkCore.SqlServer.3.1.32\lib\netstandard2.0\Microsoft.EntityFrameworkCore.SqlServer.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Extensions.Caching.Abstractions, Version=3.1.32.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Extensions.Caching.Abstractions.3.1.32\lib\netstandard2.0\Microsoft.Extensions.Caching.Abstractions.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Extensions.Caching.Memory, Version=3.1.32.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Extensions.Caching.Memory.3.1.32\lib\netstandard2.0\Microsoft.Extensions.Caching.Memory.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Extensions.Configuration, Version=3.1.32.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Extensions.Configuration.3.1.32\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Extensions.Configuration.Abstractions, Version=3.1.32.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Extensions.Configuration.Abstractions.3.1.32\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Extensions.Configuration.Binder, Version=3.1.32.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Extensions.Configuration.Binder.3.1.32\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Extensions.DependencyInjection, Version=3.1.32.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Extensions.DependencyInjection.3.1.32\lib\net461\Microsoft.Extensions.DependencyInjection.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Extensions.DependencyInjection.Abstractions, Version=3.1.32.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.3.1.32\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Extensions.Logging, Version=3.1.32.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Extensions.Logging.3.1.32\lib\netstandard2.0\Microsoft.Extensions.Logging.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Extensions.Logging.Abstractions, Version=3.1.32.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Extensions.Logging.Abstractions.3.1.32\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Extensions.Options, Version=3.1.32.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Extensions.Options.3.1.32\lib\netstandard2.0\Microsoft.Extensions.Options.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Extensions.Primitives, Version=3.1.32.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Extensions.Primitives.3.1.32\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Identity.Client, Version=3.0.8.0, Culture=neutral, PublicKeyToken=0a613f4dd989e8ae, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Identity.Client.3.0.8\lib\net45\Microsoft.Identity.Client.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.IdentityModel.JsonWebTokens, Version=5.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.IdentityModel.JsonWebTokens.5.5.0\lib\net461\Microsoft.IdentityModel.JsonWebTokens.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.IdentityModel.Logging, Version=5.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.IdentityModel.Logging.5.5.0\lib\net461\Microsoft.IdentityModel.Logging.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.IdentityModel.Protocols, Version=5.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.IdentityModel.Protocols.5.5.0\lib\net461\Microsoft.IdentityModel.Protocols.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.IdentityModel.Protocols.OpenIdConnect, Version=5.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.IdentityModel.Protocols.OpenIdConnect.5.5.0\lib\net461\Microsoft.IdentityModel.Protocols.OpenIdConnect.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.IdentityModel.Tokens, Version=5.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.IdentityModel.Tokens.5.5.0\lib\net461\Microsoft.IdentityModel.Tokens.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="PresentationFramework" />
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Collections.Immutable, Version=1.2.5.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Collections.Immutable.1.7.1\lib\net461\System.Collections.Immutable.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.ComponentModel.Annotations, Version=4.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.ComponentModel.Annotations.4.7.0\lib\net461\System.ComponentModel.Annotations.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.ComponentModel.DataAnnotations" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Data.Common, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Data.Common.4.3.0\lib\net451\System.Data.Common.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System.Diagnostics.DiagnosticSource, Version=4.0.5.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Diagnostics.DiagnosticSource.4.7.1\lib\net46\System.Diagnostics.DiagnosticSource.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.IdentityModel" />
|
||||
<Reference Include="System.IdentityModel.Tokens.Jwt, Version=5.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.IdentityModel.Tokens.Jwt.5.5.0\lib\net461\System.IdentityModel.Tokens.Jwt.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.IO.Compression" />
|
||||
<Reference Include="System.IO.Compression.FileSystem" />
|
||||
<Reference Include="System.Memory, Version=4.0.1.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Net.Http" />
|
||||
<Reference Include="System.Numerics" />
|
||||
<Reference Include="System.Numerics.Vectors, Version=4.1.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=4.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.4.7.1\lib\net461\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Threading.Tasks.Extensions, Version=4.2.0.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Deployment" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml" />
|
||||
<Reference Include="SystemX.Net.Platform, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\Output.SystemX\SystemX.Net.Platform.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="SystemX.XEFCore">
|
||||
<HintPath>..\..\Output.SystemX\SystemX.XEFCore.dll</HintPath>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="DeleteProc.cs" />
|
||||
<Compile Include="Sub\CPXV2_CpLogProcess.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Sub\UI.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Sub\Function.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Sub\Query.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Sub\FileProcess.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Sub\Stream-LogProcess.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Sub\Command-LogScan.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Commons.cs" />
|
||||
<Compile Include="MainForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="MainForm.Designer.cs">
|
||||
<DependentUpon>MainForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Program.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="SystemX.Net.DB.Log\ConnInfo.cs" />
|
||||
<Compile Include="SystemX.Net.DB.Log\ConnManager.cs" />
|
||||
<Compile Include="SystemX.Net.DB.Log\DBType\DBTMSSQL - Query.cs" />
|
||||
<Compile Include="SystemX.Net.DB.Log\DBType\DBTMSSQL.cs" />
|
||||
<Compile Include="SystemX.Net.DB.Log\DBType\IDBControl.cs" />
|
||||
<Compile Include="SystemX.Net.DB.Log\DBType\MariaDB.cs" />
|
||||
<EmbeddedResource Include="MainForm.resx">
|
||||
<DependentUpon>MainForm.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Properties\licenses.licx" />
|
||||
<EmbeddedResource Include="Properties\Resources.resx">
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<Compile Include="Properties\Resources.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
<DesignTime>True</DesignTime>
|
||||
</Compile>
|
||||
<None Include="App.config" />
|
||||
<None Include="packages.config" />
|
||||
<None Include="Properties\Settings.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
||||
</None>
|
||||
<Compile Include="Properties\Settings.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Settings.settings</DependentUpon>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Resources\ALIS.PNG" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Resources\Bubble_16x16.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Resources\Bubble_32x32.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Resources\Cancel_16x16.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Resources\Cancel_32x32.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Resources\Database_16x16.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Resources\Database_32x32.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Resources\Publish_16x16.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Resources\Publish_32x32.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="ALIS ICON.ico" />
|
||||
<Content Include="AppIcon.ico" />
|
||||
<None Include="Resources\AppIcon1.ico" />
|
||||
<None Include="Resources\AppIcon.ico" />
|
||||
<None Include="Resources\CI.png" />
|
||||
<None Include="Resources\Kefico CI.PNG" />
|
||||
</ItemGroup>
|
||||
<ItemGroup />
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<PropertyGroup>
|
||||
<PreBuildEvent>
|
||||
</PreBuildEvent>
|
||||
</PropertyGroup>
|
||||
<Import Project="..\packages\Microsoft.Data.SqlClient.SNI.1.1.0\build\net46\Microsoft.Data.SqlClient.SNI.targets" Condition="Exists('..\packages\Microsoft.Data.SqlClient.SNI.1.1.0\build\net46\Microsoft.Data.SqlClient.SNI.targets')" />
|
||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||
<PropertyGroup>
|
||||
<ErrorText>이 프로젝트는 이 컴퓨터에 없는 NuGet 패키지를 참조합니다. 해당 패키지를 다운로드하려면 NuGet 패키지 복원을 사용하십시오. 자세한 내용은 http://go.microsoft.com/fwlink/?LinkID=322105를 참조하십시오. 누락된 파일은 {0}입니다.</ErrorText>
|
||||
</PropertyGroup>
|
||||
<Error Condition="!Exists('..\packages\Microsoft.Data.SqlClient.SNI.1.1.0\build\net46\Microsoft.Data.SqlClient.SNI.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Data.SqlClient.SNI.1.1.0\build\net46\Microsoft.Data.SqlClient.SNI.targets'))" />
|
||||
</Target>
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
</Target>
|
||||
<Target Name="AfterBuild">
|
||||
</Target>
|
||||
-->
|
||||
</Project>
|
||||
@ -0,0 +1,44 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="Common.Logging" version="3.4.1" targetFramework="net452" />
|
||||
<package id="Common.Logging.Core" version="3.4.1" targetFramework="net452" />
|
||||
<package id="Microsoft.Bcl.AsyncInterfaces" version="1.1.1" targetFramework="net48" />
|
||||
<package id="Microsoft.Bcl.HashCode" version="1.1.1" targetFramework="net48" />
|
||||
<package id="Microsoft.CSharp" version="4.0.1" targetFramework="net452" />
|
||||
<package id="Microsoft.Data.SqlClient" version="1.1.3" targetFramework="net48" />
|
||||
<package id="Microsoft.Data.SqlClient.SNI" version="1.1.0" targetFramework="net48" />
|
||||
<package id="Microsoft.EntityFrameworkCore" version="3.1.32" targetFramework="net48" />
|
||||
<package id="Microsoft.EntityFrameworkCore.Abstractions" version="3.1.32" targetFramework="net48" />
|
||||
<package id="Microsoft.EntityFrameworkCore.Analyzers" version="3.1.32" targetFramework="net48" />
|
||||
<package id="Microsoft.EntityFrameworkCore.Relational" version="3.1.32" targetFramework="net48" />
|
||||
<package id="Microsoft.EntityFrameworkCore.SqlServer" version="3.1.32" targetFramework="net48" />
|
||||
<package id="Microsoft.Extensions.Caching.Abstractions" version="3.1.32" targetFramework="net48" />
|
||||
<package id="Microsoft.Extensions.Caching.Memory" version="3.1.32" targetFramework="net48" />
|
||||
<package id="Microsoft.Extensions.Configuration" version="3.1.32" targetFramework="net48" />
|
||||
<package id="Microsoft.Extensions.Configuration.Abstractions" version="3.1.32" targetFramework="net48" />
|
||||
<package id="Microsoft.Extensions.Configuration.Binder" version="3.1.32" targetFramework="net48" />
|
||||
<package id="Microsoft.Extensions.DependencyInjection" version="3.1.32" targetFramework="net48" />
|
||||
<package id="Microsoft.Extensions.DependencyInjection.Abstractions" version="3.1.32" targetFramework="net48" />
|
||||
<package id="Microsoft.Extensions.Logging" version="3.1.32" targetFramework="net48" />
|
||||
<package id="Microsoft.Extensions.Logging.Abstractions" version="3.1.32" targetFramework="net48" />
|
||||
<package id="Microsoft.Extensions.Options" version="3.1.32" targetFramework="net48" />
|
||||
<package id="Microsoft.Extensions.Primitives" version="3.1.32" targetFramework="net48" />
|
||||
<package id="Microsoft.Identity.Client" version="3.0.8" targetFramework="net48" />
|
||||
<package id="Microsoft.IdentityModel.JsonWebTokens" version="5.5.0" targetFramework="net48" />
|
||||
<package id="Microsoft.IdentityModel.Logging" version="5.5.0" targetFramework="net48" />
|
||||
<package id="Microsoft.IdentityModel.Protocols" version="5.5.0" targetFramework="net48" />
|
||||
<package id="Microsoft.IdentityModel.Protocols.OpenIdConnect" version="5.5.0" targetFramework="net48" />
|
||||
<package id="Microsoft.IdentityModel.Tokens" version="5.5.0" targetFramework="net48" />
|
||||
<package id="Newtonsoft.Json" version="13.0.3" targetFramework="net452" />
|
||||
<package id="System.Buffers" version="4.5.1" targetFramework="net48" />
|
||||
<package id="System.Collections.Immutable" version="1.7.1" targetFramework="net48" />
|
||||
<package id="System.ComponentModel.Annotations" version="4.7.0" targetFramework="net48" />
|
||||
<package id="System.Data.Common" version="4.3.0" targetFramework="net48" />
|
||||
<package id="System.Diagnostics.DiagnosticSource" version="4.7.1" targetFramework="net48" />
|
||||
<package id="System.IdentityModel.Tokens.Jwt" version="5.5.0" targetFramework="net48" />
|
||||
<package id="System.Memory" version="4.5.4" targetFramework="net48" />
|
||||
<package id="System.Numerics.Vectors" version="4.5.0" targetFramework="net48" />
|
||||
<package id="System.Runtime.CompilerServices.Unsafe" version="4.7.1" targetFramework="net48" />
|
||||
<package id="System.Threading.Tasks.Extensions" version="4.5.4" targetFramework="net48" />
|
||||
<package id="Win32.TokenPrivileges" version="1.0.19073.2" targetFramework="net452" />
|
||||
</packages>
|
||||