commit 1ce16787a99a0f4593b88293dda66c8baf98a058 Author: 蔡浩 Date: Mon Jan 15 10:57:41 2024 +0800 Initial commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5015794 --- /dev/null +++ b/.gitignore @@ -0,0 +1,10 @@ +*.xml +*.dll +*.suo +*.cache +/SRC/MES_C_DLL +/SRC/MES_S_DLL +/SRC/MESClient +/SRC/**/obj +/SRC/**/.vs + diff --git a/Language/mesresource.en.resources91 b/Language/mesresource.en.resources91 new file mode 100644 index 0000000..a0e9500 Binary files /dev/null and b/Language/mesresource.en.resources91 differ diff --git a/Language/mesresource.zh-chs.resources91 b/Language/mesresource.zh-chs.resources91 new file mode 100644 index 0000000..3fec48e Binary files /dev/null and b/Language/mesresource.zh-chs.resources91 differ diff --git a/Language/mesresource.zh-cht.resources91 b/Language/mesresource.zh-cht.resources91 new file mode 100644 index 0000000..7ca1d36 Binary files /dev/null and b/Language/mesresource.zh-cht.resources91 differ diff --git a/SQLScript/InitData.xlsx b/SQLScript/InitData.xlsx new file mode 100644 index 0000000..3813724 Binary files /dev/null and b/SQLScript/InitData.xlsx differ diff --git a/SQLScript/Tables.xlsx b/SQLScript/Tables.xlsx new file mode 100644 index 0000000..218d87e Binary files /dev/null and b/SQLScript/Tables.xlsx differ diff --git a/SRC/MESAgent/AutoLoaderLib/AssemblyInfo.cs b/SRC/MESAgent/AutoLoaderLib/AssemblyInfo.cs new file mode 100644 index 0000000..7d0e6ff --- /dev/null +++ b/SRC/MESAgent/AutoLoaderLib/AssemblyInfo.cs @@ -0,0 +1,31 @@ +using System; +using System.Reflection; +using System.Runtime.InteropServices; + +// 一般的組件資訊是由下列這組屬性所控制。 +// 變更這些屬性的值即可修改組件的相關資訊。 +// 檢閱組件屬性的值 + +[assembly: AssemblyTitle("AutoLoaderLib")] +[assembly: AssemblyDescription("AutoLoaderLib for MESSeries")] +[assembly: AssemblyCompany("iMES Technology Inc.")] +[assembly: AssemblyProduct("MESSeries 6")] +[assembly: AssemblyCopyright("Copyright © iMES Technology Inc.")] +[assembly: AssemblyTrademark("")] +[assembly: ComVisible(false)] + +// 下列 GUID 為專案公開 (Expose) 至 COM 時所要使用的 typelib ID +[assembly: Guid("7BE710A6-63DB-4425-9C60-EC4387F6A585")] + +// 組件的版本資訊由下列四個值所組成: +// +// 主要版本 +// 次要版本 +// 組建編號 +// 修訂 +// +// 您可以自行指定所有的值,也可以依照以下的方式,使用 '*' 將修訂和組建編號 +// 指定為預設值: + +[assembly: AssemblyVersion("6.0.0.0")] +[assembly: AssemblyFileVersion("6.0.0.0")] diff --git a/SRC/MESAgent/AutoLoaderLib/AutoLoaderLib_C.csproj b/SRC/MESAgent/AutoLoaderLib/AutoLoaderLib_C.csproj new file mode 100644 index 0000000..5f76bc4 --- /dev/null +++ b/SRC/MESAgent/AutoLoaderLib/AutoLoaderLib_C.csproj @@ -0,0 +1,258 @@ + + + + Local + 8.0.50727 + 2.0 + {7C0468A8-E807-0FF4-0C04-C1AD9B3D7D2A} + SAK + SAK + SAK + SAK + Debug + AnyCPU + + + + + AutoLoaderLib_C + + + None + JScript + Grid + IE50 + false + Library + Binary + On + Off + AutoLoaderLib_C + + + true + false + true + + + Windows + + + false + v4.6.2 + 2.0 + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + $(DefaultItemExcludes);$(ProjectDir)**\*.vb + + + ..\..\MES_S_DLL\ + ..\..\MES_S_DLL\AutoLoaderLib_C.xml + 285212672 + + + + + true + true + true + false + false + false + false + 0 + 42016,42017,42018,42019,42032,42353,42354,42355 + full + AnyCPU + false + + + ..\..\MES_S_DLL\ + ..\..\MES_S_DLL\AutoLoaderLib_C.xml + 285212672 + + + + + false + true + false + true + false + false + false + 0 + 42016,42017,42018,42019,42032,42353,42354,42355 + none + false + + + + False + ..\..\MES_S_DLL\data_access_service.dll + + + False + ..\..\MES_S_DLL\iMESAppSetting.dll + + + False + ..\..\MES_S_DLL\iMESComSubroutine.dll + + + False + ..\..\MES_S_DLL\iMESComXML.dll + + + False + ..\..\MES_S_DLL\iMESConst.dll + + + + False + ..\..\MES_C_DLL\ICSharpCode.SharpZipLib.dll + False + + + False + ..\..\MES_C_DLL\NPOI.dll + False + + + False + ..\..\MES_C_DLL\NPOI.OOXML.dll + False + + + False + ..\..\MES_C_DLL\NPOI.OpenXml4Net.dll + False + + + False + ..\..\MES_C_DLL\NPOI.OpenXmlFormats.dll + False + + + System + + + System.Data + + + + System.Web.Services + + + System.XML + + + + + + + + + + + + True + True + Reference.map + + + + AutoLoaderLib_C.My + SettingsSingleFileGenerator + Settings.Designer.cs + + + Code + + + Code + + + + Code + + + Code + + + True + True + Settings.settings + + + + + + + MSDiscoCodeGenerator + Reference.cs + + + + + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + true + + + False + Windows Installer 3.1 + true + + + + + + + + Dynamic + Web References\wsInvoke\ + http://localhost/MESws_Industry/wsInvoke.asmx + + + + + MySettings + AutoLoaderLib_wsInvoke_wsInvoke + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SRC/MESAgent/AutoLoaderLib/AutoLoaderLib_C.sln b/SRC/MESAgent/AutoLoaderLib/AutoLoaderLib_C.sln new file mode 100644 index 0000000..056d582 --- /dev/null +++ b/SRC/MESAgent/AutoLoaderLib/AutoLoaderLib_C.sln @@ -0,0 +1,32 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 14 +VisualStudioVersion = 14.0.25420.1 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AutoLoaderLib_C", "AutoLoaderLib_C.csproj", "{7C0468A8-E807-0FF4-0C04-C1AD9B3D7D2A}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {7C0468A8-E807-0FF4-0C04-C1AD9B3D7D2A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7C0468A8-E807-0FF4-0C04-C1AD9B3D7D2A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7C0468A8-E807-0FF4-0C04-C1AD9B3D7D2A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7C0468A8-E807-0FF4-0C04-C1AD9B3D7D2A}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(TeamFoundationVersionControl) = preSolution + SccNumberOfProjects = 1 + SccEnterpriseProvider = {4CA58AB2-18FA-4F8D-95D4-32DDF27D184C} + SccTeamFoundationServer = http://tfs.imestech.com:8080/tfs/messeries6 + SccProjectUniqueName0 = AutoLoaderLib_C.csproj + SccProjectName0 = . + SccAuxPath0 = http://tfs.imestech.com:8080/tfs/messeries6 + SccLocalPath0 = . + SccProvider0 = {4CA58AB2-18FA-4F8D-95D4-32DDF27D184C} + EndGlobalSection +EndGlobal diff --git a/SRC/MESAgent/AutoLoaderLib/EPIParseTemplate.cs b/SRC/MESAgent/AutoLoaderLib/EPIParseTemplate.cs new file mode 100644 index 0000000..cd2d4f5 --- /dev/null +++ b/SRC/MESAgent/AutoLoaderLib/EPIParseTemplate.cs @@ -0,0 +1,236 @@ +using System; +using System.Data; +using System.IO; +using iMESCore.Settings; +using Microsoft.VisualBasic; +using static iMESCore.DataBase.iMESSql; + +namespace AutoLoaderLib_C +{ + + public abstract class EPIParseTemplate + { + + // 設定暫存資料表的欄位 + internal abstract bool AddColumns(DataTable dt); + + // 解析資料, 並寫入暫存資料表 + internal abstract bool ParsingFile(DataTable dt, string file); + + // 將暫存資料表寫入資料庫 + internal abstract bool InsertTable(DataTable dt); + + internal IDbConnection objConnection; + + public enum FileTypeEnum + { + csv = 0, + xls = 1, + dat = 2 + } + + private string[] wildcards = new string[] { "*.csv", "*.xls", "*.dat" }; + private string strDataBaseType; // DataBase Type:oracle, mysql, access + private string strConnectionString; // Connection string + private AppSettings objSetting = new AppSettings(); + private DataTable objDataTable; + private string SourcePath; + private string DestinationPath; + private string QueuePath; + private string FailPath; + + /// + /// 建構子 + /// + /// + /// + /// + /// + /// + public EPIParseTemplate(string paramSourcePath, string paramDestinationPath, string paramQueuePath, string paramFailPath) + { + + objSetting = new AppSettings(); + + // //Get database type + strDataBaseType = objSetting.GetDataBaseType(); + + // //Get connection string + strConnectionString = objSetting.GetConnectionString(strDataBaseType); + + objConnection = CreateConnection(strConnectionString); + + if (Strings.Right(paramSourcePath, 1) != @"\") + { + paramSourcePath += @"\"; + } + + SourcePath = paramSourcePath; + + if (Strings.Right(paramDestinationPath, 1) != @"\") + { + paramDestinationPath += @"\"; + } + + DestinationPath = paramDestinationPath; + + if (Strings.Right(paramQueuePath, 1) != @"\") + { + paramQueuePath += @"\"; + } + + QueuePath = paramQueuePath; + + if (Strings.Right(paramFailPath, 1) != @"\") + { + paramFailPath += @"\"; + } + + FailPath = paramFailPath; + + } + + ~EPIParseTemplate() + { + + if (objConnection != null) + { + objConnection = null; + } + + if (objSetting != null) + { + objSetting = null; + } + + if (objDataTable != null) + { + objDataTable = null; + } + + } + + /// + /// 解析資料 + /// + /// + /// + /// + public string ParsingData(FileTypeEnum paramFileType) + { + + string strResult = string.Empty; + string QueueFile = ""; + string DestinationFile = ""; + string FailFile = ""; + + try + { + + objDataTable = new DataTable("RawData"); + + // 設定暫存資料表的欄位 + if (AddColumns(objDataTable)) + { + + foreach (var SourceFile in Directory.GetFiles(SourcePath, wildcards[(int)paramFileType], SearchOption.TopDirectoryOnly)) + { + + if (File.Exists(SourceFile)) + { + + QueueFile = QueuePath + Path.GetFileName(SourceFile); + DestinationFile = DestinationPath + Path.GetFileName(SourceFile); + FailFile = FailPath + Path.GetFileName(SourceFile); + + try + { + + // 將檔案從 Source 移至 Queue + MoveFile(SourceFile, QueueFile); + + objDataTable.Rows.Clear(); + + // 解析資料, 並寫入暫存資料表 + if (ParsingFile(objDataTable, QueueFile)) + { + + // 將暫存資料表寫入資料庫 + if (InsertTable(objDataTable)) + { + + // 將檔案從 Queue 移至 Destination + MoveFile(QueueFile, DestinationFile); + + } + + } + } + + catch (Exception ex) + { + + // 將檔案從 Queue 移至 Fail + MoveFile(QueueFile, FailFile); + + throw; + + } + + } + + } + + strResult = "success"; + + } + } + + catch (Exception ex) + { + + strResult = "Message:" + ex.Message + ",StackTrace:" + ex.StackTrace; + } + + finally + { + + } + + return strResult; + + } + + /// + /// 搬移檔案 + /// + /// 來源檔案 + /// 目的檔案 + /// + private void MoveFile(string paramSourceFile, string paramTargetFile) + { + + try + { + + // 判斷目的檔案是否已存在, 若存在必須先刪除 + if (File.Exists(paramTargetFile)) + { + File.Delete(paramTargetFile); + } + + // 移動檔案至目的 + Directory.Move(paramSourceFile, paramTargetFile); + } + + catch (Exception ex) + { + + throw; + + } + + } + + } +} \ No newline at end of file diff --git a/SRC/MESAgent/AutoLoaderLib/My Project/Settings.Designer.cs b/SRC/MESAgent/AutoLoaderLib/My Project/Settings.Designer.cs new file mode 100644 index 0000000..a002cc9 --- /dev/null +++ b/SRC/MESAgent/AutoLoaderLib/My Project/Settings.Designer.cs @@ -0,0 +1,101 @@ +// ------------------------------------------------------------------------------ +// +// 這段程式碼是由工具產生的。 +// 執行階段版本:4.0.30319.42000 +// +// 對這個檔案所做的變更可能會造成錯誤的行為,而且如果重新產生程式碼, +// 變更將會遺失。 +// +// ------------------------------------------------------------------------------ + +using System.Diagnostics; +using Microsoft.VisualBasic; +using Microsoft.VisualBasic.CompilerServices; + + +namespace AutoLoaderLib_C.My +{ + + [System.Runtime.CompilerServices.CompilerGenerated()] + [System.CodeDom.Compiler.GeneratedCode("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")] + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Advanced)] + internal sealed partial class MySettings : System.Configuration.ApplicationSettingsBase + { + + private static MySettings defaultInstance = (MySettings)Synchronized(new MySettings()); + + #region My.Settings 自動儲存功能 + /* TODO ERROR: Skipped IfDirectiveTrivia + #If _MyType = "WindowsForms" Then + *//* TODO ERROR: Skipped DisabledTextTrivia + Private Shared addedHandler As Boolean + + Private Shared addedHandlerLockObject As New Object + + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub + *//* TODO ERROR: Skipped EndIfDirectiveTrivia + #End If + */ + #endregion + + public static MySettings Default + { + get + { + + /* TODO ERROR: Skipped IfDirectiveTrivia + #If _MyType = "WindowsForms" Then + *//* TODO ERROR: Skipped DisabledTextTrivia + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If + *//* TODO ERROR: Skipped EndIfDirectiveTrivia + #End If + */ + return defaultInstance; + } + } + + [System.Configuration.ApplicationScopedSetting()] + [DebuggerNonUserCode()] + [System.Configuration.SpecialSetting(System.Configuration.SpecialSetting.WebServiceUrl)] + [System.Configuration.DefaultSettingValue("http://localhost/MESws_Industry/wsInvoke.asmx")] + public string AutoLoaderLib_wsInvoke_wsInvoke + { + get + { + return Conversions.ToString(this["AutoLoaderLib_wsInvoke_wsInvoke"]); + } + } + } +} + +namespace AutoLoaderLib_C.My +{ + + [HideModuleName()] + [DebuggerNonUserCode()] + [System.Runtime.CompilerServices.CompilerGenerated()] + internal static class MySettingsProperty + { + + [System.ComponentModel.Design.HelpKeyword("My.Settings")] + internal static MySettings Settings + { + get + { + return MySettings.Default; + } + } + } +} \ No newline at end of file diff --git a/SRC/MESAgent/AutoLoaderLib/My Project/Settings.settings b/SRC/MESAgent/AutoLoaderLib/My Project/Settings.settings new file mode 100644 index 0000000..ca70055 --- /dev/null +++ b/SRC/MESAgent/AutoLoaderLib/My Project/Settings.settings @@ -0,0 +1,9 @@ + + + + + + http://localhost/MESws_Industry/wsInvoke.asmx + + + \ No newline at end of file diff --git a/SRC/MESAgent/AutoLoaderLib/ParseNEL.cs b/SRC/MESAgent/AutoLoaderLib/ParseNEL.cs new file mode 100644 index 0000000..15be00a --- /dev/null +++ b/SRC/MESAgent/AutoLoaderLib/ParseNEL.cs @@ -0,0 +1,247 @@ +using System; +using System.Data; +using System.Diagnostics; +using System.IO; +using Microsoft.VisualBasic.CompilerServices; +using static iMESCore.DataBase.iMESSql; + +namespace AutoLoaderLib_C +{ + + public class ParseNEL : EPIParseTemplate + { + + + // 呼叫父類別的建構子 + public ParseNEL(string paramSourcePath, string paramDestinationPath, string paramQueuePath, string paramFailPath) : base(paramSourcePath, paramDestinationPath, paramQueuePath, paramFailPath) + { + + } + + /// + /// 設定暫存資料表的欄位 + /// + /// + /// + /// + internal override bool AddColumns(DataTable dt) + { + + bool blnResult = false; + + try + { + + dt.Columns.Add("WaferID", Type.GetType("System.String")); + dt.Columns.Add("POS", Type.GetType("System.Decimal")); + dt.Columns.Add("LOP1", Type.GetType("System.Decimal")); + dt.Columns.Add("WLD1", Type.GetType("System.Decimal")); + dt.Columns.Add("VF1", Type.GetType("System.Decimal")); + + blnResult = true; + } + + catch (Exception ex) + { + + throw; + + } + + return blnResult; + + } + + /// + /// 將暫存資料表寫入資料庫 + /// + /// + /// + /// + internal override bool InsertTable(DataTable dt) + { + + bool blnResult = false; + string strSQL_Raw; + string strSQL_Avg; + string WaferID = ""; + decimal LOP1 = 0m; + decimal WLD1 = 0m; + decimal VF1 = 0m; + + strSQL_Raw = " INSERT INTO TBL_LEDLD_EL_N_RAW " + " (WaferID, CreateDate, POS, LOP1, WLD1, VF1) " + " VALUES ('{0}', SYSDATE, {1}, {2}, {3}, {4}) "; + + + strSQL_Avg = " INSERT INTO TBL_LEDLD_EL_N " + " (WaferID, CreateDate, LOP1, WLD1, VF1) " + " VALUES ('{0}', SYSDATE, {1}, {2}, {3}) "; + + + try + { + + using (var oTran = objConnection.BeginTransaction()) + { + + try + { + + using (var cmd = CreateCommand()) + { + + cmd.Connection = objConnection; + cmd.Transaction = oTran; + + if (dt.Rows.Count > 0) + { + + for (int i = 0, loopTo = dt.Rows.Count - 1; i <= loopTo; i++) + { + + cmd.CommandText = string.Format(strSQL_Raw, dt.Rows[i]["WaferID"], dt.Rows[i]["POS"], dt.Rows[i]["LOP1"], dt.Rows[i]["WLD1"], dt.Rows[i]["VF1"]); + + + + + + cmd.ExecuteNonQuery(); + + WaferID = Conversions.ToString(dt.Rows[i]["WaferID"]); + LOP1 = LOP1 + (decimal)dt.Rows[i]["LOP1"]; + WLD1 = WLD1 + (decimal)dt.Rows[i]["WLD1"]; + VF1 = VF1 + (decimal)dt.Rows[i]["VF1"]; + + } + + cmd.CommandText = string.Format(strSQL_Avg, WaferID, LOP1 / dt.Rows.Count, WLD1 / dt.Rows.Count, VF1 / dt.Rows.Count); + + + + + cmd.ExecuteNonQuery(); + + } + + } + + oTran.Commit(); + + blnResult = true; + } + + catch (Exception ex) + { + + oTran.Rollback(); + throw; + + } + + } + } + + catch (Exception ex) + { + + throw; + + } + + return blnResult; + + } + + /// + /// 解析資料, 並寫入暫存資料表 + /// + /// + /// + /// + /// + internal override bool ParsingFile(DataTable dt, string file) + { + + bool blnResult = false; + DataRow dr = null; + string line; + string[] tmpData; + bool startParsing = false; + string WaferID; + + try + { + + // 檔名即為 WaferID + var fi = new FileInfo(file); + WaferID = fi.Name.Replace(fi.Extension, ""); + fi = null; + + using (var sr = new StreamReader(file)) + { + + do + { + + line = sr.ReadLine(); + + if (!string.IsNullOrEmpty(line)) + { + + if (startParsing) + { + + tmpData = line.Split(','); + + dr = dt.NewRow(); + + dr["WaferID"] = WaferID; + dr["POS"] = Convert.ToDecimal(tmpData[0].Trim()); + dr["LOP1"] = Convert.ToDecimal(tmpData[4].Trim()); + dr["WLD1"] = Convert.ToDecimal(tmpData[5].Trim()); + dr["VF1"] = Convert.ToDecimal(tmpData[3].Trim()); + + dt.Rows.Add(dr); + } + + else + { + + Debug.Print(line); + + if (line.IndexOf("PosX") >= 0 && line.IndexOf("PosY") >= 0) + { + startParsing = true; + } + + } + + } + } + + while (!(line == null)); + + blnResult = true; + + } + } + + catch (Exception ex) + { + + throw; + } + + finally + { + + if (dr != null) + { + dr = null; + } + + } + + return blnResult; + + } + + } +} \ No newline at end of file diff --git a/SRC/MESAgent/AutoLoaderLib/ParsePL.cs b/SRC/MESAgent/AutoLoaderLib/ParsePL.cs new file mode 100644 index 0000000..94d8b2b --- /dev/null +++ b/SRC/MESAgent/AutoLoaderLib/ParsePL.cs @@ -0,0 +1,245 @@ +using System; +using System.Data; +using System.IO; +using static iMESCore.DataBase.iMESSql; + +namespace AutoLoaderLib_C +{ + + public class ParsePL : EPIParseTemplate + { + + + // 呼叫父類別的建構子 + public ParsePL(string paramSourcePath, string paramDestinationPath, string paramQueuePath, string paramFailPath) : base(paramSourcePath, paramDestinationPath, paramQueuePath, paramFailPath) + { + + } + + /// + /// 設定暫存資料表的欄位 + /// + /// + /// + /// + internal override bool AddColumns(DataTable dt) + { + + bool blnResult = false; + + try + { + + dt.Columns.Add("WaferID", Type.GetType("System.String")); + dt.Columns.Add("MeasurementTime", Type.GetType("System.String")); + dt.Columns.Add("NG", Type.GetType("System.Decimal")); + dt.Columns.Add("OK", Type.GetType("System.Decimal")); + dt.Columns.Add("Yield", Type.GetType("System.String")); + dt.Columns.Add("Setup", Type.GetType("System.String")); + dt.Columns.Add("LaserOutput", Type.GetType("System.String")); + dt.Columns.Add("WPMIN", Type.GetType("System.Decimal")); + dt.Columns.Add("WPMAX", Type.GetType("System.Decimal")); + dt.Columns.Add("WPAVG", Type.GetType("System.Decimal")); + dt.Columns.Add("WPDEV", Type.GetType("System.Decimal")); + dt.Columns.Add("FWHMMIN", Type.GetType("System.Decimal")); + dt.Columns.Add("FWHMMAX", Type.GetType("System.Decimal")); + dt.Columns.Add("FWHMAVG", Type.GetType("System.Decimal")); + dt.Columns.Add("FWHMDEV", Type.GetType("System.Decimal")); + dt.Columns.Add("WDMIN", Type.GetType("System.Decimal")); + dt.Columns.Add("WDMAX", Type.GetType("System.Decimal")); + dt.Columns.Add("WDAVG", Type.GetType("System.Decimal")); + dt.Columns.Add("WDDEV", Type.GetType("System.Decimal")); + + blnResult = true; + } + + catch (Exception ex) + { + + throw; + + } + + return blnResult; + + } + + /// + /// 將暫存資料表寫入資料庫 + /// + /// + /// + /// + internal override bool InsertTable(DataTable dt) + { + + bool blnResult = false; + string strSQL; + + strSQL = " INSERT INTO TBL_LEDLD_PL " + " (WaferID, CreateDate, MeasurementTime, NG, OK, Yield, Setup, LaserOutput, " + " WPMIN, WPMAX, WPAVG, WPDEV, " + " FWHMMIN, FWHMMAX, FWHMAVG, FWHMDEV, " + " WDMIN, WDMAX, WDAVG, WDDEV) " + " VALUES ('{0}', SYSDATE, '{1}', {2}, {3}, '{4}', '{5}', '{6}', " + " {7}, {8}, {9}, {10}, " + " {11}, {12}, {13}, {14}, " + " {15}, {16}, {17}, {18}) "; + + + + + + + + + try + { + + using (var oTran = objConnection.BeginTransaction()) + { + + try + { + + using (var cmd = CreateCommand()) + { + + cmd.Connection = objConnection; + cmd.Transaction = oTran; + + for (int i = 0, loopTo = dt.Rows.Count - 1; i <= loopTo; i++) + { + + cmd.CommandText = string.Format(strSQL, dt.Rows[i]["WaferID"], dt.Rows[i]["MeasurementTime"], dt.Rows[i]["NG"], dt.Rows[i]["OK"], dt.Rows[i]["Yield"], dt.Rows[i]["Setup"], dt.Rows[i]["LaserOutput"], dt.Rows[i]["WPMIN"], dt.Rows[i]["WPMAX"], dt.Rows[i]["WPAVG"], dt.Rows[i]["WPDEV"], dt.Rows[i]["FWHMMIN"], dt.Rows[i]["FWHMMAX"], dt.Rows[i]["FWHMAVG"], dt.Rows[i]["FWHMDEV"], dt.Rows[i]["WDMIN"], dt.Rows[i]["WDMAX"], dt.Rows[i]["WDAVG"], dt.Rows[i]["WDDEV"]); + + + + + + + + + + + cmd.ExecuteNonQuery(); + + } + + } + + oTran.Commit(); + + blnResult = true; + } + + catch (Exception ex) + { + + oTran.Rollback(); + throw; + + } + + } + } + + catch (Exception ex) + { + + throw; + + } + + return blnResult; + + } + + /// + /// 解析資料, 並寫入暫存資料表 + /// + /// + /// + /// + /// + internal override bool ParsingFile(DataTable dt, string file) + { + + bool blnResult = false; + DataRow dr = null; + string line; + string[] tmpData; + string LotNo; + + try + { + + // 檔名即為 LotNo + var fi = new FileInfo(file); + LotNo = fi.Name.Replace(fi.Extension, ""); + fi = null; + + using (var sr = new StreamReader(file)) + { + + // 第一行是欄位抬頭 + line = sr.ReadLine(); + + do + { + + line = sr.ReadLine(); + + if (!string.IsNullOrEmpty(line)) + { + + tmpData = line.Split(','); + + dr = dt.NewRow(); + + dr["WaferID"] = tmpData[4].Trim() + tmpData[5].Trim().Substring(tmpData[5].Trim().Length - 2); + dr["MeasurementTime"] = tmpData[3].Trim(); + dr["NG"] = Convert.ToDecimal(tmpData[11].Trim()); + dr["OK"] = Convert.ToDecimal(tmpData[12].Trim()); + dr["Yield"] = tmpData[13].Trim(); + dr["Setup"] = tmpData[14].Trim(); + dr["LaserOutput"] = tmpData[15].Trim(); + dr["WPMIN"] = Convert.ToDecimal(tmpData[16].Trim()); + dr["WPMAX"] = Convert.ToDecimal(tmpData[17].Trim()); + dr["WPAVG"] = Convert.ToDecimal(tmpData[18].Trim()); + dr["WPDEV"] = Convert.ToDecimal(tmpData[20].Trim()); + dr["FWHMMIN"] = Convert.ToDecimal(tmpData[28].Trim()); + dr["FWHMMAX"] = Convert.ToDecimal(tmpData[29].Trim()); + dr["FWHMAVG"] = Convert.ToDecimal(tmpData[30].Trim()); + dr["FWHMDEV"] = Convert.ToDecimal(tmpData[32].Trim()); + dr["WDMIN"] = Convert.ToDecimal(tmpData[40].Trim()); + dr["WDMAX"] = Convert.ToDecimal(tmpData[41].Trim()); + dr["WDAVG"] = Convert.ToDecimal(tmpData[42].Trim()); + dr["WDDEV"] = Convert.ToDecimal(tmpData[44].Trim()); + + dt.Rows.Add(dr); + + } + } + + while (!string.IsNullOrEmpty(line)); + + blnResult = true; + + } + } + + catch (Exception ex) + { + + throw; + } + + finally + { + + if (dr != null) + { + dr = null; + } + + } + + return blnResult; + + } + + } +} \ No newline at end of file diff --git a/SRC/MESAgent/AutoLoaderLib/ParsePR.cs b/SRC/MESAgent/AutoLoaderLib/ParsePR.cs new file mode 100644 index 0000000..fde4b01 --- /dev/null +++ b/SRC/MESAgent/AutoLoaderLib/ParsePR.cs @@ -0,0 +1,380 @@ +using System; +using System.Data; +using System.IO; +using Microsoft.VisualBasic; +using Microsoft.VisualBasic.CompilerServices; +using static iMESCore.DataBase.iMESSql; + +namespace AutoLoaderLib_C +{ + + public class ParsePR : EPIParseTemplate + { + + + // 呼叫父類別的建構子 + public ParsePR(string paramSourcePath, string paramDestinationPath, string paramQueuePath, string paramFailPath) : base(paramSourcePath, paramDestinationPath, paramQueuePath, paramFailPath) + { + + } + + /// + /// 設定暫存資料表的欄位 + /// + /// + /// + /// + internal override bool AddColumns(DataTable dt) + { + + bool blnResult = false; + + try + { + + dt.Columns.Add("WaferID", Type.GetType("System.String")); + dt.Columns.Add("RawData", Type.GetType("System.String")); + dt.Columns.Add("Average", Type.GetType("System.Decimal")); + dt.Columns.Add("Diff1", Type.GetType("System.Decimal")); + dt.Columns.Add("Diff2", Type.GetType("System.Decimal")); + dt.Columns.Add("PR_GRADE", Type.GetType("System.String")); + dt.Columns.Add("PR_RESULT", Type.GetType("System.String")); + + blnResult = true; + } + + catch (Exception ex) + { + + throw; + + } + + return blnResult; + + } + + /// + /// 將暫存資料表寫入資料庫 + /// + /// + /// + /// + internal override bool InsertTable(DataTable dt) + { + + bool blnResult = false; + string strSQL; + string strSQL2; + string strSQL3; + + const string PR_GRADE = "PR Grade"; + + // 新增 PR 資料 + strSQL = " INSERT INTO TBL_LEDLD_PR " + " (WaferID, CreateDate, RawData, Average, Diff1, Diff2, PR_GRADE, PR_RESULT) " + " VALUES ('{0}', SYSDATE, '{1}', {2}, {3}, {4}, '{5}', '{6}') "; + + + // 刪除 ComponentProperty PR_GRADE 的資料 + strSQL2 = " DELETE TBLWIPCOMPONENTPROPERTY " + " WHERE LOTNO = '{0}' " + " AND COMPONENTNO = '{1}' " + " AND PROPERTYNO = '{2}' "; + + + + // 新增 ComponentProperty PR_GRADE 的資料 + strSQL3 = " INSERT INTO TBLWIPCOMPONENTPROPERTY " + " (LOTNO, COMPONENTNO, PROPERTYNO, PROPERTYVALUE) " + " VALUES ('{0}', '{1}', '{2}', '{3}') "; + + + try + { + + using (var oTran = objConnection.BeginTransaction()) + { + + try + { + + using (var cmd = CreateCommand()) + { + + cmd.Connection = objConnection; + cmd.Transaction = oTran; + + for (int i = 0, loopTo = dt.Rows.Count - 1; i <= loopTo; i++) + { + + cmd.CommandText = string.Format(strSQL, Operators.ConcatenateObject(dt.Rows[i]["WaferID"], ""), Operators.ConcatenateObject(dt.Rows[i]["RawData"], ""), dt.Rows[i]["Average"], dt.Rows[i]["Diff1"], dt.Rows[i]["Diff2"], Operators.ConcatenateObject(dt.Rows[i]["PR_GRADE"], ""), Operators.ConcatenateObject(dt.Rows[i]["PR_RESULT"], "")); + + + + + + + + cmd.ExecuteNonQuery(); + + cmd.CommandText = string.Format(strSQL2, Strings.Mid(Conversions.ToString(Operators.ConcatenateObject(dt.Rows[i]["WaferID"], "")), 1, 10), Operators.ConcatenateObject(dt.Rows[i]["WaferID"], ""), PR_GRADE); + + + + cmd.ExecuteNonQuery(); + + cmd.CommandText = string.Format(strSQL3, Strings.Mid(Conversions.ToString(Operators.ConcatenateObject(dt.Rows[i]["WaferID"], "")), 1, 10), Operators.ConcatenateObject(dt.Rows[i]["WaferID"], ""), PR_GRADE, Operators.ConcatenateObject(dt.Rows[i]["PR_GRADE"], "")); + + + + + cmd.ExecuteNonQuery(); + + } + + } + + oTran.Commit(); + + blnResult = true; + } + + catch (Exception ex) + { + + oTran.Rollback(); + throw; + + } + + } + } + + catch (Exception ex) + { + + throw; + + } + + return blnResult; + + } + + /// + /// 解析資料, 並寫入暫存資料表 + /// + /// + /// + /// + /// + internal override bool ParsingFile(DataTable dt, string file) + { + + bool blnResult = false; + DataRow dr = null; + string line; + string[] tmpData; + string WaferID; + string RawData = ""; + decimal Average = 0m; + decimal Diff1 = 0m; + decimal Diff2 = 0m; + string PR_Grade; + string PR_Result; + + try + { + + // 檔名即為 WaferID + var fi = new FileInfo(file); + WaferID = fi.Name.Replace(fi.Extension, ""); + fi = null; + + using (var sr = new StreamReader(file)) + { + + do + { + + line = sr.ReadLine(); + + if (!string.IsNullOrEmpty(line)) + { + + tmpData = line.Split('\t'); + + if (tmpData != null && tmpData.Length == 2) + { + + if (!Information.IsNumeric(tmpData[1])) + { + tmpData[1] = "0"; + } + + switch (tmpData[0].ToUpper() ?? "") + { + + case "AVERAGE": + { + Average = Convert.ToDecimal(tmpData[1]); + break; + } + + case "DIFF1": + { + Diff1 = Convert.ToDecimal(tmpData[1]); + break; + } + + case "DIFF2": + { + Diff2 = Convert.ToDecimal(tmpData[1]); + break; + } + + default: + { + RawData += tmpData[0] + "=" + tmpData[1] + ","; + break; + } + + } + + } + + } + } + + while (!string.IsNullOrEmpty(line)); + + if (RawData.Length > 0) + { + + RawData = RawData.Substring(0, RawData.Length - 1); + + // 依 Average 取出 Grade + PR_Grade = PRGrade(Average); + + if (string.IsNullOrEmpty(PR_Grade)) + { + throw new Exception("PR_Grade fail。"); + } + + // 依 Diff 取出 Grade + switch (PRGrade(Diff1) ?? "") + { + case "": + { + throw new Exception("PR_Result fail。"); + } + case "N/A": + { + PR_Result = "NG"; + break; + } + + default: + { + PR_Result = "OK"; + break; + } + } + + dr = dt.NewRow(); + dr["WaferID"] = WaferID; + dr["RawData"] = RawData; + dr["Average"] = Average; + dr["Diff1"] = Diff1; + dr["Diff2"] = Diff2; + dr["PR_GRADE"] = PR_Grade; + dr["PR_RESULT"] = PR_Result; + dt.Rows.Add(dr); + + blnResult = true; + + } + + } + } + + catch (Exception ex) + { + + throw; + } + + finally + { + + if (dr != null) + { + dr = null; + } + + } + + return blnResult; + + } + + /// + /// PR 等級編碼原則 + /// + /// + /// + /// + private string PRGrade(decimal value) + { + + string strGrade = "N/A"; + string[] tmpData; + var CollectionGrade = new Collection(); + + CollectionGrade.Add("0~1.5~A1"); + CollectionGrade.Add("1.5~2~A2"); + CollectionGrade.Add("2~3~A3"); + CollectionGrade.Add("3~6~A4"); + CollectionGrade.Add("6~9~A5"); + CollectionGrade.Add("9~12~A6"); + CollectionGrade.Add("12~15~A7"); + CollectionGrade.Add("15~18~A8"); + CollectionGrade.Add("18~24~A9"); + CollectionGrade.Add("24~30~AA"); + CollectionGrade.Add("30~36~AB"); + CollectionGrade.Add("36~9999~AC"); + + try + { + + foreach (string str in CollectionGrade) + { + + tmpData = Strings.Split(str, "~"); + + if (tmpData.Length != 3) + { + break; + } + + if (!Information.IsNumeric(tmpData[0]) || !Information.IsNumeric(tmpData[1])) + { + break; + } + + if ((double)value >= Conversions.ToDouble(tmpData[0]) && (double)value < Conversions.ToDouble(tmpData[1])) + { + strGrade = tmpData[2]; + break; + } + + } + } + + catch (Exception ex) + { + + strGrade = ""; + + } + + return strGrade; + + } + + } +} \ No newline at end of file diff --git a/SRC/MESAgent/AutoLoaderLib/ParseQEL.cs b/SRC/MESAgent/AutoLoaderLib/ParseQEL.cs new file mode 100644 index 0000000..9c2f89a --- /dev/null +++ b/SRC/MESAgent/AutoLoaderLib/ParseQEL.cs @@ -0,0 +1,259 @@ +using System; +using System.Data; +using System.IO; +using Microsoft.VisualBasic.CompilerServices; +using static iMESCore.DataBase.iMESSql; + +namespace AutoLoaderLib_C +{ + + public class ParseQEL : EPIParseTemplate + { + + + // 呼叫父類別的建構子 + public ParseQEL(string paramSourcePath, string paramDestinationPath, string paramQueuePath, string paramFailPath) : base(paramSourcePath, paramDestinationPath, paramQueuePath, paramFailPath) + { + + } + + /// + /// 設定暫存資料表的欄位 + /// + /// + /// + /// + internal override bool AddColumns(DataTable dt) + { + + bool blnResult = false; + + try + { + + dt.Columns.Add("WaferID", Type.GetType("System.String")); + dt.Columns.Add("POS", Type.GetType("System.Decimal")); + dt.Columns.Add("LOP1", Type.GetType("System.Decimal")); + dt.Columns.Add("LOP2", Type.GetType("System.Decimal")); + dt.Columns.Add("WLP1", Type.GetType("System.Decimal")); + dt.Columns.Add("WLD1", Type.GetType("System.Decimal")); + dt.Columns.Add("VF1", Type.GetType("System.Decimal")); + dt.Columns.Add("VF2", Type.GetType("System.Decimal")); + + blnResult = true; + } + + catch (Exception ex) + { + + throw; + + } + + return blnResult; + + } + + /// + /// 將暫存資料表寫入資料庫 + /// + /// + /// + /// + internal override bool InsertTable(DataTable dt) + { + + bool blnResult = false; + string strSQL_Raw; + string strSQL_Avg; + string WaferID = ""; + decimal LOP1 = 0m; + decimal LOP2 = 0m; + decimal WLP1 = 0m; + decimal WLD1 = 0m; + decimal VF1 = 0m; + decimal VF2 = 0m; + + strSQL_Raw = " INSERT INTO TBL_LEDLD_EL_Q_RAW " + " (WaferID, CreateDate, POS, LOP1, LOP2, WLP1, WLD1, VF1, VF2) " + " VALUES ('{0}', SYSDATE, {1}, {2}, {3}, {4}, {5}, {6}, {7}) "; + + + strSQL_Avg = " INSERT INTO TBL_LEDLD_EL_Q " + " (WaferID, CreateDate, LOP1, LOP2, WLP1, WLD1, VF1, VF2) " + " VALUES ('{0}', SYSDATE, {1}, {2}, {3}, {4}, {5}, {6}) "; + + + try + { + + using (var oTran = objConnection.BeginTransaction()) + { + + try + { + + using (var cmd = CreateCommand()) + { + + cmd.Connection = objConnection; + cmd.Transaction = oTran; + + if (dt.Rows.Count > 0) + { + + for (int i = 0, loopTo = dt.Rows.Count - 1; i <= loopTo; i++) + { + + cmd.CommandText = string.Format(strSQL_Raw, dt.Rows[i]["WaferID"], dt.Rows[i]["POS"], dt.Rows[i]["LOP1"], dt.Rows[i]["LOP2"], dt.Rows[i]["WLP1"], dt.Rows[i]["WLD1"], dt.Rows[i]["VF1"], dt.Rows[i]["VF2"]); + + + + + + + + + cmd.ExecuteNonQuery(); + + WaferID = Conversions.ToString(dt.Rows[i]["WaferID"]); + LOP1 = LOP1 + (decimal)dt.Rows[i]["LOP1"]; + LOP2 = LOP2 + (decimal)dt.Rows[i]["LOP2"]; + WLP1 = WLP1 + (decimal)dt.Rows[i]["WLP1"]; + WLD1 = WLD1 + (decimal)dt.Rows[i]["WLD1"]; + VF1 = VF1 + (decimal)dt.Rows[i]["VF1"]; + VF2 = VF2 + (decimal)dt.Rows[i]["VF2"]; + + } + + cmd.CommandText = string.Format(strSQL_Avg, WaferID, LOP1 / dt.Rows.Count, LOP2 / dt.Rows.Count, WLP1 / dt.Rows.Count, WLD1 / dt.Rows.Count, VF1 / dt.Rows.Count, VF2 / dt.Rows.Count); + + + + + + + + cmd.ExecuteNonQuery(); + + } + + } + + oTran.Commit(); + + blnResult = true; + } + + catch (Exception ex) + { + + oTran.Rollback(); + throw; + + } + + } + } + + catch (Exception ex) + { + + throw; + + } + + return blnResult; + + } + + /// + /// 解析資料, 並寫入暫存資料表 + /// + /// + /// + /// + /// + internal override bool ParsingFile(DataTable dt, string file) + { + + bool blnResult = false; + DataRow dr = null; + string line; + string[] tmpData; + bool startParsing = false; + string WaferID; + + try + { + + // 檔名即為 WaferID + var fi = new FileInfo(file); + WaferID = fi.Name.Replace(fi.Extension, ""); + fi = null; + + using (var sr = new StreamReader(file)) + { + + do + { + + line = sr.ReadLine(); + + if (!string.IsNullOrEmpty(line)) + { + + if (startParsing) + { + + tmpData = line.Split(','); + + dr = dt.NewRow(); + + dr["WaferID"] = WaferID; + dr["POS"] = Convert.ToDecimal(tmpData[0].Trim()); + dr["LOP1"] = Convert.ToDecimal(tmpData[4].Trim()); + dr["LOP2"] = Convert.ToDecimal(tmpData[14].Trim()); + dr["WLP1"] = Convert.ToDecimal(tmpData[6].Trim()); + dr["WLD1"] = Convert.ToDecimal(tmpData[5].Trim()); + dr["VF1"] = Convert.ToDecimal(tmpData[3].Trim()); + dr["VF2"] = Convert.ToDecimal(tmpData[13].Trim()); + + dt.Rows.Add(dr); + } + + + else if (line.IndexOf("PosX") >= 0 && line.IndexOf("PosY") >= 0) + { + startParsing = true; + + } + + } + } + + while (!(line == null)); + + blnResult = true; + + } + } + + catch (Exception ex) + { + + throw; + } + + finally + { + + if (dr != null) + { + dr = null; + } + + } + + return blnResult; + + } + + } +} \ No newline at end of file diff --git a/SRC/MESAgent/AutoLoaderLib/Properties/BuildIncrementVersionInfo.cs b/SRC/MESAgent/AutoLoaderLib/Properties/BuildIncrementVersionInfo.cs new file mode 100644 index 0000000..cc37e81 --- /dev/null +++ b/SRC/MESAgent/AutoLoaderLib/Properties/BuildIncrementVersionInfo.cs @@ -0,0 +1 @@ +[assembly: System.Reflection.AssemblyFileVersion("6.0.5.31114")] diff --git a/SRC/MESAgent/AutoLoaderLib/Web References/wsInvoke/Reference.cs b/SRC/MESAgent/AutoLoaderLib/Web References/wsInvoke/Reference.cs new file mode 100644 index 0000000..1ad1c3f --- /dev/null +++ b/SRC/MESAgent/AutoLoaderLib/Web References/wsInvoke/Reference.cs @@ -0,0 +1,779 @@ +// ------------------------------------------------------------------------------ +// +// 這段程式碼是由工具產生的。 +// 執行階段版本:4.0.30319.42000 +// +// 對這個檔案所做的變更可能會造成錯誤的行為,而且如果重新產生程式碼, +// 變更將會遺失。 +// +// ------------------------------------------------------------------------------ + + +using System; +using System.ComponentModel; +using System.Data; +using System.Diagnostics; +using System.Web.Services; +using System.Web.Services.Protocols; +using System.Xml.Serialization; +using Microsoft.VisualBasic.CompilerServices; + +// +// 原始程式碼已由 Microsoft.VSDesigner 自動產生,版本 4.0.30319.42000。 +// +namespace AutoLoaderLib_C.wsInvoke +{ + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + [WebServiceBinding(Name = "wsInvokeSoap", Namespace = "http://www.imestech.com/wsInvoke")] + [XmlInclude(typeof(object[]))] + public partial class wsInvoke : SoapHttpClientProtocol + { + + private System.Threading.SendOrPostCallback invokeSrvOperationCompleted; + + private System.Threading.SendOrPostCallback invokeSrv_XmlOperationCompleted; + + private System.Threading.SendOrPostCallback invokeSrv_Xml_SessionOperationCompleted; + + private System.Threading.SendOrPostCallback invokeSrv_DataTableParameterOperationCompleted; + + private System.Threading.SendOrPostCallback invokeSrv_DataTableOperationCompleted; + + private System.Threading.SendOrPostCallback invokeSrv_DataSetOperationCompleted; + + private System.Threading.SendOrPostCallback invokeSrv_SessionOperationCompleted; + + private System.Threading.SendOrPostCallback TestOperationCompleted; + + private bool useDefaultCredentialsSetExplicitly; + + /// + public wsInvoke() : base() + { + Url = My.MySettings.Default.AutoLoaderLib_wsInvoke_wsInvoke; + if (IsLocalFileSystemWebService(Url) == true) + { + UseDefaultCredentials = true; + useDefaultCredentialsSetExplicitly = false; + } + else + { + useDefaultCredentialsSetExplicitly = true; + } + } + + public new string Url + { + get + { + return base.Url; + } + set + { + if (IsLocalFileSystemWebService(base.Url) == true && useDefaultCredentialsSetExplicitly == false && IsLocalFileSystemWebService(value) == false) + + { + base.UseDefaultCredentials = false; + } + base.Url = value; + } + } + + public new bool UseDefaultCredentials + { + get + { + return base.UseDefaultCredentials; + } + set + { + base.UseDefaultCredentials = value; + useDefaultCredentialsSetExplicitly = true; + } + } + + /// + public event invokeSrvCompletedEventHandler invokeSrvCompleted; + + /// + public event invokeSrv_XmlCompletedEventHandler invokeSrv_XmlCompleted; + + /// + public event invokeSrv_Xml_SessionCompletedEventHandler invokeSrv_Xml_SessionCompleted; + + /// + public event invokeSrv_DataTableParameterCompletedEventHandler invokeSrv_DataTableParameterCompleted; + + /// + public event invokeSrv_DataTableCompletedEventHandler invokeSrv_DataTableCompleted; + + /// + public event invokeSrv_DataSetCompletedEventHandler invokeSrv_DataSetCompleted; + + /// + public event invokeSrv_SessionCompletedEventHandler invokeSrv_SessionCompleted; + + /// + public event TestCompletedEventHandler TestCompleted; + + /// + [SoapDocumentMethod("http://www.imestech.com/wsInvoke/invokeSrv", RequestNamespace = "http://www.imestech.com/wsInvoke", ResponseNamespace = "http://www.imestech.com/wsInvoke", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public object invokeSrv(string method, object[] parameters) + { + object[] results = Invoke("invokeSrv", new object[] { method, parameters }); + return results[0]; + } + + /// + public IAsyncResult BegininvokeSrv(string method, object[] parameters, AsyncCallback callback, object asyncState) + { + return BeginInvoke("invokeSrv", new object[] { method, parameters }, callback, asyncState); + } + + /// + public object EndinvokeSrv(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return results[0]; + } + + /// + public void invokeSrvAsync(string method, object[] parameters) + { + invokeSrvAsync(method, parameters, null); + } + + /// + public void invokeSrvAsync(string method, object[] parameters, object userState) + { + if (invokeSrvOperationCompleted == null) + { + invokeSrvOperationCompleted = OninvokeSrvOperationCompleted; + } + InvokeAsync("invokeSrv", new object[] { method, parameters }, invokeSrvOperationCompleted, userState); + } + + private void OninvokeSrvOperationCompleted(object arg) + { + if (invokeSrvCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + invokeSrvCompleted?.Invoke(this, new invokeSrvCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsInvoke/invokeSrv_Xml", RequestNamespace = "http://www.imestech.com/wsInvoke", ResponseNamespace = "http://www.imestech.com/wsInvoke", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public object invokeSrv_Xml(string method, string inXMl) + { + object[] results = Invoke("invokeSrv_Xml", new object[] { method, inXMl }); + return results[0]; + } + + /// + public IAsyncResult BegininvokeSrv_Xml(string method, string inXMl, AsyncCallback callback, object asyncState) + { + return BeginInvoke("invokeSrv_Xml", new object[] { method, inXMl }, callback, asyncState); + } + + /// + public object EndinvokeSrv_Xml(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return results[0]; + } + + /// + public void invokeSrv_XmlAsync(string method, string inXMl) + { + invokeSrv_XmlAsync(method, inXMl, null); + } + + /// + public void invokeSrv_XmlAsync(string method, string inXMl, object userState) + { + if (invokeSrv_XmlOperationCompleted == null) + { + invokeSrv_XmlOperationCompleted = OninvokeSrv_XmlOperationCompleted; + } + InvokeAsync("invokeSrv_Xml", new object[] { method, inXMl }, invokeSrv_XmlOperationCompleted, userState); + } + + private void OninvokeSrv_XmlOperationCompleted(object arg) + { + if (invokeSrv_XmlCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + invokeSrv_XmlCompleted?.Invoke(this, new invokeSrv_XmlCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsInvoke/invokeSrv_Xml_Session", RequestNamespace = "http://www.imestech.com/wsInvoke", ResponseNamespace = "http://www.imestech.com/wsInvoke", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public object invokeSrv_Xml_Session(string method, string inXMl) + { + object[] results = Invoke("invokeSrv_Xml_Session", new object[] { method, inXMl }); + return results[0]; + } + + /// + public IAsyncResult BegininvokeSrv_Xml_Session(string method, string inXMl, AsyncCallback callback, object asyncState) + { + return BeginInvoke("invokeSrv_Xml_Session", new object[] { method, inXMl }, callback, asyncState); + } + + /// + public object EndinvokeSrv_Xml_Session(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return results[0]; + } + + /// + public void invokeSrv_Xml_SessionAsync(string method, string inXMl) + { + invokeSrv_Xml_SessionAsync(method, inXMl, null); + } + + /// + public void invokeSrv_Xml_SessionAsync(string method, string inXMl, object userState) + { + if (invokeSrv_Xml_SessionOperationCompleted == null) + { + invokeSrv_Xml_SessionOperationCompleted = OninvokeSrv_Xml_SessionOperationCompleted; + } + InvokeAsync("invokeSrv_Xml_Session", new object[] { method, inXMl }, invokeSrv_Xml_SessionOperationCompleted, userState); + } + + private void OninvokeSrv_Xml_SessionOperationCompleted(object arg) + { + if (invokeSrv_Xml_SessionCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + invokeSrv_Xml_SessionCompleted?.Invoke(this, new invokeSrv_Xml_SessionCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsInvoke/invokeSrv_DataTableParameter", RequestNamespace = "http://www.imestech.com/wsInvoke", ResponseNamespace = "http://www.imestech.com/wsInvoke", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public object invokeSrv_DataTableParameter(string method, object[] parameters, ref DataTable pDataTable) + { + object[] results = Invoke("invokeSrv_DataTableParameter", new object[] { method, parameters, pDataTable }); + pDataTable = (DataTable)results[1]; + return results[0]; + } + + /// + public IAsyncResult BegininvokeSrv_DataTableParameter(string method, object[] parameters, DataTable pDataTable, AsyncCallback callback, object asyncState) + { + return BeginInvoke("invokeSrv_DataTableParameter", new object[] { method, parameters, pDataTable }, callback, asyncState); + } + + /// + public object EndinvokeSrv_DataTableParameter(IAsyncResult asyncResult, ref DataTable pDataTable) + { + object[] results = EndInvoke(asyncResult); + pDataTable = (DataTable)results[1]; + return results[0]; + } + + /// + public void invokeSrv_DataTableParameterAsync(string method, object[] parameters, DataTable pDataTable) + { + invokeSrv_DataTableParameterAsync(method, parameters, pDataTable, null); + } + + /// + public void invokeSrv_DataTableParameterAsync(string method, object[] parameters, DataTable pDataTable, object userState) + { + if (invokeSrv_DataTableParameterOperationCompleted == null) + { + invokeSrv_DataTableParameterOperationCompleted = OninvokeSrv_DataTableParameterOperationCompleted; + } + InvokeAsync("invokeSrv_DataTableParameter", new object[] { method, parameters, pDataTable }, invokeSrv_DataTableParameterOperationCompleted, userState); + } + + private void OninvokeSrv_DataTableParameterOperationCompleted(object arg) + { + if (invokeSrv_DataTableParameterCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + invokeSrv_DataTableParameterCompleted?.Invoke(this, new invokeSrv_DataTableParameterCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsInvoke/invokeSrv_DataTable", RequestNamespace = "http://www.imestech.com/wsInvoke", ResponseNamespace = "http://www.imestech.com/wsInvoke", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public object invokeSrv_DataTable(string method, string InXml, ref DataTable pDataTable) + { + object[] results = Invoke("invokeSrv_DataTable", new object[] { method, InXml, pDataTable }); + pDataTable = (DataTable)results[1]; + return results[0]; + } + + /// + public IAsyncResult BegininvokeSrv_DataTable(string method, string InXml, DataTable pDataTable, AsyncCallback callback, object asyncState) + { + return BeginInvoke("invokeSrv_DataTable", new object[] { method, InXml, pDataTable }, callback, asyncState); + } + + /// + public object EndinvokeSrv_DataTable(IAsyncResult asyncResult, ref DataTable pDataTable) + { + object[] results = EndInvoke(asyncResult); + pDataTable = (DataTable)results[1]; + return results[0]; + } + + /// + public void invokeSrv_DataTableAsync(string method, string InXml, DataTable pDataTable) + { + invokeSrv_DataTableAsync(method, InXml, pDataTable, null); + } + + /// + public void invokeSrv_DataTableAsync(string method, string InXml, DataTable pDataTable, object userState) + { + if (invokeSrv_DataTableOperationCompleted == null) + { + invokeSrv_DataTableOperationCompleted = OninvokeSrv_DataTableOperationCompleted; + } + InvokeAsync("invokeSrv_DataTable", new object[] { method, InXml, pDataTable }, invokeSrv_DataTableOperationCompleted, userState); + } + + private void OninvokeSrv_DataTableOperationCompleted(object arg) + { + if (invokeSrv_DataTableCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + invokeSrv_DataTableCompleted?.Invoke(this, new invokeSrv_DataTableCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsInvoke/invokeSrv_DataSet", RequestNamespace = "http://www.imestech.com/wsInvoke", ResponseNamespace = "http://www.imestech.com/wsInvoke", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public object invokeSrv_DataSet(string method, string InXml, ref DataSet pDataSet) + { + object[] results = Invoke("invokeSrv_DataSet", new object[] { method, InXml, pDataSet }); + pDataSet = (DataSet)results[1]; + return results[0]; + } + + /// + public IAsyncResult BegininvokeSrv_DataSet(string method, string InXml, DataSet pDataSet, AsyncCallback callback, object asyncState) + { + return BeginInvoke("invokeSrv_DataSet", new object[] { method, InXml, pDataSet }, callback, asyncState); + } + + /// + public object EndinvokeSrv_DataSet(IAsyncResult asyncResult, ref DataSet pDataSet) + { + object[] results = EndInvoke(asyncResult); + pDataSet = (DataSet)results[1]; + return results[0]; + } + + /// + public void invokeSrv_DataSetAsync(string method, string InXml, DataSet pDataSet) + { + invokeSrv_DataSetAsync(method, InXml, pDataSet, null); + } + + /// + public void invokeSrv_DataSetAsync(string method, string InXml, DataSet pDataSet, object userState) + { + if (invokeSrv_DataSetOperationCompleted == null) + { + invokeSrv_DataSetOperationCompleted = OninvokeSrv_DataSetOperationCompleted; + } + InvokeAsync("invokeSrv_DataSet", new object[] { method, InXml, pDataSet }, invokeSrv_DataSetOperationCompleted, userState); + } + + private void OninvokeSrv_DataSetOperationCompleted(object arg) + { + if (invokeSrv_DataSetCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + invokeSrv_DataSetCompleted?.Invoke(this, new invokeSrv_DataSetCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsInvoke/invokeSrv_Session", RequestNamespace = "http://www.imestech.com/wsInvoke", ResponseNamespace = "http://www.imestech.com/wsInvoke", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public object invokeSrv_Session(string method, object[] parameters) + { + object[] results = Invoke("invokeSrv_Session", new object[] { method, parameters }); + return results[0]; + } + + /// + public IAsyncResult BegininvokeSrv_Session(string method, object[] parameters, AsyncCallback callback, object asyncState) + { + return BeginInvoke("invokeSrv_Session", new object[] { method, parameters }, callback, asyncState); + } + + /// + public object EndinvokeSrv_Session(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return results[0]; + } + + /// + public void invokeSrv_SessionAsync(string method, object[] parameters) + { + invokeSrv_SessionAsync(method, parameters, null); + } + + /// + public void invokeSrv_SessionAsync(string method, object[] parameters, object userState) + { + if (invokeSrv_SessionOperationCompleted == null) + { + invokeSrv_SessionOperationCompleted = OninvokeSrv_SessionOperationCompleted; + } + InvokeAsync("invokeSrv_Session", new object[] { method, parameters }, invokeSrv_SessionOperationCompleted, userState); + } + + private void OninvokeSrv_SessionOperationCompleted(object arg) + { + if (invokeSrv_SessionCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + invokeSrv_SessionCompleted?.Invoke(this, new invokeSrv_SessionCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsInvoke/Test", RequestNamespace = "http://www.imestech.com/wsInvoke", ResponseNamespace = "http://www.imestech.com/wsInvoke", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string Test(string UserNo) + { + object[] results = Invoke("Test", new object[] { UserNo }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginTest(string UserNo, AsyncCallback callback, object asyncState) + { + return BeginInvoke("Test", new object[] { UserNo }, callback, asyncState); + } + + /// + public string EndTest(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void TestAsync(string UserNo) + { + TestAsync(UserNo, null); + } + + /// + public void TestAsync(string UserNo, object userState) + { + if (TestOperationCompleted == null) + { + TestOperationCompleted = OnTestOperationCompleted; + } + InvokeAsync("Test", new object[] { UserNo }, TestOperationCompleted, userState); + } + + private void OnTestOperationCompleted(object arg) + { + if (TestCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + TestCompleted?.Invoke(this, new TestCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + public new void CancelAsync(object userState) + { + base.CancelAsync(userState); + } + + private bool IsLocalFileSystemWebService(string url) + { + if (url == null || ReferenceEquals(url, string.Empty)) + { + return false; + } + var wsUri = new Uri(url); + if (wsUri.Port >= 1024 && string.Compare(wsUri.Host, "localHost", StringComparison.OrdinalIgnoreCase) == 0) + { + return true; + } + return false; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void invokeSrvCompletedEventHandler(object sender, invokeSrvCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class invokeSrvCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal invokeSrvCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public object Result + { + get + { + RaiseExceptionIfNecessary(); + return results[0]; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void invokeSrv_XmlCompletedEventHandler(object sender, invokeSrv_XmlCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class invokeSrv_XmlCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal invokeSrv_XmlCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public object Result + { + get + { + RaiseExceptionIfNecessary(); + return results[0]; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void invokeSrv_Xml_SessionCompletedEventHandler(object sender, invokeSrv_Xml_SessionCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class invokeSrv_Xml_SessionCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal invokeSrv_Xml_SessionCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public object Result + { + get + { + RaiseExceptionIfNecessary(); + return results[0]; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void invokeSrv_DataTableParameterCompletedEventHandler(object sender, invokeSrv_DataTableParameterCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class invokeSrv_DataTableParameterCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal invokeSrv_DataTableParameterCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public object Result + { + get + { + RaiseExceptionIfNecessary(); + return results[0]; + } + } + + /// + public DataTable pDataTable + { + get + { + RaiseExceptionIfNecessary(); + return (DataTable)results[1]; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void invokeSrv_DataTableCompletedEventHandler(object sender, invokeSrv_DataTableCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class invokeSrv_DataTableCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal invokeSrv_DataTableCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public object Result + { + get + { + RaiseExceptionIfNecessary(); + return results[0]; + } + } + + /// + public DataTable pDataTable + { + get + { + RaiseExceptionIfNecessary(); + return (DataTable)results[1]; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void invokeSrv_DataSetCompletedEventHandler(object sender, invokeSrv_DataSetCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class invokeSrv_DataSetCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal invokeSrv_DataSetCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public object Result + { + get + { + RaiseExceptionIfNecessary(); + return results[0]; + } + } + + /// + public DataSet pDataSet + { + get + { + RaiseExceptionIfNecessary(); + return (DataSet)results[1]; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void invokeSrv_SessionCompletedEventHandler(object sender, invokeSrv_SessionCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class invokeSrv_SessionCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal invokeSrv_SessionCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public object Result + { + get + { + RaiseExceptionIfNecessary(); + return results[0]; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void TestCompletedEventHandler(object sender, TestCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class TestCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal TestCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } +} \ No newline at end of file diff --git a/SRC/MESAgent/AutoLoaderLib/Web References/wsInvoke/Reference.map b/SRC/MESAgent/AutoLoaderLib/Web References/wsInvoke/Reference.map new file mode 100644 index 0000000..4940833 --- /dev/null +++ b/SRC/MESAgent/AutoLoaderLib/Web References/wsInvoke/Reference.map @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/SRC/MESAgent/AutoLoaderLib/Web References/wsInvoke/wsInvoke.disco b/SRC/MESAgent/AutoLoaderLib/Web References/wsInvoke/wsInvoke.disco new file mode 100644 index 0000000..50d9cfb --- /dev/null +++ b/SRC/MESAgent/AutoLoaderLib/Web References/wsInvoke/wsInvoke.disco @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/SRC/MESAgent/AutoLoaderLib/Web References/wsInvoke/wsInvoke.wsdl b/SRC/MESAgent/AutoLoaderLib/Web References/wsInvoke/wsInvoke.wsdl new file mode 100644 index 0000000..b943600 --- /dev/null +++ b/SRC/MESAgent/AutoLoaderLib/Web References/wsInvoke/wsInvoke.wsdl @@ -0,0 +1,427 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Invoke with objects and Return XML + + + + + Invoke with Xml String and Return XML + + + + + EnableSession, Invoke with Xml String and Return XML + + + + + Invoke with DataTable and Object Return XML + + + + + Invoke with DataTable and Return XML + + + + + Invoke with DataSet and Return XML + + + + + EnableSession, Invoke and Return XML + + + + + Web service and database connection test + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SRC/MESAgent/AutoLoaderLib/app.config b/SRC/MESAgent/AutoLoaderLib/app.config new file mode 100644 index 0000000..cc2db03 --- /dev/null +++ b/SRC/MESAgent/AutoLoaderLib/app.config @@ -0,0 +1,35 @@ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + http://localhost/MESws_Industry/wsInvoke.asmx + + + + diff --git a/SRC/MESAgent/AutoLoaderLib/clsAutoLoaderLibrary.cs b/SRC/MESAgent/AutoLoaderLib/clsAutoLoaderLibrary.cs new file mode 100644 index 0000000..3e6ef8b --- /dev/null +++ b/SRC/MESAgent/AutoLoaderLib/clsAutoLoaderLibrary.cs @@ -0,0 +1,356 @@ +using System; +using System.Collections; +using System.Data; +using System.IO; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Text; +using Microsoft.VisualBasic; +using Microsoft.VisualBasic.CompilerServices; +using Microsoft.VisualBasic.FileIO; +using NPOI.HSSF.UserModel; +using NPOI.SS.UserModel; +using NPOI.XSSF.UserModel; +using iMESCore.Settings; +using static iMESCore.DataBase.iMESSql; +using static iMESCore.Base.iMESConst; +using System.Data.Common; + +namespace AutoLoaderLib_C +{ + + public class clsAutoLoaderLibrary + { + + //private System.Data.OleDb.OleDbCommand cmmTemp; + private string strConnectionString; // Connection string + private string strReportConnectionString; // Report DB Connection string + private string strDataBaseType; // DataBase Type:oracle, mysql, access + private string strMQType; // MessageQueue Type:TIBCO, MQSeries, MSMQ + + private AppSettings objSetting = new AppSettings(); + + private string InXml, OutXml, strIdentity, strParameter, XmlData, XmlSchema; + + // //Initial Object-------------------------------------------------------------------------------------------------------------------------------- + public clsAutoLoaderLibrary() + { + // //Get database type + strDataBaseType = objSetting.GetDataBaseType(); + // //Get connection string + strConnectionString = objSetting.GetConnectionString(strDataBaseType); + // //Get Message Queue Type + strMQType = objSetting.GetMQType(); + // //Get connection string + strReportConnectionString = objSetting.GetReportConnectionString(strDataBaseType); + // //GetMESWebSer + modWIN.gMESWebServiceHost = objSetting["MESWebServiceHost"].ToString(); + } + + // //Property-------------------------------------------------------------------------------------------------------------------------------- + public string ConnectionString + { + get + { + return strConnectionString; + } + } + + public string DataBaseType + { + get + { + return strDataBaseType; + } + } + + public string MQType + { + get + { + return strMQType; + } + } + + // //Public function---------------------------------------------------------------------------------------------------- + public string ExecuteFunction(string FunctionName, Collection colParameters = null) + { + string ExecuteFunctionRet = default(string); + // 此 Function 將執行傳入之FunctionName + // 傳入值: FunctionName,colParameters + // 傳回值: DataSet(成功), nothing(失敗) + + // colParameters的資料範例如下 + // colParameters.Add("C1", "CustomerNo") + // colParameters.Add("P1", "ProductNo") + + int i; + + try + { + + // 1.處理 FunctionName 大小寫問題 + System.Reflection.MethodInfo[] MyMethodInfos = GetType().GetMethods(System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance); // 取出Private的Function + var loopTo = MyMethodInfos.Length - 1; + for (i = 0; i <= loopTo; i++) + { + if ((MyMethodInfos[i].Name.ToUpper() ?? "") == (FunctionName.ToUpper() ?? "")) + { + FunctionName = MyMethodInfos[i].Name; + break; + } + } + + // 2.執行Private Function,傳出DataSet + object objArgs = new object[] { colParameters }; + ExecuteFunctionRet = Conversions.ToString(GetType().InvokeMember(FunctionName, System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.InvokeMethod, null, this, (object[])objArgs)); + } + + catch (Exception e1) + { + ExecuteFunctionRet = "fail"; + throw new Exception("clsAutoLoaderLibrary.ExecuteFunction:" + "{" + FunctionName + "}" + e1.Message); + } + + finally + { + + } + + return ExecuteFunctionRet; + + } + + #region ---AutoLoader function--- + + + #endregion + + #region ---AutoLoader Sample--- + + private string funWatchTest(Collection colParameters = null) + { + string funWatchTestRet = default(string); + + string strJobNo = string.Empty; // JobNo + string strSourcePath = string.Empty; // 來源檔案路徑 + string strDestinationPath = string.Empty; // 目前檔案路徑 + string strQueuePath = string.Empty; // 處理中檔案路徑 + string strFailPath = string.Empty; // 失敗檔案路徑 + string FileName = string.Empty; // 處理中檔案 + string DirName = DateTime.Now.ToString("yyyyMM"); // 分類目錄名稱 + string strLotNo = string.Empty; + string strComponentNo = string.Empty; + bool blnMoveFile = true; + string strSQL = string.Empty; + + try + { + // //取出colParameter傳入參數 + strJobNo = colParameters["JobNo"].ToString().Trim(); + strSourcePath = colParameters["SourcePath"].ToString().Trim(); + strDestinationPath = colParameters["DestinationPath"].ToString().Trim(); + strQueuePath = colParameters["QueuePath"].ToString().Trim(); + strFailPath = colParameters["FailPath"].ToString().Trim(); + // //取出來源目錄中*.csv檔案 + string[] DirFiles = Directory.GetFiles(strSourcePath, "*.csv"); + // //將檔案複製到Queue的目錄中 + foreach (var currentFileName in DirFiles) + { + FileName = currentFileName; + // //檢查檔案存不存在,有可能被另一個執行緒先處理 + if (File.Exists(FileName) == true) + { + // '//檔案已存在Queue必須先刪除 + // If File.Exists(strQueuePath & Path.GetFileName(FileName)) = True Then + // File.Delete(strQueuePath & Path.GetFileName(FileName)) + // End If + // //移動檔案Source至Queue + try + { + blnMoveFile = true; + File.Move(FileName, strQueuePath + Path.GetFileName(FileName)); + } + catch (Exception ex) + { + blnMoveFile = false; + throw new Exception("此執行程序已中止,由另一執行程序處理中!!"); + } + // //將檔案來源改為Queue + FileName = strQueuePath + Path.GetFileName(FileName); + // //開始執行解檔處理 + using (var myReader = new TextFieldParser(FileName, Encoding.Default)) + { + myReader.TextFieldType = FieldType.Delimited; + myReader.Delimiters = new string[] { "," }; + // //建立Connection + var cnnTemp = CreateConnection(strConnectionString); + //System.Data.OleDb.OleDbCommand cmmTemp = null; + //System.Data.OleDb.OleDbDataAdapter daTemp = null; + DbDataReader drTemp = null; + var CollectionSQL = new Collection(); + // //變數宣告區域 + + // //Try Catch + try + { + // //Parser檔案 + while (!myReader.EndOfData) + { + + } + + // //執行SQL + ExecuteSQLNoneQuery_UPD(strDataBaseType, strConnectionString, CollectionSQL); + } + + catch (Exception ex) + { + throw; + } // //直接將錯誤Throw出去 + + finally + { + // //釋放資源 + CollectionSQL = null; + // //Close Connection + CloseConnection(cnnTemp); + } + } + // //目錄不存在時必須要先建立 + if (Directory.Exists(strDestinationPath + DirName) == false) + { + Directory.CreateDirectory(strDestinationPath + DirName); + } + // //檔案已存在Destination必須先刪除 + if (File.Exists(strDestinationPath + DirName + @"\" + Path.GetFileName(FileName)) == true) + { + File.Delete(strDestinationPath + DirName + @"\" + Path.GetFileName(FileName)); + } + // //移動檔案Queue至Destination + File.Move(FileName, strDestinationPath + DirName + @"\" + Path.GetFileName(FileName)); + } + } + // //回傳Success + funWatchTestRet = "success"; + } + + catch (Exception ex) + { + // //檔案處理失敗時移動檔案Queue至Fail + if (!string.IsNullOrEmpty(FileName) && blnMoveFile == true) + { + // //目錄不存在時必須要先建立 + if (Directory.Exists(strFailPath + DirName) == false) + { + Directory.CreateDirectory(strFailPath + DirName); + } + // //檔案已存在File必須先刪除 + if (File.Exists(strFailPath + DirName + @"\" + Path.GetFileName(FileName)) == true) + { + File.Delete(strFailPath + DirName + @"\" + Path.GetFileName(FileName)); + } + // //移動檔案Queue至Fail + try + { + File.Move(FileName, strFailPath + DirName + @"\" + Path.GetFileName(FileName)); + } + catch (Exception ex1) + { + } + + } + // //回傳錯誤原因 + funWatchTestRet = CombineFailMsg("0000-999999", "[JobNo:" + strJobNo + "][FunctionNo:funWatchTest][FileName:" + FileName + "][LotNo:" + strLotNo + "][WaferNo:" + strComponentNo + "][" + ex.Message + ",StackTrace:" + ex.StackTrace + "][SQL:" + strSQL + "]"); + } + finally + { + + + } + + return funWatchTestRet; + + } + + #endregion + + #region ---Error Log--- + + // //Function--------------------------------------------------------------------------------------------------------------------------------- + public string AddErrorLog(string ServiceName, string UserID, string KeyField, string KeyValue, DateTime RecordDate = default(DateTime), string Description = defString, string ComputerName = defString) + + + + { + string AddErrorLogRet = default(string); + // 此 Function 將新增一筆資料 + // 傳入值: 各欄位新增值 + // 傳回值: success(成功), fail(失敗) + + string strSQLAddField = string.Empty; + string strSQLAddValue = string.Empty; + string strSQL = string.Empty; + + if (RecordDate == defDateTime) + RecordDate = DateTime.Now; + + try + { + strSQLAddField = "Insert into tblSysErrorLog (ServiceName, UserID, KeyField, KeyValue"; + strSQLAddValue = " Values ('" + ChkSingleQuation(Strings.Left(ServiceName, 30)) + "','" + ChkSingleQuation(Strings.Left(UserID, 10)) + "','" + ChkSingleQuation(Strings.Left(KeyField, 999)) + "','" + ChkSingleQuation(Strings.Left(KeyValue, 999)) + "'"; + + if ((Description ?? "") != defString) + { + strSQLAddField += ",Description"; + strSQLAddValue += ",'" + ChkSingleQuation(Strings.Left(Description, 1999)) + "'"; + } + if (RecordDate != defDateTime) + { + strSQLAddField += ",RecordDate"; + strSQLAddValue += ", To_Date('" + Strings.Format(Conversions.ToDate(RecordDate), "yyyy/MM/dd H:mm:ss") + "','YYYY/MM/DD HH24:MI:SS')"; + } + if ((ComputerName ?? "") != defString) + { + strSQLAddField += ",ComputerName"; + strSQLAddValue += ",'" + ChkSingleQuation(Strings.Left(ComputerName, 50)) + "'"; + } + + // 直接給定strSQL + strSQL = strSQLAddField + ")" + strSQLAddValue + ")"; + + // //執行SQL指令 + string argstrDatabaseType = Conversions.ToString(DataBaseType); + ExecuteSQLNoneQuery(argstrDatabaseType, strConnectionString, ref strSQL); + + // //Return success + AddErrorLogRet = "success"; + } + + catch (Exception e1) + { + AddErrorLogRet = "fail"; + // 發生錯誤時丟回本身的Function Name及系統錯誤訊息 + // Throw 'New Exception("kcSYS.AddErrorLog: " & e1.Message) + + } + + return AddErrorLogRet; + + } + private string CombineFailMsg(string ErrorCode, string Desc) + { + string CombineFailMsgRet = default(string); + CombineFailMsgRet = "ErrorCode:" + ErrorCode + ";" + Desc; + return CombineFailMsgRet; + } + #endregion + + ~clsAutoLoaderLibrary() + { + if (objSetting != null) + objSetting = null; + } + + } +} \ No newline at end of file diff --git a/SRC/MESAgent/AutoLoaderLib/modAutoLoaderLibrary.cs b/SRC/MESAgent/AutoLoaderLib/modAutoLoaderLibrary.cs new file mode 100644 index 0000000..beae524 --- /dev/null +++ b/SRC/MESAgent/AutoLoaderLib/modAutoLoaderLibrary.cs @@ -0,0 +1,939 @@ +using System; +using System.Data; +using System.Runtime.InteropServices; +using Microsoft.VisualBasic; +using Microsoft.VisualBasic.CompilerServices; +using static iMESCore.Base.iMESConst; +using static iMESCore.Base.iMESComXML; + +namespace AutoLoaderLib_C +{ + static class modAutoLoaderLibrary + { + public enum GroupType + { + UserGroup = 0, // 使用者群組 + IssueGroup = 1, // 簽核群組 + EquipmentGroup = 2, // 設備工程師群組 + InventoryGroup = 3, // 庫房工程師群組 + ReportGroup = 4, // 報表使用群組 + ERFDispositionGroup = 5, // 異常處理群組 + ERFMailccGroup = 6 // 附件收件人群組 + } + + private static string InXml, OutXml, strIdentity, strParameter, XmlData, XmlSchema; + + #region 計算最大、最小、總合、平方根、良品數 + + public static bool funCalculateMinMaxSumSqr(DataRow rowRawData, string colFieldName, ref DataRow rowReslut, DataRow rowRawData_SpecYield, string min_colFieldName, string max_colFieldName, DataRow rowRawData_SpecAvg, DataRow rowRawData_SpecEng, string colFieldName_IR = defString, bool blnGoodFlag_Yield = true, bool blnGoodFlag_Avg = true, bool blnGoodFlag_AOI = true) + + + + { + bool funCalculateMinMaxSumSqrRet = default(bool); + + + // //符合規格的顆數(AVG) + if (Conversions.ToBoolean(Operators.ConditionalCompareObjectGreaterEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_SpecAvg[min_colFieldName], false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectLessEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_SpecAvg[max_colFieldName], false))) + { + switch (Strings.Mid(colFieldName, 1, 3).ToUpper() ?? "") + { + case "ESD": // 計算ESD的Yield時IR必須也要是Pass + { + if ((colFieldName_IR ?? "") != defString) + { + if (Conversions.ToBoolean(Operators.ConditionalCompareObjectGreaterEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName_IR])), rowRawData_SpecAvg[min_colFieldName], false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectLessEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName_IR])), rowRawData_SpecAvg[max_colFieldName], false))) + { + // //更新 + rowReslut.BeginEdit(); + // //Max + if (Conversions.ToBoolean(Operators.ConditionalCompareObjectLess(rowReslut["MaxValue"], decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), false))) + { + rowReslut["MaxValue"] = decimal.Parse(Conversions.ToString(rowRawData[colFieldName])); + } + // //Min + if (Conversions.ToBoolean(Operators.ConditionalCompareObjectEqual(rowReslut["MinValue"], -9999, false)) || Conversions.ToBoolean(Operators.ConditionalCompareObjectGreater(rowReslut["MinValue"], decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), false))) + { + rowReslut["MinValue"] = decimal.Parse(Conversions.ToString(rowRawData[colFieldName])); + } + // //IR必須要過ESD才能算 + if (Conversions.ToBoolean(Operators.ConditionalCompareObjectGreaterEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_SpecEng[min_colFieldName], false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectLessEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_SpecEng[max_colFieldName], false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectGreaterEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName_IR])), rowRawData_SpecEng[min_colFieldName], false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectLessEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName_IR])), rowRawData_SpecEng[max_colFieldName], false))) + + + { + // //Yield Die數加一 + rowReslut["GoodQty1"] = Convert.ToInt32(rowReslut["GoodQty1"]) + 1; + // Else + // blnGoodFlag_Yield = False + } + + // //不包含AOIBin欄位判斷Yield + if (colFieldName.ToString().ToUpper() != "AOIBIN") + { + if (Conversions.ToBoolean(Operators.ConditionalCompareObjectGreaterEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_SpecYield[min_colFieldName], false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectLessEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_SpecYield[max_colFieldName], false))) + { + } + else + { + blnGoodFlag_AOI = false; + } + } + + if (Conversions.ToBoolean(Operators.ConditionalCompareObjectGreaterEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_SpecYield[min_colFieldName], false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectLessEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_SpecYield[max_colFieldName], false))) + { + } + else + { + blnGoodFlag_Yield = false; + } + + // '計算IR符合ESD規格的顆數 + if (Conversions.ToBoolean(Operators.ConditionalCompareObjectGreaterEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName_IR])), rowRawData_SpecEng[min_colFieldName], false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectLessEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName_IR])), rowRawData_SpecEng[max_colFieldName], false))) + { + rowReslut["IRFitESDSpecQty"] = Convert.ToInt32(rowReslut["IRFitESDSpecQty"]) + 1; + } + // //Sum + rowReslut["SumValue"] = (decimal)rowReslut["SumValue"] + + decimal.Parse(rowRawData[colFieldName].ToString()); + // //SumSqr + rowReslut["SqrValue"] = (double)rowReslut["SqrValue"] + + Math.Pow((double)decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), 2d); + // //Avg Die數加一 + rowReslut["GoodQty2"] = Convert.ToInt32(rowReslut["GoodQty2"]) + 1; + // //更新 + rowReslut.EndEdit(); + // // + funCalculateMinMaxSumSqrRet = true; // //此電性在規格內 + } + else + { + // '計算IR符合ESD規格的顆數 + if (Conversions.ToBoolean(Operators.ConditionalCompareObjectGreaterEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName_IR])), rowRawData_SpecEng[min_colFieldName], false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectLessEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName_IR])), rowRawData_SpecEng[max_colFieldName], false))) + { + rowReslut["GoodQty1"] = Convert.ToInt32(rowReslut["GoodQty1"]) + 1; + rowReslut["IRFitESDSpecQty"] = Convert.ToInt32(rowReslut["IRFitESDSpecQty"]) + 1; + // Else + // blnGoodFlag_Yield = False + } + + // //不包含AOIBin欄位判斷Yield + if (colFieldName.ToString().ToUpper() != "AOIBIN") + { + if (Conversions.ToBoolean(Operators.ConditionalCompareObjectGreaterEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_SpecYield[min_colFieldName], false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectLessEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_SpecYield[max_colFieldName], false))) + { + } + else + { + blnGoodFlag_AOI = false; + } + } + + if (Conversions.ToBoolean(Operators.ConditionalCompareObjectGreaterEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_SpecYield[min_colFieldName], false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectLessEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_SpecYield[max_colFieldName], false))) + { + } + else + { + blnGoodFlag_Yield = false; + } + + funCalculateMinMaxSumSqrRet = false; // //回傳此電性在規格外 + blnGoodFlag_Avg = false; + } + } + else + { + throw new Exception("無法取得檔案中" + colFieldName_IR + "所對應的電性欄位!!"); + } + + break; + } + + default: + { + // //更新 + rowReslut.BeginEdit(); + // //Max + if (Conversions.ToBoolean(Operators.ConditionalCompareObjectLess(rowReslut["MaxValue"], decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), false))) + { + rowReslut["MaxValue"] = decimal.Parse(Conversions.ToString(rowRawData[colFieldName])); + } + // //Min + if (Conversions.ToBoolean(Operators.ConditionalCompareObjectEqual(rowReslut["MinValue"], -9999, false)) || Conversions.ToBoolean(Operators.ConditionalCompareObjectGreater(rowReslut["MinValue"], decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), false))) + { + rowReslut["MinValue"] = decimal.Parse(Conversions.ToString(rowRawData[colFieldName])); + } + if (Conversions.ToBoolean(Operators.ConditionalCompareObjectGreaterEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_SpecEng[min_colFieldName], false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectLessEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_SpecEng[max_colFieldName], false))) + { + // //Die數加一 + rowReslut["GoodQty1"] = Convert.ToInt32(rowReslut["GoodQty1"]) + 1; + // Else + // blnGoodFlag_Yield = False + } + // //不包含AOIBin欄位判斷Yield + if (colFieldName.ToString().ToUpper() != "AOIBIN") + { + if (Conversions.ToBoolean(Operators.ConditionalCompareObjectGreaterEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_SpecYield[min_colFieldName], false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectLessEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_SpecYield[max_colFieldName], false))) + { + } + else + { + blnGoodFlag_AOI = false; + } + } + // // + if (Conversions.ToBoolean(Operators.ConditionalCompareObjectGreaterEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_SpecYield[min_colFieldName], false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectLessEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_SpecYield[max_colFieldName], false))) + { + } + else + { + blnGoodFlag_Yield = false; + } + // //Sum + rowReslut["SumValue"] = (decimal)rowReslut["SumValue"] + + decimal.Parse(Conversions.ToString(rowRawData[colFieldName])); + // //SumSqr + rowReslut["SqrValue"] = (double)rowReslut["SqrValue"] + + Math.Pow((double)decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), 2d); + // //Avg Die數加一 + rowReslut["GoodQty2"] = Convert.ToInt32(rowReslut["GoodQty2"]) + 1; + // //更新 + rowReslut.EndEdit(); + // // + funCalculateMinMaxSumSqrRet = true; // //此電性在規格內 + break; + } + } + } + else + { + if (Conversions.ToBoolean(Operators.ConditionalCompareObjectGreaterEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_SpecEng[min_colFieldName], false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectLessEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_SpecEng[max_colFieldName], false))) + { + // //Die數加一 + rowReslut["GoodQty1"] = Convert.ToInt32(rowReslut["GoodQty1"]) + 1; + // Else + // blnGoodFlag_Yield = False + } + // //不包含AOIBin欄位判斷Yield + if (colFieldName.ToString().ToUpper() != "AOIBIN") + { + if (Conversions.ToBoolean(Operators.ConditionalCompareObjectGreaterEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_SpecYield[min_colFieldName], false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectLessEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_SpecYield[max_colFieldName], false))) + { + } + else + { + blnGoodFlag_AOI = false; + } + } + if (Conversions.ToBoolean(Operators.ConditionalCompareObjectGreaterEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_SpecYield[min_colFieldName], false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectLessEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_SpecYield[max_colFieldName], false))) + { + } + else + { + blnGoodFlag_Yield = false; + } + // '計算IR符合ESD規格的顆數 + if (Strings.Mid(colFieldName, 1, 3).ToUpper() == "ESD" && Conversions.ToBoolean(Operators.ConditionalCompareObjectGreaterEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName_IR])), rowRawData_SpecEng[min_colFieldName], false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectLessEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName_IR])), rowRawData_SpecEng[max_colFieldName], false))) + + { + rowReslut["IRFitESDSpecQty"] = Convert.ToInt32(rowReslut["IRFitESDSpecQty"]) + 1; + } + funCalculateMinMaxSumSqrRet = false; // //回傳此電性在規格外 + blnGoodFlag_Avg = false; + } + + return funCalculateMinMaxSumSqrRet; + // End If + + } + + + public static bool funCalculateMinMaxSumSqr(DataRow rowRawData, string colFieldName, ref DataRow rowReslut, bool blnChkSpecFlag, DataRow rowRawData_Spec = null, DataRow rowRawData_Spec_AVG = null, string min_colFieldName = defString, string max_colFieldName = defString) + + { + bool funCalculateMinMaxSumSqrRet = default(bool); + + // //依傳入值判斷是否要判規格 + if (blnChkSpecFlag == true) + { + // //不可為Nothing + if (rowRawData_Spec == null) + { + throw new Exception("必須傳入規格定義資料(YIELD)!!"); + } + // //不可為Nothing + if (rowRawData_Spec_AVG == null) + { + throw new Exception("必須傳入規格定義資料(AVG)!!"); + } + // //不可為defString + if ((max_colFieldName ?? "") == defString) + { + throw new Exception("必須傳入規格電性最大欄位定義資料!!"); + } + // //不可為defString + if ((min_colFieldName ?? "") == defString) + { + throw new Exception("必須傳入規格電性最小欄位定義資料!!"); + } + } + // //更新 + rowReslut.BeginEdit(); + // //Max + if (Conversions.ToBoolean(Operators.ConditionalCompareObjectLess(rowReslut["MaxValue"], decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), false))) + { + rowReslut["MaxValue"] = decimal.Parse(Conversions.ToString(rowRawData[colFieldName])); + } + // //Min + if (Conversions.ToBoolean(Operators.ConditionalCompareObjectEqual(rowReslut["MinValue"], 0, false)) || Conversions.ToBoolean(Operators.ConditionalCompareObjectGreater(rowReslut["MinValue"], decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), false))) + { + rowReslut["MinValue"] = decimal.Parse(Conversions.ToString(rowRawData[colFieldName])); + } + // //依傳入值判斷是否要判規格 + if (blnChkSpecFlag == true) + { + // //規格最大、最小都為零時不需要判(AVG) + if (Conversions.ToBoolean(Operators.ConditionalCompareObjectEqual(rowRawData_Spec_AVG[min_colFieldName], 0, false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectEqual(rowRawData_Spec_AVG[max_colFieldName], 0, false))) + { + // //Sum + rowReslut["SumValue"] = (decimal)rowReslut["SumValue"] + + decimal.Parse(Conversions.ToString(rowRawData[colFieldName])); + // //SumSqr + rowReslut["SqrValue"] = (double)rowReslut["SqrValue"] + + Math.Pow((double)decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), 2d); + // //Die數加一 + rowReslut["GoodQty1"] = Convert.ToInt32(rowReslut["GoodQty1"]) + 1; + } + // //符合規格的顆數(良品數) + else if (Conversions.ToBoolean(Operators.ConditionalCompareObjectGreaterEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_Spec_AVG[min_colFieldName], false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectLess(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_Spec_AVG[max_colFieldName], false))) + { + // //Sum + rowReslut["SumValue"] = (decimal)rowReslut["SumValue"] + + decimal.Parse(Conversions.ToString(rowRawData[colFieldName])); + // //SumSqr + rowReslut["SqrValue"] = (double)rowReslut["SqrValue"] + + Math.Pow((double)decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), 2d); + // //Die數加一 + rowReslut["GoodQty1"] = Convert.ToInt32(rowReslut["GoodQty1"]) + 1; + } + // //規格最大、最小都為零時不需要判(YIELD) + if (Conversions.ToBoolean(Operators.ConditionalCompareObjectEqual(rowRawData_Spec[min_colFieldName], 0, false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectEqual(rowRawData_Spec[max_colFieldName], 0, false))) + { + // //Pass數加一 + rowReslut["GoodQty2"] = Convert.ToInt32(rowReslut["GoodQty2"]) + 1; + funCalculateMinMaxSumSqrRet = true; // //此電性不需判斷規格(是) + } + // //符合規格的顆數(良品數) + else if (Conversions.ToBoolean(Operators.ConditionalCompareObjectGreaterEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_Spec[min_colFieldName], false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectLess(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_Spec[max_colFieldName], false))) + { + // //Pass數加一 + rowReslut["GoodQty2"] = Convert.ToInt32(rowReslut["GoodQty2"]) + 1; + funCalculateMinMaxSumSqrRet = true; // //回傳此電性是否在規格內(是) + } + else + { + funCalculateMinMaxSumSqrRet = false; + } // //回傳此電性是否在規格內(否) + } + else + { + // //Sum + rowReslut["SumValue"] = (decimal)rowReslut["SumValue"] + + decimal.Parse(Conversions.ToString(rowRawData[colFieldName])); + // //SumSqr + rowReslut["SqrValue"] = (double)rowReslut["SqrValue"] + + Math.Pow((double)decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), 2d); + // //Pass數加一 + rowReslut["GoodQty1"] = Convert.ToInt32(rowReslut["GoodQty1"]) + 1; + rowReslut["GoodQty2"] = Convert.ToInt32(rowReslut["GoodQty2"]) + 1; + funCalculateMinMaxSumSqrRet = true; + } // //此電性不需判斷規格(是) + // // + rowReslut.EndEdit(); + return funCalculateMinMaxSumSqrRet; + + } + + public static bool funCalculateMinMaxSumSqr(ref DataRow rowReslut, decimal valueQty, DataRow rowRawData_Spec, string min_colFieldName, string max_colFieldName) + { + bool funCalculateMinMaxSumSqrRet = default(bool); + + + rowReslut.BeginEdit(); + // //Max + if (Conversions.ToBoolean(Operators.ConditionalCompareObjectLess(rowReslut["MaxValue"], valueQty, false))) + { + rowReslut["MaxValue"] = valueQty; + } + + // //Min + if (Conversions.ToBoolean(Operators.ConditionalCompareObjectEqual(rowReslut["MinValue"], 0, false)) || Conversions.ToBoolean(Operators.ConditionalCompareObjectGreater(rowReslut["MinValue"], valueQty, false))) + { + rowReslut["MinValue"] = valueQty; + } + + // //Sum + rowReslut["SumValue"] = (decimal)rowReslut["SumValue"] + valueQty; + + // //SumSqr + rowReslut["SqrValue"] = (double)rowReslut["SqrValue"] + + Math.Pow((double)valueQty, 2d); + + // //符合規格的顆數(良品數) + // //規格最大、最小都為零時不需要判,都算是Good + if (Conversions.ToBoolean(Operators.ConditionalCompareObjectEqual(rowRawData_Spec[min_colFieldName], 0, false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectEqual(rowRawData_Spec[max_colFieldName], 0, false))) + { + rowReslut["GoodQty1"] = Convert.ToInt32(rowReslut["GoodQty1"]) + 1; + rowReslut["GoodQty2"] = Convert.ToInt32(rowReslut["GoodQty2"]) + 1; + funCalculateMinMaxSumSqrRet = true; // //回傳此電性是否在規格內(是) + } + else if (Conversions.ToBoolean(Operators.ConditionalCompareObjectGreaterEqual(valueQty, rowRawData_Spec[min_colFieldName], false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectLess(valueQty, rowRawData_Spec[max_colFieldName], false))) + { + rowReslut["GoodQty1"] = Convert.ToInt32(rowReslut["GoodQty1"]) + 1; + rowReslut["GoodQty2"] = Convert.ToInt32(rowReslut["GoodQty2"]) + 1; + funCalculateMinMaxSumSqrRet = true; // //回傳此電性是否在規格內(是) + } + else + { + funCalculateMinMaxSumSqrRet = false; + } // //回傳此電性是否在規格內(否) + // //更新 + rowReslut.EndEdit(); + return funCalculateMinMaxSumSqrRet; + + } + + public static bool funCalculateMinMaxSumSqr(DataRow rowRawData, string colFieldName, ref DataRow rowReslut) + { + bool funCalculateMinMaxSumSqrRet = default(bool); + + // //更新 + rowReslut.BeginEdit(); + // //Max + if (Conversions.ToBoolean(Operators.ConditionalCompareObjectLess(rowReslut["MaxValue"], decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), false))) + { + rowReslut["MaxValue"] = decimal.Parse(Conversions.ToString(rowRawData[colFieldName])); + } + // //Min + if (Conversions.ToBoolean(Operators.ConditionalCompareObjectEqual(rowReslut["MinValue"], 0, false)) || Conversions.ToBoolean(Operators.ConditionalCompareObjectGreater(rowReslut["MinValue"], decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), false))) + { + rowReslut["MinValue"] = decimal.Parse(Conversions.ToString(rowRawData[colFieldName])); + } + // //更新 + rowReslut.EndEdit(); + // //Return + funCalculateMinMaxSumSqrRet = true; + return funCalculateMinMaxSumSqrRet; + + } + + // add by Lena, 2012/06/22 + public static bool funCalculateMinMaxSumSqr(string colFieldName, DataRow rowRawData, ref DataRow rowReslut, DataRow rowRawData_Spec, string min_colFieldName, string max_colFieldName) + { + bool funCalculateMinMaxSumSqrRet = default(bool); + + + // '//符合規格的顆數(良品數) + if (Conversions.ToBoolean(Operators.ConditionalCompareObjectGreaterEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_Spec[min_colFieldName], false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectLessEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_Spec[max_colFieldName], false))) + { + + // //更新 + rowReslut.BeginEdit(); + // //Max + if (Conversions.ToBoolean(Operators.ConditionalCompareObjectLess(rowReslut["MaxValue"], decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), false))) + { + rowReslut["MaxValue"] = decimal.Parse(Conversions.ToString(rowRawData[colFieldName])); + } + // //Min + if (Conversions.ToBoolean(Operators.ConditionalCompareObjectEqual(rowReslut["MinValue"], -9999, false)) || Conversions.ToBoolean(Operators.ConditionalCompareObjectGreater(rowReslut["MinValue"], decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), false))) + { + rowReslut["MinValue"] = decimal.Parse(Conversions.ToString(rowRawData[colFieldName])); + } + + // //Sum + rowReslut["SumValue"] = (decimal)rowReslut["SumValue"] + + decimal.Parse(Conversions.ToString(rowRawData[colFieldName])); + + // //SumSqr + rowReslut["SqrValue"] = (double)rowReslut["SqrValue"] + + Math.Pow((double)decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), 2d); + + // //Yield Die數加一 + rowReslut["GoodQty1"] = Convert.ToInt32(rowReslut["GoodQty1"]) + 1; + + // //Avg Die數加一 + rowReslut["GoodQty2"] = Convert.ToInt32(rowReslut["GoodQty2"]) + 1; + + // //更新 + rowReslut.EndEdit(); + funCalculateMinMaxSumSqrRet = true; // //回傳此電性是否在規格內(是) + } + + // '//規格最大、最小都為零時不需要判,都算是Good + else if (Conversions.ToBoolean(Operators.ConditionalCompareObjectEqual(rowRawData_Spec[min_colFieldName], 0, false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectEqual(rowRawData_Spec[max_colFieldName], 0, false))) + { + + // //更新 + rowReslut.BeginEdit(); + // //Max + if (Conversions.ToBoolean(Operators.ConditionalCompareObjectLess(rowReslut["MaxValue"], decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), false))) + { + rowReslut["MaxValue"] = decimal.Parse(Conversions.ToString(rowRawData[colFieldName])); + } + // //Min + if (Conversions.ToBoolean(Operators.ConditionalCompareObjectEqual(rowReslut["MinValue"], -9999, false)) || Conversions.ToBoolean(Operators.ConditionalCompareObjectGreater(rowReslut["MinValue"], decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), false))) + { + rowReslut["MinValue"] = decimal.Parse(Conversions.ToString(rowRawData[colFieldName])); + } + + // //Sum + rowReslut["SumValue"] = (decimal)rowReslut["SumValue"] + + decimal.Parse(Conversions.ToString(rowRawData[colFieldName])); + + // //SumSqr + rowReslut["SqrValue"] = (double)rowReslut["SqrValue"] + + Math.Pow((double)decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), 2d); + + // //Yield Die數加一 + rowReslut["GoodQty1"] = Convert.ToInt32(rowReslut["GoodQty1"]) + 1; + + // //Avg Die數加一 + rowReslut["GoodQty2"] = Convert.ToInt32(rowReslut["GoodQty2"]) + 1; + + // //更新 + rowReslut.EndEdit(); + funCalculateMinMaxSumSqrRet = true; // //回傳此電性是否在規格內(是) + } + + else + { + funCalculateMinMaxSumSqrRet = false; + } // //回傳此電性是否在規格內(否) + + return funCalculateMinMaxSumSqrRet; + + } + + #endregion + + #region --- Transaction Output --- + + public static object OutputSQLNoneQuery(ref string strCommandText) + { + + bool blnTransactionLog = false; + + try + { + blnTransactionLog = Conversions.ToBoolean(System.Configuration.ConfigurationSettings.AppSettings["TransactionLog"]); + } + catch (Exception ex) + { + blnTransactionLog = false; + } + + if (blnTransactionLog == false) + return default(Object); + + var tfc = new System.CodeDom.Compiler.TempFileCollection(System.Configuration.ConfigurationSettings.AppSettings["OutputSQLPath"], true); + string FileName = tfc.AddExtension("SQL"); + string ErrorLogFile = System.Configuration.ConfigurationSettings.AppSettings["ErrorLogPath"] + Strings.Format(DateTime.Now, "yyyyMMdd").ToString() + "_Error.Log"; + FileName = FileName.Insert(FileName.LastIndexOf(@"\") + 1, "TX" + DateTime.Now.ToString("yyyyMMddHHmmssfff")); + + try + { + using (var sw = System.IO.File.AppendText(FileName)) + { + sw.WriteLine(strCommandText.Replace(Constants.vbCrLf, " ")); + sw.Flush(); + } + } + catch (Exception ex) + { + try + { + using (var sw = System.IO.File.AppendText(ErrorLogFile)) + { + sw.WriteLine(ex.Message + ex.StackTrace); + sw.Flush(); + } + } + catch (Exception e1) + { + } + } + finally + { + System.IO.File.Delete(tfc.BasePath + ".tmp"); + } + + return default(Object); + + } + + // Public Function OutputSQLNoneQuery_UPD(ByRef CollectionSQL As Collection) + + // Dim blnTransactionLog As Boolean = False + + // Try + // blnTransactionLog = CType(System.Configuration.ConfigurationSettings.AppSettings("TransactionLog"), Boolean) + // Catch ex As Exception + // blnTransactionLog = False + // End Try + + // If blnTransactionLog = False Then Exit Function + + // Dim tfc As New System.CodeDom.Compiler.TempFileCollection(System.Configuration.ConfigurationSettings.AppSettings("OutputSQLPath"), True) + // Dim FileName As String = tfc.AddExtension("SQL") + // Dim ErrorLogFile As String = System.Configuration.ConfigurationSettings.AppSettings("ErrorLogPath") & Format(Now, "yyyyMMdd").ToString & "_Error.Log" + // FileName = FileName.Insert(FileName.LastIndexOf("\") + 1, "TX" & Now.ToString("yyyyMMddHHmmssfff")) + // Dim strCommandText As String = String.Empty + + // Try + // Using sw As System.IO.StreamWriter = System.IO.File.AppendText(FileName) + // For Each strCommandText In CollectionSQL + // sw.WriteLine(strCommandText.Replace(vbCrLf, " ")) + // Next strCommandText + // sw.Flush() + // End Using + // Catch ex As Exception + // Try + // Using sw As System.IO.StreamWriter = System.IO.File.AppendText(ErrorLogFile) + // sw.WriteLine(ex.Message & ex.StackTrace) + // sw.Flush() + // End Using + // Catch e1 As Exception + // End Try + // Finally + // System.IO.File.Delete(tfc.BasePath & ".tmp") + // End Try + + // End Function + + public static object OutputSQLNoneQuery_AttachFile(ref string strCommandText, ref string AttachName, ref string aBody, object DataType) + { + + bool blnTransactionLog = false; + + try + { + blnTransactionLog = Conversions.ToBoolean(System.Configuration.ConfigurationSettings.AppSettings["TransactionLog"]); + } + catch (Exception ex) + { + blnTransactionLog = false; + } + + if (blnTransactionLog == false) + return default(Object); + + var tfc1 = new System.CodeDom.Compiler.TempFileCollection(System.Configuration.ConfigurationSettings.AppSettings["OutputSQLPath"], true); + var tfc2 = new System.CodeDom.Compiler.TempFileCollection(System.Configuration.ConfigurationSettings.AppSettings["AttachFilePath"], true); + string FileName = tfc1.AddExtension("SQL"); + string AttachFile = tfc2.AddExtension("TXT"); + string ErrorLogFile = System.Configuration.ConfigurationSettings.AppSettings["ErrorLogPath"] + Strings.Format(DateTime.Now, "yyyyMMdd").ToString() + "_Error.Log"; + FileName = FileName.Insert(FileName.LastIndexOf(@"\") + 1, "TX" + DateTime.Now.ToString("yyyyMMddHHmmssfff")); + AttachFile = AttachFile.Insert(AttachFile.LastIndexOf(@"\") + 1, AttachName); + + try + { + // //Output File + if (aBody != null) + { + string sFileSource = AttachFile; + if (System.IO.File.Exists(sFileSource)) + { + try + { + System.IO.File.Delete(sFileSource); + using (var sw = System.IO.File.AppendText(sFileSource)) + { + sw.WriteLine(aBody); + sw.Flush(); + } + } + catch (System.IO.IOException ex) + { + } + } + else + { + using (var sw = System.IO.File.AppendText(sFileSource)) + { + sw.WriteLine(aBody); + sw.Flush(); + } + } + } + // //輸出格式 = SQL Command;DataType;FilePath + strCommandText += ";" + DataType.ToString() + ";" + AttachFile; + using (var sw = System.IO.File.AppendText(FileName)) + { + sw.WriteLine(strCommandText.Replace(Constants.vbCrLf, " ")); + sw.Flush(); + } + } + catch (Exception ex) + { + try + { + using (var sw = System.IO.File.AppendText(ErrorLogFile)) + { + sw.WriteLine(ex.Message + ex.StackTrace); + sw.Flush(); + } + } + catch (Exception e1) + { + } + } + finally + { + System.IO.File.Delete(tfc1.BasePath + ".tmp"); + System.IO.File.Delete(tfc2.BasePath + ".tmp"); + } + + return default(Object); + + } + + public static object OutputSQLNoneQuery_AttachFile(ref string strCommandText, ref string AttachName, ref byte[] aBody, object DataType) + { + + bool blnTransactionLog = false; + + try + { + blnTransactionLog = Conversions.ToBoolean(System.Configuration.ConfigurationSettings.AppSettings["TransactionLog"]); + } + catch (Exception ex) + { + blnTransactionLog = false; + } + + if (blnTransactionLog == false) + return default(Object); + + var tfc1 = new System.CodeDom.Compiler.TempFileCollection(System.Configuration.ConfigurationSettings.AppSettings["OutputSQLPath"], true); + var tfc2 = new System.CodeDom.Compiler.TempFileCollection(System.Configuration.ConfigurationSettings.AppSettings["AttachFilePath"], true); + string FileName = tfc1.AddExtension("SQL"); + string AttachFile = tfc2.AddExtension(AttachName.Substring(AttachName.Length - 3, 3).ToUpper()); + string ErrorLogFile = System.Configuration.ConfigurationSettings.AppSettings["ErrorLogPath"] + Strings.Format(DateTime.Now, "yyyyMMdd").ToString() + "_Error.Log"; + FileName = FileName.Insert(FileName.LastIndexOf(@"\") + 1, "TX" + DateTime.Now.ToString("yyyyMMddHHmmssfff")); + AttachFile = AttachFile.Insert(AttachFile.LastIndexOf(@"\") + 1, AttachName.Substring(0, AttachName.Length - 4)); + + try + { + // //Output File + if (aBody != null) + { + string sFileSource = AttachFile; + if (System.IO.File.Exists(sFileSource)) + { + try + { + System.IO.File.Delete(sFileSource); + var fs = new System.IO.FileStream(sFileSource, System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.Write); + fs.Write(aBody, 0, aBody.Length); + fs.Close(); + } + catch (System.IO.IOException ex) + { + } + } + else + { + var fs = new System.IO.FileStream(sFileSource, System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.Write); + fs.Write(aBody, 0, aBody.Length); + fs.Close(); + } + } + // //輸出格式 = SQL Command;DataType;FilePath + strCommandText += ";" + DataType.ToString() + ";" + AttachFile; + using (var sw = System.IO.File.AppendText(FileName)) + { + sw.WriteLine(strCommandText.Replace(Constants.vbCrLf, " ")); + sw.Flush(); + } + } + catch (Exception ex) + { + try + { + using (var sw = System.IO.File.AppendText(ErrorLogFile)) + { + sw.WriteLine(ex.Message + ex.StackTrace); + sw.Flush(); + } + } + catch (Exception e1) + { + } + } + finally + { + System.IO.File.Delete(tfc1.BasePath + ".tmp"); + System.IO.File.Delete(tfc2.BasePath + ".tmp"); + } + + return default(Object); + + } + + #endregion + + #region Invoke + + /// + /// 叫用Web Service, 並回傳Response XML + /// + /// 要呼叫哪一個WebService的方法, ex: wsWIP.LoadLotBasis + /// InXml + /// 是否客製的WebService + /// + public static string InvokeSrv(string Method, string InXml, bool Customize = false) + { + + object result; + + try + { + + using (var ws = new wsInvoke.wsInvoke()) + { + ws.Url = modWIN.LocalizeWebService(ws.Url.ToString(), Customize); + ws.EnableDecompression = true; + result = ws.invokeSrv(Method, new object[] { InXml }); + } + } + + catch (Exception ex) + { + throw; + } + + return Conversions.ToString(result); + + } + + /// + /// 叫用Web Service, 回傳Response XML + /// + /// 要呼叫哪一個WebService的方法, ex: wsWIP.LoadLotBasis + /// InXml + /// 用來取回byte資料或傳入byte資料 + /// 是否客製的WebService + /// + public static string InvokeSrv(string Method, string InXml, byte[] buffer, bool Customize = false) + { + + object result; + + try + { + + using (var ws = new wsInvoke.wsInvoke()) + { + ws.Url = modWIN.LocalizeWebService(ws.Url.ToString(), Customize); + ws.EnableDecompression = true; + result = ws.invokeSrv(Method, new object[] { InXml, buffer }); + } + } + + catch (Exception ex) + { + throw; + } + + return Conversions.ToString(result); + + } + + /// + /// 叫用Web Service, 並回傳Response XML + /// + /// 要呼叫哪一個WebService的方法, ex: wsWIP.LoadLotBasis + /// InXml + /// 接收結果的DataSet + /// 是否客製的WebService + /// + public static string InvokeSrv(string Method, string InXml, ref DataSet pDataSet, bool Customize = false) + { + + object result; + + try + { + + using (var ws = new wsInvoke.wsInvoke()) + { + ws.Url = modWIN.LocalizeWebService(ws.Url.ToString(), Customize); + ws.EnableDecompression = true; + result = ws.invokeSrv_DataSet(Method, InXml, ref pDataSet); + } + } + + catch (Exception ex) + { + throw; + } + + return Conversions.ToString(result); + + } + + #endregion + + + // 發Mail功能 非群組與群組發送 + public static string SendMultiEmail(ref string FileName, ref string EmailSubject, string EmailBody = defString, string GroupNo = defString, byte[] AttachFile = null, GroupType GroupType = GroupType.UserGroup) + { + string SendMultiEmailRet = default(string); + // GroupType + // 0:User Group (使用者群組) + // 1:Issue Group (簽核群組) + // 2:Equipment Group(設備工程師群組) + // 3:Inventory Group(庫房工程師群組) + // 4:Report Group(報表使用群組) + // 5:ERF Disposition Group(異常處理群組) + // 6:ERF Mail ccGroup(附件收件人群組) + + try + { + + strIdentity = CombineXMLIdentity(modWIN.gComputerName, "AUTORUN", DateTime.Now.ToString()); + strParameter = CombineXMLParameter("groupno", "GroupNo", "String", CInput(GroupNo), ""); + strParameter = strParameter + CombineXMLParameter("emailsubject", "EmailSubject", "String", EmailSubject, ""); + strParameter = strParameter + CombineXMLParameter("emailbody", "EmailBody", "String", EmailBody, ""); + strParameter = strParameter + CombineXMLParameter("grouptype", "GroupType", "Integer", GroupType.ToString(), ""); + strParameter = strParameter + CombineXMLParameter("attachfilename", "AttachFileName", "String", FileName, ""); + var XmlDoc = new System.Xml.XmlDocument(); + + InXml = modWIN.CombineXMLRequest(ref strIdentity, ref strParameter); + + // OutXml = wsWIP.SendEmailAndAttachFileToGroup(InXml, AttachFile) + OutXml = InvokeSrv("wsWIP.SendEmailAndAttachFileToGroup", InXml, AttachFile); + + XmlDoc.LoadXml(OutXml); + + if (modWIN.chkExecutionSuccess(ref XmlDoc)) // 找出Exception訊並顯示出來 + { + SendMultiEmailRet = "success"; + } + else + { + SendMultiEmailRet = "fail"; + } + + XmlDoc = null; + } + + catch (Exception ex) + { + SendMultiEmailRet = "fail;" + ex.Message; + } + + return SendMultiEmailRet; + + } + } +} \ No newline at end of file diff --git a/SRC/MESAgent/AutoLoaderLib/modWIN.cs b/SRC/MESAgent/AutoLoaderLib/modWIN.cs new file mode 100644 index 0000000..cd62db0 --- /dev/null +++ b/SRC/MESAgent/AutoLoaderLib/modWIN.cs @@ -0,0 +1,492 @@ +using System; +using System.Collections; +using static System.Configuration.ConfigurationSettings; +using System.Data; +using System.Runtime.InteropServices; +using Microsoft.VisualBasic; +using Microsoft.VisualBasic.CompilerServices; +using static iMESCore.Base.iMESConst; + +namespace AutoLoaderLib_C +{ + + + static class modWIN + { + + // ReviseDate : 2003/08/07,修改處理AdditionalXML + // ReviseDate : 2003/08/05,新增Public gReturnArray + // ReviseDate : 2003/07/01,更改AddFlow產生的Error(CInput) + // ReviseDate : 2002/11/04,新增CUnInput function + + public static string gComputerName; + public static string gReturnKeyValue; + public static string gUserNo; + public static string gUserName; + public static string gUserLevel; + public static string gLanguageMode; + public static string gAppPath; + // **Add for Smart Client Architecture + public static string gMESWebServiceHost; + public static string gCUSWebServiceHost; + + // Add By Peter 2005/6/20 + public static string gSettingMode = ""; + + public static DataRow drSearch; + + public static ArrayList gReturnArray = new ArrayList(); + + public const string strAddTagLabel = "extrabase"; // Add by py for Combine Addition XML doc + public const string strAddTagName = "ExtraBase"; // Add by py for Combine Addition XML doc + + public static bool chkExecutionSuccess(ref System.Xml.XmlDocument Xmldoc) + { + bool chkExecutionSuccessRet = default(bool); + if (Xmldoc.DocumentElement["result"].InnerXml == "success") + { + chkExecutionSuccessRet = true; + } + else + { + chkExecutionSuccessRet = false; + } + + return chkExecutionSuccessRet; + } + + public static string GetExceptionSysMsg(ref System.Xml.XmlDocument Xmldoc) + { + string GetExceptionSysMsgRet = default(string); + string argstrInput = Xmldoc.DocumentElement.GetElementsByTagName("sysmsg").Item(0).InnerXml; + GetExceptionSysMsgRet = CUnInput(ref argstrInput); + Xmldoc.DocumentElement.GetElementsByTagName("sysmsg").Item(0).InnerXml = argstrInput; + return GetExceptionSysMsgRet; + } + + public static string GetExceptionMesMsg(ref System.Xml.XmlDocument Xmldoc) + { + string GetExceptionMesMsgRet = default(string); + string argstrInput = Xmldoc.DocumentElement.GetElementsByTagName("mesmsg").Item(0).InnerXml; + GetExceptionMesMsgRet = CUnInput(ref argstrInput); + Xmldoc.DocumentElement.GetElementsByTagName("mesmsg").Item(0).InnerXml = argstrInput; + return GetExceptionMesMsgRet; + } + + public static string CombineXMLIdentity(ref string ComputerName, ref string CurUserNo, ref string SendTime) + { + string CombineXMLIdentityRet = default(string); + CombineXMLIdentityRet = "" + ComputerName + "" + "" + CurUserNo + "" + "" + SendTime + ""; + + return CombineXMLIdentityRet; + } + + public static string CombineXMLParameter(ref string value_name, ref string name, ref string type, ref string value, ref string desc) + { + string CombineXMLParameterRet = default(string); + CombineXMLParameterRet = "<" + value_name.ToLower() + ">" + "" + name + "" + "" + type + "" + "" + value + "" + "" + desc + "" + ""; + + + + + return CombineXMLParameterRet; + } + + public static string CombineXMLRequest(ref string strIdentity, ref string strParameter) + { + string CombineXMLRequestRet = default(string); + CombineXMLRequestRet = "" + "" + strIdentity + ""; + if (!string.IsNullOrEmpty(strParameter)) + { + CombineXMLRequestRet = CombineXMLRequestRet + "" + strParameter + ""; + } + CombineXMLRequestRet = CombineXMLRequestRet + ""; + return CombineXMLRequestRet; + } + + public static string CombineXMLValue(ref string TagName, ref string Value) + { + string CombineXMLValueRet = default(string); + CombineXMLValueRet = "<" + TagName + ">" + Value + ""; + return CombineXMLValueRet; + } + + public static string CombineXMLValueTag(ref string Value) + { + string CombineXMLValueTagRet = default(string); + CombineXMLValueTagRet = "" + Value + ""; + return CombineXMLValueTagRet; + } + + public static string CombineXMLParameterMultiValue(ref string value_name, ref string name, ref string type, ref string value, ref string desc) + { + string CombineXMLParameterMultiValueRet = default(string); + // Value不用加上Tag + CombineXMLParameterMultiValueRet = "<" + value_name.ToLower() + ">" + "" + name + "" + "" + type + "" + value + "" + desc + "" + ""; + + + + return CombineXMLParameterMultiValueRet; + } + + public static int FindRecordPosition(ref DataView dvData, ref string strColumnName, ref string strFindValue) + { + int FindRecordPositionRet = default(int); + // //由Dataview的第一筆開始尋找符合的資料直到最後一筆 + // //傳出資料在資料表內的Index + int i; + bool Found; // //紀錄是否找到符合資料 + string strDataType; // //尋找資料欄的資料型態 + + try + { + if (!string.IsNullOrEmpty(strFindValue)) // 是否有傳入尋找的條件 + { + Found = false; + strDataType = dvData.Table.Columns[strColumnName].DataType.ToString(); + if (strDataType == "System.DateTime") // 日期型態的資料比對 + { + var loopTo = dvData.Count; + for (i = 0; i <= loopTo; i++) + { + if (Conversions.ToBoolean(Operators.ConditionalCompareObjectGreaterEqual(dvData[i][strColumnName], "#" + Strings.Format(Conversions.ToDate(strFindValue), "yyyy/MM/dd") + "#", false))) + { + Found = true; + break; + } + } + } + else // 字串,數值資料型態的比對 + { + var loopTo1 = dvData.Count; + for (i = 0; i <= loopTo1; i++) + { + if ((Strings.UCase(dvData[i][strColumnName].ToString()) ?? "") == (Strings.UCase(strFindValue) ?? "")) + { + Found = true; + break; + } + } + } + if (Found == true) + { + FindRecordPositionRet = i; // 找到符合資料,傳出所在的RowIndex + } + else + { + FindRecordPositionRet = -1; + } // 沒有符合資料 + } + } + catch + { + FindRecordPositionRet = -1; + } // 沒有符合資料 + + return FindRecordPositionRet; + + // //使用Dataview的Find Method,日期無法使用 + // dvData.Sort = strColumnName + // FindRecordPosition = dvData.Find(strFindValue) + + } + + + public static string PasswordEncoding(ref string Password) + { + string PasswordEncodingRet = default(string); + // 此 Function 將傳入值加以編碼後傳出,編碼後長度不變 + // 傳入值: 密碼 + // 傳回值: 編碼後密碼 + + // Vernam密碼是由Gilbert Vernam在1918年發明的 + string g_Key = "xNDFz6LH67LOv7xKbWFpbMu1wejrM7SzvV4tLRvq3X47m708O1xMHLoaMNCqGhoaEN"; + string strChar, iCryptChar, strEncrypted = default(string); + int i, iKeyChar, iStringChar; + + var loopTo = Strings.Len(Password); + for (i = 1; i <= loopTo; i++) + { + iKeyChar = Strings.Asc(Strings.Mid(g_Key, i, 1)); + iStringChar = Strings.Asc(Strings.Mid(Password, i, 1)); + iCryptChar = (iKeyChar ^ iStringChar).ToString(); + strEncrypted = strEncrypted + Strings.Chr(Conversions.ToInteger(iCryptChar)); + } + + PasswordEncodingRet = Convert.ToBase64String(System.Text.Encoding.ASCII.GetBytes(strEncrypted)); + return PasswordEncodingRet; + + } + + public static string FilterByString(ref string strFilter, ref string strColumnName, ref string strColumnValue) + { + string FilterByStringRet = default(string); + // 對字串欄位做篩選 + if (string.IsNullOrEmpty(strFilter)) + { + strFilter = strColumnName + " = '" + Strings.Replace(strColumnValue, "'", "''") + "'"; + } + else + { + strFilter = strFilter + " And " + strColumnName + " = '" + Strings.Replace(strColumnValue, "'", "''") + "'"; + } + FilterByStringRet = strFilter; + return FilterByStringRet; + } + + + public static string FilterByInteger(ref string strFilter, ref string strColumnName, ref int strColumnValue) + { + string FilterByIntegerRet = default(string); + // 對數值欄位做篩選 + if (string.IsNullOrEmpty(strFilter)) + { + strFilter = strColumnName + " = " + strColumnValue; + } + else + { + strFilter = strFilter + " And " + strColumnName + " = " + strColumnValue; + } + FilterByIntegerRet = strFilter; + return FilterByIntegerRet; + } + + public static string FilterByDate(ref string strFilter, ref string strColumnName, ref DateTime datFromDate, ref DateTime datEndDate) + { + string FilterByDateRet = default(string); + // 對日期欄位做篩選 + if (string.IsNullOrEmpty(strFilter)) + { + strFilter = strColumnName + " >= #" + Strings.Format(Conversions.ToDate(datFromDate), "yyyy/MM/dd 00:00:00") + "# And " + strColumnName + " <= #" + Strings.Format(Conversions.ToDate(datEndDate), "yyyy/MM/dd 23:59:59") + "# "; + } + else + { + strFilter = strFilter + " And " + strColumnName + " >= #" + Strings.Format(Conversions.ToDate(datFromDate), "yyyy/MM/dd 00:00:00") + "# And " + strColumnName + " <= #" + Strings.Format(Conversions.ToDate(datEndDate), "yyyy/MM/dd 23:59:59") + "# "; + } + FilterByDateRet = strFilter; + return FilterByDateRet; + } + + public static bool IsBoolean(ref string strBoolean, string strBooleanValue = defString) + { + bool IsBooleanRet = default(bool); + // 此 Function 檢查傳入值是否為Boolean值 + // 傳入值: strBoolean欲檢查是否為Boolean值的字串 + // strBooleanValue將檢查值轉換為True或False的統一字串 + // 傳回值: True是Boolean值 ; False不是Boolean值 + + IsBooleanRet = false; + + if (string.IsNullOrEmpty(strBoolean)) + { + IsBooleanRet = false; + } + else if (Strings.Trim(Strings.UCase(strBoolean)) != "Y" & Strings.Trim(Strings.UCase(strBoolean)) != "N" & Strings.Trim(Strings.UCase(strBoolean)) != "T" & Strings.Trim(Strings.UCase(strBoolean)) != "F" & Strings.Trim(Strings.UCase(strBoolean)) != "YES" & Strings.Trim(Strings.UCase(strBoolean)) != "NO" & Strings.Trim(Strings.UCase(strBoolean)) != "TRUE" & Strings.Trim(Strings.UCase(strBoolean)) != "FALSE" & Strings.Trim(Strings.UCase(strBoolean)) != "是" & Strings.Trim(Strings.UCase(strBoolean)) != "否" & Strings.Trim(Strings.UCase(strBoolean)) != "ON" & Strings.Trim(Strings.UCase(strBoolean)) != "OFF") + + + + + { + + IsBooleanRet = false; + } + + else if (Strings.Trim(Strings.UCase(strBoolean)) == "Y" | Strings.Trim(Strings.UCase(strBoolean)) == "T" | Strings.Trim(Strings.UCase(strBoolean)) == "YES" | Strings.Trim(Strings.UCase(strBoolean)) == "TRUE" | Strings.Trim(Strings.UCase(strBoolean)) == "是" | Strings.Trim(Strings.UCase(strBoolean)) == "ON") + + { + IsBooleanRet = true; + strBooleanValue = "True"; + } + else + { + IsBooleanRet = true; + strBooleanValue = "False"; + } + + return IsBooleanRet; + } + + + public static string CInput(ref string strInput) + { + string CInputRet = default(string); + // 將傳入值內的單引號轉換為可存入資料庫的格式 + // 2. 將傳入值內的 &, >, < 三個特殊字元轉換為XmlDocument可解譯之代替符號 + // 傳入值: strInput包含特殊字元的字串 + // 傳回值: 將特殊字元變更為代替符號的字串 + + // 轉換 ' 為 '' (單引號轉為兩個單引號) + CInputRet = Strings.Replace(strInput, "'", "''"); + + // 轉換 & 為 & + CInputRet = Strings.Replace(CInputRet, "&", "&"); + + // CInput = Replace(CInput, """", "''") 'AddFlow的Xml字串不可將雙引號轉為兩個單引號,XMLToFlow會Error + + // 轉換 > 為 > + CInputRet = Strings.Replace(CInputRet, ">", ">"); + + // 轉換 < 為 < + CInputRet = Strings.Replace(CInputRet, "<", "<"); + return CInputRet; + + } + + public static string CUnInput(ref string strInput) + { + string CUnInputRet = default(string); + // 將傳入值內的單引號轉換為可存入資料庫的格式 + // 傳入值: strInput包含特殊字元的字串 + // 傳回值: 將代替符號變更為特殊字元的字串 + + // 轉換 ' 為 '' (單引號轉為兩個單引號) + // CUnInput = Replace(strInput, "'", "''") + CUnInputRet = Strings.Replace(strInput, "\"", "'"); + + // 轉換 & 為 & + CUnInputRet = Strings.Replace(CUnInputRet, "&", "&"); + + // 轉換 > 為 > + CUnInputRet = Strings.Replace(CUnInputRet, ">", ">"); + + // 轉換 < 為 < + CUnInputRet = Strings.Replace(CUnInputRet, "<", "<"); + return CUnInputRet; + + } + + + // ***Add by PY 2003/07/31**** + public static string CombineXMLAdditional(ref string strAdditional) + { + string CombineXMLAdditionalRet = default(string); + CombineXMLAdditionalRet = "" + strAdditional; + CombineXMLAdditionalRet = CombineXMLAdditionalRet + ""; + return CombineXMLAdditionalRet; + } + + public static string CombineAddXML_Add(ref string name, ref string type, ref string value) + { + string CombineAddXML_AddRet = default(string); + CombineAddXML_AddRet = "" + "" + name + "" + "" + type + "" + "" + value + "" + ""; + + + + return CombineAddXML_AddRet; + } + public static string CombineAddXML_Edit(ref string name, ref string type, ref string value) + { + string CombineAddXML_EditRet = default(string); + CombineAddXML_EditRet = "" + "" + name + "" + "" + type + "" + "" + value + "" + ""; + + + + return CombineAddXML_EditRet; + } + public static string CombineAddXML_Field(ref string name) + { + string CombineAddXML_FieldRet = default(string); + CombineAddXML_FieldRet = "" + "" + name + "" + ""; + + return CombineAddXML_FieldRet; + } + + public static string CombineAddXML_Condition(string condition) + { + string CombineAddXML_ConditionRet = default(string); + CombineAddXML_ConditionRet = "" + Strings.Replace(condition, "''", "'") + ""; + return CombineAddXML_ConditionRet; + } + + // **Add by py 2003/12/04,Gary Lu 20120911:以MESWin1~Win4的版本進行替換 + public static string LocalizeWebService(string wsUrl, bool Customize = false) + { + + string[] tmpString; + int i; + tmpString = wsUrl.Split('/'); + if (Customize == true) + { + if (!string.IsNullOrEmpty(Strings.Trim(gCUSWebServiceHost))) + { + if (tmpString.Length == 6) + { + wsUrl = tmpString[0].ToString() + "/" + tmpString[1].ToString() + "/" + gCUSWebServiceHost + "/" + tmpString[4].ToString() + "/" + tmpString[5].ToString(); + } + else if (tmpString.Length == 5) + { + wsUrl = "http://" + gCUSWebServiceHost + "/" + tmpString[tmpString.Length - 1].ToString(); + } + } + } + else if (!string.IsNullOrEmpty(Strings.Trim(gMESWebServiceHost))) + { + if (tmpString.Length == 6) + { + // wsUrl = "http://" & gMESWebServiceHost & "/" & tmpString(tmpString.Length - 2).ToString & "/" & tmpString(tmpString.Length - 1).ToString + wsUrl = tmpString[0].ToString() + "/" + tmpString[1].ToString() + "/" + gMESWebServiceHost + "/" + tmpString[4].ToString() + "/" + tmpString[5].ToString(); + } + else if (tmpString.Length == 5) + { + // wsUrl = "http://" & gMESWebServiceHost & "/" & tmpString(tmpString.Length - 1).ToString + wsUrl = tmpString[0].ToString() + "/" + tmpString[1].ToString() + "/" + gMESWebServiceHost + "/" + tmpString[4].ToString(); + } + } + + return wsUrl; + // Have to assume the web service is on the machine that this application came from + } // LocalizeWebService + + // Add By Peter 2005/6/20 + public static string GetAppSettings(string key, string section = "") + { + string result = string.Empty; + + try + { + if (!string.IsNullOrEmpty(section)) + { + result = Conversions.ToString(((Hashtable)GetConfig(section))[key]); + } + else if (string.IsNullOrEmpty(gSettingMode) || string.IsNullOrEmpty(gSettingMode) || gSettingMode.Length == 0) + { + result = AppSettings[key]; + } + else + { + Hashtable ht = (Hashtable)GetConfig(gSettingMode); + if (ht != null) + { + result = Conversions.ToString(ht[key]); + } + } + } + + catch (Exception ex) + { + throw ex; + } + + return result; + } + + + public static string GetExceptionStack(ref System.Xml.XmlDocument Xmldoc) + { + string GetExceptionStackRet = default(string); + if (Xmldoc.DocumentElement.GetElementsByTagName("stack").Count > 0) + { + string argstrInput = Xmldoc.DocumentElement.GetElementsByTagName("stack").Item(0).InnerXml; + GetExceptionStackRet = CUnInput(ref argstrInput); + Xmldoc.DocumentElement.GetElementsByTagName("stack").Item(0).InnerXml = argstrInput; + } + else + { + GetExceptionStackRet = ""; + } + + return GetExceptionStackRet; + } + + } +} \ No newline at end of file diff --git a/SRC/MESAgent/MESAutoRun/AutoRunLib/AssemblyInfo.cs b/SRC/MESAgent/MESAutoRun/AutoRunLib/AssemblyInfo.cs new file mode 100644 index 0000000..a73c3e0 --- /dev/null +++ b/SRC/MESAgent/MESAutoRun/AutoRunLib/AssemblyInfo.cs @@ -0,0 +1,30 @@ +using System; +using System.Reflection; +using System.Runtime.InteropServices; + +// 一般的組件資訊是由下列這組屬性所控制。 +// 變更這些屬性的值即可修改組件的相關資訊。 +// 檢閱組件屬性的值 + +[assembly: AssemblyTitle("AutoRunLib")] +[assembly: AssemblyDescription("AutoRunLib for MESSeries")] +[assembly: AssemblyCompany("iMES Technology Inc.")] +[assembly: AssemblyProduct("MESSeries 6")] +[assembly: AssemblyCopyright("Copyright © iMES Technology Inc.")] +[assembly: AssemblyTrademark("")] +[assembly: ComVisible(true)] + +// 下列 GUID 為專案公開 (Expose) 至 COM 時所要使用的 typelib ID +[assembly: Guid("C4620590-2AB6-4D4D-8D66-A8D689DA698C")] + +// 組件的版本資訊由下列四個值所組成: +// +// 主要版本 +// 次要版本 +// 組建編號 +// 修訂 +// +// 您可以自行指定所有的值,也可以依照以下的方式,使用 '*' 將修訂和組建編號 +// 指定為預設值: + +[assembly: AssemblyVersion("6.0.0.0")] diff --git a/SRC/MESAgent/MESAutoRun/AutoRunLib/AutoRunLib_C.csproj b/SRC/MESAgent/MESAutoRun/AutoRunLib/AutoRunLib_C.csproj new file mode 100644 index 0000000..1473088 --- /dev/null +++ b/SRC/MESAgent/MESAutoRun/AutoRunLib/AutoRunLib_C.csproj @@ -0,0 +1,453 @@ + + + + Local + 8.0.50727 + 2.0 + {7C0468A8-E807-0FF4-0C04-C1AD9B3D7D2A} + SAK + SAK + SAK + SAK + Debug + AnyCPU + + + + + AutoRunLib_C + + + None + JScript + Grid + IE50 + false + Library + Binary + On + Off + AutoRunLib_C + + + true + false + true + + + Windows + + + false + v4.6.2 + 2.0 + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + $(DefaultItemExcludes);$(ProjectDir)**\*.vb + + + ..\..\..\MES_C_DLL\ + ..\..\..\MES_C_DLL\AutoRunLib_C.xml + 285212672 + + + + + true + true + true + false + false + false + false + 0 + 42016,42017,42018,42019,42032,42353,42354,42355 + full + AllRules.ruleset + false + + + ..\..\..\MES_C_DLL\ + ..\..\..\MES_C_DLL\ + + 285212672 + + + + + false + true + false + true + false + false + false + 0 + 42016,42017,42018,42019,42032,42353,42354,42355 + none + AllRules.ruleset + false + + + true + true + true + ..\..\..\MES_C_DLL\ + 285212672 + 0 + 42016,42017,42018,42019,42032,42353,42354,42355 + full + x86 + ..\..\..\MES_C_DLL\AutoRunLib.dll.CodeAnalysisLog.xml + true + GlobalSuppressions.cs + AllRules.ruleset + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets + true + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules + true + false + + + true + bin\x86\Release\ + 285212672 + true + 0 + 42016,42017,42018,42019,42032,42353,42354,42355 + x86 + ..\..\..\MES_C_DLL\AutoRunLib.dll.CodeAnalysisLog.xml + true + GlobalSuppressions.cs + AllRules.ruleset + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets + true + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules + true + false + false + + + + ..\..\..\MES_S_DLL\data_access_service.dll + False + + + ..\..\..\MES_S_DLL\iMESAppSetting.dll + False + + + ..\..\..\MES_S_DLL\iMESComSubroutine.dll + False + + + ..\..\..\MES_S_DLL\iMESComXML.dll + False + + + ..\..\..\MES_S_DLL\iMESConst.dll + False + + + + ..\..\..\MES_S_DLL\GuardServerProvider.dll + False + + + False + C:\Program Files (x86)\Infragistics\2019.1\Windows Forms\CLR4.0\Bin\Infragistics4.Win.v19.1.dll + False + + + False + C:\Program Files (x86)\Infragistics\2019.1\Windows Forms\CLR4.0\Bin\Infragistics4.Win.UltraWinGrid.v19.1.dll + False + + + False + C:\Program Files (x86)\Infragistics\2019.1\Windows Forms\CLR4.0\Bin\Infragistics4.Win.UltraWinGrid.ExcelExport.v19.1.dll + False + + + False + C:\Program Files (x86)\Infragistics\2019.1\Windows Forms\CLR4.0\Bin\Infragistics4.Win.UltraWinEditors.v19.1.dll + False + + + False + C:\Program Files (x86)\Infragistics\2019.1\Windows Forms\CLR4.0\Bin\Infragistics4.Win.Misc.v19.1.dll + False + + + False + C:\Program Files (x86)\Infragistics\2019.1\Windows Forms\CLR4.0\Bin\Infragistics4.Shared.v19.1.dll + False + + + False + C:\Program Files (x86)\Infragistics\2019.1\Windows Forms\CLR4.0\Bin\Infragistics4.Documents.Excel.v19.1.dll + False + + + False + C:\Program Files (x86)\Infragistics\2019.1\Windows Forms\CLR4.0\Bin\Infragistics4.Documents.Core.v19.1.dll + False + + + False + ..\..\..\MES_S_DLL\iMESCIO.dll + False + + + ..\..\..\MES_S_DLL\iMESDAO.dll + False + + + ..\..\..\MES_S_DLL\iMESDataObject.dll + False + + + ..\..\..\MES_S_DLL\iMESProjectBase.dll + False + + + False + ..\..\..\MES_C_DLL\iMESUltraGrid.dll + False + + + System + + + + System.Data + + + + + + System.Web.Services + + + + System.XML + + + + + + + + + + + + + + + + True + True + Reference.map + + + True + True + Reference.map + + + + AutoRunLib_C.My + SettingsSingleFileGenerator + Settings.Designer.cs + + + + MSDiscoCodeGenerator + Reference.cs + + + MSDiscoCodeGenerator + Reference.cs + + + + MSDiscoCodeGenerator + Reference.cs + + + + MSDiscoCodeGenerator + Reference.cs + + + + Code + + + Code + + + Code + + + Code + + + True + True + Settings.settings + + + True + True + Reference.map + + + True + True + Reference.map + + + True + True + Reference.map + + + True + True + Reference.map + + + MSDiscoCodeGenerator + Reference.cs + + + + MSDiscoCodeGenerator + Reference.cs + + + + Dynamic + Web References\wsERP_WorkFlow\ + http://10.40.30.73/WFMES/WFMESService.asmx + + + + + MySettings + AutoRunLib_wsERP_WorkFlow_WFMESService + + + Dynamic + Web References\wsERP_EAI\ + http://218.211.164.199:9999/IntegrationEntry%3fwsdl + + + + + MySettings + AutoRunLib_wsERP_EAI_IntegrationEntry + + + Dynamic + Web References\wsERP_TP\ + http://localhost/ERPws_DSC/TIPTOPServiceGateWay.wsdl + + + + + MySettings + AutoRunLib_wsERP_TP_TIPTOPServiceGateWay + + + Dynamic + Web References\wsERP_TP_RPC\ + http://localhost/ERPws_DSC/TIPTOPServiceGateWay_RPC.wsdl + + + + + MySettings + AutoRunLib_wsERP_TP_RPC_TIPTOPServiceGateWay + + + Dynamic + Web References\wsERP_MES\ + http://localhost/ERPws_DSC/wsMES.asmx + + + + + MySettings + AutoRunLib_wsERP_MES_wsMES + + + + Dynamic + Web References\wsInvoke\ + http://localhost/MESws_STD/wsInvoke.asmx + + + + + MySettings + AutoRunLib_wsInvoke_wsInvoke + + + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + true + + + False + Windows Installer 3.1 + true + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SRC/MESAgent/MESAutoRun/AutoRunLib/EAIMessageSynchronizer.cs b/SRC/MESAgent/MESAutoRun/AutoRunLib/EAIMessageSynchronizer.cs new file mode 100644 index 0000000..586a786 --- /dev/null +++ b/SRC/MESAgent/MESAutoRun/AutoRunLib/EAIMessageSynchronizer.cs @@ -0,0 +1,633 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using iMESCIO.CDO.Tables; +using iMESCIO.SCI.DPM.Request; +using iMESCIO.SCI.DPM.Response; +using iMESCIO.SCI.ERP.Request; +using iMESCIO.SCI.ERP.Response; +using iMESCIO.SCI.SMES.Request; +using iMESCIO.SCI.SMES.Response; +using iMESCore.Base.ProjectBase.Base; +using iMESCore.Settings; +using MESDAO.Tables; +using Microsoft.VisualBasic; +using Microsoft.VisualBasic.CompilerServices; +using static iMESCore.DataBase.iMESSql; +using static iMESCore.Base.iMESComSubroutine; + +namespace AutoRunLib_C +{ + + public class EAIMessageSynchronizer + { + + public enum WorkCode + { + ContinueRun = 0, // 繼續執行作業 + StopSame = 1, // 停止相同的作業 + StopAll = 2 // 停止所有作業 + } + + private string strDataBaseType; // DataBase Type:oracle, mysql, access + private string strConnectionString; // Connection string + private string strReportDataBaseType; + private string strReportConnectionString; // Report DB Connection string + private string strERPconnectionString; + private string strERPDataBaseType; + private string strERPReportConnectionString; + private string InXML, OutXML; + private string RequestKey = ""; + private AppSettings objSetting = new AppSettings(); + private string strLanguageMode = "zh-cht"; + private string strResourceDir = "Resources"; + + // //Initial Object-------------------------------------------------------------------------------------------------------------------------------- + public EAIMessageSynchronizer() + { + // //Get database type + strDataBaseType = objSetting.GetDataBaseType(); + // //Get connection string + strConnectionString = objSetting.GetConnectionString(strDataBaseType); + // //Get Message Queue Type + // strMQType = objSetting.GetMQType() + + strReportDataBaseType = objSetting.GetReportDataBaseType(); + // //Get connection string + strReportConnectionString = objSetting.GetReportConnectionString(strReportDataBaseType); + + // ERP + // //Get ERP database type + strERPDataBaseType = objSetting.GetDataBaseType_ERP(); + // //Get ERP connection string + strERPconnectionString = objSetting.GetConnectionString_ERP(strERPDataBaseType); + + try + { + strResourceDir = objSetting["ResourceDir"].ToString(); + } + catch (Exception) + { } + try + { + strLanguageMode = objSetting["LanguageMode"].ToString(); + } + catch (Exception) + { + } + + // 'T100 整合項目增加, 取得 Web.Config 設定項目, 2015/12/15 Add. + + // Try + // '從Web.config取出目前的DatabaseType + // strERPCreator = System.Configuration.ConfigurationSettings.AppSettings.Get("defCreator") + // '2016-03-09, Joe, 取出預設ERP單位屬性編號 + // strERPUnitNo = System.Configuration.ConfigurationSettings.AppSettings.Get("defERPUnitNoProperty") + // '2016-03-02, Joe, 取出預設語系並轉換成ERP對應語系,後續T100多語系資料需用到 + // strDefLanguage = System.Configuration.ConfigurationSettings.AppSettings.Get("LanguageMode") + // Select Case strDefLanguage.ToUpper + // Case "ZH-CHS" + // strLanguage_T100 = "zh_CN" + // Case "EN" + // strLanguage_T100 = "en_US" + // Case Else + // strLanguage_T100 = "zh_TW" + // End Select + // Catch ex As Exception + // '發生錯誤時丟回本身的Function Name及系統錯誤訊息 + // End Try + + + } + + + // //Property-------------------------------------------------------------------------------------------------------------------------------- + public string ConnectionString + { + get + { + return strConnectionString; + } + } + + public string DataBaseType + { + get + { + return strDataBaseType; + } + } + + public void StartSyncing(Collection colParameters = null) + { + var StopRunList = new List(); + var objERPSetting = new List(); + var objQueue = new List(); + string Parameter01, Parameter02; + WorkCode ReturnWorkCode; + bool bSendMail = false; + + do + { + try + { + + // Parameter01為參數一 + // 作為Mail通知群組(GroupNo),放在最前面防止連線失敗無法寄送通知。 + if (!(colParameters["Parameter01"] == null) & !string.IsNullOrEmpty(Strings.Trim(Conversions.ToString(colParameters["Parameter01"])))) + { + Parameter01 = colParameters["Parameter01"].ToString().Trim(); + } + else + { + throw new Exception(TranslateMsg("Mail GroupNo (Parameter 01) [%NOT SET%]!", strLanguageMode, strResourceDir)); + } + + // Parameter02為參數二 + // 重新拋轉上限(數值) + if (!(colParameters["Parameter02"] == null) & !string.IsNullOrEmpty(Strings.Trim(Conversions.ToString(colParameters["Parameter02"])))) + { + if (Information.IsNumeric(colParameters["Parameter02"]) == false) + { + throw new Exception("(Parameter 02) [%is not%] [%Numeric%]!"); + } + Parameter02 = colParameters["Parameter02"].ToString().Trim(); + } + else + { + throw new Exception(TranslateMsg("Limit Qty (Parameter 02) [%NOT SET%]!", strLanguageMode, strResourceDir)); + } + + // 取得ERP整合設定資訊 + objERPSetting = GetERPSetting(); + + // 取得要拋送給ERP的資訊 + objQueue = GetSendQueue(); + if (objQueue == null) + break; + + string StopData; + var SendERPSetting = new CDO_TBLSYSERPSETTING(); + bool exitTry1 = false; + foreach (CDO_TBLSYSSENDTOEAIQUEUE objQ in objQueue) + { + InXML = ""; + RequestKey = ""; + + // 找出目前要拋送的目的服務是否有在StopRunList中,如存在則不允許執行 + StopData = StopRunList.Where(x => (x ?? "") == (objQ.SENDTO ?? "")).FirstOrDefault(); + if (string.IsNullOrEmpty(StopData)) + { + // 取出要拋送的目的服務的ERP整合設定資訊 + SendERPSetting = objERPSetting.Where(x => (x.ERP_NAME ?? "") == (objQ.SENDTO ?? "")).FirstOrDefault(); + if (SendERPSetting == null) + { + // Throw New Exception("[%ERP_Name%]:" & objQ.SENDTO & "[%IS NOT FOUND%]!") + // Exit Try + continue; + } + // 組Req uest XML + InXML = CombineRequestXML(SendERPSetting, objQ); + // 將資訊拋給ERP + using (var ws = new wsERP_EAI.IntegrationEntry()) + { + ws.Url = SendERPSetting.ERP_WSURL; + OutXML = ws.invokeSrv(InXML); + } + // 處理執行結果 + ReturnWorkCode = HandleSendResult(OutXML, objQ, SendERPSetting, Parameter01, Parameter02); + // 依回傳的結果判定是否繼續執行 + bool exitTry = false; + switch (ReturnWorkCode) + { + case WorkCode.ContinueRun: + { + // 繼續執行 + continue; + } + case WorkCode.StopSame: + { + // 將此次失敗的ERP名稱加到StopRunList + StopRunList.Add(objQ.SENDTO); + // 繼續執行 + continue; + } + case WorkCode.StopAll: + { + // 全部停止執行 + exitTry1 = exitTry = true; + break; + } + } + + if (exitTry) + { + break; + } + } + } + + if (exitTry1) + { + break; + } + } + + catch (Exception ex) + { + throw; + } + } + while (false); + + + } + + + /// + /// 取得ERP整合的設定資料 + /// + /// List(Of CDO_TBLSYSERPSETTING) + private List GetERPSetting() + { + + var DAO = new DAO_TBLSYSERPSETTING(); + var Data = new List(); + + try + { + // 取出ERP整合資訊 + Data = (List)DAO.Query(null, new QueryRelatedInfo() { ReturnType = ReturnMode.List }); + } + + catch (Exception ex) + { + throw; + } + + return Data; + + } + + + /// + /// 取得Queue資料 + /// + /// List(Of CDO_TBLSYSSENDTOEAIQUEUE) + private List GetSendQueue() + { + + var DAO = new DAO_TBLSYSSENDTOEAIQUEUE(); + var Data = new List(); + + try + { + + // 取出待拋轉資訊 + Data = (List)DAO.Query(null, new QueryRelatedInfo() { ReturnType = ReturnMode.List }); + } + + catch (Exception ex) + { + throw; + } + + return Data; + + } + + /// + /// 組出RequestXML + /// + /// + private string CombineRequestXML(CDO_TBLSYSERPSETTING pERPSetting, CDO_TBLSYSSENDTOEAIQUEUE pSendContent) + { + string CombineRequestXMLRet = default(string); + + DataRow[] drERPSetting; + string strFilter = ""; + + try + { + // pSendContent.enterprise_no = drERPSetting(0)("ERP_ENTID").ToString + // pSendContent.site_no = drERPSetting(0)("ERP_ORG").ToString + + // 轉XML + string RequestHead = ""; + RequestHead += ""; + string RequestDataKey = "" + pERPSetting.ERP_ENTID + "" + pERPSetting.ERP_ORG + ""; + string RequestXML_Body = pSendContent.PAYLOAD; + RequestKey = modAutoRunLibrary.GetRequestKey(RequestHead); + string RequestHeader = "" + RequestHead + RequestDataKey + "" + RequestXML_Body + ""; + // CDO to XML + CombineRequestXMLRet = RequestHeader; + } + + catch (Exception ex) + { + throw; + } + + return CombineRequestXMLRet; + + } + + /// + /// 同步結果處理 + /// + /// + private WorkCode HandleSendResult(string pEAIResult, CDO_TBLSYSSENDTOEAIQUEUE pSendSrc, CDO_TBLSYSERPSETTING pEAISetting, string pJobParam01, string pJobParam02) + { + WorkCode HandleSendResultRet = default(WorkCode); + + //IDbConnection cnnTemp = null; + //IDbCommand cmmTemp; + string strSQL; + //System.Data.OleDbDataAdapter daTemp; + var dsTemp = new DataSet(); + var objReturn = default(WorkCode); + var objEAIResult = default(object); + bool ProcessResult = false; + string ProcessMessage = ""; + + try + { + // 物件初始化 + switch (pSendSrc.SERVICENAME ?? "") + { + case "issue.wo.item.process": // MES發料 + { + objEAIResult = new SCI_Response_issue_wo_item_process(); + break; + } + case "stockin.data.create": // 完工入庫 + { + objEAIResult = new SCI_Response_stockin_data_create(); + break; + } + case "workorder.create": // DPM 拋報工單 + { + objEAIResult = new SCI_Response_workorder_create(); + break; + } + } + // 將中台回的結果轉成物件 + try + { + (objEAIResult as SCI_Response_workorder_create).ParseXmlToObject(pEAIResult); + if (Conversions.ToBoolean(Operators.ConditionalCompareObjectEqual((objEAIResult as SCI_Response_workorder_create).code, "0", false))) + { + ProcessResult = true; + } + else + { + ProcessMessage = Conversions.ToString((objEAIResult as SCI_Response_workorder_create).description); + } + } + catch (Exception ex) + { + ProcessMessage = OutXML; + } + // 紀錄TransactionLog + string argstrException = null; + modAutoRunLibrary.addTransactionLog(InXML, OutXML, DateTime.Now.ToString("yyyyMMddHHmmssss"), "MES", "StartSyncing", Environment.MachineName, "AutoRun", DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"), Conversions.ToString(Interaction.IIf(ProcessResult == Conversions.ToBoolean("0"), "success", "fail")), ProcessMessage, pSendSrc.SERVICENAME, strException: argstrException); + // 判斷中台回的結果 + if (ProcessResult) + { + // 成功 + HandleSendResultRet = WorkCode.ContinueRun; + // 處理執行成功資訊及歷程 + HandleSendSuccess(pEAIResult, pSendSrc); + } + else + { + // 失敗 + // 處理執行失敗資訊及歷程 + HandleSendFail(pEAIResult, ProcessMessage, pSendSrc, pJobParam02); + // 寄送Mail + string argFileName = "N/A"; + string argEmailSubject = "AutuRunJob : StartSyncing Fail![" + pSendSrc.SERVICENAME + "]"; + string argEmailBody = TranslateMsg("[%SENDID%]:" + pSendSrc.SENDID + " [%EXECUTE%] [%ISSUEMOMATERIAL%] [%FAIL%]! [%ERRORMESSAGE%]:", strLanguageMode, strResourceDir) + ProcessMessage; + modAutoRunLibrary.SendMultiEmail(ref argFileName, ref argEmailSubject, argEmailBody, pJobParam01); + } + } + + catch (Exception ex) + { + throw; + } + finally + { + //CloseConnection(cnnTemp); + } + + return objReturn; + + } + + /// + /// 同步結果處理-成功 + /// + /// + private void HandleSendSuccess(string pEAIResult, CDO_TBLSYSSENDTOEAIQUEUE pSendSrc) + { + + string strSQL; + var objQueueLog = new CDO_TBLSYSSENDTOEAIQUEUE_LOG(); + var objEAIResult = new object(); + var DAO = new DAO_TBLSYSSENDTOEAIQUEUE(); + var DAO_Log = new DAO_TBLSYSSENDTOEAIQUEUE_LOG(); + + var cdoERPDocLog = new CDO_TBLSYSERPDOCUMENTLOG(); + var daoERPDocLog = new DAO_TBLSYSERPDOCUMENTLOG(); + + try + { + // 執行成功後呼叫各服務各自處理邏輯 + switch (pSendSrc.SERVICENAME ?? "") + { + case "issue.wo.item.process": // MES發料 + { + objEAIResult = new SCI_Response_issue_wo_item_process(); + // 將中台回的結果轉成物件 + try + { + (objEAIResult as SCI_Response_issue_wo_item_process).ParseXmlToObject(pEAIResult); + } + catch (Exception ex) + { + throw new Exception("[%XML FORMAT ERROR%]"); + } + + // 解析Request XML + var cdoInXML = new SCI_Request_issue_wo_item_process(); + cdoInXML.ParseXmlToObject(InXML); + + object argdaoTransaction = DAO; + AddERPDocumentLog(8, Conversions.ToString((objEAIResult as SCI_Response_issue_wo_item_process).return_no), cdoInXML.doc_no, pSendSrc, ref argdaoTransaction); + DAO = (DAO_TBLSYSSENDTOEAIQUEUE)argdaoTransaction; + break; + } + case "stockin.data.create": // 完工入庫 + { + objEAIResult = new SCI_Response_stockin_data_create(); + // 將中台回的結果轉成物件 + try + { + (objEAIResult as SCI_Response_stockin_data_create).ParseXmlToObject(pEAIResult); + } + catch (Exception ex) + { + throw new Exception("[%XML FORMAT ERROR%]"); + } + + // 解析Request XML + var cdoInXML = new SCI_Request_stockin_data_create(); + cdoInXML.ParseXmlToObject(InXML); + + object argdaoTransaction1 = DAO; + AddERPDocumentLog(4, Conversions.ToString((objEAIResult as SCI_Response_stockin_data_create).stock_in_no), cdoInXML.source_no, pSendSrc, ref argdaoTransaction1); + DAO = (DAO_TBLSYSSENDTOEAIQUEUE)argdaoTransaction1; + break; + } + + case "workorder.create": // DPM報工單 + { + objEAIResult = new SCI_Response_workorder_create(); + // 將中台回的結果轉成物件 + try + { + (objEAIResult as SCI_Response_workorder_create).ParseXmlToObject(pEAIResult); + } + catch (Exception ex) + { + throw new Exception("[%XML FORMAT ERROR%]"); + } + + // 解析Request XML + var cdoInXML = new SCI_Request_workorder_create(); + cdoInXML.ParseXmlToObject(InXML); + break; + } + } + + // 將Queue資訊搬至Log + objQueueLog.SENDID = pSendSrc.SENDID; + objQueueLog.SENDTO = pSendSrc.SENDTO; + objQueueLog.SERVICENAME = pSendSrc.SERVICENAME; + objQueueLog.SERVICEVERSION = pSendSrc.SERVICEVERSION; + objQueueLog.SENDCONTENT = pSendSrc.PAYLOAD; + objQueueLog.SENDCOUNT = pSendSrc.SENDCOUNT; + objQueueLog.RETURNINFO = Conversions.ToString((objEAIResult as SCI_Response_workorder_create).description); + objQueueLog.RUNRESULT = "success"; + objQueueLog.CREATOR = pSendSrc.CREATOR; + objQueueLog.CREATEDATE = pSendSrc.CREATEDATE; + // 2017-07-17, Joe, 將ERP入庫單號寫入Queue中,還原時才能與MES發料資訊做對應一起還原 + objQueueLog.RELATIONERPNO = pSendSrc.RELATIONERPNO; + objQueueLog.LOTSERIAL = pSendSrc.LOTSERIAL; + DAO_Log.Add(objQueueLog, DAO); + + // 刪除已拋轉成功的Queue + DAO.Delete(pSendSrc, DAO); + } + + catch (Exception ex) + { + throw; + } + finally + { + } + + } + + /// + /// 同步結果處理-失敗 + /// + /// + private void HandleSendFail(string pEAIResult, string pEAIMessage, CDO_TBLSYSSENDTOEAIQUEUE pSendSrc, string pJobParam02) + { + + string strSQL; + var objQueueLog = new CDO_TBLSYSSENDTOEAIQUEUE_LOG(); + var DAO = new DAO_TBLSYSSENDTOEAIQUEUE(); + var DAO_Log = new DAO_TBLSYSSENDTOEAIQUEUE_LOG(); + + try + { + // 錯誤次數加1 + pSendSrc.SENDCOUNT = pSendSrc.SENDCOUNT + 1; + pSendSrc.EXCEPTION = pEAIResult; + + // 將此筆Queue回寫DB + DAO.Update(pSendSrc, DAO); + + // 發送Mail + + // 判斷目前執行的同步次數是否已達到最大限制次數 + if (string.IsNullOrEmpty(pJobParam02) == false && Convert.ToInt32(pJobParam02) != -1 && pSendSrc.SENDCOUNT > Convert.ToInt32(pJobParam02)) + { + + // 將Queue資訊搬至Log + objQueueLog.SENDID = pSendSrc.SENDID; + objQueueLog.SENDTO = pSendSrc.SENDTO; + objQueueLog.SERVICENAME = pSendSrc.SERVICENAME; + objQueueLog.SERVICEVERSION = pSendSrc.SERVICEVERSION; + objQueueLog.SENDCONTENT = pSendSrc.PAYLOAD; + objQueueLog.SENDCOUNT = pSendSrc.SENDCOUNT; + objQueueLog.RETURNINFO = pEAIMessage; + objQueueLog.RUNRESULT = "fail"; + objQueueLog.EXCEPTION = pSendSrc.EXCEPTION; + objQueueLog.CREATOR = pSendSrc.CREATOR; + objQueueLog.CREATEDATE = pSendSrc.CREATEDATE; + // 2017-07-17, Joe, 將ERP入庫單號寫入Queue中,還原時才能與MES發料資訊做對應一起還原 + objQueueLog.RELATIONERPNO = pSendSrc.RELATIONERPNO; + DAO_Log.Add(objQueueLog, DAO); + + // 刪除已拋轉成功的Queue + DAO.Delete(pSendSrc, DAO); + + } + } + + catch (Exception ex) + { + throw; + } + finally + { + } + + } + + private object AddERPDocumentLog(int pDocType, string ERPNo, string MESNo, CDO_TBLSYSSENDTOEAIQUEUE pSendSrc, ref object daoTransaction) + { + + var cdoERPDocLog = new CDO_TBLSYSERPDOCUMENTLOG(); + var daoERPDocLog = new DAO_TBLSYSERPDOCUMENTLOG(); + + try + { + // 將資訊寫入ERP Document Log + cdoERPDocLog.TRANSID = RequestKey; + cdoERPDocLog.DOCUMENTTYPE = pDocType; // 單據類別 1:工單發料,2:工單退料,3:報工單,4:完工入庫,5:不良品入庫單,6:外包出貨單,7:外包回貨單,8:MES發料 + cdoERPDocLog.MESNO = MESNo; + cdoERPDocLog.ERPNO = ERPNo; + cdoERPDocLog.CREATEDATE = pSendSrc.CREATEDATE; + // 2017-07-17, Joe, 將ERP入庫單號寫入Queue中,還原時才能與MES發料資訊做對應一起還原 + cdoERPDocLog.RELATIONERPNO = pSendSrc.RELATIONERPNO; + cdoERPDocLog.SENDID = pSendSrc.SENDID; + daoERPDocLog.Add(cdoERPDocLog, (iMESDBBase)daoTransaction); + } + + catch (Exception ex) + { + throw; + } + + return default(Object); + } + + } +} \ No newline at end of file diff --git a/SRC/MESAgent/MESAutoRun/AutoRunLib/My Project/Settings.Designer.cs b/SRC/MESAgent/MESAutoRun/AutoRunLib/My Project/Settings.Designer.cs new file mode 100644 index 0000000..8d0e345 --- /dev/null +++ b/SRC/MESAgent/MESAutoRun/AutoRunLib/My Project/Settings.Designer.cs @@ -0,0 +1,161 @@ +// ------------------------------------------------------------------------------ +// +// 這段程式碼是由工具產生的。 +// 執行階段版本:4.0.30319.42000 +// +// 對這個檔案所做的變更可能會造成錯誤的行為,而且如果重新產生程式碼, +// 變更將會遺失。 +// +// ------------------------------------------------------------------------------ + +using System.Diagnostics; +using Microsoft.VisualBasic; +using Microsoft.VisualBasic.CompilerServices; + + +namespace AutoRunLib_C.My +{ + + [System.Runtime.CompilerServices.CompilerGenerated()] + [System.CodeDom.Compiler.GeneratedCode("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")] + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Advanced)] + internal sealed partial class MySettings : System.Configuration.ApplicationSettingsBase + { + + private static MySettings defaultInstance = (MySettings)Synchronized(new MySettings()); + + #region My.Settings 自動儲存功能 + /* TODO ERROR: Skipped IfDirectiveTrivia + #If _MyType = "WindowsForms" Then + *//* TODO ERROR: Skipped DisabledTextTrivia + Private Shared addedHandler As Boolean + + Private Shared addedHandlerLockObject As New Object + + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub + *//* TODO ERROR: Skipped EndIfDirectiveTrivia + #End If + */ + #endregion + + public static MySettings Default + { + get + { + + /* TODO ERROR: Skipped IfDirectiveTrivia + #If _MyType = "WindowsForms" Then + *//* TODO ERROR: Skipped DisabledTextTrivia + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If + *//* TODO ERROR: Skipped EndIfDirectiveTrivia + #End If + */ + return defaultInstance; + } + } + + [System.Configuration.ApplicationScopedSetting()] + [DebuggerNonUserCode()] + [System.Configuration.SpecialSetting(System.Configuration.SpecialSetting.WebServiceUrl)] + [System.Configuration.DefaultSettingValue("http://localhost/ERPws_DSC/wsMES.asmx")] + public string AutoRunLib_wsERP_MES_wsMES + { + get + { + return Conversions.ToString(this["AutoRunLib_wsERP_MES_wsMES"]); + } + } + + [System.Configuration.ApplicationScopedSetting()] + [DebuggerNonUserCode()] + [System.Configuration.SpecialSetting(System.Configuration.SpecialSetting.WebServiceUrl)] + [System.Configuration.DefaultSettingValue("http://10.40.40.30/gas/ws/r/aws_ttsrv2_top2o")] + public string AutoRunLib_wsERP_TP_TIPTOPServiceGateWay + { + get + { + return Conversions.ToString(this["AutoRunLib_wsERP_TP_TIPTOPServiceGateWay"]); + } + } + + [System.Configuration.ApplicationScopedSetting()] + [DebuggerNonUserCode()] + [System.Configuration.SpecialSetting(System.Configuration.SpecialSetting.WebServiceUrl)] + [System.Configuration.DefaultSettingValue("http://218.211.164.212:8082/ws/r/aws_ttsrv2_top3o")] + public string AutoRunLib_wsERP_TP_RPC_TIPTOPServiceGateWay + { + get + { + return Conversions.ToString(this["AutoRunLib_wsERP_TP_RPC_TIPTOPServiceGateWay"]); + } + } + + [System.Configuration.ApplicationScopedSetting()] + [DebuggerNonUserCode()] + [System.Configuration.SpecialSetting(System.Configuration.SpecialSetting.WebServiceUrl)] + [System.Configuration.DefaultSettingValue("http://10.40.41.197:9999/IntegrationEntry")] + public string AutoRunLib_wsERP_EAI_IntegrationEntry + { + get + { + return Conversions.ToString(this["AutoRunLib_wsERP_EAI_IntegrationEntry"]); + } + } + + [System.Configuration.ApplicationScopedSetting()] + [DebuggerNonUserCode()] + [System.Configuration.SpecialSetting(System.Configuration.SpecialSetting.WebServiceUrl)] + [System.Configuration.DefaultSettingValue("http://localhost/MESws_STD/wsInvoke.asmx")] + public string AutoRunLib_wsInvoke_wsInvoke + { + get + { + return Conversions.ToString(this["AutoRunLib_wsInvoke_wsInvoke"]); + } + } + + [System.Configuration.ApplicationScopedSetting()] + [DebuggerNonUserCode()] + [System.Configuration.SpecialSetting(System.Configuration.SpecialSetting.WebServiceUrl)] + [System.Configuration.DefaultSettingValue("http://10.40.30.73/WFMES/WFMESService.asmx")] + public string AutoRunLib_wsERP_WorkFlow_WFMESService + { + get + { + return Conversions.ToString(this["AutoRunLib_wsERP_WorkFlow_WFMESService"]); + } + } + } +} + +namespace AutoRunLib_C.My +{ + + [HideModuleName()] + [DebuggerNonUserCode()] + [System.Runtime.CompilerServices.CompilerGenerated()] + internal static class MySettingsProperty + { + + [System.ComponentModel.Design.HelpKeyword("My.Settings")] + internal static MySettings Settings + { + get + { + return MySettings.Default; + } + } + } +} \ No newline at end of file diff --git a/SRC/MESAgent/MESAutoRun/AutoRunLib/My Project/Settings.settings b/SRC/MESAgent/MESAutoRun/AutoRunLib/My Project/Settings.settings new file mode 100644 index 0000000..aeead8a --- /dev/null +++ b/SRC/MESAgent/MESAutoRun/AutoRunLib/My Project/Settings.settings @@ -0,0 +1,24 @@ + + + + + + http://localhost/ERPws_DSC/wsMES.asmx + + + http://10.40.40.30/gas/ws/r/aws_ttsrv2_top2o + + + http://218.211.164.212:8082/ws/r/aws_ttsrv2_top3o + + + http://10.40.41.197:9999/IntegrationEntry + + + http://localhost/MESws_STD/wsInvoke.asmx + + + http://10.40.30.73/WFMES/WFMESService.asmx + + + \ No newline at end of file diff --git a/SRC/MESAgent/MESAutoRun/AutoRunLib/Properties/BuildIncrementVersionInfo.cs b/SRC/MESAgent/MESAutoRun/AutoRunLib/Properties/BuildIncrementVersionInfo.cs new file mode 100644 index 0000000..cc37e81 --- /dev/null +++ b/SRC/MESAgent/MESAutoRun/AutoRunLib/Properties/BuildIncrementVersionInfo.cs @@ -0,0 +1 @@ +[assembly: System.Reflection.AssemblyFileVersion("6.0.5.31114")] diff --git a/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_EAI/IntegrationEntry.wsdl b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_EAI/IntegrationEntry.wsdl new file mode 100644 index 0000000..9be0da0 --- /dev/null +++ b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_EAI/IntegrationEntry.wsdl @@ -0,0 +1,372 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_EAI/Reference.cs b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_EAI/Reference.cs new file mode 100644 index 0000000..252a8f0 --- /dev/null +++ b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_EAI/Reference.cs @@ -0,0 +1,980 @@ +// ------------------------------------------------------------------------------ +// +// 這段程式碼是由工具產生的。 +// 執行階段版本:4.0.30319.42000 +// +// 對這個檔案所做的變更可能會造成錯誤的行為,而且如果重新產生程式碼, +// 變更將會遺失。 +// +// ------------------------------------------------------------------------------ + + +using System; +using System.ComponentModel; +using System.Diagnostics; +using System.Web.Services; +using System.Web.Services.Protocols; +using Microsoft.VisualBasic.CompilerServices; + +// +// 原始程式碼已由 Microsoft.VSDesigner 自動產生,版本 4.0.30319.42000。 +// +namespace AutoRunLib_C.wsERP_EAI +{ + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + [WebServiceBinding(Name = "IntegrationEntrySoapBinding", Namespace = "http://entry.serviceengine.cross.digiwin.com")] + public partial class IntegrationEntry : SoapHttpClientProtocol + { + + private System.Threading.SendOrPostCallback regEAIOperationCompleted; + + private System.Threading.SendOrPostCallback getParamListOperationCompleted; + + private System.Threading.SendOrPostCallback regProdAPOperationCompleted; + + private System.Threading.SendOrPostCallback regSrvOperationCompleted; + + private System.Threading.SendOrPostCallback getProdListOperationCompleted; + + private System.Threading.SendOrPostCallback getProdOperationCompleted; + + private System.Threading.SendOrPostCallback getSrvOperationCompleted; + + private System.Threading.SendOrPostCallback invokeEtlOperationCompleted; + + private System.Threading.SendOrPostCallback invokeSrvOperationCompleted; + + private System.Threading.SendOrPostCallback getEtlJobListOperationCompleted; + + private System.Threading.SendOrPostCallback invokeMdmOperationCompleted; + + private bool useDefaultCredentialsSetExplicitly; + + /// + public IntegrationEntry() : base() + { + Url = My.MySettings.Default.AutoRunLib_wsERP_EAI_IntegrationEntry; + if (IsLocalFileSystemWebService(Url) == true) + { + UseDefaultCredentials = true; + useDefaultCredentialsSetExplicitly = false; + } + else + { + useDefaultCredentialsSetExplicitly = true; + } + } + + public new string Url + { + get + { + return base.Url; + } + set + { + if (IsLocalFileSystemWebService(base.Url) == true && useDefaultCredentialsSetExplicitly == false && IsLocalFileSystemWebService(value) == false) + + { + base.UseDefaultCredentials = false; + } + base.Url = value; + } + } + + public new bool UseDefaultCredentials + { + get + { + return base.UseDefaultCredentials; + } + set + { + base.UseDefaultCredentials = value; + useDefaultCredentialsSetExplicitly = true; + } + } + + /// + public event regEAICompletedEventHandler regEAICompleted; + + /// + public event getParamListCompletedEventHandler getParamListCompleted; + + /// + public event regProdAPCompletedEventHandler regProdAPCompleted; + + /// + public event regSrvCompletedEventHandler regSrvCompleted; + + /// + public event getProdListCompletedEventHandler getProdListCompleted; + + /// + public event getProdCompletedEventHandler getProdCompleted; + + /// + public event getSrvCompletedEventHandler getSrvCompleted; + + /// + public event invokeEtlCompletedEventHandler invokeEtlCompleted; + + /// + public event invokeSrvCompletedEventHandler invokeSrvCompleted; + + /// + public event getEtlJobListCompletedEventHandler getEtlJobListCompleted; + + /// + public event invokeMdmCompletedEventHandler invokeMdmCompleted; + + /// + [SoapDocumentMethod("", RequestNamespace = "http://entry.serviceengine.cross.digiwin.com", ResponseNamespace = "http://entry.serviceengine.cross.digiwin.com", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string regEAI(string in0) + { + object[] results = Invoke("regEAI", new object[] { in0 }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginregEAI(string in0, AsyncCallback callback, object asyncState) + { + return BeginInvoke("regEAI", new object[] { in0 }, callback, asyncState); + } + + /// + public string EndregEAI(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void regEAIAsync(string in0) + { + regEAIAsync(in0, null); + } + + /// + public void regEAIAsync(string in0, object userState) + { + if (regEAIOperationCompleted == null) + { + regEAIOperationCompleted = OnregEAIOperationCompleted; + } + InvokeAsync("regEAI", new object[] { in0 }, regEAIOperationCompleted, userState); + } + + private void OnregEAIOperationCompleted(object arg) + { + if (regEAICompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + regEAICompleted?.Invoke(this, new regEAICompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestNamespace = "http://entry.serviceengine.cross.digiwin.com", ResponseNamespace = "http://entry.serviceengine.cross.digiwin.com", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string getParamList() + { + object[] results = Invoke("getParamList", new object[0]); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BegingetParamList(AsyncCallback callback, object asyncState) + { + return BeginInvoke("getParamList", new object[0], callback, asyncState); + } + + /// + public string EndgetParamList(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void getParamListAsync() + { + getParamListAsync(null); + } + + /// + public void getParamListAsync(object userState) + { + if (getParamListOperationCompleted == null) + { + getParamListOperationCompleted = OngetParamListOperationCompleted; + } + InvokeAsync("getParamList", new object[0], getParamListOperationCompleted, userState); + } + + private void OngetParamListOperationCompleted(object arg) + { + if (getParamListCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + getParamListCompleted?.Invoke(this, new getParamListCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestNamespace = "http://entry.serviceengine.cross.digiwin.com", ResponseNamespace = "http://entry.serviceengine.cross.digiwin.com", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string regProdAP(string in0) + { + object[] results = Invoke("regProdAP", new object[] { in0 }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginregProdAP(string in0, AsyncCallback callback, object asyncState) + { + return BeginInvoke("regProdAP", new object[] { in0 }, callback, asyncState); + } + + /// + public string EndregProdAP(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void regProdAPAsync(string in0) + { + regProdAPAsync(in0, null); + } + + /// + public void regProdAPAsync(string in0, object userState) + { + if (regProdAPOperationCompleted == null) + { + regProdAPOperationCompleted = OnregProdAPOperationCompleted; + } + InvokeAsync("regProdAP", new object[] { in0 }, regProdAPOperationCompleted, userState); + } + + private void OnregProdAPOperationCompleted(object arg) + { + if (regProdAPCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + regProdAPCompleted?.Invoke(this, new regProdAPCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestNamespace = "http://entry.serviceengine.cross.digiwin.com", ResponseNamespace = "http://entry.serviceengine.cross.digiwin.com", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string regSrv(string in0) + { + object[] results = Invoke("regSrv", new object[] { in0 }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginregSrv(string in0, AsyncCallback callback, object asyncState) + { + return BeginInvoke("regSrv", new object[] { in0 }, callback, asyncState); + } + + /// + public string EndregSrv(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void regSrvAsync(string in0) + { + regSrvAsync(in0, null); + } + + /// + public void regSrvAsync(string in0, object userState) + { + if (regSrvOperationCompleted == null) + { + regSrvOperationCompleted = OnregSrvOperationCompleted; + } + InvokeAsync("regSrv", new object[] { in0 }, regSrvOperationCompleted, userState); + } + + private void OnregSrvOperationCompleted(object arg) + { + if (regSrvCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + regSrvCompleted?.Invoke(this, new regSrvCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestNamespace = "http://entry.serviceengine.cross.digiwin.com", ResponseNamespace = "http://entry.serviceengine.cross.digiwin.com", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string getProdList() + { + object[] results = Invoke("getProdList", new object[0]); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BegingetProdList(AsyncCallback callback, object asyncState) + { + return BeginInvoke("getProdList", new object[0], callback, asyncState); + } + + /// + public string EndgetProdList(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void getProdListAsync() + { + getProdListAsync(null); + } + + /// + public void getProdListAsync(object userState) + { + if (getProdListOperationCompleted == null) + { + getProdListOperationCompleted = OngetProdListOperationCompleted; + } + InvokeAsync("getProdList", new object[0], getProdListOperationCompleted, userState); + } + + private void OngetProdListOperationCompleted(object arg) + { + if (getProdListCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + getProdListCompleted?.Invoke(this, new getProdListCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestNamespace = "http://entry.serviceengine.cross.digiwin.com", ResponseNamespace = "http://entry.serviceengine.cross.digiwin.com", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string getProd(string in0) + { + object[] results = Invoke("getProd", new object[] { in0 }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BegingetProd(string in0, AsyncCallback callback, object asyncState) + { + return BeginInvoke("getProd", new object[] { in0 }, callback, asyncState); + } + + /// + public string EndgetProd(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void getProdAsync(string in0) + { + getProdAsync(in0, null); + } + + /// + public void getProdAsync(string in0, object userState) + { + if (getProdOperationCompleted == null) + { + getProdOperationCompleted = OngetProdOperationCompleted; + } + InvokeAsync("getProd", new object[] { in0 }, getProdOperationCompleted, userState); + } + + private void OngetProdOperationCompleted(object arg) + { + if (getProdCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + getProdCompleted?.Invoke(this, new getProdCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestNamespace = "http://entry.serviceengine.cross.digiwin.com", ResponseNamespace = "http://entry.serviceengine.cross.digiwin.com", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string getSrv(string in0) + { + object[] results = Invoke("getSrv", new object[] { in0 }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BegingetSrv(string in0, AsyncCallback callback, object asyncState) + { + return BeginInvoke("getSrv", new object[] { in0 }, callback, asyncState); + } + + /// + public string EndgetSrv(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void getSrvAsync(string in0) + { + getSrvAsync(in0, null); + } + + /// + public void getSrvAsync(string in0, object userState) + { + if (getSrvOperationCompleted == null) + { + getSrvOperationCompleted = OngetSrvOperationCompleted; + } + InvokeAsync("getSrv", new object[] { in0 }, getSrvOperationCompleted, userState); + } + + private void OngetSrvOperationCompleted(object arg) + { + if (getSrvCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + getSrvCompleted?.Invoke(this, new getSrvCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestNamespace = "http://entry.serviceengine.cross.digiwin.com", ResponseNamespace = "http://entry.serviceengine.cross.digiwin.com", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string invokeEtl(string in0) + { + object[] results = Invoke("invokeEtl", new object[] { in0 }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BegininvokeEtl(string in0, AsyncCallback callback, object asyncState) + { + return BeginInvoke("invokeEtl", new object[] { in0 }, callback, asyncState); + } + + /// + public string EndinvokeEtl(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void invokeEtlAsync(string in0) + { + invokeEtlAsync(in0, null); + } + + /// + public void invokeEtlAsync(string in0, object userState) + { + if (invokeEtlOperationCompleted == null) + { + invokeEtlOperationCompleted = OninvokeEtlOperationCompleted; + } + InvokeAsync("invokeEtl", new object[] { in0 }, invokeEtlOperationCompleted, userState); + } + + private void OninvokeEtlOperationCompleted(object arg) + { + if (invokeEtlCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + invokeEtlCompleted?.Invoke(this, new invokeEtlCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestNamespace = "http://entry.serviceengine.cross.digiwin.com", ResponseNamespace = "http://entry.serviceengine.cross.digiwin.com", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string invokeSrv(string in0) + { + object[] results = Invoke("invokeSrv", new object[] { in0 }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BegininvokeSrv(string in0, AsyncCallback callback, object asyncState) + { + return BeginInvoke("invokeSrv", new object[] { in0 }, callback, asyncState); + } + + /// + public string EndinvokeSrv(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void invokeSrvAsync(string in0) + { + invokeSrvAsync(in0, null); + } + + /// + public void invokeSrvAsync(string in0, object userState) + { + if (invokeSrvOperationCompleted == null) + { + invokeSrvOperationCompleted = OninvokeSrvOperationCompleted; + } + InvokeAsync("invokeSrv", new object[] { in0 }, invokeSrvOperationCompleted, userState); + } + + private void OninvokeSrvOperationCompleted(object arg) + { + if (invokeSrvCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + invokeSrvCompleted?.Invoke(this, new invokeSrvCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestNamespace = "http://entry.serviceengine.cross.digiwin.com", ResponseNamespace = "http://entry.serviceengine.cross.digiwin.com", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string getEtlJobList(string in0) + { + object[] results = Invoke("getEtlJobList", new object[] { in0 }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BegingetEtlJobList(string in0, AsyncCallback callback, object asyncState) + { + return BeginInvoke("getEtlJobList", new object[] { in0 }, callback, asyncState); + } + + /// + public string EndgetEtlJobList(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void getEtlJobListAsync(string in0) + { + getEtlJobListAsync(in0, null); + } + + /// + public void getEtlJobListAsync(string in0, object userState) + { + if (getEtlJobListOperationCompleted == null) + { + getEtlJobListOperationCompleted = OngetEtlJobListOperationCompleted; + } + InvokeAsync("getEtlJobList", new object[] { in0 }, getEtlJobListOperationCompleted, userState); + } + + private void OngetEtlJobListOperationCompleted(object arg) + { + if (getEtlJobListCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + getEtlJobListCompleted?.Invoke(this, new getEtlJobListCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestNamespace = "http://entry.serviceengine.cross.digiwin.com", ResponseNamespace = "http://entry.serviceengine.cross.digiwin.com", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string invokeMdm(string in0) + { + object[] results = Invoke("invokeMdm", new object[] { in0 }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BegininvokeMdm(string in0, AsyncCallback callback, object asyncState) + { + return BeginInvoke("invokeMdm", new object[] { in0 }, callback, asyncState); + } + + /// + public string EndinvokeMdm(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void invokeMdmAsync(string in0) + { + invokeMdmAsync(in0, null); + } + + /// + public void invokeMdmAsync(string in0, object userState) + { + if (invokeMdmOperationCompleted == null) + { + invokeMdmOperationCompleted = OninvokeMdmOperationCompleted; + } + InvokeAsync("invokeMdm", new object[] { in0 }, invokeMdmOperationCompleted, userState); + } + + private void OninvokeMdmOperationCompleted(object arg) + { + if (invokeMdmCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + invokeMdmCompleted?.Invoke(this, new invokeMdmCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + public new void CancelAsync(object userState) + { + base.CancelAsync(userState); + } + + private bool IsLocalFileSystemWebService(string url) + { + if (url == null || ReferenceEquals(url, string.Empty)) + { + return false; + } + var wsUri = new Uri(url); + if (wsUri.Port >= 1024 && string.Compare(wsUri.Host, "localHost", StringComparison.OrdinalIgnoreCase) == 0) + { + return true; + } + return false; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void regEAICompletedEventHandler(object sender, regEAICompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class regEAICompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal regEAICompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void getParamListCompletedEventHandler(object sender, getParamListCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class getParamListCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal getParamListCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void regProdAPCompletedEventHandler(object sender, regProdAPCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class regProdAPCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal regProdAPCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void regSrvCompletedEventHandler(object sender, regSrvCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class regSrvCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal regSrvCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void getProdListCompletedEventHandler(object sender, getProdListCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class getProdListCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal getProdListCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void getProdCompletedEventHandler(object sender, getProdCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class getProdCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal getProdCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void getSrvCompletedEventHandler(object sender, getSrvCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class getSrvCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal getSrvCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void invokeEtlCompletedEventHandler(object sender, invokeEtlCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class invokeEtlCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal invokeEtlCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void invokeSrvCompletedEventHandler(object sender, invokeSrvCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class invokeSrvCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal invokeSrvCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void getEtlJobListCompletedEventHandler(object sender, getEtlJobListCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class getEtlJobListCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal getEtlJobListCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void invokeMdmCompletedEventHandler(object sender, invokeMdmCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class invokeMdmCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal invokeMdmCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } +} \ No newline at end of file diff --git a/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_EAI/Reference.map b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_EAI/Reference.map new file mode 100644 index 0000000..4e46b66 --- /dev/null +++ b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_EAI/Reference.map @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_MES/Reference.cs b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_MES/Reference.cs new file mode 100644 index 0000000..fa8456e --- /dev/null +++ b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_MES/Reference.cs @@ -0,0 +1,1899 @@ +// ------------------------------------------------------------------------------ +// +// 這段程式碼是由工具產生的。 +// 執行階段版本:4.0.30319.42000 +// +// 對這個檔案所做的變更可能會造成錯誤的行為,而且如果重新產生程式碼, +// 變更將會遺失。 +// +// ------------------------------------------------------------------------------ + + +using System; +using System.ComponentModel; +using System.Diagnostics; +using System.Web.Services; +using System.Web.Services.Protocols; +using Microsoft.VisualBasic.CompilerServices; + +// +// 原始程式碼已由 Microsoft.VSDesigner 自動產生,版本 4.0.30319.42000。 +// +namespace AutoRunLib_C.wsERP_MES +{ + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + [WebServiceBinding(Name = "wsMESSoap", Namespace = "http://www.imestech.com/wsMES")] + public partial class wsMES : SoapHttpClientProtocol + { + + private System.Threading.SendOrPostCallback LoadWIPInventory_SEMIbyMO_TPOperationCompleted; + + private System.Threading.SendOrPostCallback loadWIP_SEMI_MO_TPOperationCompleted; + + private System.Threading.SendOrPostCallback loadWIP_SEMI_MO_WFOperationCompleted; + + private System.Threading.SendOrPostCallback ChkmesStockIn_LotOperationCompleted; + + private System.Threading.SendOrPostCallback updateINVBookingFlagOperationCompleted; + + private System.Threading.SendOrPostCallback MOStockIn_TPOperationCompleted; + + private System.Threading.SendOrPostCallback MOStockIn_E10OperationCompleted; + + private System.Threading.SendOrPostCallback MOStockIn_Scrap_TPOperationCompleted; + + private System.Threading.SendOrPostCallback MOStockIn_WFOperationCompleted; + + private System.Threading.SendOrPostCallback MOStockIn_Check_WFOperationCompleted; + + private System.Threading.SendOrPostCallback MOStockIn_WF_CancelOperationCompleted; + + private System.Threading.SendOrPostCallback LoadWIPInventory_SEMIbyMO_WFOperationCompleted; + + private System.Threading.SendOrPostCallback LoadOEMOBasis_byLot_WFOperationCompleted; + + private System.Threading.SendOrPostCallback UpdOSBasisOperationCompleted; + + private System.Threading.SendOrPostCallback LoadMOMaterialStateOPOperationCompleted; + + private System.Threading.SendOrPostCallback LoadMOMaterialStateOperationCompleted; + + private System.Threading.SendOrPostCallback MOIssueReturnOperationCompleted; + + private System.Threading.SendOrPostCallback MOIssueReturn_CancelOperationCompleted; + + private System.Threading.SendOrPostCallback ExeMaterialScrapOperationCompleted; + + private System.Threading.SendOrPostCallback GetERPReferenceNoOperationCompleted; + + private System.Threading.SendOrPostCallback addTransactionLogOperationCompleted; + + private System.Threading.SendOrPostCallback addTransactionLog_ErrorCodeOperationCompleted; + + private bool useDefaultCredentialsSetExplicitly; + + /// + public wsMES() : base() + { + Url = My.MySettings.Default.AutoRunLib_wsERP_MES_wsMES; + if (IsLocalFileSystemWebService(Url) == true) + { + UseDefaultCredentials = true; + useDefaultCredentialsSetExplicitly = false; + } + else + { + useDefaultCredentialsSetExplicitly = true; + } + } + + public new string Url + { + get + { + return base.Url; + } + set + { + if (IsLocalFileSystemWebService(base.Url) == true && useDefaultCredentialsSetExplicitly == false && IsLocalFileSystemWebService(value) == false) + + { + base.UseDefaultCredentials = false; + } + base.Url = value; + } + } + + public new bool UseDefaultCredentials + { + get + { + return base.UseDefaultCredentials; + } + set + { + base.UseDefaultCredentials = value; + useDefaultCredentialsSetExplicitly = true; + } + } + + /// + public event LoadWIPInventory_SEMIbyMO_TPCompletedEventHandler LoadWIPInventory_SEMIbyMO_TPCompleted; + + /// + public event loadWIP_SEMI_MO_TPCompletedEventHandler loadWIP_SEMI_MO_TPCompleted; + + /// + public event loadWIP_SEMI_MO_WFCompletedEventHandler loadWIP_SEMI_MO_WFCompleted; + + /// + public event ChkmesStockIn_LotCompletedEventHandler ChkmesStockIn_LotCompleted; + + /// + public event updateINVBookingFlagCompletedEventHandler updateINVBookingFlagCompleted; + + /// + public event MOStockIn_TPCompletedEventHandler MOStockIn_TPCompleted; + + /// + public event MOStockIn_E10CompletedEventHandler MOStockIn_E10Completed; + + /// + public event MOStockIn_Scrap_TPCompletedEventHandler MOStockIn_Scrap_TPCompleted; + + /// + public event MOStockIn_WFCompletedEventHandler MOStockIn_WFCompleted; + + /// + public event MOStockIn_Check_WFCompletedEventHandler MOStockIn_Check_WFCompleted; + + /// + public event MOStockIn_WF_CancelCompletedEventHandler MOStockIn_WF_CancelCompleted; + + /// + public event LoadWIPInventory_SEMIbyMO_WFCompletedEventHandler LoadWIPInventory_SEMIbyMO_WFCompleted; + + /// + public event LoadOEMOBasis_byLot_WFCompletedEventHandler LoadOEMOBasis_byLot_WFCompleted; + + /// + public event UpdOSBasisCompletedEventHandler UpdOSBasisCompleted; + + /// + public event LoadMOMaterialStateOPCompletedEventHandler LoadMOMaterialStateOPCompleted; + + /// + public event LoadMOMaterialStateCompletedEventHandler LoadMOMaterialStateCompleted; + + /// + public event MOIssueReturnCompletedEventHandler MOIssueReturnCompleted; + + /// + public event MOIssueReturn_CancelCompletedEventHandler MOIssueReturn_CancelCompleted; + + /// + public event ExeMaterialScrapCompletedEventHandler ExeMaterialScrapCompleted; + + /// + public event GetERPReferenceNoCompletedEventHandler GetERPReferenceNoCompleted; + + /// + public event addTransactionLogCompletedEventHandler addTransactionLogCompleted; + + /// + public event addTransactionLog_ErrorCodeCompletedEventHandler addTransactionLog_ErrorCodeCompleted; + + /// + [SoapDocumentMethod("http://www.imestech.com/wsMES/LoadWIPInventory_SEMIbyMO_TP", RequestNamespace = "http://www.imestech.com/wsMES", ResponseNamespace = "http://www.imestech.com/wsMES", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string LoadWIPInventory_SEMIbyMO_TP(string InXml) + { + object[] results = Invoke("LoadWIPInventory_SEMIbyMO_TP", new object[] { InXml }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginLoadWIPInventory_SEMIbyMO_TP(string InXml, AsyncCallback callback, object asyncState) + { + return BeginInvoke("LoadWIPInventory_SEMIbyMO_TP", new object[] { InXml }, callback, asyncState); + } + + /// + public string EndLoadWIPInventory_SEMIbyMO_TP(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void LoadWIPInventory_SEMIbyMO_TPAsync(string InXml) + { + LoadWIPInventory_SEMIbyMO_TPAsync(InXml, null); + } + + /// + public void LoadWIPInventory_SEMIbyMO_TPAsync(string InXml, object userState) + { + if (LoadWIPInventory_SEMIbyMO_TPOperationCompleted == null) + { + LoadWIPInventory_SEMIbyMO_TPOperationCompleted = OnLoadWIPInventory_SEMIbyMO_TPOperationCompleted; + } + InvokeAsync("LoadWIPInventory_SEMIbyMO_TP", new object[] { InXml }, LoadWIPInventory_SEMIbyMO_TPOperationCompleted, userState); + } + + private void OnLoadWIPInventory_SEMIbyMO_TPOperationCompleted(object arg) + { + if (LoadWIPInventory_SEMIbyMO_TPCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + LoadWIPInventory_SEMIbyMO_TPCompleted?.Invoke(this, new LoadWIPInventory_SEMIbyMO_TPCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsMES/loadWIP_SEMI_MO_TP", RequestNamespace = "http://www.imestech.com/wsMES", ResponseNamespace = "http://www.imestech.com/wsMES", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string loadWIP_SEMI_MO_TP(string InXml) + { + object[] results = Invoke("loadWIP_SEMI_MO_TP", new object[] { InXml }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginloadWIP_SEMI_MO_TP(string InXml, AsyncCallback callback, object asyncState) + { + return BeginInvoke("loadWIP_SEMI_MO_TP", new object[] { InXml }, callback, asyncState); + } + + /// + public string EndloadWIP_SEMI_MO_TP(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void loadWIP_SEMI_MO_TPAsync(string InXml) + { + loadWIP_SEMI_MO_TPAsync(InXml, null); + } + + /// + public void loadWIP_SEMI_MO_TPAsync(string InXml, object userState) + { + if (loadWIP_SEMI_MO_TPOperationCompleted == null) + { + loadWIP_SEMI_MO_TPOperationCompleted = OnloadWIP_SEMI_MO_TPOperationCompleted; + } + InvokeAsync("loadWIP_SEMI_MO_TP", new object[] { InXml }, loadWIP_SEMI_MO_TPOperationCompleted, userState); + } + + private void OnloadWIP_SEMI_MO_TPOperationCompleted(object arg) + { + if (loadWIP_SEMI_MO_TPCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + loadWIP_SEMI_MO_TPCompleted?.Invoke(this, new loadWIP_SEMI_MO_TPCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsMES/loadWIP_SEMI_MO_WF", RequestNamespace = "http://www.imestech.com/wsMES", ResponseNamespace = "http://www.imestech.com/wsMES", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string loadWIP_SEMI_MO_WF(string InXml) + { + object[] results = Invoke("loadWIP_SEMI_MO_WF", new object[] { InXml }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginloadWIP_SEMI_MO_WF(string InXml, AsyncCallback callback, object asyncState) + { + return BeginInvoke("loadWIP_SEMI_MO_WF", new object[] { InXml }, callback, asyncState); + } + + /// + public string EndloadWIP_SEMI_MO_WF(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void loadWIP_SEMI_MO_WFAsync(string InXml) + { + loadWIP_SEMI_MO_WFAsync(InXml, null); + } + + /// + public void loadWIP_SEMI_MO_WFAsync(string InXml, object userState) + { + if (loadWIP_SEMI_MO_WFOperationCompleted == null) + { + loadWIP_SEMI_MO_WFOperationCompleted = OnloadWIP_SEMI_MO_WFOperationCompleted; + } + InvokeAsync("loadWIP_SEMI_MO_WF", new object[] { InXml }, loadWIP_SEMI_MO_WFOperationCompleted, userState); + } + + private void OnloadWIP_SEMI_MO_WFOperationCompleted(object arg) + { + if (loadWIP_SEMI_MO_WFCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + loadWIP_SEMI_MO_WFCompleted?.Invoke(this, new loadWIP_SEMI_MO_WFCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsMES/ChkmesStockIn_Lot", RequestNamespace = "http://www.imestech.com/wsMES", ResponseNamespace = "http://www.imestech.com/wsMES", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string ChkmesStockIn_Lot(string InXml) + { + object[] results = Invoke("ChkmesStockIn_Lot", new object[] { InXml }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginChkmesStockIn_Lot(string InXml, AsyncCallback callback, object asyncState) + { + return BeginInvoke("ChkmesStockIn_Lot", new object[] { InXml }, callback, asyncState); + } + + /// + public string EndChkmesStockIn_Lot(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void ChkmesStockIn_LotAsync(string InXml) + { + ChkmesStockIn_LotAsync(InXml, null); + } + + /// + public void ChkmesStockIn_LotAsync(string InXml, object userState) + { + if (ChkmesStockIn_LotOperationCompleted == null) + { + ChkmesStockIn_LotOperationCompleted = OnChkmesStockIn_LotOperationCompleted; + } + InvokeAsync("ChkmesStockIn_Lot", new object[] { InXml }, ChkmesStockIn_LotOperationCompleted, userState); + } + + private void OnChkmesStockIn_LotOperationCompleted(object arg) + { + if (ChkmesStockIn_LotCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + ChkmesStockIn_LotCompleted?.Invoke(this, new ChkmesStockIn_LotCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsMES/updateINVBookingFlag", RequestNamespace = "http://www.imestech.com/wsMES", ResponseNamespace = "http://www.imestech.com/wsMES", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string updateINVBookingFlag(string InXml) + { + object[] results = Invoke("updateINVBookingFlag", new object[] { InXml }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginupdateINVBookingFlag(string InXml, AsyncCallback callback, object asyncState) + { + return BeginInvoke("updateINVBookingFlag", new object[] { InXml }, callback, asyncState); + } + + /// + public string EndupdateINVBookingFlag(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void updateINVBookingFlagAsync(string InXml) + { + updateINVBookingFlagAsync(InXml, null); + } + + /// + public void updateINVBookingFlagAsync(string InXml, object userState) + { + if (updateINVBookingFlagOperationCompleted == null) + { + updateINVBookingFlagOperationCompleted = OnupdateINVBookingFlagOperationCompleted; + } + InvokeAsync("updateINVBookingFlag", new object[] { InXml }, updateINVBookingFlagOperationCompleted, userState); + } + + private void OnupdateINVBookingFlagOperationCompleted(object arg) + { + if (updateINVBookingFlagCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + updateINVBookingFlagCompleted?.Invoke(this, new updateINVBookingFlagCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsMES/MOStockIn_TP", RequestNamespace = "http://www.imestech.com/wsMES", ResponseNamespace = "http://www.imestech.com/wsMES", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string MOStockIn_TP(string InXml) + { + object[] results = Invoke("MOStockIn_TP", new object[] { InXml }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginMOStockIn_TP(string InXml, AsyncCallback callback, object asyncState) + { + return BeginInvoke("MOStockIn_TP", new object[] { InXml }, callback, asyncState); + } + + /// + public string EndMOStockIn_TP(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void MOStockIn_TPAsync(string InXml) + { + MOStockIn_TPAsync(InXml, null); + } + + /// + public void MOStockIn_TPAsync(string InXml, object userState) + { + if (MOStockIn_TPOperationCompleted == null) + { + MOStockIn_TPOperationCompleted = OnMOStockIn_TPOperationCompleted; + } + InvokeAsync("MOStockIn_TP", new object[] { InXml }, MOStockIn_TPOperationCompleted, userState); + } + + private void OnMOStockIn_TPOperationCompleted(object arg) + { + if (MOStockIn_TPCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + MOStockIn_TPCompleted?.Invoke(this, new MOStockIn_TPCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsMES/MOStockIn_E10", RequestNamespace = "http://www.imestech.com/wsMES", ResponseNamespace = "http://www.imestech.com/wsMES", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string MOStockIn_E10(string InXml) + { + object[] results = Invoke("MOStockIn_E10", new object[] { InXml }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginMOStockIn_E10(string InXml, AsyncCallback callback, object asyncState) + { + return BeginInvoke("MOStockIn_E10", new object[] { InXml }, callback, asyncState); + } + + /// + public string EndMOStockIn_E10(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void MOStockIn_E10Async(string InXml) + { + MOStockIn_E10Async(InXml, null); + } + + /// + public void MOStockIn_E10Async(string InXml, object userState) + { + if (MOStockIn_E10OperationCompleted == null) + { + MOStockIn_E10OperationCompleted = OnMOStockIn_E10OperationCompleted; + } + InvokeAsync("MOStockIn_E10", new object[] { InXml }, MOStockIn_E10OperationCompleted, userState); + } + + private void OnMOStockIn_E10OperationCompleted(object arg) + { + if (MOStockIn_E10Completed != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + MOStockIn_E10Completed?.Invoke(this, new MOStockIn_E10CompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsMES/MOStockIn_Scrap_TP", RequestNamespace = "http://www.imestech.com/wsMES", ResponseNamespace = "http://www.imestech.com/wsMES", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string MOStockIn_Scrap_TP(string InXml) + { + object[] results = Invoke("MOStockIn_Scrap_TP", new object[] { InXml }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginMOStockIn_Scrap_TP(string InXml, AsyncCallback callback, object asyncState) + { + return BeginInvoke("MOStockIn_Scrap_TP", new object[] { InXml }, callback, asyncState); + } + + /// + public string EndMOStockIn_Scrap_TP(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void MOStockIn_Scrap_TPAsync(string InXml) + { + MOStockIn_Scrap_TPAsync(InXml, null); + } + + /// + public void MOStockIn_Scrap_TPAsync(string InXml, object userState) + { + if (MOStockIn_Scrap_TPOperationCompleted == null) + { + MOStockIn_Scrap_TPOperationCompleted = OnMOStockIn_Scrap_TPOperationCompleted; + } + InvokeAsync("MOStockIn_Scrap_TP", new object[] { InXml }, MOStockIn_Scrap_TPOperationCompleted, userState); + } + + private void OnMOStockIn_Scrap_TPOperationCompleted(object arg) + { + if (MOStockIn_Scrap_TPCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + MOStockIn_Scrap_TPCompleted?.Invoke(this, new MOStockIn_Scrap_TPCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsMES/MOStockIn_WF", RequestNamespace = "http://www.imestech.com/wsMES", ResponseNamespace = "http://www.imestech.com/wsMES", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string MOStockIn_WF(string InXml) + { + object[] results = Invoke("MOStockIn_WF", new object[] { InXml }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginMOStockIn_WF(string InXml, AsyncCallback callback, object asyncState) + { + return BeginInvoke("MOStockIn_WF", new object[] { InXml }, callback, asyncState); + } + + /// + public string EndMOStockIn_WF(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void MOStockIn_WFAsync(string InXml) + { + MOStockIn_WFAsync(InXml, null); + } + + /// + public void MOStockIn_WFAsync(string InXml, object userState) + { + if (MOStockIn_WFOperationCompleted == null) + { + MOStockIn_WFOperationCompleted = OnMOStockIn_WFOperationCompleted; + } + InvokeAsync("MOStockIn_WF", new object[] { InXml }, MOStockIn_WFOperationCompleted, userState); + } + + private void OnMOStockIn_WFOperationCompleted(object arg) + { + if (MOStockIn_WFCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + MOStockIn_WFCompleted?.Invoke(this, new MOStockIn_WFCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsMES/MOStockIn_Check_WF", RequestNamespace = "http://www.imestech.com/wsMES", ResponseNamespace = "http://www.imestech.com/wsMES", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string MOStockIn_Check_WF(string InXml) + { + object[] results = Invoke("MOStockIn_Check_WF", new object[] { InXml }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginMOStockIn_Check_WF(string InXml, AsyncCallback callback, object asyncState) + { + return BeginInvoke("MOStockIn_Check_WF", new object[] { InXml }, callback, asyncState); + } + + /// + public string EndMOStockIn_Check_WF(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void MOStockIn_Check_WFAsync(string InXml) + { + MOStockIn_Check_WFAsync(InXml, null); + } + + /// + public void MOStockIn_Check_WFAsync(string InXml, object userState) + { + if (MOStockIn_Check_WFOperationCompleted == null) + { + MOStockIn_Check_WFOperationCompleted = OnMOStockIn_Check_WFOperationCompleted; + } + InvokeAsync("MOStockIn_Check_WF", new object[] { InXml }, MOStockIn_Check_WFOperationCompleted, userState); + } + + private void OnMOStockIn_Check_WFOperationCompleted(object arg) + { + if (MOStockIn_Check_WFCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + MOStockIn_Check_WFCompleted?.Invoke(this, new MOStockIn_Check_WFCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsMES/MOStockIn_WF_Cancel", RequestNamespace = "http://www.imestech.com/wsMES", ResponseNamespace = "http://www.imestech.com/wsMES", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string MOStockIn_WF_Cancel(string InXml) + { + object[] results = Invoke("MOStockIn_WF_Cancel", new object[] { InXml }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginMOStockIn_WF_Cancel(string InXml, AsyncCallback callback, object asyncState) + { + return BeginInvoke("MOStockIn_WF_Cancel", new object[] { InXml }, callback, asyncState); + } + + /// + public string EndMOStockIn_WF_Cancel(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void MOStockIn_WF_CancelAsync(string InXml) + { + MOStockIn_WF_CancelAsync(InXml, null); + } + + /// + public void MOStockIn_WF_CancelAsync(string InXml, object userState) + { + if (MOStockIn_WF_CancelOperationCompleted == null) + { + MOStockIn_WF_CancelOperationCompleted = OnMOStockIn_WF_CancelOperationCompleted; + } + InvokeAsync("MOStockIn_WF_Cancel", new object[] { InXml }, MOStockIn_WF_CancelOperationCompleted, userState); + } + + private void OnMOStockIn_WF_CancelOperationCompleted(object arg) + { + if (MOStockIn_WF_CancelCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + MOStockIn_WF_CancelCompleted?.Invoke(this, new MOStockIn_WF_CancelCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsMES/LoadWIPInventory_SEMIbyMO_WF", RequestNamespace = "http://www.imestech.com/wsMES", ResponseNamespace = "http://www.imestech.com/wsMES", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string LoadWIPInventory_SEMIbyMO_WF(string InXml) + { + object[] results = Invoke("LoadWIPInventory_SEMIbyMO_WF", new object[] { InXml }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginLoadWIPInventory_SEMIbyMO_WF(string InXml, AsyncCallback callback, object asyncState) + { + return BeginInvoke("LoadWIPInventory_SEMIbyMO_WF", new object[] { InXml }, callback, asyncState); + } + + /// + public string EndLoadWIPInventory_SEMIbyMO_WF(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void LoadWIPInventory_SEMIbyMO_WFAsync(string InXml) + { + LoadWIPInventory_SEMIbyMO_WFAsync(InXml, null); + } + + /// + public void LoadWIPInventory_SEMIbyMO_WFAsync(string InXml, object userState) + { + if (LoadWIPInventory_SEMIbyMO_WFOperationCompleted == null) + { + LoadWIPInventory_SEMIbyMO_WFOperationCompleted = OnLoadWIPInventory_SEMIbyMO_WFOperationCompleted; + } + InvokeAsync("LoadWIPInventory_SEMIbyMO_WF", new object[] { InXml }, LoadWIPInventory_SEMIbyMO_WFOperationCompleted, userState); + } + + private void OnLoadWIPInventory_SEMIbyMO_WFOperationCompleted(object arg) + { + if (LoadWIPInventory_SEMIbyMO_WFCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + LoadWIPInventory_SEMIbyMO_WFCompleted?.Invoke(this, new LoadWIPInventory_SEMIbyMO_WFCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsMES/LoadOEMOBasis_byLot_WF", RequestNamespace = "http://www.imestech.com/wsMES", ResponseNamespace = "http://www.imestech.com/wsMES", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string LoadOEMOBasis_byLot_WF(string InXml) + { + object[] results = Invoke("LoadOEMOBasis_byLot_WF", new object[] { InXml }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginLoadOEMOBasis_byLot_WF(string InXml, AsyncCallback callback, object asyncState) + { + return BeginInvoke("LoadOEMOBasis_byLot_WF", new object[] { InXml }, callback, asyncState); + } + + /// + public string EndLoadOEMOBasis_byLot_WF(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void LoadOEMOBasis_byLot_WFAsync(string InXml) + { + LoadOEMOBasis_byLot_WFAsync(InXml, null); + } + + /// + public void LoadOEMOBasis_byLot_WFAsync(string InXml, object userState) + { + if (LoadOEMOBasis_byLot_WFOperationCompleted == null) + { + LoadOEMOBasis_byLot_WFOperationCompleted = OnLoadOEMOBasis_byLot_WFOperationCompleted; + } + InvokeAsync("LoadOEMOBasis_byLot_WF", new object[] { InXml }, LoadOEMOBasis_byLot_WFOperationCompleted, userState); + } + + private void OnLoadOEMOBasis_byLot_WFOperationCompleted(object arg) + { + if (LoadOEMOBasis_byLot_WFCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + LoadOEMOBasis_byLot_WFCompleted?.Invoke(this, new LoadOEMOBasis_byLot_WFCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsMES/UpdOSBasis", RequestNamespace = "http://www.imestech.com/wsMES", ResponseNamespace = "http://www.imestech.com/wsMES", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string UpdOSBasis(string InXml) + { + object[] results = Invoke("UpdOSBasis", new object[] { InXml }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginUpdOSBasis(string InXml, AsyncCallback callback, object asyncState) + { + return BeginInvoke("UpdOSBasis", new object[] { InXml }, callback, asyncState); + } + + /// + public string EndUpdOSBasis(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void UpdOSBasisAsync(string InXml) + { + UpdOSBasisAsync(InXml, null); + } + + /// + public void UpdOSBasisAsync(string InXml, object userState) + { + if (UpdOSBasisOperationCompleted == null) + { + UpdOSBasisOperationCompleted = OnUpdOSBasisOperationCompleted; + } + InvokeAsync("UpdOSBasis", new object[] { InXml }, UpdOSBasisOperationCompleted, userState); + } + + private void OnUpdOSBasisOperationCompleted(object arg) + { + if (UpdOSBasisCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + UpdOSBasisCompleted?.Invoke(this, new UpdOSBasisCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsMES/LoadMOMaterialStateOP", RequestNamespace = "http://www.imestech.com/wsMES", ResponseNamespace = "http://www.imestech.com/wsMES", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string LoadMOMaterialStateOP(string InXml) + { + object[] results = Invoke("LoadMOMaterialStateOP", new object[] { InXml }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginLoadMOMaterialStateOP(string InXml, AsyncCallback callback, object asyncState) + { + return BeginInvoke("LoadMOMaterialStateOP", new object[] { InXml }, callback, asyncState); + } + + /// + public string EndLoadMOMaterialStateOP(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void LoadMOMaterialStateOPAsync(string InXml) + { + LoadMOMaterialStateOPAsync(InXml, null); + } + + /// + public void LoadMOMaterialStateOPAsync(string InXml, object userState) + { + if (LoadMOMaterialStateOPOperationCompleted == null) + { + LoadMOMaterialStateOPOperationCompleted = OnLoadMOMaterialStateOPOperationCompleted; + } + InvokeAsync("LoadMOMaterialStateOP", new object[] { InXml }, LoadMOMaterialStateOPOperationCompleted, userState); + } + + private void OnLoadMOMaterialStateOPOperationCompleted(object arg) + { + if (LoadMOMaterialStateOPCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + LoadMOMaterialStateOPCompleted?.Invoke(this, new LoadMOMaterialStateOPCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsMES/LoadMOMaterialState", RequestNamespace = "http://www.imestech.com/wsMES", ResponseNamespace = "http://www.imestech.com/wsMES", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string LoadMOMaterialState(string InXml) + { + object[] results = Invoke("LoadMOMaterialState", new object[] { InXml }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginLoadMOMaterialState(string InXml, AsyncCallback callback, object asyncState) + { + return BeginInvoke("LoadMOMaterialState", new object[] { InXml }, callback, asyncState); + } + + /// + public string EndLoadMOMaterialState(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void LoadMOMaterialStateAsync(string InXml) + { + LoadMOMaterialStateAsync(InXml, null); + } + + /// + public void LoadMOMaterialStateAsync(string InXml, object userState) + { + if (LoadMOMaterialStateOperationCompleted == null) + { + LoadMOMaterialStateOperationCompleted = OnLoadMOMaterialStateOperationCompleted; + } + InvokeAsync("LoadMOMaterialState", new object[] { InXml }, LoadMOMaterialStateOperationCompleted, userState); + } + + private void OnLoadMOMaterialStateOperationCompleted(object arg) + { + if (LoadMOMaterialStateCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + LoadMOMaterialStateCompleted?.Invoke(this, new LoadMOMaterialStateCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsMES/MOIssueReturn", RequestNamespace = "http://www.imestech.com/wsMES", ResponseNamespace = "http://www.imestech.com/wsMES", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string MOIssueReturn(string InXml) + { + object[] results = Invoke("MOIssueReturn", new object[] { InXml }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginMOIssueReturn(string InXml, AsyncCallback callback, object asyncState) + { + return BeginInvoke("MOIssueReturn", new object[] { InXml }, callback, asyncState); + } + + /// + public string EndMOIssueReturn(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void MOIssueReturnAsync(string InXml) + { + MOIssueReturnAsync(InXml, null); + } + + /// + public void MOIssueReturnAsync(string InXml, object userState) + { + if (MOIssueReturnOperationCompleted == null) + { + MOIssueReturnOperationCompleted = OnMOIssueReturnOperationCompleted; + } + InvokeAsync("MOIssueReturn", new object[] { InXml }, MOIssueReturnOperationCompleted, userState); + } + + private void OnMOIssueReturnOperationCompleted(object arg) + { + if (MOIssueReturnCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + MOIssueReturnCompleted?.Invoke(this, new MOIssueReturnCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsMES/MOIssueReturn_Cancel", RequestNamespace = "http://www.imestech.com/wsMES", ResponseNamespace = "http://www.imestech.com/wsMES", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string MOIssueReturn_Cancel(string InXml) + { + object[] results = Invoke("MOIssueReturn_Cancel", new object[] { InXml }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginMOIssueReturn_Cancel(string InXml, AsyncCallback callback, object asyncState) + { + return BeginInvoke("MOIssueReturn_Cancel", new object[] { InXml }, callback, asyncState); + } + + /// + public string EndMOIssueReturn_Cancel(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void MOIssueReturn_CancelAsync(string InXml) + { + MOIssueReturn_CancelAsync(InXml, null); + } + + /// + public void MOIssueReturn_CancelAsync(string InXml, object userState) + { + if (MOIssueReturn_CancelOperationCompleted == null) + { + MOIssueReturn_CancelOperationCompleted = OnMOIssueReturn_CancelOperationCompleted; + } + InvokeAsync("MOIssueReturn_Cancel", new object[] { InXml }, MOIssueReturn_CancelOperationCompleted, userState); + } + + private void OnMOIssueReturn_CancelOperationCompleted(object arg) + { + if (MOIssueReturn_CancelCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + MOIssueReturn_CancelCompleted?.Invoke(this, new MOIssueReturn_CancelCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsMES/ExeMaterialScrap", RequestNamespace = "http://www.imestech.com/wsMES", ResponseNamespace = "http://www.imestech.com/wsMES", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string ExeMaterialScrap(string InXml) + { + object[] results = Invoke("ExeMaterialScrap", new object[] { InXml }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginExeMaterialScrap(string InXml, AsyncCallback callback, object asyncState) + { + return BeginInvoke("ExeMaterialScrap", new object[] { InXml }, callback, asyncState); + } + + /// + public string EndExeMaterialScrap(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void ExeMaterialScrapAsync(string InXml) + { + ExeMaterialScrapAsync(InXml, null); + } + + /// + public void ExeMaterialScrapAsync(string InXml, object userState) + { + if (ExeMaterialScrapOperationCompleted == null) + { + ExeMaterialScrapOperationCompleted = OnExeMaterialScrapOperationCompleted; + } + InvokeAsync("ExeMaterialScrap", new object[] { InXml }, ExeMaterialScrapOperationCompleted, userState); + } + + private void OnExeMaterialScrapOperationCompleted(object arg) + { + if (ExeMaterialScrapCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + ExeMaterialScrapCompleted?.Invoke(this, new ExeMaterialScrapCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsMES/GetERPReferenceNo", RequestNamespace = "http://www.imestech.com/wsMES", ResponseNamespace = "http://www.imestech.com/wsMES", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetERPReferenceNo(string InXml) + { + object[] results = Invoke("GetERPReferenceNo", new object[] { InXml }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetERPReferenceNo(string InXml, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetERPReferenceNo", new object[] { InXml }, callback, asyncState); + } + + /// + public string EndGetERPReferenceNo(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetERPReferenceNoAsync(string InXml) + { + GetERPReferenceNoAsync(InXml, null); + } + + /// + public void GetERPReferenceNoAsync(string InXml, object userState) + { + if (GetERPReferenceNoOperationCompleted == null) + { + GetERPReferenceNoOperationCompleted = OnGetERPReferenceNoOperationCompleted; + } + InvokeAsync("GetERPReferenceNo", new object[] { InXml }, GetERPReferenceNoOperationCompleted, userState); + } + + private void OnGetERPReferenceNoOperationCompleted(object arg) + { + if (GetERPReferenceNoCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetERPReferenceNoCompleted?.Invoke(this, new GetERPReferenceNoCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsMES/addTransactionLog", RequestNamespace = "http://www.imestech.com/wsMES", ResponseNamespace = "http://www.imestech.com/wsMES", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public bool addTransactionLog(string InXml, string OutXml, string TransactionID, string ModuleID, string FunctionID, string ComputerName, string CurUserNo, string SendTime, string Result, string KeyValue, string ExceptionFun, ref string arrException) + { + object[] results = Invoke("addTransactionLog", new object[] { InXml, OutXml, TransactionID, ModuleID, FunctionID, ComputerName, CurUserNo, SendTime, Result, KeyValue, ExceptionFun, arrException }); + arrException = Conversions.ToString(results[1]); + return Conversions.ToBoolean(results[0]); + } + + /// + public IAsyncResult BeginaddTransactionLog(string InXml, string OutXml, string TransactionID, string ModuleID, string FunctionID, string ComputerName, string CurUserNo, string SendTime, string Result, string KeyValue, string ExceptionFun, string arrException, AsyncCallback callback, object asyncState) + { + return BeginInvoke("addTransactionLog", new object[] { InXml, OutXml, TransactionID, ModuleID, FunctionID, ComputerName, CurUserNo, SendTime, Result, KeyValue, ExceptionFun, arrException }, callback, asyncState); + } + + /// + public bool EndaddTransactionLog(IAsyncResult asyncResult, ref string arrException) + { + object[] results = EndInvoke(asyncResult); + arrException = Conversions.ToString(results[1]); + return Conversions.ToBoolean(results[0]); + } + + /// + public void addTransactionLogAsync(string InXml, string OutXml, string TransactionID, string ModuleID, string FunctionID, string ComputerName, string CurUserNo, string SendTime, string Result, string KeyValue, string ExceptionFun, string arrException) + { + addTransactionLogAsync(InXml, OutXml, TransactionID, ModuleID, FunctionID, ComputerName, CurUserNo, SendTime, Result, KeyValue, ExceptionFun, arrException, null); + } + + /// + public void addTransactionLogAsync(string InXml, string OutXml, string TransactionID, string ModuleID, string FunctionID, string ComputerName, string CurUserNo, string SendTime, string Result, string KeyValue, string ExceptionFun, string arrException, object userState) + { + if (addTransactionLogOperationCompleted == null) + { + addTransactionLogOperationCompleted = OnaddTransactionLogOperationCompleted; + } + InvokeAsync("addTransactionLog", new object[] { InXml, OutXml, TransactionID, ModuleID, FunctionID, ComputerName, CurUserNo, SendTime, Result, KeyValue, ExceptionFun, arrException }, addTransactionLogOperationCompleted, userState); + } + + private void OnaddTransactionLogOperationCompleted(object arg) + { + if (addTransactionLogCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + addTransactionLogCompleted?.Invoke(this, new addTransactionLogCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsMES/addTransactionLog_ErrorCode", RequestNamespace = "http://www.imestech.com/wsMES", ResponseNamespace = "http://www.imestech.com/wsMES", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public bool addTransactionLog_ErrorCode(string InXml, string OutXml, string TransactionID, string ModuleID, string FunctionID, string ComputerName, string CurUserNo, string SendTime, string Result, string KeyValue, string ExceptionFun, ref string arrException, string ErrorCode, string LogClass) + { + object[] results = Invoke("addTransactionLog_ErrorCode", new object[] { InXml, OutXml, TransactionID, ModuleID, FunctionID, ComputerName, CurUserNo, SendTime, Result, KeyValue, ExceptionFun, arrException, ErrorCode, LogClass }); + arrException = Conversions.ToString(results[1]); + return Conversions.ToBoolean(results[0]); + } + + /// + public IAsyncResult BeginaddTransactionLog_ErrorCode(string InXml, string OutXml, string TransactionID, string ModuleID, string FunctionID, string ComputerName, string CurUserNo, string SendTime, string Result, string KeyValue, string ExceptionFun, string arrException, string ErrorCode, string LogClass, AsyncCallback callback, object asyncState) + + + + + + + + + + + + + + + + { + return BeginInvoke("addTransactionLog_ErrorCode", new object[] { InXml, OutXml, TransactionID, ModuleID, FunctionID, ComputerName, CurUserNo, SendTime, Result, KeyValue, ExceptionFun, arrException, ErrorCode, LogClass }, callback, asyncState); + } + + /// + public bool EndaddTransactionLog_ErrorCode(IAsyncResult asyncResult, ref string arrException) + { + object[] results = EndInvoke(asyncResult); + arrException = Conversions.ToString(results[1]); + return Conversions.ToBoolean(results[0]); + } + + /// + public void addTransactionLog_ErrorCodeAsync(string InXml, string OutXml, string TransactionID, string ModuleID, string FunctionID, string ComputerName, string CurUserNo, string SendTime, string Result, string KeyValue, string ExceptionFun, string arrException, string ErrorCode, string LogClass) + { + addTransactionLog_ErrorCodeAsync(InXml, OutXml, TransactionID, ModuleID, FunctionID, ComputerName, CurUserNo, SendTime, Result, KeyValue, ExceptionFun, arrException, ErrorCode, LogClass, null); + } + + /// + public void addTransactionLog_ErrorCodeAsync(string InXml, string OutXml, string TransactionID, string ModuleID, string FunctionID, string ComputerName, string CurUserNo, string SendTime, string Result, string KeyValue, string ExceptionFun, string arrException, string ErrorCode, string LogClass, object userState) + { + if (addTransactionLog_ErrorCodeOperationCompleted == null) + { + addTransactionLog_ErrorCodeOperationCompleted = OnaddTransactionLog_ErrorCodeOperationCompleted; + } + InvokeAsync("addTransactionLog_ErrorCode", new object[] { InXml, OutXml, TransactionID, ModuleID, FunctionID, ComputerName, CurUserNo, SendTime, Result, KeyValue, ExceptionFun, arrException, ErrorCode, LogClass }, addTransactionLog_ErrorCodeOperationCompleted, userState); + } + + private void OnaddTransactionLog_ErrorCodeOperationCompleted(object arg) + { + if (addTransactionLog_ErrorCodeCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + addTransactionLog_ErrorCodeCompleted?.Invoke(this, new addTransactionLog_ErrorCodeCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + public new void CancelAsync(object userState) + { + base.CancelAsync(userState); + } + + private bool IsLocalFileSystemWebService(string url) + { + if (url == null || ReferenceEquals(url, string.Empty)) + { + return false; + } + var wsUri = new Uri(url); + if (wsUri.Port >= 1024 && string.Compare(wsUri.Host, "localHost", StringComparison.OrdinalIgnoreCase) == 0) + { + return true; + } + return false; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + public delegate void LoadWIPInventory_SEMIbyMO_TPCompletedEventHandler(object sender, LoadWIPInventory_SEMIbyMO_TPCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class LoadWIPInventory_SEMIbyMO_TPCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal LoadWIPInventory_SEMIbyMO_TPCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + public delegate void loadWIP_SEMI_MO_TPCompletedEventHandler(object sender, loadWIP_SEMI_MO_TPCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class loadWIP_SEMI_MO_TPCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal loadWIP_SEMI_MO_TPCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + public delegate void loadWIP_SEMI_MO_WFCompletedEventHandler(object sender, loadWIP_SEMI_MO_WFCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class loadWIP_SEMI_MO_WFCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal loadWIP_SEMI_MO_WFCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + public delegate void ChkmesStockIn_LotCompletedEventHandler(object sender, ChkmesStockIn_LotCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class ChkmesStockIn_LotCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal ChkmesStockIn_LotCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + public delegate void updateINVBookingFlagCompletedEventHandler(object sender, updateINVBookingFlagCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class updateINVBookingFlagCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal updateINVBookingFlagCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + public delegate void MOStockIn_TPCompletedEventHandler(object sender, MOStockIn_TPCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class MOStockIn_TPCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal MOStockIn_TPCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + public delegate void MOStockIn_E10CompletedEventHandler(object sender, MOStockIn_E10CompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class MOStockIn_E10CompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal MOStockIn_E10CompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + public delegate void MOStockIn_Scrap_TPCompletedEventHandler(object sender, MOStockIn_Scrap_TPCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class MOStockIn_Scrap_TPCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal MOStockIn_Scrap_TPCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + public delegate void MOStockIn_WFCompletedEventHandler(object sender, MOStockIn_WFCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class MOStockIn_WFCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal MOStockIn_WFCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + public delegate void MOStockIn_Check_WFCompletedEventHandler(object sender, MOStockIn_Check_WFCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class MOStockIn_Check_WFCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal MOStockIn_Check_WFCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + public delegate void MOStockIn_WF_CancelCompletedEventHandler(object sender, MOStockIn_WF_CancelCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class MOStockIn_WF_CancelCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal MOStockIn_WF_CancelCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + public delegate void LoadWIPInventory_SEMIbyMO_WFCompletedEventHandler(object sender, LoadWIPInventory_SEMIbyMO_WFCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class LoadWIPInventory_SEMIbyMO_WFCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal LoadWIPInventory_SEMIbyMO_WFCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + public delegate void LoadOEMOBasis_byLot_WFCompletedEventHandler(object sender, LoadOEMOBasis_byLot_WFCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class LoadOEMOBasis_byLot_WFCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal LoadOEMOBasis_byLot_WFCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + public delegate void UpdOSBasisCompletedEventHandler(object sender, UpdOSBasisCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class UpdOSBasisCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal UpdOSBasisCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + public delegate void LoadMOMaterialStateOPCompletedEventHandler(object sender, LoadMOMaterialStateOPCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class LoadMOMaterialStateOPCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal LoadMOMaterialStateOPCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + public delegate void LoadMOMaterialStateCompletedEventHandler(object sender, LoadMOMaterialStateCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class LoadMOMaterialStateCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal LoadMOMaterialStateCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + public delegate void MOIssueReturnCompletedEventHandler(object sender, MOIssueReturnCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class MOIssueReturnCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal MOIssueReturnCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + public delegate void MOIssueReturn_CancelCompletedEventHandler(object sender, MOIssueReturn_CancelCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class MOIssueReturn_CancelCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal MOIssueReturn_CancelCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + public delegate void ExeMaterialScrapCompletedEventHandler(object sender, ExeMaterialScrapCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class ExeMaterialScrapCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal ExeMaterialScrapCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + public delegate void GetERPReferenceNoCompletedEventHandler(object sender, GetERPReferenceNoCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetERPReferenceNoCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetERPReferenceNoCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + public delegate void addTransactionLogCompletedEventHandler(object sender, addTransactionLogCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class addTransactionLogCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal addTransactionLogCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public bool Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToBoolean(results[0]); + } + } + + /// + public string arrException + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[1]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + public delegate void addTransactionLog_ErrorCodeCompletedEventHandler(object sender, addTransactionLog_ErrorCodeCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class addTransactionLog_ErrorCodeCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal addTransactionLog_ErrorCodeCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public bool Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToBoolean(results[0]); + } + } + + /// + public string arrException + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[1]); + } + } + } +} \ No newline at end of file diff --git a/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_MES/Reference.map b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_MES/Reference.map new file mode 100644 index 0000000..16f5993 --- /dev/null +++ b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_MES/Reference.map @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_MES/wsMES.disco b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_MES/wsMES.disco new file mode 100644 index 0000000..fbbd6c7 --- /dev/null +++ b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_MES/wsMES.disco @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_MES/wsMES.wsdl b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_MES/wsMES.wsdl new file mode 100644 index 0000000..5e22d85 --- /dev/null +++ b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_MES/wsMES.wsdl @@ -0,0 +1,925 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Update OSBasis + + + + + Load MO Material State OP by MONo + + + + + Load MO Material State by MONo + + + + + MO Issue Return + + + + + MOIssueReturn_Cancel + + + + + Execute Matreial Scrap + + + + + Get ERP Reference No + + + + + Add Transaction Log + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_TP/Reference.cs b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_TP/Reference.cs new file mode 100644 index 0000000..44b01d3 --- /dev/null +++ b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_TP/Reference.cs @@ -0,0 +1,9862 @@ +// ------------------------------------------------------------------------------ +// +// 這段程式碼是由工具產生的。 +// 執行階段版本:4.0.30319.42000 +// +// 對這個檔案所做的變更可能會造成錯誤的行為,而且如果重新產生程式碼, +// 變更將會遺失。 +// +// ------------------------------------------------------------------------------ + + +using System; +using System.ComponentModel; +using System.Diagnostics; +using System.Web.Services; +using System.Web.Services.Protocols; +using System.Xml; +using System.Xml.Serialization; +using Microsoft.VisualBasic.CompilerServices; + +// +// 原始程式碼已由 Microsoft.VSDesigner 自動產生,版本 4.0.30319.42000。 +// +namespace AutoRunLib_C.wsERP_TP +{ + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + [WebServiceBinding(Name = "TIPTOPServiceGateWayBinding", Namespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public partial class TIPTOPServiceGateWay : SoapHttpClientProtocol + { + + private System.Threading.SendOrPostCallback CreateCustomerDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreateQuotationDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetItemDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetBOMDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetDocumentNumberOperationCompleted; + + private System.Threading.SendOrPostCallback CreateItemMasterDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreateVendorDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreateEmployeeDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreateAddressDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetAccountSubjectDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetAxmDocumentOperationCompleted; + + private System.Threading.SendOrPostCallback GetAreaListOperationCompleted; + + private System.Threading.SendOrPostCallback GetCostGroupDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetCountryDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetCountryListOperationCompleted; + + private System.Threading.SendOrPostCallback GetCurrencyDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetCurrencyListOperationCompleted; + + private System.Threading.SendOrPostCallback GetCustListOperationCompleted; + + private System.Threading.SendOrPostCallback GetCustomerDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetCustomerProductDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetDepartmentDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetDepartmentListOperationCompleted; + + private System.Threading.SendOrPostCallback GetEmployeeDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetEmployeeListOperationCompleted; + + private System.Threading.SendOrPostCallback GetItemListOperationCompleted; + + private System.Threading.SendOrPostCallback GetOrganizationListOperationCompleted; + + private System.Threading.SendOrPostCallback GetOverdueAmtRankingDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetProdClassListOperationCompleted; + + private System.Threading.SendOrPostCallback GetSalesDetailDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetSalesStatisticsDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetSOInfoDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetSOInfoDetailDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetSupplierDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetSupplierItemDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetOverdueAmtDetailDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetMonthListOperationCompleted; + + private System.Threading.SendOrPostCallback GetInspectionDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreateBOMDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetOperationDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetUnitDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetBasicCodeDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetComponentrepsubDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetAreaDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetWarehouseDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetLocationDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetProductClassDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreateIssueReturnDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreateStockInDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetUserTokenOperationCompleted; + + private System.Threading.SendOrPostCallback CheckUserAuthOperationCompleted; + + private System.Threading.SendOrPostCallback GetMenuDataOperationCompleted; + + private System.Threading.SendOrPostCallback CheckExecAuthorizationOperationCompleted; + + private System.Threading.SendOrPostCallback CreatePurchaseStockInOperationCompleted; + + private System.Threading.SendOrPostCallback CreatePurchaseStockOutOperationCompleted; + + private System.Threading.SendOrPostCallback CreateWOStockinDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetCountingLabelDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetFQCDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetItemStockListOperationCompleted; + + private System.Threading.SendOrPostCallback GetLabelTypeDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetMFGDocumentOperationCompleted; + + private System.Threading.SendOrPostCallback GetPODataOperationCompleted; + + private System.Threading.SendOrPostCallback GetPOReceivingInDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetPOReceivingOutDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetPurchaseStockInQtyOperationCompleted; + + private System.Threading.SendOrPostCallback GetPurchaseStockOutQtyOperationCompleted; + + private System.Threading.SendOrPostCallback GetReasonCodeOperationCompleted; + + private System.Threading.SendOrPostCallback GetReceivingQtyOperationCompleted; + + private System.Threading.SendOrPostCallback GetStockDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetWODataOperationCompleted; + + private System.Threading.SendOrPostCallback GetWOIssueDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetWOStockQtyOperationCompleted; + + private System.Threading.SendOrPostCallback UpdateCountingLabelDataOperationCompleted; + + private System.Threading.SendOrPostCallback UpdateWOIssueDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreateSalesReturnOperationCompleted; + + private System.Threading.SendOrPostCallback CreateShippingOrderOperationCompleted; + + private System.Threading.SendOrPostCallback CreateTransferNoteOperationCompleted; + + private System.Threading.SendOrPostCallback GetQtyConversionOperationCompleted; + + private System.Threading.SendOrPostCallback GetShippingNoticeDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetShippingOrderDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreatePOReceivingDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetSalesDocumentOperationCompleted; + + private System.Threading.SendOrPostCallback CreateMISCIssueDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreateStockDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreateBOMMasterDataOperationCompleted; + + private System.Threading.SendOrPostCallback TIPTOPGateWayOperationCompleted; + + private System.Threading.SendOrPostCallback CreateBOMDetailDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreateDepartmentDataOperationCompleted; + + private System.Threading.SendOrPostCallback RunCommandOperationCompleted; + + private System.Threading.SendOrPostCallback EboGetCustDataOperationCompleted; + + private System.Threading.SendOrPostCallback EboGetOrderDataOperationCompleted; + + private System.Threading.SendOrPostCallback EboGetProdDataOperationCompleted; + + private System.Threading.SendOrPostCallback CheckApsExecutionOperationCompleted; + + private System.Threading.SendOrPostCallback GetCustomerContactDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetPackingMethodDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreatePotentialCustomerDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetTaxTypeDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetUnitConversionDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetMFGSettingSmaDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetCustomerOtheraddressDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreateCustomerContactDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreateCustomerOtheraddressDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetPotentialCustomerDataOperationCompleted; + + private System.Threading.SendOrPostCallback CRMGetCustomerDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetTableAmendmentDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetReportDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetAccountTypeDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetAccountDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreateVoucherDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetVoucherDocumentDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetTransactionCategoryOperationCompleted; + + private System.Threading.SendOrPostCallback CreateBillingAPOperationCompleted; + + private System.Threading.SendOrPostCallback GetItemGroupDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetMachineDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetProdRoutingDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetWorkstationDataOperationCompleted; + + private System.Threading.SendOrPostCallback RollbackVoucherDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreateRepSubPBOMDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreateSupplierItemDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreateECNDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetBrandDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreateItemApprovalDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreateWOWorkReportDataOperationCompleted; + + private bool useDefaultCredentialsSetExplicitly; + + /// + public TIPTOPServiceGateWay() : base() + { + Url = My.MySettings.Default.AutoRunLib_wsERP_TP_TIPTOPServiceGateWay; + if (IsLocalFileSystemWebService(Url) == true) + { + UseDefaultCredentials = true; + useDefaultCredentialsSetExplicitly = false; + } + else + { + useDefaultCredentialsSetExplicitly = true; + } + } + + public new string Url + { + get + { + return base.Url; + } + set + { + if (IsLocalFileSystemWebService(base.Url) == true && useDefaultCredentialsSetExplicitly == false && IsLocalFileSystemWebService(value) == false) + + { + base.UseDefaultCredentials = false; + } + base.Url = value; + } + } + + public new bool UseDefaultCredentials + { + get + { + return base.UseDefaultCredentials; + } + set + { + base.UseDefaultCredentials = value; + useDefaultCredentialsSetExplicitly = true; + } + } + + /// + public event CreateCustomerDataCompletedEventHandler CreateCustomerDataCompleted; + + /// + public event CreateQuotationDataCompletedEventHandler CreateQuotationDataCompleted; + + /// + public event GetItemDataCompletedEventHandler GetItemDataCompleted; + + /// + public event GetBOMDataCompletedEventHandler GetBOMDataCompleted; + + /// + public event GetDocumentNumberCompletedEventHandler GetDocumentNumberCompleted; + + /// + public event CreateItemMasterDataCompletedEventHandler CreateItemMasterDataCompleted; + + /// + public event CreateVendorDataCompletedEventHandler CreateVendorDataCompleted; + + /// + public event CreateEmployeeDataCompletedEventHandler CreateEmployeeDataCompleted; + + /// + public event CreateAddressDataCompletedEventHandler CreateAddressDataCompleted; + + /// + public event GetAccountSubjectDataCompletedEventHandler GetAccountSubjectDataCompleted; + + /// + public event GetAxmDocumentCompletedEventHandler GetAxmDocumentCompleted; + + /// + public event GetAreaListCompletedEventHandler GetAreaListCompleted; + + /// + public event GetCostGroupDataCompletedEventHandler GetCostGroupDataCompleted; + + /// + public event GetCountryDataCompletedEventHandler GetCountryDataCompleted; + + /// + public event GetCountryListCompletedEventHandler GetCountryListCompleted; + + /// + public event GetCurrencyDataCompletedEventHandler GetCurrencyDataCompleted; + + /// + public event GetCurrencyListCompletedEventHandler GetCurrencyListCompleted; + + /// + public event GetCustListCompletedEventHandler GetCustListCompleted; + + /// + public event GetCustomerDataCompletedEventHandler GetCustomerDataCompleted; + + /// + public event GetCustomerProductDataCompletedEventHandler GetCustomerProductDataCompleted; + + /// + public event GetDepartmentDataCompletedEventHandler GetDepartmentDataCompleted; + + /// + public event GetDepartmentListCompletedEventHandler GetDepartmentListCompleted; + + /// + public event GetEmployeeDataCompletedEventHandler GetEmployeeDataCompleted; + + /// + public event GetEmployeeListCompletedEventHandler GetEmployeeListCompleted; + + /// + public event GetItemListCompletedEventHandler GetItemListCompleted; + + /// + public event GetOrganizationListCompletedEventHandler GetOrganizationListCompleted; + + /// + public event GetOverdueAmtRankingDataCompletedEventHandler GetOverdueAmtRankingDataCompleted; + + /// + public event GetProdClassListCompletedEventHandler GetProdClassListCompleted; + + /// + public event GetSalesDetailDataCompletedEventHandler GetSalesDetailDataCompleted; + + /// + public event GetSalesStatisticsDataCompletedEventHandler GetSalesStatisticsDataCompleted; + + /// + public event GetSOInfoDataCompletedEventHandler GetSOInfoDataCompleted; + + /// + public event GetSOInfoDetailDataCompletedEventHandler GetSOInfoDetailDataCompleted; + + /// + public event GetSupplierDataCompletedEventHandler GetSupplierDataCompleted; + + /// + public event GetSupplierItemDataCompletedEventHandler GetSupplierItemDataCompleted; + + /// + public event GetOverdueAmtDetailDataCompletedEventHandler GetOverdueAmtDetailDataCompleted; + + /// + public event GetMonthListCompletedEventHandler GetMonthListCompleted; + + /// + public event GetInspectionDataCompletedEventHandler GetInspectionDataCompleted; + + /// + public event CreateBOMDataCompletedEventHandler CreateBOMDataCompleted; + + /// + public event GetOperationDataCompletedEventHandler GetOperationDataCompleted; + + /// + public event GetUnitDataCompletedEventHandler GetUnitDataCompleted; + + /// + public event GetBasicCodeDataCompletedEventHandler GetBasicCodeDataCompleted; + + /// + public event GetComponentrepsubDataCompletedEventHandler GetComponentrepsubDataCompleted; + + /// + public event GetAreaDataCompletedEventHandler GetAreaDataCompleted; + + /// + public event GetWarehouseDataCompletedEventHandler GetWarehouseDataCompleted; + + /// + public event GetLocationDataCompletedEventHandler GetLocationDataCompleted; + + /// + public event GetProductClassDataCompletedEventHandler GetProductClassDataCompleted; + + /// + public event CreateIssueReturnDataCompletedEventHandler CreateIssueReturnDataCompleted; + + /// + public event CreateStockInDataCompletedEventHandler CreateStockInDataCompleted; + + /// + public event GetUserTokenCompletedEventHandler GetUserTokenCompleted; + + /// + public event CheckUserAuthCompletedEventHandler CheckUserAuthCompleted; + + /// + public event GetMenuDataCompletedEventHandler GetMenuDataCompleted; + + /// + public event CheckExecAuthorizationCompletedEventHandler CheckExecAuthorizationCompleted; + + /// + public event CreatePurchaseStockInCompletedEventHandler CreatePurchaseStockInCompleted; + + /// + public event CreatePurchaseStockOutCompletedEventHandler CreatePurchaseStockOutCompleted; + + /// + public event CreateWOStockinDataCompletedEventHandler CreateWOStockinDataCompleted; + + /// + public event GetCountingLabelDataCompletedEventHandler GetCountingLabelDataCompleted; + + /// + public event GetFQCDataCompletedEventHandler GetFQCDataCompleted; + + /// + public event GetItemStockListCompletedEventHandler GetItemStockListCompleted; + + /// + public event GetLabelTypeDataCompletedEventHandler GetLabelTypeDataCompleted; + + /// + public event GetMFGDocumentCompletedEventHandler GetMFGDocumentCompleted; + + /// + public event GetPODataCompletedEventHandler GetPODataCompleted; + + /// + public event GetPOReceivingInDataCompletedEventHandler GetPOReceivingInDataCompleted; + + /// + public event GetPOReceivingOutDataCompletedEventHandler GetPOReceivingOutDataCompleted; + + /// + public event GetPurchaseStockInQtyCompletedEventHandler GetPurchaseStockInQtyCompleted; + + /// + public event GetPurchaseStockOutQtyCompletedEventHandler GetPurchaseStockOutQtyCompleted; + + /// + public event GetReasonCodeCompletedEventHandler GetReasonCodeCompleted; + + /// + public event GetReceivingQtyCompletedEventHandler GetReceivingQtyCompleted; + + /// + public event GetStockDataCompletedEventHandler GetStockDataCompleted; + + /// + public event GetWODataCompletedEventHandler GetWODataCompleted; + + /// + public event GetWOIssueDataCompletedEventHandler GetWOIssueDataCompleted; + + /// + public event GetWOStockQtyCompletedEventHandler GetWOStockQtyCompleted; + + /// + public event UpdateCountingLabelDataCompletedEventHandler UpdateCountingLabelDataCompleted; + + /// + public event UpdateWOIssueDataCompletedEventHandler UpdateWOIssueDataCompleted; + + /// + public event CreateSalesReturnCompletedEventHandler CreateSalesReturnCompleted; + + /// + public event CreateShippingOrderCompletedEventHandler CreateShippingOrderCompleted; + + /// + public event CreateTransferNoteCompletedEventHandler CreateTransferNoteCompleted; + + /// + public event GetQtyConversionCompletedEventHandler GetQtyConversionCompleted; + + /// + public event GetShippingNoticeDataCompletedEventHandler GetShippingNoticeDataCompleted; + + /// + public event GetShippingOrderDataCompletedEventHandler GetShippingOrderDataCompleted; + + /// + public event CreatePOReceivingDataCompletedEventHandler CreatePOReceivingDataCompleted; + + /// + public event GetSalesDocumentCompletedEventHandler GetSalesDocumentCompleted; + + /// + public event CreateMISCIssueDataCompletedEventHandler CreateMISCIssueDataCompleted; + + /// + public event CreateStockDataCompletedEventHandler CreateStockDataCompleted; + + /// + public event CreateBOMMasterDataCompletedEventHandler CreateBOMMasterDataCompleted; + + /// + public event TIPTOPGateWayCompletedEventHandler TIPTOPGateWayCompleted; + + /// + public event CreateBOMDetailDataCompletedEventHandler CreateBOMDetailDataCompleted; + + /// + public event CreateDepartmentDataCompletedEventHandler CreateDepartmentDataCompleted; + + /// + public event RunCommandCompletedEventHandler RunCommandCompleted; + + /// + public event EboGetCustDataCompletedEventHandler EboGetCustDataCompleted; + + /// + public event EboGetOrderDataCompletedEventHandler EboGetOrderDataCompleted; + + /// + public event EboGetProdDataCompletedEventHandler EboGetProdDataCompleted; + + /// + public event CheckApsExecutionCompletedEventHandler CheckApsExecutionCompleted; + + /// + public event GetCustomerContactDataCompletedEventHandler GetCustomerContactDataCompleted; + + /// + public event GetPackingMethodDataCompletedEventHandler GetPackingMethodDataCompleted; + + /// + public event CreatePotentialCustomerDataCompletedEventHandler CreatePotentialCustomerDataCompleted; + + /// + public event GetTaxTypeDataCompletedEventHandler GetTaxTypeDataCompleted; + + /// + public event GetUnitConversionDataCompletedEventHandler GetUnitConversionDataCompleted; + + /// + public event GetMFGSettingSmaDataCompletedEventHandler GetMFGSettingSmaDataCompleted; + + /// + public event GetCustomerOtheraddressDataCompletedEventHandler GetCustomerOtheraddressDataCompleted; + + /// + public event CreateCustomerContactDataCompletedEventHandler CreateCustomerContactDataCompleted; + + /// + public event CreateCustomerOtheraddressDataCompletedEventHandler CreateCustomerOtheraddressDataCompleted; + + /// + public event GetPotentialCustomerDataCompletedEventHandler GetPotentialCustomerDataCompleted; + + /// + public event CRMGetCustomerDataCompletedEventHandler CRMGetCustomerDataCompleted; + + /// + public event GetTableAmendmentDataCompletedEventHandler GetTableAmendmentDataCompleted; + + /// + public event GetReportDataCompletedEventHandler GetReportDataCompleted; + + /// + public event GetAccountTypeDataCompletedEventHandler GetAccountTypeDataCompleted; + + /// + public event GetAccountDataCompletedEventHandler GetAccountDataCompleted; + + /// + public event CreateVoucherDataCompletedEventHandler CreateVoucherDataCompleted; + + /// + public event GetVoucherDocumentDataCompletedEventHandler GetVoucherDocumentDataCompleted; + + /// + public event GetTransactionCategoryCompletedEventHandler GetTransactionCategoryCompleted; + + /// + public event CreateBillingAPCompletedEventHandler CreateBillingAPCompleted; + + /// + public event GetItemGroupDataCompletedEventHandler GetItemGroupDataCompleted; + + /// + public event GetMachineDataCompletedEventHandler GetMachineDataCompleted; + + /// + public event GetProdRoutingDataCompletedEventHandler GetProdRoutingDataCompleted; + + /// + public event GetWorkstationDataCompletedEventHandler GetWorkstationDataCompleted; + + /// + public event RollbackVoucherDataCompletedEventHandler RollbackVoucherDataCompleted; + + /// + public event CreateRepSubPBOMDataCompletedEventHandler CreateRepSubPBOMDataCompleted; + + /// + public event CreateSupplierItemDataCompletedEventHandler CreateSupplierItemDataCompleted; + + /// + public event CreateECNDataCompletedEventHandler CreateECNDataCompleted; + + /// + public event GetBrandDataCompletedEventHandler GetBrandDataCompleted; + + /// + public event CreateItemApprovalDataCompletedEventHandler CreateItemApprovalDataCompleted; + + /// + public event CreateWOWorkReportDataCompletedEventHandler CreateWOWorkReportDataCompleted; + + /// + [SoapDocumentMethod("", RequestElementName = "CreateCustomerDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string CreateCustomerData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("CreateCustomerData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateCustomerData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateCustomerData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateCustomerData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateCustomerDataAsync(string request) + { + CreateCustomerDataAsync(request, null); + } + + /// + public void CreateCustomerDataAsync(string request, object userState) + { + if (CreateCustomerDataOperationCompleted == null) + { + CreateCustomerDataOperationCompleted = OnCreateCustomerDataOperationCompleted; + } + InvokeAsync("CreateCustomerData", new object[] { request }, CreateCustomerDataOperationCompleted, userState); + } + + private void OnCreateCustomerDataOperationCompleted(object arg) + { + if (CreateCustomerDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateCustomerDataCompleted?.Invoke(this, new CreateCustomerDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "CreateQuotationDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string CreateQuotationData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("CreateQuotationData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateQuotationData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateQuotationData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateQuotationData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateQuotationDataAsync(string request) + { + CreateQuotationDataAsync(request, null); + } + + /// + public void CreateQuotationDataAsync(string request, object userState) + { + if (CreateQuotationDataOperationCompleted == null) + { + CreateQuotationDataOperationCompleted = OnCreateQuotationDataOperationCompleted; + } + InvokeAsync("CreateQuotationData", new object[] { request }, CreateQuotationDataOperationCompleted, userState); + } + + private void OnCreateQuotationDataOperationCompleted(object arg) + { + if (CreateQuotationDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateQuotationDataCompleted?.Invoke(this, new CreateQuotationDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetItemDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetItemData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetItemData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetItemData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetItemData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetItemData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetItemDataAsync(string request) + { + GetItemDataAsync(request, null); + } + + /// + public void GetItemDataAsync(string request, object userState) + { + if (GetItemDataOperationCompleted == null) + { + GetItemDataOperationCompleted = OnGetItemDataOperationCompleted; + } + InvokeAsync("GetItemData", new object[] { request }, GetItemDataOperationCompleted, userState); + } + + private void OnGetItemDataOperationCompleted(object arg) + { + if (GetItemDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetItemDataCompleted?.Invoke(this, new GetItemDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetBOMDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetBOMData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetBOMData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetBOMData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetBOMData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetBOMData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetBOMDataAsync(string request) + { + GetBOMDataAsync(request, null); + } + + /// + public void GetBOMDataAsync(string request, object userState) + { + if (GetBOMDataOperationCompleted == null) + { + GetBOMDataOperationCompleted = OnGetBOMDataOperationCompleted; + } + InvokeAsync("GetBOMData", new object[] { request }, GetBOMDataOperationCompleted, userState); + } + + private void OnGetBOMDataOperationCompleted(object arg) + { + if (GetBOMDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetBOMDataCompleted?.Invoke(this, new GetBOMDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetDocumentNumberRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetDocumentNumber([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetDocumentNumber", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetDocumentNumber(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetDocumentNumber", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetDocumentNumber(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetDocumentNumberAsync(string request) + { + GetDocumentNumberAsync(request, null); + } + + /// + public void GetDocumentNumberAsync(string request, object userState) + { + if (GetDocumentNumberOperationCompleted == null) + { + GetDocumentNumberOperationCompleted = OnGetDocumentNumberOperationCompleted; + } + InvokeAsync("GetDocumentNumber", new object[] { request }, GetDocumentNumberOperationCompleted, userState); + } + + private void OnGetDocumentNumberOperationCompleted(object arg) + { + if (GetDocumentNumberCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetDocumentNumberCompleted?.Invoke(this, new GetDocumentNumberCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "CreateItemMasterDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string CreateItemMasterData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("CreateItemMasterData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateItemMasterData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateItemMasterData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateItemMasterData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateItemMasterDataAsync(string request) + { + CreateItemMasterDataAsync(request, null); + } + + /// + public void CreateItemMasterDataAsync(string request, object userState) + { + if (CreateItemMasterDataOperationCompleted == null) + { + CreateItemMasterDataOperationCompleted = OnCreateItemMasterDataOperationCompleted; + } + InvokeAsync("CreateItemMasterData", new object[] { request }, CreateItemMasterDataOperationCompleted, userState); + } + + private void OnCreateItemMasterDataOperationCompleted(object arg) + { + if (CreateItemMasterDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateItemMasterDataCompleted?.Invoke(this, new CreateItemMasterDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "CreateVendorDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string CreateVendorData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("CreateVendorData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateVendorData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateVendorData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateVendorData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateVendorDataAsync(string request) + { + CreateVendorDataAsync(request, null); + } + + /// + public void CreateVendorDataAsync(string request, object userState) + { + if (CreateVendorDataOperationCompleted == null) + { + CreateVendorDataOperationCompleted = OnCreateVendorDataOperationCompleted; + } + InvokeAsync("CreateVendorData", new object[] { request }, CreateVendorDataOperationCompleted, userState); + } + + private void OnCreateVendorDataOperationCompleted(object arg) + { + if (CreateVendorDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateVendorDataCompleted?.Invoke(this, new CreateVendorDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "CreateEmployeeDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string CreateEmployeeData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("CreateEmployeeData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateEmployeeData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateEmployeeData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateEmployeeData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateEmployeeDataAsync(string request) + { + CreateEmployeeDataAsync(request, null); + } + + /// + public void CreateEmployeeDataAsync(string request, object userState) + { + if (CreateEmployeeDataOperationCompleted == null) + { + CreateEmployeeDataOperationCompleted = OnCreateEmployeeDataOperationCompleted; + } + InvokeAsync("CreateEmployeeData", new object[] { request }, CreateEmployeeDataOperationCompleted, userState); + } + + private void OnCreateEmployeeDataOperationCompleted(object arg) + { + if (CreateEmployeeDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateEmployeeDataCompleted?.Invoke(this, new CreateEmployeeDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "CreateAddressDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string CreateAddressData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("CreateAddressData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateAddressData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateAddressData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateAddressData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateAddressDataAsync(string request) + { + CreateAddressDataAsync(request, null); + } + + /// + public void CreateAddressDataAsync(string request, object userState) + { + if (CreateAddressDataOperationCompleted == null) + { + CreateAddressDataOperationCompleted = OnCreateAddressDataOperationCompleted; + } + InvokeAsync("CreateAddressData", new object[] { request }, CreateAddressDataOperationCompleted, userState); + } + + private void OnCreateAddressDataOperationCompleted(object arg) + { + if (CreateAddressDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateAddressDataCompleted?.Invoke(this, new CreateAddressDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetAccountSubjectDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetAccountSubjectData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetAccountSubjectData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetAccountSubjectData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetAccountSubjectData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetAccountSubjectData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetAccountSubjectDataAsync(string request) + { + GetAccountSubjectDataAsync(request, null); + } + + /// + public void GetAccountSubjectDataAsync(string request, object userState) + { + if (GetAccountSubjectDataOperationCompleted == null) + { + GetAccountSubjectDataOperationCompleted = OnGetAccountSubjectDataOperationCompleted; + } + InvokeAsync("GetAccountSubjectData", new object[] { request }, GetAccountSubjectDataOperationCompleted, userState); + } + + private void OnGetAccountSubjectDataOperationCompleted(object arg) + { + if (GetAccountSubjectDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetAccountSubjectDataCompleted?.Invoke(this, new GetAccountSubjectDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetAxmDocumentRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetAxmDocument([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetAxmDocument", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetAxmDocument(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetAxmDocument", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetAxmDocument(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetAxmDocumentAsync(string request) + { + GetAxmDocumentAsync(request, null); + } + + /// + public void GetAxmDocumentAsync(string request, object userState) + { + if (GetAxmDocumentOperationCompleted == null) + { + GetAxmDocumentOperationCompleted = OnGetAxmDocumentOperationCompleted; + } + InvokeAsync("GetAxmDocument", new object[] { request }, GetAxmDocumentOperationCompleted, userState); + } + + private void OnGetAxmDocumentOperationCompleted(object arg) + { + if (GetAxmDocumentCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetAxmDocumentCompleted?.Invoke(this, new GetAxmDocumentCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetAreaListRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetAreaList([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetAreaList", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetAreaList(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetAreaList", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetAreaList(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetAreaListAsync(string request) + { + GetAreaListAsync(request, null); + } + + /// + public void GetAreaListAsync(string request, object userState) + { + if (GetAreaListOperationCompleted == null) + { + GetAreaListOperationCompleted = OnGetAreaListOperationCompleted; + } + InvokeAsync("GetAreaList", new object[] { request }, GetAreaListOperationCompleted, userState); + } + + private void OnGetAreaListOperationCompleted(object arg) + { + if (GetAreaListCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetAreaListCompleted?.Invoke(this, new GetAreaListCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetCostGroupDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetCostGroupData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetCostGroupData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetCostGroupData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetCostGroupData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetCostGroupData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetCostGroupDataAsync(string request) + { + GetCostGroupDataAsync(request, null); + } + + /// + public void GetCostGroupDataAsync(string request, object userState) + { + if (GetCostGroupDataOperationCompleted == null) + { + GetCostGroupDataOperationCompleted = OnGetCostGroupDataOperationCompleted; + } + InvokeAsync("GetCostGroupData", new object[] { request }, GetCostGroupDataOperationCompleted, userState); + } + + private void OnGetCostGroupDataOperationCompleted(object arg) + { + if (GetCostGroupDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetCostGroupDataCompleted?.Invoke(this, new GetCostGroupDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetCountryDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetCountryData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetCountryData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetCountryData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetCountryData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetCountryData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetCountryDataAsync(string request) + { + GetCountryDataAsync(request, null); + } + + /// + public void GetCountryDataAsync(string request, object userState) + { + if (GetCountryDataOperationCompleted == null) + { + GetCountryDataOperationCompleted = OnGetCountryDataOperationCompleted; + } + InvokeAsync("GetCountryData", new object[] { request }, GetCountryDataOperationCompleted, userState); + } + + private void OnGetCountryDataOperationCompleted(object arg) + { + if (GetCountryDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetCountryDataCompleted?.Invoke(this, new GetCountryDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetCountryListRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetCountryList([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetCountryList", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetCountryList(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetCountryList", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetCountryList(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetCountryListAsync(string request) + { + GetCountryListAsync(request, null); + } + + /// + public void GetCountryListAsync(string request, object userState) + { + if (GetCountryListOperationCompleted == null) + { + GetCountryListOperationCompleted = OnGetCountryListOperationCompleted; + } + InvokeAsync("GetCountryList", new object[] { request }, GetCountryListOperationCompleted, userState); + } + + private void OnGetCountryListOperationCompleted(object arg) + { + if (GetCountryListCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetCountryListCompleted?.Invoke(this, new GetCountryListCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetCurrencyDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetCurrencyData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetCurrencyData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetCurrencyData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetCurrencyData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetCurrencyData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetCurrencyDataAsync(string request) + { + GetCurrencyDataAsync(request, null); + } + + /// + public void GetCurrencyDataAsync(string request, object userState) + { + if (GetCurrencyDataOperationCompleted == null) + { + GetCurrencyDataOperationCompleted = OnGetCurrencyDataOperationCompleted; + } + InvokeAsync("GetCurrencyData", new object[] { request }, GetCurrencyDataOperationCompleted, userState); + } + + private void OnGetCurrencyDataOperationCompleted(object arg) + { + if (GetCurrencyDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetCurrencyDataCompleted?.Invoke(this, new GetCurrencyDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetCurrencyListRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetCurrencyList([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetCurrencyList", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetCurrencyList(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetCurrencyList", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetCurrencyList(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetCurrencyListAsync(string request) + { + GetCurrencyListAsync(request, null); + } + + /// + public void GetCurrencyListAsync(string request, object userState) + { + if (GetCurrencyListOperationCompleted == null) + { + GetCurrencyListOperationCompleted = OnGetCurrencyListOperationCompleted; + } + InvokeAsync("GetCurrencyList", new object[] { request }, GetCurrencyListOperationCompleted, userState); + } + + private void OnGetCurrencyListOperationCompleted(object arg) + { + if (GetCurrencyListCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetCurrencyListCompleted?.Invoke(this, new GetCurrencyListCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetCustListRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetCustList([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetCustList", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetCustList(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetCustList", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetCustList(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetCustListAsync(string request) + { + GetCustListAsync(request, null); + } + + /// + public void GetCustListAsync(string request, object userState) + { + if (GetCustListOperationCompleted == null) + { + GetCustListOperationCompleted = OnGetCustListOperationCompleted; + } + InvokeAsync("GetCustList", new object[] { request }, GetCustListOperationCompleted, userState); + } + + private void OnGetCustListOperationCompleted(object arg) + { + if (GetCustListCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetCustListCompleted?.Invoke(this, new GetCustListCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetCustomerDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetCustomerData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetCustomerData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetCustomerData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetCustomerData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetCustomerData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetCustomerDataAsync(string request) + { + GetCustomerDataAsync(request, null); + } + + /// + public void GetCustomerDataAsync(string request, object userState) + { + if (GetCustomerDataOperationCompleted == null) + { + GetCustomerDataOperationCompleted = OnGetCustomerDataOperationCompleted; + } + InvokeAsync("GetCustomerData", new object[] { request }, GetCustomerDataOperationCompleted, userState); + } + + private void OnGetCustomerDataOperationCompleted(object arg) + { + if (GetCustomerDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetCustomerDataCompleted?.Invoke(this, new GetCustomerDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetCustomerProductDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetCustomerProductData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetCustomerProductData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetCustomerProductData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetCustomerProductData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetCustomerProductData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetCustomerProductDataAsync(string request) + { + GetCustomerProductDataAsync(request, null); + } + + /// + public void GetCustomerProductDataAsync(string request, object userState) + { + if (GetCustomerProductDataOperationCompleted == null) + { + GetCustomerProductDataOperationCompleted = OnGetCustomerProductDataOperationCompleted; + } + InvokeAsync("GetCustomerProductData", new object[] { request }, GetCustomerProductDataOperationCompleted, userState); + } + + private void OnGetCustomerProductDataOperationCompleted(object arg) + { + if (GetCustomerProductDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetCustomerProductDataCompleted?.Invoke(this, new GetCustomerProductDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetDepartmentDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetDepartmentData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetDepartmentData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetDepartmentData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetDepartmentData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetDepartmentData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetDepartmentDataAsync(string request) + { + GetDepartmentDataAsync(request, null); + } + + /// + public void GetDepartmentDataAsync(string request, object userState) + { + if (GetDepartmentDataOperationCompleted == null) + { + GetDepartmentDataOperationCompleted = OnGetDepartmentDataOperationCompleted; + } + InvokeAsync("GetDepartmentData", new object[] { request }, GetDepartmentDataOperationCompleted, userState); + } + + private void OnGetDepartmentDataOperationCompleted(object arg) + { + if (GetDepartmentDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetDepartmentDataCompleted?.Invoke(this, new GetDepartmentDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetDepartmentListRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetDepartmentList([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetDepartmentList", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetDepartmentList(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetDepartmentList", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetDepartmentList(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetDepartmentListAsync(string request) + { + GetDepartmentListAsync(request, null); + } + + /// + public void GetDepartmentListAsync(string request, object userState) + { + if (GetDepartmentListOperationCompleted == null) + { + GetDepartmentListOperationCompleted = OnGetDepartmentListOperationCompleted; + } + InvokeAsync("GetDepartmentList", new object[] { request }, GetDepartmentListOperationCompleted, userState); + } + + private void OnGetDepartmentListOperationCompleted(object arg) + { + if (GetDepartmentListCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetDepartmentListCompleted?.Invoke(this, new GetDepartmentListCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetEmployeeDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetEmployeeData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetEmployeeData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetEmployeeData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetEmployeeData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetEmployeeData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetEmployeeDataAsync(string request) + { + GetEmployeeDataAsync(request, null); + } + + /// + public void GetEmployeeDataAsync(string request, object userState) + { + if (GetEmployeeDataOperationCompleted == null) + { + GetEmployeeDataOperationCompleted = OnGetEmployeeDataOperationCompleted; + } + InvokeAsync("GetEmployeeData", new object[] { request }, GetEmployeeDataOperationCompleted, userState); + } + + private void OnGetEmployeeDataOperationCompleted(object arg) + { + if (GetEmployeeDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetEmployeeDataCompleted?.Invoke(this, new GetEmployeeDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetEmployeeListRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetEmployeeList([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetEmployeeList", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetEmployeeList(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetEmployeeList", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetEmployeeList(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetEmployeeListAsync(string request) + { + GetEmployeeListAsync(request, null); + } + + /// + public void GetEmployeeListAsync(string request, object userState) + { + if (GetEmployeeListOperationCompleted == null) + { + GetEmployeeListOperationCompleted = OnGetEmployeeListOperationCompleted; + } + InvokeAsync("GetEmployeeList", new object[] { request }, GetEmployeeListOperationCompleted, userState); + } + + private void OnGetEmployeeListOperationCompleted(object arg) + { + if (GetEmployeeListCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetEmployeeListCompleted?.Invoke(this, new GetEmployeeListCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetItemListRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetItemList([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetItemList", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetItemList(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetItemList", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetItemList(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetItemListAsync(string request) + { + GetItemListAsync(request, null); + } + + /// + public void GetItemListAsync(string request, object userState) + { + if (GetItemListOperationCompleted == null) + { + GetItemListOperationCompleted = OnGetItemListOperationCompleted; + } + InvokeAsync("GetItemList", new object[] { request }, GetItemListOperationCompleted, userState); + } + + private void OnGetItemListOperationCompleted(object arg) + { + if (GetItemListCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetItemListCompleted?.Invoke(this, new GetItemListCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetOrganizationListRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetOrganizationList([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetOrganizationList", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetOrganizationList(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetOrganizationList", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetOrganizationList(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetOrganizationListAsync(string request) + { + GetOrganizationListAsync(request, null); + } + + /// + public void GetOrganizationListAsync(string request, object userState) + { + if (GetOrganizationListOperationCompleted == null) + { + GetOrganizationListOperationCompleted = OnGetOrganizationListOperationCompleted; + } + InvokeAsync("GetOrganizationList", new object[] { request }, GetOrganizationListOperationCompleted, userState); + } + + private void OnGetOrganizationListOperationCompleted(object arg) + { + if (GetOrganizationListCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetOrganizationListCompleted?.Invoke(this, new GetOrganizationListCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetOverdueAmtRankingDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetOverdueAmtRankingData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetOverdueAmtRankingData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetOverdueAmtRankingData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetOverdueAmtRankingData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetOverdueAmtRankingData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetOverdueAmtRankingDataAsync(string request) + { + GetOverdueAmtRankingDataAsync(request, null); + } + + /// + public void GetOverdueAmtRankingDataAsync(string request, object userState) + { + if (GetOverdueAmtRankingDataOperationCompleted == null) + { + GetOverdueAmtRankingDataOperationCompleted = OnGetOverdueAmtRankingDataOperationCompleted; + } + InvokeAsync("GetOverdueAmtRankingData", new object[] { request }, GetOverdueAmtRankingDataOperationCompleted, userState); + } + + private void OnGetOverdueAmtRankingDataOperationCompleted(object arg) + { + if (GetOverdueAmtRankingDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetOverdueAmtRankingDataCompleted?.Invoke(this, new GetOverdueAmtRankingDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetProdClassListRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetProdClassList([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetProdClassList", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetProdClassList(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetProdClassList", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetProdClassList(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetProdClassListAsync(string request) + { + GetProdClassListAsync(request, null); + } + + /// + public void GetProdClassListAsync(string request, object userState) + { + if (GetProdClassListOperationCompleted == null) + { + GetProdClassListOperationCompleted = OnGetProdClassListOperationCompleted; + } + InvokeAsync("GetProdClassList", new object[] { request }, GetProdClassListOperationCompleted, userState); + } + + private void OnGetProdClassListOperationCompleted(object arg) + { + if (GetProdClassListCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetProdClassListCompleted?.Invoke(this, new GetProdClassListCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetSalesDetailDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetSalesDetailData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetSalesDetailData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetSalesDetailData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetSalesDetailData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetSalesDetailData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetSalesDetailDataAsync(string request) + { + GetSalesDetailDataAsync(request, null); + } + + /// + public void GetSalesDetailDataAsync(string request, object userState) + { + if (GetSalesDetailDataOperationCompleted == null) + { + GetSalesDetailDataOperationCompleted = OnGetSalesDetailDataOperationCompleted; + } + InvokeAsync("GetSalesDetailData", new object[] { request }, GetSalesDetailDataOperationCompleted, userState); + } + + private void OnGetSalesDetailDataOperationCompleted(object arg) + { + if (GetSalesDetailDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetSalesDetailDataCompleted?.Invoke(this, new GetSalesDetailDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetSalesStatisticsDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetSalesStatisticsData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetSalesStatisticsData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetSalesStatisticsData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetSalesStatisticsData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetSalesStatisticsData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetSalesStatisticsDataAsync(string request) + { + GetSalesStatisticsDataAsync(request, null); + } + + /// + public void GetSalesStatisticsDataAsync(string request, object userState) + { + if (GetSalesStatisticsDataOperationCompleted == null) + { + GetSalesStatisticsDataOperationCompleted = OnGetSalesStatisticsDataOperationCompleted; + } + InvokeAsync("GetSalesStatisticsData", new object[] { request }, GetSalesStatisticsDataOperationCompleted, userState); + } + + private void OnGetSalesStatisticsDataOperationCompleted(object arg) + { + if (GetSalesStatisticsDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetSalesStatisticsDataCompleted?.Invoke(this, new GetSalesStatisticsDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetSOInfoDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetSOInfoData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetSOInfoData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetSOInfoData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetSOInfoData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetSOInfoData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetSOInfoDataAsync(string request) + { + GetSOInfoDataAsync(request, null); + } + + /// + public void GetSOInfoDataAsync(string request, object userState) + { + if (GetSOInfoDataOperationCompleted == null) + { + GetSOInfoDataOperationCompleted = OnGetSOInfoDataOperationCompleted; + } + InvokeAsync("GetSOInfoData", new object[] { request }, GetSOInfoDataOperationCompleted, userState); + } + + private void OnGetSOInfoDataOperationCompleted(object arg) + { + if (GetSOInfoDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetSOInfoDataCompleted?.Invoke(this, new GetSOInfoDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetSOInfoDetailDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetSOInfoDetailData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetSOInfoDetailData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetSOInfoDetailData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetSOInfoDetailData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetSOInfoDetailData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetSOInfoDetailDataAsync(string request) + { + GetSOInfoDetailDataAsync(request, null); + } + + /// + public void GetSOInfoDetailDataAsync(string request, object userState) + { + if (GetSOInfoDetailDataOperationCompleted == null) + { + GetSOInfoDetailDataOperationCompleted = OnGetSOInfoDetailDataOperationCompleted; + } + InvokeAsync("GetSOInfoDetailData", new object[] { request }, GetSOInfoDetailDataOperationCompleted, userState); + } + + private void OnGetSOInfoDetailDataOperationCompleted(object arg) + { + if (GetSOInfoDetailDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetSOInfoDetailDataCompleted?.Invoke(this, new GetSOInfoDetailDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetSupplierDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetSupplierData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetSupplierData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetSupplierData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetSupplierData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetSupplierData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetSupplierDataAsync(string request) + { + GetSupplierDataAsync(request, null); + } + + /// + public void GetSupplierDataAsync(string request, object userState) + { + if (GetSupplierDataOperationCompleted == null) + { + GetSupplierDataOperationCompleted = OnGetSupplierDataOperationCompleted; + } + InvokeAsync("GetSupplierData", new object[] { request }, GetSupplierDataOperationCompleted, userState); + } + + private void OnGetSupplierDataOperationCompleted(object arg) + { + if (GetSupplierDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetSupplierDataCompleted?.Invoke(this, new GetSupplierDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetSupplierItemDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetSupplierItemData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetSupplierItemData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetSupplierItemData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetSupplierItemData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetSupplierItemData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetSupplierItemDataAsync(string request) + { + GetSupplierItemDataAsync(request, null); + } + + /// + public void GetSupplierItemDataAsync(string request, object userState) + { + if (GetSupplierItemDataOperationCompleted == null) + { + GetSupplierItemDataOperationCompleted = OnGetSupplierItemDataOperationCompleted; + } + InvokeAsync("GetSupplierItemData", new object[] { request }, GetSupplierItemDataOperationCompleted, userState); + } + + private void OnGetSupplierItemDataOperationCompleted(object arg) + { + if (GetSupplierItemDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetSupplierItemDataCompleted?.Invoke(this, new GetSupplierItemDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetOverdueAmtDetailDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetOverdueAmtDetailData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetOverdueAmtDetailData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetOverdueAmtDetailData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetOverdueAmtDetailData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetOverdueAmtDetailData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetOverdueAmtDetailDataAsync(string request) + { + GetOverdueAmtDetailDataAsync(request, null); + } + + /// + public void GetOverdueAmtDetailDataAsync(string request, object userState) + { + if (GetOverdueAmtDetailDataOperationCompleted == null) + { + GetOverdueAmtDetailDataOperationCompleted = OnGetOverdueAmtDetailDataOperationCompleted; + } + InvokeAsync("GetOverdueAmtDetailData", new object[] { request }, GetOverdueAmtDetailDataOperationCompleted, userState); + } + + private void OnGetOverdueAmtDetailDataOperationCompleted(object arg) + { + if (GetOverdueAmtDetailDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetOverdueAmtDetailDataCompleted?.Invoke(this, new GetOverdueAmtDetailDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetMonthListRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetMonthList([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetMonthList", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetMonthList(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetMonthList", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetMonthList(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetMonthListAsync(string request) + { + GetMonthListAsync(request, null); + } + + /// + public void GetMonthListAsync(string request, object userState) + { + if (GetMonthListOperationCompleted == null) + { + GetMonthListOperationCompleted = OnGetMonthListOperationCompleted; + } + InvokeAsync("GetMonthList", new object[] { request }, GetMonthListOperationCompleted, userState); + } + + private void OnGetMonthListOperationCompleted(object arg) + { + if (GetMonthListCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetMonthListCompleted?.Invoke(this, new GetMonthListCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetInspectionDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetInspectionData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetInspectionData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetInspectionData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetInspectionData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetInspectionData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetInspectionDataAsync(string request) + { + GetInspectionDataAsync(request, null); + } + + /// + public void GetInspectionDataAsync(string request, object userState) + { + if (GetInspectionDataOperationCompleted == null) + { + GetInspectionDataOperationCompleted = OnGetInspectionDataOperationCompleted; + } + InvokeAsync("GetInspectionData", new object[] { request }, GetInspectionDataOperationCompleted, userState); + } + + private void OnGetInspectionDataOperationCompleted(object arg) + { + if (GetInspectionDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetInspectionDataCompleted?.Invoke(this, new GetInspectionDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "CreateBOMDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string CreateBOMData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("CreateBOMData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateBOMData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateBOMData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateBOMData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateBOMDataAsync(string request) + { + CreateBOMDataAsync(request, null); + } + + /// + public void CreateBOMDataAsync(string request, object userState) + { + if (CreateBOMDataOperationCompleted == null) + { + CreateBOMDataOperationCompleted = OnCreateBOMDataOperationCompleted; + } + InvokeAsync("CreateBOMData", new object[] { request }, CreateBOMDataOperationCompleted, userState); + } + + private void OnCreateBOMDataOperationCompleted(object arg) + { + if (CreateBOMDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateBOMDataCompleted?.Invoke(this, new CreateBOMDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetOperationDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetOperationData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetOperationData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetOperationData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetOperationData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetOperationData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetOperationDataAsync(string request) + { + GetOperationDataAsync(request, null); + } + + /// + public void GetOperationDataAsync(string request, object userState) + { + if (GetOperationDataOperationCompleted == null) + { + GetOperationDataOperationCompleted = OnGetOperationDataOperationCompleted; + } + InvokeAsync("GetOperationData", new object[] { request }, GetOperationDataOperationCompleted, userState); + } + + private void OnGetOperationDataOperationCompleted(object arg) + { + if (GetOperationDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetOperationDataCompleted?.Invoke(this, new GetOperationDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetUnitDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetUnitData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetUnitData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetUnitData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetUnitData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetUnitData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetUnitDataAsync(string request) + { + GetUnitDataAsync(request, null); + } + + /// + public void GetUnitDataAsync(string request, object userState) + { + if (GetUnitDataOperationCompleted == null) + { + GetUnitDataOperationCompleted = OnGetUnitDataOperationCompleted; + } + InvokeAsync("GetUnitData", new object[] { request }, GetUnitDataOperationCompleted, userState); + } + + private void OnGetUnitDataOperationCompleted(object arg) + { + if (GetUnitDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetUnitDataCompleted?.Invoke(this, new GetUnitDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetBasicCodeDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetBasicCodeData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetBasicCodeData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetBasicCodeData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetBasicCodeData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetBasicCodeData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetBasicCodeDataAsync(string request) + { + GetBasicCodeDataAsync(request, null); + } + + /// + public void GetBasicCodeDataAsync(string request, object userState) + { + if (GetBasicCodeDataOperationCompleted == null) + { + GetBasicCodeDataOperationCompleted = OnGetBasicCodeDataOperationCompleted; + } + InvokeAsync("GetBasicCodeData", new object[] { request }, GetBasicCodeDataOperationCompleted, userState); + } + + private void OnGetBasicCodeDataOperationCompleted(object arg) + { + if (GetBasicCodeDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetBasicCodeDataCompleted?.Invoke(this, new GetBasicCodeDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetComponentrepsubDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetComponentrepsubData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetComponentrepsubData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetComponentrepsubData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetComponentrepsubData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetComponentrepsubData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetComponentrepsubDataAsync(string request) + { + GetComponentrepsubDataAsync(request, null); + } + + /// + public void GetComponentrepsubDataAsync(string request, object userState) + { + if (GetComponentrepsubDataOperationCompleted == null) + { + GetComponentrepsubDataOperationCompleted = OnGetComponentrepsubDataOperationCompleted; + } + InvokeAsync("GetComponentrepsubData", new object[] { request }, GetComponentrepsubDataOperationCompleted, userState); + } + + private void OnGetComponentrepsubDataOperationCompleted(object arg) + { + if (GetComponentrepsubDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetComponentrepsubDataCompleted?.Invoke(this, new GetComponentrepsubDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetAreaDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetAreaData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetAreaData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetAreaData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetAreaData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetAreaData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetAreaDataAsync(string request) + { + GetAreaDataAsync(request, null); + } + + /// + public void GetAreaDataAsync(string request, object userState) + { + if (GetAreaDataOperationCompleted == null) + { + GetAreaDataOperationCompleted = OnGetAreaDataOperationCompleted; + } + InvokeAsync("GetAreaData", new object[] { request }, GetAreaDataOperationCompleted, userState); + } + + private void OnGetAreaDataOperationCompleted(object arg) + { + if (GetAreaDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetAreaDataCompleted?.Invoke(this, new GetAreaDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetWarehouseDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetWarehouseData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetWarehouseData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetWarehouseData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetWarehouseData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetWarehouseData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetWarehouseDataAsync(string request) + { + GetWarehouseDataAsync(request, null); + } + + /// + public void GetWarehouseDataAsync(string request, object userState) + { + if (GetWarehouseDataOperationCompleted == null) + { + GetWarehouseDataOperationCompleted = OnGetWarehouseDataOperationCompleted; + } + InvokeAsync("GetWarehouseData", new object[] { request }, GetWarehouseDataOperationCompleted, userState); + } + + private void OnGetWarehouseDataOperationCompleted(object arg) + { + if (GetWarehouseDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetWarehouseDataCompleted?.Invoke(this, new GetWarehouseDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetLocationDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetLocationData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetLocationData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetLocationData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetLocationData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetLocationData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetLocationDataAsync(string request) + { + GetLocationDataAsync(request, null); + } + + /// + public void GetLocationDataAsync(string request, object userState) + { + if (GetLocationDataOperationCompleted == null) + { + GetLocationDataOperationCompleted = OnGetLocationDataOperationCompleted; + } + InvokeAsync("GetLocationData", new object[] { request }, GetLocationDataOperationCompleted, userState); + } + + private void OnGetLocationDataOperationCompleted(object arg) + { + if (GetLocationDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetLocationDataCompleted?.Invoke(this, new GetLocationDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetProductClassDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetProductClassData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetProductClassData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetProductClassData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetProductClassData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetProductClassData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetProductClassDataAsync(string request) + { + GetProductClassDataAsync(request, null); + } + + /// + public void GetProductClassDataAsync(string request, object userState) + { + if (GetProductClassDataOperationCompleted == null) + { + GetProductClassDataOperationCompleted = OnGetProductClassDataOperationCompleted; + } + InvokeAsync("GetProductClassData", new object[] { request }, GetProductClassDataOperationCompleted, userState); + } + + private void OnGetProductClassDataOperationCompleted(object arg) + { + if (GetProductClassDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetProductClassDataCompleted?.Invoke(this, new GetProductClassDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "CreateIssueReturnDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string CreateIssueReturnData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("CreateIssueReturnData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateIssueReturnData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateIssueReturnData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateIssueReturnData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateIssueReturnDataAsync(string request) + { + CreateIssueReturnDataAsync(request, null); + } + + /// + public void CreateIssueReturnDataAsync(string request, object userState) + { + if (CreateIssueReturnDataOperationCompleted == null) + { + CreateIssueReturnDataOperationCompleted = OnCreateIssueReturnDataOperationCompleted; + } + InvokeAsync("CreateIssueReturnData", new object[] { request }, CreateIssueReturnDataOperationCompleted, userState); + } + + private void OnCreateIssueReturnDataOperationCompleted(object arg) + { + if (CreateIssueReturnDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateIssueReturnDataCompleted?.Invoke(this, new CreateIssueReturnDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "CreateStockInDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string CreateStockInData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("CreateStockInData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateStockInData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateStockInData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateStockInData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateStockInDataAsync(string request) + { + CreateStockInDataAsync(request, null); + } + + /// + public void CreateStockInDataAsync(string request, object userState) + { + if (CreateStockInDataOperationCompleted == null) + { + CreateStockInDataOperationCompleted = OnCreateStockInDataOperationCompleted; + } + InvokeAsync("CreateStockInData", new object[] { request }, CreateStockInDataOperationCompleted, userState); + } + + private void OnCreateStockInDataOperationCompleted(object arg) + { + if (CreateStockInDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateStockInDataCompleted?.Invoke(this, new CreateStockInDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetUserTokenRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetUserToken([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetUserToken", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetUserToken(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetUserToken", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetUserToken(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetUserTokenAsync(string request) + { + GetUserTokenAsync(request, null); + } + + /// + public void GetUserTokenAsync(string request, object userState) + { + if (GetUserTokenOperationCompleted == null) + { + GetUserTokenOperationCompleted = OnGetUserTokenOperationCompleted; + } + InvokeAsync("GetUserToken", new object[] { request }, GetUserTokenOperationCompleted, userState); + } + + private void OnGetUserTokenOperationCompleted(object arg) + { + if (GetUserTokenCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetUserTokenCompleted?.Invoke(this, new GetUserTokenCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "CheckUserAuthRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string CheckUserAuth([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("CheckUserAuth", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCheckUserAuth(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CheckUserAuth", new object[] { request }, callback, asyncState); + } + + /// + public string EndCheckUserAuth(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CheckUserAuthAsync(string request) + { + CheckUserAuthAsync(request, null); + } + + /// + public void CheckUserAuthAsync(string request, object userState) + { + if (CheckUserAuthOperationCompleted == null) + { + CheckUserAuthOperationCompleted = OnCheckUserAuthOperationCompleted; + } + InvokeAsync("CheckUserAuth", new object[] { request }, CheckUserAuthOperationCompleted, userState); + } + + private void OnCheckUserAuthOperationCompleted(object arg) + { + if (CheckUserAuthCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CheckUserAuthCompleted?.Invoke(this, new CheckUserAuthCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetMenuDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetMenuData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetMenuData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetMenuData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetMenuData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetMenuData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetMenuDataAsync(string request) + { + GetMenuDataAsync(request, null); + } + + /// + public void GetMenuDataAsync(string request, object userState) + { + if (GetMenuDataOperationCompleted == null) + { + GetMenuDataOperationCompleted = OnGetMenuDataOperationCompleted; + } + InvokeAsync("GetMenuData", new object[] { request }, GetMenuDataOperationCompleted, userState); + } + + private void OnGetMenuDataOperationCompleted(object arg) + { + if (GetMenuDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetMenuDataCompleted?.Invoke(this, new GetMenuDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "CheckExecAuthorizationRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string CheckExecAuthorization([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("CheckExecAuthorization", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCheckExecAuthorization(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CheckExecAuthorization", new object[] { request }, callback, asyncState); + } + + /// + public string EndCheckExecAuthorization(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CheckExecAuthorizationAsync(string request) + { + CheckExecAuthorizationAsync(request, null); + } + + /// + public void CheckExecAuthorizationAsync(string request, object userState) + { + if (CheckExecAuthorizationOperationCompleted == null) + { + CheckExecAuthorizationOperationCompleted = OnCheckExecAuthorizationOperationCompleted; + } + InvokeAsync("CheckExecAuthorization", new object[] { request }, CheckExecAuthorizationOperationCompleted, userState); + } + + private void OnCheckExecAuthorizationOperationCompleted(object arg) + { + if (CheckExecAuthorizationCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CheckExecAuthorizationCompleted?.Invoke(this, new CheckExecAuthorizationCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "CreatePurchaseStockInRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string CreatePurchaseStockIn([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("CreatePurchaseStockIn", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreatePurchaseStockIn(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreatePurchaseStockIn", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreatePurchaseStockIn(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreatePurchaseStockInAsync(string request) + { + CreatePurchaseStockInAsync(request, null); + } + + /// + public void CreatePurchaseStockInAsync(string request, object userState) + { + if (CreatePurchaseStockInOperationCompleted == null) + { + CreatePurchaseStockInOperationCompleted = OnCreatePurchaseStockInOperationCompleted; + } + InvokeAsync("CreatePurchaseStockIn", new object[] { request }, CreatePurchaseStockInOperationCompleted, userState); + } + + private void OnCreatePurchaseStockInOperationCompleted(object arg) + { + if (CreatePurchaseStockInCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreatePurchaseStockInCompleted?.Invoke(this, new CreatePurchaseStockInCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "CreatePurchaseStockOutRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string CreatePurchaseStockOut([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("CreatePurchaseStockOut", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreatePurchaseStockOut(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreatePurchaseStockOut", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreatePurchaseStockOut(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreatePurchaseStockOutAsync(string request) + { + CreatePurchaseStockOutAsync(request, null); + } + + /// + public void CreatePurchaseStockOutAsync(string request, object userState) + { + if (CreatePurchaseStockOutOperationCompleted == null) + { + CreatePurchaseStockOutOperationCompleted = OnCreatePurchaseStockOutOperationCompleted; + } + InvokeAsync("CreatePurchaseStockOut", new object[] { request }, CreatePurchaseStockOutOperationCompleted, userState); + } + + private void OnCreatePurchaseStockOutOperationCompleted(object arg) + { + if (CreatePurchaseStockOutCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreatePurchaseStockOutCompleted?.Invoke(this, new CreatePurchaseStockOutCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "CreateWOStockinDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string CreateWOStockinData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("CreateWOStockinData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateWOStockinData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateWOStockinData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateWOStockinData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateWOStockinDataAsync(string request) + { + CreateWOStockinDataAsync(request, null); + } + + /// + public void CreateWOStockinDataAsync(string request, object userState) + { + if (CreateWOStockinDataOperationCompleted == null) + { + CreateWOStockinDataOperationCompleted = OnCreateWOStockinDataOperationCompleted; + } + InvokeAsync("CreateWOStockinData", new object[] { request }, CreateWOStockinDataOperationCompleted, userState); + } + + private void OnCreateWOStockinDataOperationCompleted(object arg) + { + if (CreateWOStockinDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateWOStockinDataCompleted?.Invoke(this, new CreateWOStockinDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetCountingLabelDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetCountingLabelData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetCountingLabelData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetCountingLabelData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetCountingLabelData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetCountingLabelData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetCountingLabelDataAsync(string request) + { + GetCountingLabelDataAsync(request, null); + } + + /// + public void GetCountingLabelDataAsync(string request, object userState) + { + if (GetCountingLabelDataOperationCompleted == null) + { + GetCountingLabelDataOperationCompleted = OnGetCountingLabelDataOperationCompleted; + } + InvokeAsync("GetCountingLabelData", new object[] { request }, GetCountingLabelDataOperationCompleted, userState); + } + + private void OnGetCountingLabelDataOperationCompleted(object arg) + { + if (GetCountingLabelDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetCountingLabelDataCompleted?.Invoke(this, new GetCountingLabelDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetFQCDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetFQCData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetFQCData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetFQCData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetFQCData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetFQCData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetFQCDataAsync(string request) + { + GetFQCDataAsync(request, null); + } + + /// + public void GetFQCDataAsync(string request, object userState) + { + if (GetFQCDataOperationCompleted == null) + { + GetFQCDataOperationCompleted = OnGetFQCDataOperationCompleted; + } + InvokeAsync("GetFQCData", new object[] { request }, GetFQCDataOperationCompleted, userState); + } + + private void OnGetFQCDataOperationCompleted(object arg) + { + if (GetFQCDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetFQCDataCompleted?.Invoke(this, new GetFQCDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetItemStockListRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetItemStockList([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetItemStockList", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetItemStockList(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetItemStockList", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetItemStockList(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetItemStockListAsync(string request) + { + GetItemStockListAsync(request, null); + } + + /// + public void GetItemStockListAsync(string request, object userState) + { + if (GetItemStockListOperationCompleted == null) + { + GetItemStockListOperationCompleted = OnGetItemStockListOperationCompleted; + } + InvokeAsync("GetItemStockList", new object[] { request }, GetItemStockListOperationCompleted, userState); + } + + private void OnGetItemStockListOperationCompleted(object arg) + { + if (GetItemStockListCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetItemStockListCompleted?.Invoke(this, new GetItemStockListCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetLabelTypeDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetLabelTypeData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetLabelTypeData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetLabelTypeData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetLabelTypeData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetLabelTypeData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetLabelTypeDataAsync(string request) + { + GetLabelTypeDataAsync(request, null); + } + + /// + public void GetLabelTypeDataAsync(string request, object userState) + { + if (GetLabelTypeDataOperationCompleted == null) + { + GetLabelTypeDataOperationCompleted = OnGetLabelTypeDataOperationCompleted; + } + InvokeAsync("GetLabelTypeData", new object[] { request }, GetLabelTypeDataOperationCompleted, userState); + } + + private void OnGetLabelTypeDataOperationCompleted(object arg) + { + if (GetLabelTypeDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetLabelTypeDataCompleted?.Invoke(this, new GetLabelTypeDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetMFGDocumentRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetMFGDocument([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetMFGDocument", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetMFGDocument(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetMFGDocument", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetMFGDocument(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetMFGDocumentAsync(string request) + { + GetMFGDocumentAsync(request, null); + } + + /// + public void GetMFGDocumentAsync(string request, object userState) + { + if (GetMFGDocumentOperationCompleted == null) + { + GetMFGDocumentOperationCompleted = OnGetMFGDocumentOperationCompleted; + } + InvokeAsync("GetMFGDocument", new object[] { request }, GetMFGDocumentOperationCompleted, userState); + } + + private void OnGetMFGDocumentOperationCompleted(object arg) + { + if (GetMFGDocumentCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetMFGDocumentCompleted?.Invoke(this, new GetMFGDocumentCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetPODataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetPOData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetPOData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetPOData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetPOData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetPOData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetPODataAsync(string request) + { + GetPODataAsync(request, null); + } + + /// + public void GetPODataAsync(string request, object userState) + { + if (GetPODataOperationCompleted == null) + { + GetPODataOperationCompleted = OnGetPODataOperationCompleted; + } + InvokeAsync("GetPOData", new object[] { request }, GetPODataOperationCompleted, userState); + } + + private void OnGetPODataOperationCompleted(object arg) + { + if (GetPODataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetPODataCompleted?.Invoke(this, new GetPODataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetPOReceivingInDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetPOReceivingInData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetPOReceivingInData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetPOReceivingInData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetPOReceivingInData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetPOReceivingInData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetPOReceivingInDataAsync(string request) + { + GetPOReceivingInDataAsync(request, null); + } + + /// + public void GetPOReceivingInDataAsync(string request, object userState) + { + if (GetPOReceivingInDataOperationCompleted == null) + { + GetPOReceivingInDataOperationCompleted = OnGetPOReceivingInDataOperationCompleted; + } + InvokeAsync("GetPOReceivingInData", new object[] { request }, GetPOReceivingInDataOperationCompleted, userState); + } + + private void OnGetPOReceivingInDataOperationCompleted(object arg) + { + if (GetPOReceivingInDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetPOReceivingInDataCompleted?.Invoke(this, new GetPOReceivingInDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetPOReceivingOutDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetPOReceivingOutData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetPOReceivingOutData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetPOReceivingOutData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetPOReceivingOutData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetPOReceivingOutData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetPOReceivingOutDataAsync(string request) + { + GetPOReceivingOutDataAsync(request, null); + } + + /// + public void GetPOReceivingOutDataAsync(string request, object userState) + { + if (GetPOReceivingOutDataOperationCompleted == null) + { + GetPOReceivingOutDataOperationCompleted = OnGetPOReceivingOutDataOperationCompleted; + } + InvokeAsync("GetPOReceivingOutData", new object[] { request }, GetPOReceivingOutDataOperationCompleted, userState); + } + + private void OnGetPOReceivingOutDataOperationCompleted(object arg) + { + if (GetPOReceivingOutDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetPOReceivingOutDataCompleted?.Invoke(this, new GetPOReceivingOutDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetPurchaseStockInQtyRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetPurchaseStockInQty([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetPurchaseStockInQty", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetPurchaseStockInQty(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetPurchaseStockInQty", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetPurchaseStockInQty(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetPurchaseStockInQtyAsync(string request) + { + GetPurchaseStockInQtyAsync(request, null); + } + + /// + public void GetPurchaseStockInQtyAsync(string request, object userState) + { + if (GetPurchaseStockInQtyOperationCompleted == null) + { + GetPurchaseStockInQtyOperationCompleted = OnGetPurchaseStockInQtyOperationCompleted; + } + InvokeAsync("GetPurchaseStockInQty", new object[] { request }, GetPurchaseStockInQtyOperationCompleted, userState); + } + + private void OnGetPurchaseStockInQtyOperationCompleted(object arg) + { + if (GetPurchaseStockInQtyCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetPurchaseStockInQtyCompleted?.Invoke(this, new GetPurchaseStockInQtyCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetPurchaseStockOutQtyRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetPurchaseStockOutQty([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetPurchaseStockOutQty", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetPurchaseStockOutQty(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetPurchaseStockOutQty", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetPurchaseStockOutQty(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetPurchaseStockOutQtyAsync(string request) + { + GetPurchaseStockOutQtyAsync(request, null); + } + + /// + public void GetPurchaseStockOutQtyAsync(string request, object userState) + { + if (GetPurchaseStockOutQtyOperationCompleted == null) + { + GetPurchaseStockOutQtyOperationCompleted = OnGetPurchaseStockOutQtyOperationCompleted; + } + InvokeAsync("GetPurchaseStockOutQty", new object[] { request }, GetPurchaseStockOutQtyOperationCompleted, userState); + } + + private void OnGetPurchaseStockOutQtyOperationCompleted(object arg) + { + if (GetPurchaseStockOutQtyCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetPurchaseStockOutQtyCompleted?.Invoke(this, new GetPurchaseStockOutQtyCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetReasonCodeRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetReasonCode([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetReasonCode", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetReasonCode(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetReasonCode", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetReasonCode(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetReasonCodeAsync(string request) + { + GetReasonCodeAsync(request, null); + } + + /// + public void GetReasonCodeAsync(string request, object userState) + { + if (GetReasonCodeOperationCompleted == null) + { + GetReasonCodeOperationCompleted = OnGetReasonCodeOperationCompleted; + } + InvokeAsync("GetReasonCode", new object[] { request }, GetReasonCodeOperationCompleted, userState); + } + + private void OnGetReasonCodeOperationCompleted(object arg) + { + if (GetReasonCodeCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetReasonCodeCompleted?.Invoke(this, new GetReasonCodeCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetReceivingQtyRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetReceivingQty([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetReceivingQty", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetReceivingQty(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetReceivingQty", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetReceivingQty(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetReceivingQtyAsync(string request) + { + GetReceivingQtyAsync(request, null); + } + + /// + public void GetReceivingQtyAsync(string request, object userState) + { + if (GetReceivingQtyOperationCompleted == null) + { + GetReceivingQtyOperationCompleted = OnGetReceivingQtyOperationCompleted; + } + InvokeAsync("GetReceivingQty", new object[] { request }, GetReceivingQtyOperationCompleted, userState); + } + + private void OnGetReceivingQtyOperationCompleted(object arg) + { + if (GetReceivingQtyCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetReceivingQtyCompleted?.Invoke(this, new GetReceivingQtyCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetStockDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetStockData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetStockData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetStockData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetStockData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetStockData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetStockDataAsync(string request) + { + GetStockDataAsync(request, null); + } + + /// + public void GetStockDataAsync(string request, object userState) + { + if (GetStockDataOperationCompleted == null) + { + GetStockDataOperationCompleted = OnGetStockDataOperationCompleted; + } + InvokeAsync("GetStockData", new object[] { request }, GetStockDataOperationCompleted, userState); + } + + private void OnGetStockDataOperationCompleted(object arg) + { + if (GetStockDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetStockDataCompleted?.Invoke(this, new GetStockDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetWODataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetWOData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetWOData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetWOData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetWOData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetWOData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetWODataAsync(string request) + { + GetWODataAsync(request, null); + } + + /// + public void GetWODataAsync(string request, object userState) + { + if (GetWODataOperationCompleted == null) + { + GetWODataOperationCompleted = OnGetWODataOperationCompleted; + } + InvokeAsync("GetWOData", new object[] { request }, GetWODataOperationCompleted, userState); + } + + private void OnGetWODataOperationCompleted(object arg) + { + if (GetWODataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetWODataCompleted?.Invoke(this, new GetWODataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetWOIssueDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetWOIssueData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetWOIssueData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetWOIssueData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetWOIssueData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetWOIssueData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetWOIssueDataAsync(string request) + { + GetWOIssueDataAsync(request, null); + } + + /// + public void GetWOIssueDataAsync(string request, object userState) + { + if (GetWOIssueDataOperationCompleted == null) + { + GetWOIssueDataOperationCompleted = OnGetWOIssueDataOperationCompleted; + } + InvokeAsync("GetWOIssueData", new object[] { request }, GetWOIssueDataOperationCompleted, userState); + } + + private void OnGetWOIssueDataOperationCompleted(object arg) + { + if (GetWOIssueDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetWOIssueDataCompleted?.Invoke(this, new GetWOIssueDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetWOStockQtyRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetWOStockQty([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetWOStockQty", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetWOStockQty(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetWOStockQty", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetWOStockQty(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetWOStockQtyAsync(string request) + { + GetWOStockQtyAsync(request, null); + } + + /// + public void GetWOStockQtyAsync(string request, object userState) + { + if (GetWOStockQtyOperationCompleted == null) + { + GetWOStockQtyOperationCompleted = OnGetWOStockQtyOperationCompleted; + } + InvokeAsync("GetWOStockQty", new object[] { request }, GetWOStockQtyOperationCompleted, userState); + } + + private void OnGetWOStockQtyOperationCompleted(object arg) + { + if (GetWOStockQtyCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetWOStockQtyCompleted?.Invoke(this, new GetWOStockQtyCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "UpdateCountingLabelDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string UpdateCountingLabelData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("UpdateCountingLabelData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginUpdateCountingLabelData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("UpdateCountingLabelData", new object[] { request }, callback, asyncState); + } + + /// + public string EndUpdateCountingLabelData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void UpdateCountingLabelDataAsync(string request) + { + UpdateCountingLabelDataAsync(request, null); + } + + /// + public void UpdateCountingLabelDataAsync(string request, object userState) + { + if (UpdateCountingLabelDataOperationCompleted == null) + { + UpdateCountingLabelDataOperationCompleted = OnUpdateCountingLabelDataOperationCompleted; + } + InvokeAsync("UpdateCountingLabelData", new object[] { request }, UpdateCountingLabelDataOperationCompleted, userState); + } + + private void OnUpdateCountingLabelDataOperationCompleted(object arg) + { + if (UpdateCountingLabelDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + UpdateCountingLabelDataCompleted?.Invoke(this, new UpdateCountingLabelDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "UpdateWOIssueDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string UpdateWOIssueData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("UpdateWOIssueData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginUpdateWOIssueData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("UpdateWOIssueData", new object[] { request }, callback, asyncState); + } + + /// + public string EndUpdateWOIssueData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void UpdateWOIssueDataAsync(string request) + { + UpdateWOIssueDataAsync(request, null); + } + + /// + public void UpdateWOIssueDataAsync(string request, object userState) + { + if (UpdateWOIssueDataOperationCompleted == null) + { + UpdateWOIssueDataOperationCompleted = OnUpdateWOIssueDataOperationCompleted; + } + InvokeAsync("UpdateWOIssueData", new object[] { request }, UpdateWOIssueDataOperationCompleted, userState); + } + + private void OnUpdateWOIssueDataOperationCompleted(object arg) + { + if (UpdateWOIssueDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + UpdateWOIssueDataCompleted?.Invoke(this, new UpdateWOIssueDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "CreateSalesReturnRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string CreateSalesReturn([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("CreateSalesReturn", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateSalesReturn(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateSalesReturn", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateSalesReturn(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateSalesReturnAsync(string request) + { + CreateSalesReturnAsync(request, null); + } + + /// + public void CreateSalesReturnAsync(string request, object userState) + { + if (CreateSalesReturnOperationCompleted == null) + { + CreateSalesReturnOperationCompleted = OnCreateSalesReturnOperationCompleted; + } + InvokeAsync("CreateSalesReturn", new object[] { request }, CreateSalesReturnOperationCompleted, userState); + } + + private void OnCreateSalesReturnOperationCompleted(object arg) + { + if (CreateSalesReturnCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateSalesReturnCompleted?.Invoke(this, new CreateSalesReturnCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "CreateShippingOrderRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string CreateShippingOrder([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("CreateShippingOrder", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateShippingOrder(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateShippingOrder", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateShippingOrder(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateShippingOrderAsync(string request) + { + CreateShippingOrderAsync(request, null); + } + + /// + public void CreateShippingOrderAsync(string request, object userState) + { + if (CreateShippingOrderOperationCompleted == null) + { + CreateShippingOrderOperationCompleted = OnCreateShippingOrderOperationCompleted; + } + InvokeAsync("CreateShippingOrder", new object[] { request }, CreateShippingOrderOperationCompleted, userState); + } + + private void OnCreateShippingOrderOperationCompleted(object arg) + { + if (CreateShippingOrderCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateShippingOrderCompleted?.Invoke(this, new CreateShippingOrderCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "CreateTransferNoteRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string CreateTransferNote([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("CreateTransferNote", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateTransferNote(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateTransferNote", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateTransferNote(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateTransferNoteAsync(string request) + { + CreateTransferNoteAsync(request, null); + } + + /// + public void CreateTransferNoteAsync(string request, object userState) + { + if (CreateTransferNoteOperationCompleted == null) + { + CreateTransferNoteOperationCompleted = OnCreateTransferNoteOperationCompleted; + } + InvokeAsync("CreateTransferNote", new object[] { request }, CreateTransferNoteOperationCompleted, userState); + } + + private void OnCreateTransferNoteOperationCompleted(object arg) + { + if (CreateTransferNoteCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateTransferNoteCompleted?.Invoke(this, new CreateTransferNoteCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetQtyConversionRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetQtyConversion([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetQtyConversion", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetQtyConversion(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetQtyConversion", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetQtyConversion(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetQtyConversionAsync(string request) + { + GetQtyConversionAsync(request, null); + } + + /// + public void GetQtyConversionAsync(string request, object userState) + { + if (GetQtyConversionOperationCompleted == null) + { + GetQtyConversionOperationCompleted = OnGetQtyConversionOperationCompleted; + } + InvokeAsync("GetQtyConversion", new object[] { request }, GetQtyConversionOperationCompleted, userState); + } + + private void OnGetQtyConversionOperationCompleted(object arg) + { + if (GetQtyConversionCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetQtyConversionCompleted?.Invoke(this, new GetQtyConversionCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetShippingNoticeDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetShippingNoticeData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetShippingNoticeData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetShippingNoticeData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetShippingNoticeData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetShippingNoticeData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetShippingNoticeDataAsync(string request) + { + GetShippingNoticeDataAsync(request, null); + } + + /// + public void GetShippingNoticeDataAsync(string request, object userState) + { + if (GetShippingNoticeDataOperationCompleted == null) + { + GetShippingNoticeDataOperationCompleted = OnGetShippingNoticeDataOperationCompleted; + } + InvokeAsync("GetShippingNoticeData", new object[] { request }, GetShippingNoticeDataOperationCompleted, userState); + } + + private void OnGetShippingNoticeDataOperationCompleted(object arg) + { + if (GetShippingNoticeDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetShippingNoticeDataCompleted?.Invoke(this, new GetShippingNoticeDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetShippingOrderDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetShippingOrderData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetShippingOrderData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetShippingOrderData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetShippingOrderData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetShippingOrderData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetShippingOrderDataAsync(string request) + { + GetShippingOrderDataAsync(request, null); + } + + /// + public void GetShippingOrderDataAsync(string request, object userState) + { + if (GetShippingOrderDataOperationCompleted == null) + { + GetShippingOrderDataOperationCompleted = OnGetShippingOrderDataOperationCompleted; + } + InvokeAsync("GetShippingOrderData", new object[] { request }, GetShippingOrderDataOperationCompleted, userState); + } + + private void OnGetShippingOrderDataOperationCompleted(object arg) + { + if (GetShippingOrderDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetShippingOrderDataCompleted?.Invoke(this, new GetShippingOrderDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "CreatePOReceivingDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string CreatePOReceivingData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("CreatePOReceivingData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreatePOReceivingData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreatePOReceivingData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreatePOReceivingData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreatePOReceivingDataAsync(string request) + { + CreatePOReceivingDataAsync(request, null); + } + + /// + public void CreatePOReceivingDataAsync(string request, object userState) + { + if (CreatePOReceivingDataOperationCompleted == null) + { + CreatePOReceivingDataOperationCompleted = OnCreatePOReceivingDataOperationCompleted; + } + InvokeAsync("CreatePOReceivingData", new object[] { request }, CreatePOReceivingDataOperationCompleted, userState); + } + + private void OnCreatePOReceivingDataOperationCompleted(object arg) + { + if (CreatePOReceivingDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreatePOReceivingDataCompleted?.Invoke(this, new CreatePOReceivingDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetSalesDocumentRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetSalesDocument([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetSalesDocument", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetSalesDocument(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetSalesDocument", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetSalesDocument(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetSalesDocumentAsync(string request) + { + GetSalesDocumentAsync(request, null); + } + + /// + public void GetSalesDocumentAsync(string request, object userState) + { + if (GetSalesDocumentOperationCompleted == null) + { + GetSalesDocumentOperationCompleted = OnGetSalesDocumentOperationCompleted; + } + InvokeAsync("GetSalesDocument", new object[] { request }, GetSalesDocumentOperationCompleted, userState); + } + + private void OnGetSalesDocumentOperationCompleted(object arg) + { + if (GetSalesDocumentCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetSalesDocumentCompleted?.Invoke(this, new GetSalesDocumentCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "CreateMISCIssueDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string CreateMISCIssueData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("CreateMISCIssueData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateMISCIssueData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateMISCIssueData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateMISCIssueData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateMISCIssueDataAsync(string request) + { + CreateMISCIssueDataAsync(request, null); + } + + /// + public void CreateMISCIssueDataAsync(string request, object userState) + { + if (CreateMISCIssueDataOperationCompleted == null) + { + CreateMISCIssueDataOperationCompleted = OnCreateMISCIssueDataOperationCompleted; + } + InvokeAsync("CreateMISCIssueData", new object[] { request }, CreateMISCIssueDataOperationCompleted, userState); + } + + private void OnCreateMISCIssueDataOperationCompleted(object arg) + { + if (CreateMISCIssueDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateMISCIssueDataCompleted?.Invoke(this, new CreateMISCIssueDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "CreateStockDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string CreateStockData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("CreateStockData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateStockData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateStockData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateStockData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateStockDataAsync(string request) + { + CreateStockDataAsync(request, null); + } + + /// + public void CreateStockDataAsync(string request, object userState) + { + if (CreateStockDataOperationCompleted == null) + { + CreateStockDataOperationCompleted = OnCreateStockDataOperationCompleted; + } + InvokeAsync("CreateStockData", new object[] { request }, CreateStockDataOperationCompleted, userState); + } + + private void OnCreateStockDataOperationCompleted(object arg) + { + if (CreateStockDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateStockDataCompleted?.Invoke(this, new CreateStockDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "CreateBOMMasterDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string CreateBOMMasterData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("CreateBOMMasterData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateBOMMasterData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateBOMMasterData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateBOMMasterData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateBOMMasterDataAsync(string request) + { + CreateBOMMasterDataAsync(request, null); + } + + /// + public void CreateBOMMasterDataAsync(string request, object userState) + { + if (CreateBOMMasterDataOperationCompleted == null) + { + CreateBOMMasterDataOperationCompleted = OnCreateBOMMasterDataOperationCompleted; + } + InvokeAsync("CreateBOMMasterData", new object[] { request }, CreateBOMMasterDataOperationCompleted, userState); + } + + private void OnCreateBOMMasterDataOperationCompleted(object arg) + { + if (CreateBOMMasterDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateBOMMasterDataCompleted?.Invoke(this, new CreateBOMMasterDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "TIPTOPGateWayRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string TIPTOPGateWay([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("TIPTOPGateWay", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginTIPTOPGateWay(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("TIPTOPGateWay", new object[] { request }, callback, asyncState); + } + + /// + public string EndTIPTOPGateWay(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void TIPTOPGateWayAsync(string request) + { + TIPTOPGateWayAsync(request, null); + } + + /// + public void TIPTOPGateWayAsync(string request, object userState) + { + if (TIPTOPGateWayOperationCompleted == null) + { + TIPTOPGateWayOperationCompleted = OnTIPTOPGateWayOperationCompleted; + } + InvokeAsync("TIPTOPGateWay", new object[] { request }, TIPTOPGateWayOperationCompleted, userState); + } + + private void OnTIPTOPGateWayOperationCompleted(object arg) + { + if (TIPTOPGateWayCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + TIPTOPGateWayCompleted?.Invoke(this, new TIPTOPGateWayCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "CreateBOMDetailDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string CreateBOMDetailData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("CreateBOMDetailData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateBOMDetailData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateBOMDetailData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateBOMDetailData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateBOMDetailDataAsync(string request) + { + CreateBOMDetailDataAsync(request, null); + } + + /// + public void CreateBOMDetailDataAsync(string request, object userState) + { + if (CreateBOMDetailDataOperationCompleted == null) + { + CreateBOMDetailDataOperationCompleted = OnCreateBOMDetailDataOperationCompleted; + } + InvokeAsync("CreateBOMDetailData", new object[] { request }, CreateBOMDetailDataOperationCompleted, userState); + } + + private void OnCreateBOMDetailDataOperationCompleted(object arg) + { + if (CreateBOMDetailDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateBOMDetailDataCompleted?.Invoke(this, new CreateBOMDetailDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "CreateDepartmentDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string CreateDepartmentData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("CreateDepartmentData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateDepartmentData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateDepartmentData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateDepartmentData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateDepartmentDataAsync(string request) + { + CreateDepartmentDataAsync(request, null); + } + + /// + public void CreateDepartmentDataAsync(string request, object userState) + { + if (CreateDepartmentDataOperationCompleted == null) + { + CreateDepartmentDataOperationCompleted = OnCreateDepartmentDataOperationCompleted; + } + InvokeAsync("CreateDepartmentData", new object[] { request }, CreateDepartmentDataOperationCompleted, userState); + } + + private void OnCreateDepartmentDataOperationCompleted(object arg) + { + if (CreateDepartmentDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateDepartmentDataCompleted?.Invoke(this, new CreateDepartmentDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "RunCommandRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string RunCommand([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("RunCommand", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginRunCommand(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("RunCommand", new object[] { request }, callback, asyncState); + } + + /// + public string EndRunCommand(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void RunCommandAsync(string request) + { + RunCommandAsync(request, null); + } + + /// + public void RunCommandAsync(string request, object userState) + { + if (RunCommandOperationCompleted == null) + { + RunCommandOperationCompleted = OnRunCommandOperationCompleted; + } + InvokeAsync("RunCommand", new object[] { request }, RunCommandOperationCompleted, userState); + } + + private void OnRunCommandOperationCompleted(object arg) + { + if (RunCommandCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + RunCommandCompleted?.Invoke(this, new RunCommandCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "EboGetCustDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string EboGetCustData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("EboGetCustData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginEboGetCustData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("EboGetCustData", new object[] { request }, callback, asyncState); + } + + /// + public string EndEboGetCustData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void EboGetCustDataAsync(string request) + { + EboGetCustDataAsync(request, null); + } + + /// + public void EboGetCustDataAsync(string request, object userState) + { + if (EboGetCustDataOperationCompleted == null) + { + EboGetCustDataOperationCompleted = OnEboGetCustDataOperationCompleted; + } + InvokeAsync("EboGetCustData", new object[] { request }, EboGetCustDataOperationCompleted, userState); + } + + private void OnEboGetCustDataOperationCompleted(object arg) + { + if (EboGetCustDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + EboGetCustDataCompleted?.Invoke(this, new EboGetCustDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "EboGetOrderDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string EboGetOrderData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("EboGetOrderData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginEboGetOrderData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("EboGetOrderData", new object[] { request }, callback, asyncState); + } + + /// + public string EndEboGetOrderData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void EboGetOrderDataAsync(string request) + { + EboGetOrderDataAsync(request, null); + } + + /// + public void EboGetOrderDataAsync(string request, object userState) + { + if (EboGetOrderDataOperationCompleted == null) + { + EboGetOrderDataOperationCompleted = OnEboGetOrderDataOperationCompleted; + } + InvokeAsync("EboGetOrderData", new object[] { request }, EboGetOrderDataOperationCompleted, userState); + } + + private void OnEboGetOrderDataOperationCompleted(object arg) + { + if (EboGetOrderDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + EboGetOrderDataCompleted?.Invoke(this, new EboGetOrderDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "EboGetProdDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string EboGetProdData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("EboGetProdData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginEboGetProdData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("EboGetProdData", new object[] { request }, callback, asyncState); + } + + /// + public string EndEboGetProdData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void EboGetProdDataAsync(string request) + { + EboGetProdDataAsync(request, null); + } + + /// + public void EboGetProdDataAsync(string request, object userState) + { + if (EboGetProdDataOperationCompleted == null) + { + EboGetProdDataOperationCompleted = OnEboGetProdDataOperationCompleted; + } + InvokeAsync("EboGetProdData", new object[] { request }, EboGetProdDataOperationCompleted, userState); + } + + private void OnEboGetProdDataOperationCompleted(object arg) + { + if (EboGetProdDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + EboGetProdDataCompleted?.Invoke(this, new EboGetProdDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "CheckApsExecutionRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string CheckApsExecution([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("CheckApsExecution", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCheckApsExecution(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CheckApsExecution", new object[] { request }, callback, asyncState); + } + + /// + public string EndCheckApsExecution(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CheckApsExecutionAsync(string request) + { + CheckApsExecutionAsync(request, null); + } + + /// + public void CheckApsExecutionAsync(string request, object userState) + { + if (CheckApsExecutionOperationCompleted == null) + { + CheckApsExecutionOperationCompleted = OnCheckApsExecutionOperationCompleted; + } + InvokeAsync("CheckApsExecution", new object[] { request }, CheckApsExecutionOperationCompleted, userState); + } + + private void OnCheckApsExecutionOperationCompleted(object arg) + { + if (CheckApsExecutionCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CheckApsExecutionCompleted?.Invoke(this, new CheckApsExecutionCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetCustomerContactDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetCustomerContactData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetCustomerContactData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetCustomerContactData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetCustomerContactData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetCustomerContactData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetCustomerContactDataAsync(string request) + { + GetCustomerContactDataAsync(request, null); + } + + /// + public void GetCustomerContactDataAsync(string request, object userState) + { + if (GetCustomerContactDataOperationCompleted == null) + { + GetCustomerContactDataOperationCompleted = OnGetCustomerContactDataOperationCompleted; + } + InvokeAsync("GetCustomerContactData", new object[] { request }, GetCustomerContactDataOperationCompleted, userState); + } + + private void OnGetCustomerContactDataOperationCompleted(object arg) + { + if (GetCustomerContactDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetCustomerContactDataCompleted?.Invoke(this, new GetCustomerContactDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetPackingMethodDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetPackingMethodData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetPackingMethodData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetPackingMethodData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetPackingMethodData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetPackingMethodData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetPackingMethodDataAsync(string request) + { + GetPackingMethodDataAsync(request, null); + } + + /// + public void GetPackingMethodDataAsync(string request, object userState) + { + if (GetPackingMethodDataOperationCompleted == null) + { + GetPackingMethodDataOperationCompleted = OnGetPackingMethodDataOperationCompleted; + } + InvokeAsync("GetPackingMethodData", new object[] { request }, GetPackingMethodDataOperationCompleted, userState); + } + + private void OnGetPackingMethodDataOperationCompleted(object arg) + { + if (GetPackingMethodDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetPackingMethodDataCompleted?.Invoke(this, new GetPackingMethodDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "CreatePotentialCustomerDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string CreatePotentialCustomerData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("CreatePotentialCustomerData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreatePotentialCustomerData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreatePotentialCustomerData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreatePotentialCustomerData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreatePotentialCustomerDataAsync(string request) + { + CreatePotentialCustomerDataAsync(request, null); + } + + /// + public void CreatePotentialCustomerDataAsync(string request, object userState) + { + if (CreatePotentialCustomerDataOperationCompleted == null) + { + CreatePotentialCustomerDataOperationCompleted = OnCreatePotentialCustomerDataOperationCompleted; + } + InvokeAsync("CreatePotentialCustomerData", new object[] { request }, CreatePotentialCustomerDataOperationCompleted, userState); + } + + private void OnCreatePotentialCustomerDataOperationCompleted(object arg) + { + if (CreatePotentialCustomerDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreatePotentialCustomerDataCompleted?.Invoke(this, new CreatePotentialCustomerDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetTaxTypeDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetTaxTypeData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetTaxTypeData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetTaxTypeData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetTaxTypeData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetTaxTypeData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetTaxTypeDataAsync(string request) + { + GetTaxTypeDataAsync(request, null); + } + + /// + public void GetTaxTypeDataAsync(string request, object userState) + { + if (GetTaxTypeDataOperationCompleted == null) + { + GetTaxTypeDataOperationCompleted = OnGetTaxTypeDataOperationCompleted; + } + InvokeAsync("GetTaxTypeData", new object[] { request }, GetTaxTypeDataOperationCompleted, userState); + } + + private void OnGetTaxTypeDataOperationCompleted(object arg) + { + if (GetTaxTypeDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetTaxTypeDataCompleted?.Invoke(this, new GetTaxTypeDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetUnitConversionDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetUnitConversionData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetUnitConversionData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetUnitConversionData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetUnitConversionData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetUnitConversionData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetUnitConversionDataAsync(string request) + { + GetUnitConversionDataAsync(request, null); + } + + /// + public void GetUnitConversionDataAsync(string request, object userState) + { + if (GetUnitConversionDataOperationCompleted == null) + { + GetUnitConversionDataOperationCompleted = OnGetUnitConversionDataOperationCompleted; + } + InvokeAsync("GetUnitConversionData", new object[] { request }, GetUnitConversionDataOperationCompleted, userState); + } + + private void OnGetUnitConversionDataOperationCompleted(object arg) + { + if (GetUnitConversionDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetUnitConversionDataCompleted?.Invoke(this, new GetUnitConversionDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetMFGSettingSmaDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetMFGSettingSmaData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetMFGSettingSmaData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetMFGSettingSmaData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetMFGSettingSmaData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetMFGSettingSmaData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetMFGSettingSmaDataAsync(string request) + { + GetMFGSettingSmaDataAsync(request, null); + } + + /// + public void GetMFGSettingSmaDataAsync(string request, object userState) + { + if (GetMFGSettingSmaDataOperationCompleted == null) + { + GetMFGSettingSmaDataOperationCompleted = OnGetMFGSettingSmaDataOperationCompleted; + } + InvokeAsync("GetMFGSettingSmaData", new object[] { request }, GetMFGSettingSmaDataOperationCompleted, userState); + } + + private void OnGetMFGSettingSmaDataOperationCompleted(object arg) + { + if (GetMFGSettingSmaDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetMFGSettingSmaDataCompleted?.Invoke(this, new GetMFGSettingSmaDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetCustomerOtheraddressDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetCustomerOtheraddressData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetCustomerOtheraddressData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetCustomerOtheraddressData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetCustomerOtheraddressData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetCustomerOtheraddressData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetCustomerOtheraddressDataAsync(string request) + { + GetCustomerOtheraddressDataAsync(request, null); + } + + /// + public void GetCustomerOtheraddressDataAsync(string request, object userState) + { + if (GetCustomerOtheraddressDataOperationCompleted == null) + { + GetCustomerOtheraddressDataOperationCompleted = OnGetCustomerOtheraddressDataOperationCompleted; + } + InvokeAsync("GetCustomerOtheraddressData", new object[] { request }, GetCustomerOtheraddressDataOperationCompleted, userState); + } + + private void OnGetCustomerOtheraddressDataOperationCompleted(object arg) + { + if (GetCustomerOtheraddressDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetCustomerOtheraddressDataCompleted?.Invoke(this, new GetCustomerOtheraddressDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "CreateCustomerContactDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string CreateCustomerContactData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("CreateCustomerContactData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateCustomerContactData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateCustomerContactData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateCustomerContactData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateCustomerContactDataAsync(string request) + { + CreateCustomerContactDataAsync(request, null); + } + + /// + public void CreateCustomerContactDataAsync(string request, object userState) + { + if (CreateCustomerContactDataOperationCompleted == null) + { + CreateCustomerContactDataOperationCompleted = OnCreateCustomerContactDataOperationCompleted; + } + InvokeAsync("CreateCustomerContactData", new object[] { request }, CreateCustomerContactDataOperationCompleted, userState); + } + + private void OnCreateCustomerContactDataOperationCompleted(object arg) + { + if (CreateCustomerContactDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateCustomerContactDataCompleted?.Invoke(this, new CreateCustomerContactDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "CreateCustomerOtheraddressDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string CreateCustomerOtheraddressData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("CreateCustomerOtheraddressData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateCustomerOtheraddressData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateCustomerOtheraddressData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateCustomerOtheraddressData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateCustomerOtheraddressDataAsync(string request) + { + CreateCustomerOtheraddressDataAsync(request, null); + } + + /// + public void CreateCustomerOtheraddressDataAsync(string request, object userState) + { + if (CreateCustomerOtheraddressDataOperationCompleted == null) + { + CreateCustomerOtheraddressDataOperationCompleted = OnCreateCustomerOtheraddressDataOperationCompleted; + } + InvokeAsync("CreateCustomerOtheraddressData", new object[] { request }, CreateCustomerOtheraddressDataOperationCompleted, userState); + } + + private void OnCreateCustomerOtheraddressDataOperationCompleted(object arg) + { + if (CreateCustomerOtheraddressDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateCustomerOtheraddressDataCompleted?.Invoke(this, new CreateCustomerOtheraddressDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetPotentialCustomerDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetPotentialCustomerData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetPotentialCustomerData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetPotentialCustomerData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetPotentialCustomerData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetPotentialCustomerData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetPotentialCustomerDataAsync(string request) + { + GetPotentialCustomerDataAsync(request, null); + } + + /// + public void GetPotentialCustomerDataAsync(string request, object userState) + { + if (GetPotentialCustomerDataOperationCompleted == null) + { + GetPotentialCustomerDataOperationCompleted = OnGetPotentialCustomerDataOperationCompleted; + } + InvokeAsync("GetPotentialCustomerData", new object[] { request }, GetPotentialCustomerDataOperationCompleted, userState); + } + + private void OnGetPotentialCustomerDataOperationCompleted(object arg) + { + if (GetPotentialCustomerDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetPotentialCustomerDataCompleted?.Invoke(this, new GetPotentialCustomerDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "CRMGetCustomerDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string CRMGetCustomerData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("CRMGetCustomerData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCRMGetCustomerData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CRMGetCustomerData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCRMGetCustomerData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CRMGetCustomerDataAsync(string request) + { + CRMGetCustomerDataAsync(request, null); + } + + /// + public void CRMGetCustomerDataAsync(string request, object userState) + { + if (CRMGetCustomerDataOperationCompleted == null) + { + CRMGetCustomerDataOperationCompleted = OnCRMGetCustomerDataOperationCompleted; + } + InvokeAsync("CRMGetCustomerData", new object[] { request }, CRMGetCustomerDataOperationCompleted, userState); + } + + private void OnCRMGetCustomerDataOperationCompleted(object arg) + { + if (CRMGetCustomerDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CRMGetCustomerDataCompleted?.Invoke(this, new CRMGetCustomerDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetTableAmendmentDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetTableAmendmentData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetTableAmendmentData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetTableAmendmentData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetTableAmendmentData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetTableAmendmentData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetTableAmendmentDataAsync(string request) + { + GetTableAmendmentDataAsync(request, null); + } + + /// + public void GetTableAmendmentDataAsync(string request, object userState) + { + if (GetTableAmendmentDataOperationCompleted == null) + { + GetTableAmendmentDataOperationCompleted = OnGetTableAmendmentDataOperationCompleted; + } + InvokeAsync("GetTableAmendmentData", new object[] { request }, GetTableAmendmentDataOperationCompleted, userState); + } + + private void OnGetTableAmendmentDataOperationCompleted(object arg) + { + if (GetTableAmendmentDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetTableAmendmentDataCompleted?.Invoke(this, new GetTableAmendmentDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetReportDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetReportData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetReportData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetReportData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetReportData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetReportData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetReportDataAsync(string request) + { + GetReportDataAsync(request, null); + } + + /// + public void GetReportDataAsync(string request, object userState) + { + if (GetReportDataOperationCompleted == null) + { + GetReportDataOperationCompleted = OnGetReportDataOperationCompleted; + } + InvokeAsync("GetReportData", new object[] { request }, GetReportDataOperationCompleted, userState); + } + + private void OnGetReportDataOperationCompleted(object arg) + { + if (GetReportDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetReportDataCompleted?.Invoke(this, new GetReportDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetAccountTypeDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetAccountTypeData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetAccountTypeData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetAccountTypeData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetAccountTypeData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetAccountTypeData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetAccountTypeDataAsync(string request) + { + GetAccountTypeDataAsync(request, null); + } + + /// + public void GetAccountTypeDataAsync(string request, object userState) + { + if (GetAccountTypeDataOperationCompleted == null) + { + GetAccountTypeDataOperationCompleted = OnGetAccountTypeDataOperationCompleted; + } + InvokeAsync("GetAccountTypeData", new object[] { request }, GetAccountTypeDataOperationCompleted, userState); + } + + private void OnGetAccountTypeDataOperationCompleted(object arg) + { + if (GetAccountTypeDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetAccountTypeDataCompleted?.Invoke(this, new GetAccountTypeDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetAccountDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetAccountData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetAccountData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetAccountData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetAccountData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetAccountData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetAccountDataAsync(string request) + { + GetAccountDataAsync(request, null); + } + + /// + public void GetAccountDataAsync(string request, object userState) + { + if (GetAccountDataOperationCompleted == null) + { + GetAccountDataOperationCompleted = OnGetAccountDataOperationCompleted; + } + InvokeAsync("GetAccountData", new object[] { request }, GetAccountDataOperationCompleted, userState); + } + + private void OnGetAccountDataOperationCompleted(object arg) + { + if (GetAccountDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetAccountDataCompleted?.Invoke(this, new GetAccountDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "CreateVoucherDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string CreateVoucherData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("CreateVoucherData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateVoucherData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateVoucherData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateVoucherData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateVoucherDataAsync(string request) + { + CreateVoucherDataAsync(request, null); + } + + /// + public void CreateVoucherDataAsync(string request, object userState) + { + if (CreateVoucherDataOperationCompleted == null) + { + CreateVoucherDataOperationCompleted = OnCreateVoucherDataOperationCompleted; + } + InvokeAsync("CreateVoucherData", new object[] { request }, CreateVoucherDataOperationCompleted, userState); + } + + private void OnCreateVoucherDataOperationCompleted(object arg) + { + if (CreateVoucherDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateVoucherDataCompleted?.Invoke(this, new CreateVoucherDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetVoucherDocumentDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetVoucherDocumentData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetVoucherDocumentData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetVoucherDocumentData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetVoucherDocumentData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetVoucherDocumentData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetVoucherDocumentDataAsync(string request) + { + GetVoucherDocumentDataAsync(request, null); + } + + /// + public void GetVoucherDocumentDataAsync(string request, object userState) + { + if (GetVoucherDocumentDataOperationCompleted == null) + { + GetVoucherDocumentDataOperationCompleted = OnGetVoucherDocumentDataOperationCompleted; + } + InvokeAsync("GetVoucherDocumentData", new object[] { request }, GetVoucherDocumentDataOperationCompleted, userState); + } + + private void OnGetVoucherDocumentDataOperationCompleted(object arg) + { + if (GetVoucherDocumentDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetVoucherDocumentDataCompleted?.Invoke(this, new GetVoucherDocumentDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetTransactionCategoryRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetTransactionCategory([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetTransactionCategory", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetTransactionCategory(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetTransactionCategory", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetTransactionCategory(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetTransactionCategoryAsync(string request) + { + GetTransactionCategoryAsync(request, null); + } + + /// + public void GetTransactionCategoryAsync(string request, object userState) + { + if (GetTransactionCategoryOperationCompleted == null) + { + GetTransactionCategoryOperationCompleted = OnGetTransactionCategoryOperationCompleted; + } + InvokeAsync("GetTransactionCategory", new object[] { request }, GetTransactionCategoryOperationCompleted, userState); + } + + private void OnGetTransactionCategoryOperationCompleted(object arg) + { + if (GetTransactionCategoryCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetTransactionCategoryCompleted?.Invoke(this, new GetTransactionCategoryCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "CreateBillingAPRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string CreateBillingAP([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("CreateBillingAP", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateBillingAP(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateBillingAP", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateBillingAP(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateBillingAPAsync(string request) + { + CreateBillingAPAsync(request, null); + } + + /// + public void CreateBillingAPAsync(string request, object userState) + { + if (CreateBillingAPOperationCompleted == null) + { + CreateBillingAPOperationCompleted = OnCreateBillingAPOperationCompleted; + } + InvokeAsync("CreateBillingAP", new object[] { request }, CreateBillingAPOperationCompleted, userState); + } + + private void OnCreateBillingAPOperationCompleted(object arg) + { + if (CreateBillingAPCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateBillingAPCompleted?.Invoke(this, new CreateBillingAPCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetItemGroupDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetItemGroupData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetItemGroupData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetItemGroupData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetItemGroupData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetItemGroupData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetItemGroupDataAsync(string request) + { + GetItemGroupDataAsync(request, null); + } + + /// + public void GetItemGroupDataAsync(string request, object userState) + { + if (GetItemGroupDataOperationCompleted == null) + { + GetItemGroupDataOperationCompleted = OnGetItemGroupDataOperationCompleted; + } + InvokeAsync("GetItemGroupData", new object[] { request }, GetItemGroupDataOperationCompleted, userState); + } + + private void OnGetItemGroupDataOperationCompleted(object arg) + { + if (GetItemGroupDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetItemGroupDataCompleted?.Invoke(this, new GetItemGroupDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetMachineDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetMachineData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetMachineData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetMachineData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetMachineData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetMachineData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetMachineDataAsync(string request) + { + GetMachineDataAsync(request, null); + } + + /// + public void GetMachineDataAsync(string request, object userState) + { + if (GetMachineDataOperationCompleted == null) + { + GetMachineDataOperationCompleted = OnGetMachineDataOperationCompleted; + } + InvokeAsync("GetMachineData", new object[] { request }, GetMachineDataOperationCompleted, userState); + } + + private void OnGetMachineDataOperationCompleted(object arg) + { + if (GetMachineDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetMachineDataCompleted?.Invoke(this, new GetMachineDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetProdRoutingDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetProdRoutingData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetProdRoutingData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetProdRoutingData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetProdRoutingData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetProdRoutingData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetProdRoutingDataAsync(string request) + { + GetProdRoutingDataAsync(request, null); + } + + /// + public void GetProdRoutingDataAsync(string request, object userState) + { + if (GetProdRoutingDataOperationCompleted == null) + { + GetProdRoutingDataOperationCompleted = OnGetProdRoutingDataOperationCompleted; + } + InvokeAsync("GetProdRoutingData", new object[] { request }, GetProdRoutingDataOperationCompleted, userState); + } + + private void OnGetProdRoutingDataOperationCompleted(object arg) + { + if (GetProdRoutingDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetProdRoutingDataCompleted?.Invoke(this, new GetProdRoutingDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetWorkstationDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetWorkstationData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetWorkstationData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetWorkstationData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetWorkstationData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetWorkstationData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetWorkstationDataAsync(string request) + { + GetWorkstationDataAsync(request, null); + } + + /// + public void GetWorkstationDataAsync(string request, object userState) + { + if (GetWorkstationDataOperationCompleted == null) + { + GetWorkstationDataOperationCompleted = OnGetWorkstationDataOperationCompleted; + } + InvokeAsync("GetWorkstationData", new object[] { request }, GetWorkstationDataOperationCompleted, userState); + } + + private void OnGetWorkstationDataOperationCompleted(object arg) + { + if (GetWorkstationDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetWorkstationDataCompleted?.Invoke(this, new GetWorkstationDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "RollbackVoucherDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string RollbackVoucherData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("RollbackVoucherData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginRollbackVoucherData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("RollbackVoucherData", new object[] { request }, callback, asyncState); + } + + /// + public string EndRollbackVoucherData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void RollbackVoucherDataAsync(string request) + { + RollbackVoucherDataAsync(request, null); + } + + /// + public void RollbackVoucherDataAsync(string request, object userState) + { + if (RollbackVoucherDataOperationCompleted == null) + { + RollbackVoucherDataOperationCompleted = OnRollbackVoucherDataOperationCompleted; + } + InvokeAsync("RollbackVoucherData", new object[] { request }, RollbackVoucherDataOperationCompleted, userState); + } + + private void OnRollbackVoucherDataOperationCompleted(object arg) + { + if (RollbackVoucherDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + RollbackVoucherDataCompleted?.Invoke(this, new RollbackVoucherDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "CreateRepSubPBOMDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string CreateRepSubPBOMData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("CreateRepSubPBOMData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateRepSubPBOMData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateRepSubPBOMData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateRepSubPBOMData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateRepSubPBOMDataAsync(string request) + { + CreateRepSubPBOMDataAsync(request, null); + } + + /// + public void CreateRepSubPBOMDataAsync(string request, object userState) + { + if (CreateRepSubPBOMDataOperationCompleted == null) + { + CreateRepSubPBOMDataOperationCompleted = OnCreateRepSubPBOMDataOperationCompleted; + } + InvokeAsync("CreateRepSubPBOMData", new object[] { request }, CreateRepSubPBOMDataOperationCompleted, userState); + } + + private void OnCreateRepSubPBOMDataOperationCompleted(object arg) + { + if (CreateRepSubPBOMDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateRepSubPBOMDataCompleted?.Invoke(this, new CreateRepSubPBOMDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "CreateSupplierItemDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string CreateSupplierItemData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("CreateSupplierItemData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateSupplierItemData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateSupplierItemData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateSupplierItemData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateSupplierItemDataAsync(string request) + { + CreateSupplierItemDataAsync(request, null); + } + + /// + public void CreateSupplierItemDataAsync(string request, object userState) + { + if (CreateSupplierItemDataOperationCompleted == null) + { + CreateSupplierItemDataOperationCompleted = OnCreateSupplierItemDataOperationCompleted; + } + InvokeAsync("CreateSupplierItemData", new object[] { request }, CreateSupplierItemDataOperationCompleted, userState); + } + + private void OnCreateSupplierItemDataOperationCompleted(object arg) + { + if (CreateSupplierItemDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateSupplierItemDataCompleted?.Invoke(this, new CreateSupplierItemDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "CreateECNDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string CreateECNData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("CreateECNData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateECNData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateECNData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateECNData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateECNDataAsync(string request) + { + CreateECNDataAsync(request, null); + } + + /// + public void CreateECNDataAsync(string request, object userState) + { + if (CreateECNDataOperationCompleted == null) + { + CreateECNDataOperationCompleted = OnCreateECNDataOperationCompleted; + } + InvokeAsync("CreateECNData", new object[] { request }, CreateECNDataOperationCompleted, userState); + } + + private void OnCreateECNDataOperationCompleted(object arg) + { + if (CreateECNDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateECNDataCompleted?.Invoke(this, new CreateECNDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetBrandDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetBrandData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetBrandData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetBrandData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetBrandData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetBrandData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetBrandDataAsync(string request) + { + GetBrandDataAsync(request, null); + } + + /// + public void GetBrandDataAsync(string request, object userState) + { + if (GetBrandDataOperationCompleted == null) + { + GetBrandDataOperationCompleted = OnGetBrandDataOperationCompleted; + } + InvokeAsync("GetBrandData", new object[] { request }, GetBrandDataOperationCompleted, userState); + } + + private void OnGetBrandDataOperationCompleted(object arg) + { + if (GetBrandDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetBrandDataCompleted?.Invoke(this, new GetBrandDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "CreateItemApprovalDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string CreateItemApprovalData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("CreateItemApprovalData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateItemApprovalData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateItemApprovalData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateItemApprovalData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateItemApprovalDataAsync(string request) + { + CreateItemApprovalDataAsync(request, null); + } + + /// + public void CreateItemApprovalDataAsync(string request, object userState) + { + if (CreateItemApprovalDataOperationCompleted == null) + { + CreateItemApprovalDataOperationCompleted = OnCreateItemApprovalDataOperationCompleted; + } + InvokeAsync("CreateItemApprovalData", new object[] { request }, CreateItemApprovalDataOperationCompleted, userState); + } + + private void OnCreateItemApprovalDataOperationCompleted(object arg) + { + if (CreateItemApprovalDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateItemApprovalDataCompleted?.Invoke(this, new CreateItemApprovalDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "CreateWOWorkReportDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string CreateWOWorkReportData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("CreateWOWorkReportData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateWOWorkReportData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateWOWorkReportData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateWOWorkReportData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateWOWorkReportDataAsync(string request) + { + CreateWOWorkReportDataAsync(request, null); + } + + /// + public void CreateWOWorkReportDataAsync(string request, object userState) + { + if (CreateWOWorkReportDataOperationCompleted == null) + { + CreateWOWorkReportDataOperationCompleted = OnCreateWOWorkReportDataOperationCompleted; + } + InvokeAsync("CreateWOWorkReportData", new object[] { request }, CreateWOWorkReportDataOperationCompleted, userState); + } + + private void OnCreateWOWorkReportDataOperationCompleted(object arg) + { + if (CreateWOWorkReportDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateWOWorkReportDataCompleted?.Invoke(this, new CreateWOWorkReportDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + public new void CancelAsync(object userState) + { + base.CancelAsync(userState); + } + + private bool IsLocalFileSystemWebService(string url) + { + if (url == null || ReferenceEquals(url, string.Empty)) + { + return false; + } + var wsUri = new Uri(url); + if (wsUri.Port >= 1024 && string.Compare(wsUri.Host, "localHost", StringComparison.OrdinalIgnoreCase) == 0) + { + return true; + } + return false; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateCustomerDataCompletedEventHandler(object sender, CreateCustomerDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateCustomerDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateCustomerDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateQuotationDataCompletedEventHandler(object sender, CreateQuotationDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateQuotationDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateQuotationDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetItemDataCompletedEventHandler(object sender, GetItemDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetItemDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetItemDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetBOMDataCompletedEventHandler(object sender, GetBOMDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetBOMDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetBOMDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetDocumentNumberCompletedEventHandler(object sender, GetDocumentNumberCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetDocumentNumberCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetDocumentNumberCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateItemMasterDataCompletedEventHandler(object sender, CreateItemMasterDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateItemMasterDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateItemMasterDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateVendorDataCompletedEventHandler(object sender, CreateVendorDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateVendorDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateVendorDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateEmployeeDataCompletedEventHandler(object sender, CreateEmployeeDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateEmployeeDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateEmployeeDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateAddressDataCompletedEventHandler(object sender, CreateAddressDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateAddressDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateAddressDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetAccountSubjectDataCompletedEventHandler(object sender, GetAccountSubjectDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetAccountSubjectDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetAccountSubjectDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetAxmDocumentCompletedEventHandler(object sender, GetAxmDocumentCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetAxmDocumentCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetAxmDocumentCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetAreaListCompletedEventHandler(object sender, GetAreaListCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetAreaListCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetAreaListCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetCostGroupDataCompletedEventHandler(object sender, GetCostGroupDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetCostGroupDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetCostGroupDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetCountryDataCompletedEventHandler(object sender, GetCountryDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetCountryDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetCountryDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetCountryListCompletedEventHandler(object sender, GetCountryListCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetCountryListCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetCountryListCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetCurrencyDataCompletedEventHandler(object sender, GetCurrencyDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetCurrencyDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetCurrencyDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetCurrencyListCompletedEventHandler(object sender, GetCurrencyListCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetCurrencyListCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetCurrencyListCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetCustListCompletedEventHandler(object sender, GetCustListCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetCustListCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetCustListCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetCustomerDataCompletedEventHandler(object sender, GetCustomerDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetCustomerDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetCustomerDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetCustomerProductDataCompletedEventHandler(object sender, GetCustomerProductDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetCustomerProductDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetCustomerProductDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetDepartmentDataCompletedEventHandler(object sender, GetDepartmentDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetDepartmentDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetDepartmentDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetDepartmentListCompletedEventHandler(object sender, GetDepartmentListCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetDepartmentListCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetDepartmentListCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetEmployeeDataCompletedEventHandler(object sender, GetEmployeeDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetEmployeeDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetEmployeeDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetEmployeeListCompletedEventHandler(object sender, GetEmployeeListCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetEmployeeListCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetEmployeeListCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetItemListCompletedEventHandler(object sender, GetItemListCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetItemListCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetItemListCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetOrganizationListCompletedEventHandler(object sender, GetOrganizationListCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetOrganizationListCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetOrganizationListCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetOverdueAmtRankingDataCompletedEventHandler(object sender, GetOverdueAmtRankingDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetOverdueAmtRankingDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetOverdueAmtRankingDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetProdClassListCompletedEventHandler(object sender, GetProdClassListCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetProdClassListCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetProdClassListCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetSalesDetailDataCompletedEventHandler(object sender, GetSalesDetailDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetSalesDetailDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetSalesDetailDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetSalesStatisticsDataCompletedEventHandler(object sender, GetSalesStatisticsDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetSalesStatisticsDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetSalesStatisticsDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetSOInfoDataCompletedEventHandler(object sender, GetSOInfoDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetSOInfoDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetSOInfoDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetSOInfoDetailDataCompletedEventHandler(object sender, GetSOInfoDetailDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetSOInfoDetailDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetSOInfoDetailDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetSupplierDataCompletedEventHandler(object sender, GetSupplierDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetSupplierDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetSupplierDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetSupplierItemDataCompletedEventHandler(object sender, GetSupplierItemDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetSupplierItemDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetSupplierItemDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetOverdueAmtDetailDataCompletedEventHandler(object sender, GetOverdueAmtDetailDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetOverdueAmtDetailDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetOverdueAmtDetailDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetMonthListCompletedEventHandler(object sender, GetMonthListCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetMonthListCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetMonthListCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetInspectionDataCompletedEventHandler(object sender, GetInspectionDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetInspectionDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetInspectionDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateBOMDataCompletedEventHandler(object sender, CreateBOMDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateBOMDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateBOMDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetOperationDataCompletedEventHandler(object sender, GetOperationDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetOperationDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetOperationDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetUnitDataCompletedEventHandler(object sender, GetUnitDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetUnitDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetUnitDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetBasicCodeDataCompletedEventHandler(object sender, GetBasicCodeDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetBasicCodeDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetBasicCodeDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetComponentrepsubDataCompletedEventHandler(object sender, GetComponentrepsubDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetComponentrepsubDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetComponentrepsubDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetAreaDataCompletedEventHandler(object sender, GetAreaDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetAreaDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetAreaDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetWarehouseDataCompletedEventHandler(object sender, GetWarehouseDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetWarehouseDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetWarehouseDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetLocationDataCompletedEventHandler(object sender, GetLocationDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetLocationDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetLocationDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetProductClassDataCompletedEventHandler(object sender, GetProductClassDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetProductClassDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetProductClassDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateIssueReturnDataCompletedEventHandler(object sender, CreateIssueReturnDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateIssueReturnDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateIssueReturnDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateStockInDataCompletedEventHandler(object sender, CreateStockInDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateStockInDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateStockInDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetUserTokenCompletedEventHandler(object sender, GetUserTokenCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetUserTokenCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetUserTokenCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CheckUserAuthCompletedEventHandler(object sender, CheckUserAuthCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CheckUserAuthCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CheckUserAuthCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetMenuDataCompletedEventHandler(object sender, GetMenuDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetMenuDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetMenuDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CheckExecAuthorizationCompletedEventHandler(object sender, CheckExecAuthorizationCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CheckExecAuthorizationCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CheckExecAuthorizationCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreatePurchaseStockInCompletedEventHandler(object sender, CreatePurchaseStockInCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreatePurchaseStockInCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreatePurchaseStockInCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreatePurchaseStockOutCompletedEventHandler(object sender, CreatePurchaseStockOutCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreatePurchaseStockOutCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreatePurchaseStockOutCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateWOStockinDataCompletedEventHandler(object sender, CreateWOStockinDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateWOStockinDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateWOStockinDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetCountingLabelDataCompletedEventHandler(object sender, GetCountingLabelDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetCountingLabelDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetCountingLabelDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetFQCDataCompletedEventHandler(object sender, GetFQCDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetFQCDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetFQCDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetItemStockListCompletedEventHandler(object sender, GetItemStockListCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetItemStockListCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetItemStockListCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetLabelTypeDataCompletedEventHandler(object sender, GetLabelTypeDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetLabelTypeDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetLabelTypeDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetMFGDocumentCompletedEventHandler(object sender, GetMFGDocumentCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetMFGDocumentCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetMFGDocumentCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetPODataCompletedEventHandler(object sender, GetPODataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetPODataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetPODataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetPOReceivingInDataCompletedEventHandler(object sender, GetPOReceivingInDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetPOReceivingInDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetPOReceivingInDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetPOReceivingOutDataCompletedEventHandler(object sender, GetPOReceivingOutDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetPOReceivingOutDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetPOReceivingOutDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetPurchaseStockInQtyCompletedEventHandler(object sender, GetPurchaseStockInQtyCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetPurchaseStockInQtyCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetPurchaseStockInQtyCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetPurchaseStockOutQtyCompletedEventHandler(object sender, GetPurchaseStockOutQtyCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetPurchaseStockOutQtyCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetPurchaseStockOutQtyCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetReasonCodeCompletedEventHandler(object sender, GetReasonCodeCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetReasonCodeCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetReasonCodeCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetReceivingQtyCompletedEventHandler(object sender, GetReceivingQtyCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetReceivingQtyCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetReceivingQtyCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetStockDataCompletedEventHandler(object sender, GetStockDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetStockDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetStockDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetWODataCompletedEventHandler(object sender, GetWODataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetWODataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetWODataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetWOIssueDataCompletedEventHandler(object sender, GetWOIssueDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetWOIssueDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetWOIssueDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetWOStockQtyCompletedEventHandler(object sender, GetWOStockQtyCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetWOStockQtyCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetWOStockQtyCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void UpdateCountingLabelDataCompletedEventHandler(object sender, UpdateCountingLabelDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class UpdateCountingLabelDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal UpdateCountingLabelDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void UpdateWOIssueDataCompletedEventHandler(object sender, UpdateWOIssueDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class UpdateWOIssueDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal UpdateWOIssueDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateSalesReturnCompletedEventHandler(object sender, CreateSalesReturnCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateSalesReturnCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateSalesReturnCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateShippingOrderCompletedEventHandler(object sender, CreateShippingOrderCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateShippingOrderCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateShippingOrderCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateTransferNoteCompletedEventHandler(object sender, CreateTransferNoteCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateTransferNoteCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateTransferNoteCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetQtyConversionCompletedEventHandler(object sender, GetQtyConversionCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetQtyConversionCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetQtyConversionCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetShippingNoticeDataCompletedEventHandler(object sender, GetShippingNoticeDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetShippingNoticeDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetShippingNoticeDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetShippingOrderDataCompletedEventHandler(object sender, GetShippingOrderDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetShippingOrderDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetShippingOrderDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreatePOReceivingDataCompletedEventHandler(object sender, CreatePOReceivingDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreatePOReceivingDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreatePOReceivingDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetSalesDocumentCompletedEventHandler(object sender, GetSalesDocumentCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetSalesDocumentCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetSalesDocumentCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateMISCIssueDataCompletedEventHandler(object sender, CreateMISCIssueDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateMISCIssueDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateMISCIssueDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateStockDataCompletedEventHandler(object sender, CreateStockDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateStockDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateStockDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateBOMMasterDataCompletedEventHandler(object sender, CreateBOMMasterDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateBOMMasterDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateBOMMasterDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void TIPTOPGateWayCompletedEventHandler(object sender, TIPTOPGateWayCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class TIPTOPGateWayCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal TIPTOPGateWayCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateBOMDetailDataCompletedEventHandler(object sender, CreateBOMDetailDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateBOMDetailDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateBOMDetailDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateDepartmentDataCompletedEventHandler(object sender, CreateDepartmentDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateDepartmentDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateDepartmentDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void RunCommandCompletedEventHandler(object sender, RunCommandCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class RunCommandCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal RunCommandCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void EboGetCustDataCompletedEventHandler(object sender, EboGetCustDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class EboGetCustDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal EboGetCustDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void EboGetOrderDataCompletedEventHandler(object sender, EboGetOrderDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class EboGetOrderDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal EboGetOrderDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void EboGetProdDataCompletedEventHandler(object sender, EboGetProdDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class EboGetProdDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal EboGetProdDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CheckApsExecutionCompletedEventHandler(object sender, CheckApsExecutionCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CheckApsExecutionCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CheckApsExecutionCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetCustomerContactDataCompletedEventHandler(object sender, GetCustomerContactDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetCustomerContactDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetCustomerContactDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetPackingMethodDataCompletedEventHandler(object sender, GetPackingMethodDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetPackingMethodDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetPackingMethodDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreatePotentialCustomerDataCompletedEventHandler(object sender, CreatePotentialCustomerDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreatePotentialCustomerDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreatePotentialCustomerDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetTaxTypeDataCompletedEventHandler(object sender, GetTaxTypeDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetTaxTypeDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetTaxTypeDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetUnitConversionDataCompletedEventHandler(object sender, GetUnitConversionDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetUnitConversionDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetUnitConversionDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetMFGSettingSmaDataCompletedEventHandler(object sender, GetMFGSettingSmaDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetMFGSettingSmaDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetMFGSettingSmaDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetCustomerOtheraddressDataCompletedEventHandler(object sender, GetCustomerOtheraddressDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetCustomerOtheraddressDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetCustomerOtheraddressDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateCustomerContactDataCompletedEventHandler(object sender, CreateCustomerContactDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateCustomerContactDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateCustomerContactDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateCustomerOtheraddressDataCompletedEventHandler(object sender, CreateCustomerOtheraddressDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateCustomerOtheraddressDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateCustomerOtheraddressDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetPotentialCustomerDataCompletedEventHandler(object sender, GetPotentialCustomerDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetPotentialCustomerDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetPotentialCustomerDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CRMGetCustomerDataCompletedEventHandler(object sender, CRMGetCustomerDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CRMGetCustomerDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CRMGetCustomerDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetTableAmendmentDataCompletedEventHandler(object sender, GetTableAmendmentDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetTableAmendmentDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetTableAmendmentDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetReportDataCompletedEventHandler(object sender, GetReportDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetReportDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetReportDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetAccountTypeDataCompletedEventHandler(object sender, GetAccountTypeDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetAccountTypeDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetAccountTypeDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetAccountDataCompletedEventHandler(object sender, GetAccountDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetAccountDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetAccountDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateVoucherDataCompletedEventHandler(object sender, CreateVoucherDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateVoucherDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateVoucherDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetVoucherDocumentDataCompletedEventHandler(object sender, GetVoucherDocumentDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetVoucherDocumentDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetVoucherDocumentDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetTransactionCategoryCompletedEventHandler(object sender, GetTransactionCategoryCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetTransactionCategoryCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetTransactionCategoryCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateBillingAPCompletedEventHandler(object sender, CreateBillingAPCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateBillingAPCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateBillingAPCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetItemGroupDataCompletedEventHandler(object sender, GetItemGroupDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetItemGroupDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetItemGroupDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetMachineDataCompletedEventHandler(object sender, GetMachineDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetMachineDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetMachineDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetProdRoutingDataCompletedEventHandler(object sender, GetProdRoutingDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetProdRoutingDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetProdRoutingDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetWorkstationDataCompletedEventHandler(object sender, GetWorkstationDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetWorkstationDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetWorkstationDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void RollbackVoucherDataCompletedEventHandler(object sender, RollbackVoucherDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class RollbackVoucherDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal RollbackVoucherDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateRepSubPBOMDataCompletedEventHandler(object sender, CreateRepSubPBOMDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateRepSubPBOMDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateRepSubPBOMDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateSupplierItemDataCompletedEventHandler(object sender, CreateSupplierItemDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateSupplierItemDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateSupplierItemDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateECNDataCompletedEventHandler(object sender, CreateECNDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateECNDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateECNDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetBrandDataCompletedEventHandler(object sender, GetBrandDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetBrandDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetBrandDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateItemApprovalDataCompletedEventHandler(object sender, CreateItemApprovalDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateItemApprovalDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateItemApprovalDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateWOWorkReportDataCompletedEventHandler(object sender, CreateWOWorkReportDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateWOWorkReportDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateWOWorkReportDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } +} \ No newline at end of file diff --git a/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_TP/Reference.map b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_TP/Reference.map new file mode 100644 index 0000000..14aaaf9 --- /dev/null +++ b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_TP/Reference.map @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_TP/TIPTOPServiceGateWay.wsdl b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_TP/TIPTOPServiceGateWay.wsdl new file mode 100644 index 0000000..8f17a3c --- /dev/null +++ b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_TP/TIPTOPServiceGateWay.wsdl @@ -0,0 +1,3799 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_TP_RPC/Reference.cs b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_TP_RPC/Reference.cs new file mode 100644 index 0000000..b4140cd --- /dev/null +++ b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_TP_RPC/Reference.cs @@ -0,0 +1,7460 @@ +// ------------------------------------------------------------------------------ +// +// 這段程式碼是由工具產生的。 +// 執行階段版本:4.0.30319.42000 +// +// 對這個檔案所做的變更可能會造成錯誤的行為,而且如果重新產生程式碼, +// 變更將會遺失。 +// +// ------------------------------------------------------------------------------ + + +using System; +using System.ComponentModel; +using System.Diagnostics; +using System.Web.Services; +using System.Web.Services.Protocols; +using Microsoft.VisualBasic.CompilerServices; + +// +// 原始程式碼已由 Microsoft.VSDesigner 自動產生,版本 4.0.30319.42000。 +// +namespace AutoRunLib_C.wsERP_TP_RPC +{ + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + [WebServiceBinding(Name = "TIPTOPServiceGateWayBind", Namespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public partial class TIPTOPServiceGateWay : SoapHttpClientProtocol + { + + private System.Threading.SendOrPostCallback CRMGetCustomerDataOperationCompleted; + + private System.Threading.SendOrPostCallback CheckApsExecutionOperationCompleted; + + private System.Threading.SendOrPostCallback CheckUserAuthOperationCompleted; + + private System.Threading.SendOrPostCallback CreateBOMDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreateBillingAPOperationCompleted; + + private System.Threading.SendOrPostCallback CreateCustomerContactDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreateCustomerDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreateCustomerOtheraddressDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreateDepartmentDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreateECNDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreateEmployeeDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreateIssueReturnDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreateItemApprovalDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreateItemMasterDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreateMISCIssueDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreatePLMBOMDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreatePLMTempTableDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreatePotentialCustomerDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreateQuotationDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreateRepSubPBOMDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreateSalesOrderDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreateShippingOrdersWithoutOrdersOperationCompleted; + + private System.Threading.SendOrPostCallback CreateStockInDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreateSupplierItemDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreateVoucherDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreateWOWorkReportDataOperationCompleted; + + private System.Threading.SendOrPostCallback DeletePLMTempTableDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetAPCategoryAccountCodeOperationCompleted; + + private System.Threading.SendOrPostCallback GetAccountDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetAccountSubjectDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetAccountTypeDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetAreaDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetAreaListOperationCompleted; + + private System.Threading.SendOrPostCallback GetAxmDocumentOperationCompleted; + + private System.Threading.SendOrPostCallback GetBOMDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetBrandDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetComponentrepsubDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetCostGroupDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetCountryDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetCountryListOperationCompleted; + + private System.Threading.SendOrPostCallback GetCurrencyDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetCurrencyListOperationCompleted; + + private System.Threading.SendOrPostCallback GetCustClassificationDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetCustListOperationCompleted; + + private System.Threading.SendOrPostCallback GetCustomerContactDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetCustomerDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetCustomerOtheraddressDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetCustomerProductDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetDepartmentDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetDepartmentListOperationCompleted; + + private System.Threading.SendOrPostCallback GetDocumentNumberOperationCompleted; + + private System.Threading.SendOrPostCallback GetEmployeeDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetEmployeeListOperationCompleted; + + private System.Threading.SendOrPostCallback GetExchangeRateDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetInvoiceTypeListOperationCompleted; + + private System.Threading.SendOrPostCallback GetItemDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetItemGroupDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetItemListOperationCompleted; + + private System.Threading.SendOrPostCallback GetItemOtherGroupDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetItemStockListOperationCompleted; + + private System.Threading.SendOrPostCallback GetMFGDocumentOperationCompleted; + + private System.Threading.SendOrPostCallback GetMFGSettingSmaDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetMachineDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetMemoDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetMonthListOperationCompleted; + + private System.Threading.SendOrPostCallback GetOrganizationListOperationCompleted; + + private System.Threading.SendOrPostCallback GetOverdueAmtDetailDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetOverdueAmtRankingDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetPLMTempTableDataStatusOperationCompleted; + + private System.Threading.SendOrPostCallback GetPackingMethodDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetPaymentTermsDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetPotentialCustomerDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetProdClassListOperationCompleted; + + private System.Threading.SendOrPostCallback GetProdRoutingDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetProjectWBSDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetReasonCodeOperationCompleted; + + private System.Threading.SendOrPostCallback GetSOInfoDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetSOInfoDetailDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetSalesStatisticsDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetStockDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetSupplierDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetSupplierItemDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetTableAmendmentDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetTaxTypeDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetTradeTermDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetTransactionCategoryOperationCompleted; + + private System.Threading.SendOrPostCallback GetUnitConversionDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetUserTokenOperationCompleted; + + private System.Threading.SendOrPostCallback GetVoucherDocumentDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetWorkstationDataOperationCompleted; + + private System.Threading.SendOrPostCallback RollbackBillingAPOperationCompleted; + + private System.Threading.SendOrPostCallback RollbackVoucherDataOperationCompleted; + + private bool useDefaultCredentialsSetExplicitly; + + /// + public TIPTOPServiceGateWay() : base() + { + Url = My.MySettings.Default.AutoRunLib_wsERP_TP_RPC_TIPTOPServiceGateWay; + if (IsLocalFileSystemWebService(Url) == true) + { + UseDefaultCredentials = true; + useDefaultCredentialsSetExplicitly = false; + } + else + { + useDefaultCredentialsSetExplicitly = true; + } + } + + public new string Url + { + get + { + return base.Url; + } + set + { + if (IsLocalFileSystemWebService(base.Url) == true && useDefaultCredentialsSetExplicitly == false && IsLocalFileSystemWebService(value) == false) + + { + base.UseDefaultCredentials = false; + } + base.Url = value; + } + } + + public new bool UseDefaultCredentials + { + get + { + return base.UseDefaultCredentials; + } + set + { + base.UseDefaultCredentials = value; + useDefaultCredentialsSetExplicitly = true; + } + } + + /// + public event CRMGetCustomerDataCompletedEventHandler CRMGetCustomerDataCompleted; + + /// + public event CheckApsExecutionCompletedEventHandler CheckApsExecutionCompleted; + + /// + public event CheckUserAuthCompletedEventHandler CheckUserAuthCompleted; + + /// + public event CreateBOMDataCompletedEventHandler CreateBOMDataCompleted; + + /// + public event CreateBillingAPCompletedEventHandler CreateBillingAPCompleted; + + /// + public event CreateCustomerContactDataCompletedEventHandler CreateCustomerContactDataCompleted; + + /// + public event CreateCustomerDataCompletedEventHandler CreateCustomerDataCompleted; + + /// + public event CreateCustomerOtheraddressDataCompletedEventHandler CreateCustomerOtheraddressDataCompleted; + + /// + public event CreateDepartmentDataCompletedEventHandler CreateDepartmentDataCompleted; + + /// + public event CreateECNDataCompletedEventHandler CreateECNDataCompleted; + + /// + public event CreateEmployeeDataCompletedEventHandler CreateEmployeeDataCompleted; + + /// + public event CreateIssueReturnDataCompletedEventHandler CreateIssueReturnDataCompleted; + + /// + public event CreateItemApprovalDataCompletedEventHandler CreateItemApprovalDataCompleted; + + /// + public event CreateItemMasterDataCompletedEventHandler CreateItemMasterDataCompleted; + + /// + public event CreateMISCIssueDataCompletedEventHandler CreateMISCIssueDataCompleted; + + /// + public event CreatePLMBOMDataCompletedEventHandler CreatePLMBOMDataCompleted; + + /// + public event CreatePLMTempTableDataCompletedEventHandler CreatePLMTempTableDataCompleted; + + /// + public event CreatePotentialCustomerDataCompletedEventHandler CreatePotentialCustomerDataCompleted; + + /// + public event CreateQuotationDataCompletedEventHandler CreateQuotationDataCompleted; + + /// + public event CreateRepSubPBOMDataCompletedEventHandler CreateRepSubPBOMDataCompleted; + + /// + public event CreateSalesOrderDataCompletedEventHandler CreateSalesOrderDataCompleted; + + /// + public event CreateShippingOrdersWithoutOrdersCompletedEventHandler CreateShippingOrdersWithoutOrdersCompleted; + + /// + public event CreateStockInDataCompletedEventHandler CreateStockInDataCompleted; + + /// + public event CreateSupplierItemDataCompletedEventHandler CreateSupplierItemDataCompleted; + + /// + public event CreateVoucherDataCompletedEventHandler CreateVoucherDataCompleted; + + /// + public event CreateWOWorkReportDataCompletedEventHandler CreateWOWorkReportDataCompleted; + + /// + public event DeletePLMTempTableDataCompletedEventHandler DeletePLMTempTableDataCompleted; + + /// + public event GetAPCategoryAccountCodeCompletedEventHandler GetAPCategoryAccountCodeCompleted; + + /// + public event GetAccountDataCompletedEventHandler GetAccountDataCompleted; + + /// + public event GetAccountSubjectDataCompletedEventHandler GetAccountSubjectDataCompleted; + + /// + public event GetAccountTypeDataCompletedEventHandler GetAccountTypeDataCompleted; + + /// + public event GetAreaDataCompletedEventHandler GetAreaDataCompleted; + + /// + public event GetAreaListCompletedEventHandler GetAreaListCompleted; + + /// + public event GetAxmDocumentCompletedEventHandler GetAxmDocumentCompleted; + + /// + public event GetBOMDataCompletedEventHandler GetBOMDataCompleted; + + /// + public event GetBrandDataCompletedEventHandler GetBrandDataCompleted; + + /// + public event GetComponentrepsubDataCompletedEventHandler GetComponentrepsubDataCompleted; + + /// + public event GetCostGroupDataCompletedEventHandler GetCostGroupDataCompleted; + + /// + public event GetCountryDataCompletedEventHandler GetCountryDataCompleted; + + /// + public event GetCountryListCompletedEventHandler GetCountryListCompleted; + + /// + public event GetCurrencyDataCompletedEventHandler GetCurrencyDataCompleted; + + /// + public event GetCurrencyListCompletedEventHandler GetCurrencyListCompleted; + + /// + public event GetCustClassificationDataCompletedEventHandler GetCustClassificationDataCompleted; + + /// + public event GetCustListCompletedEventHandler GetCustListCompleted; + + /// + public event GetCustomerContactDataCompletedEventHandler GetCustomerContactDataCompleted; + + /// + public event GetCustomerDataCompletedEventHandler GetCustomerDataCompleted; + + /// + public event GetCustomerOtheraddressDataCompletedEventHandler GetCustomerOtheraddressDataCompleted; + + /// + public event GetCustomerProductDataCompletedEventHandler GetCustomerProductDataCompleted; + + /// + public event GetDepartmentDataCompletedEventHandler GetDepartmentDataCompleted; + + /// + public event GetDepartmentListCompletedEventHandler GetDepartmentListCompleted; + + /// + public event GetDocumentNumberCompletedEventHandler GetDocumentNumberCompleted; + + /// + public event GetEmployeeDataCompletedEventHandler GetEmployeeDataCompleted; + + /// + public event GetEmployeeListCompletedEventHandler GetEmployeeListCompleted; + + /// + public event GetExchangeRateDataCompletedEventHandler GetExchangeRateDataCompleted; + + /// + public event GetInvoiceTypeListCompletedEventHandler GetInvoiceTypeListCompleted; + + /// + public event GetItemDataCompletedEventHandler GetItemDataCompleted; + + /// + public event GetItemGroupDataCompletedEventHandler GetItemGroupDataCompleted; + + /// + public event GetItemListCompletedEventHandler GetItemListCompleted; + + /// + public event GetItemOtherGroupDataCompletedEventHandler GetItemOtherGroupDataCompleted; + + /// + public event GetItemStockListCompletedEventHandler GetItemStockListCompleted; + + /// + public event GetMFGDocumentCompletedEventHandler GetMFGDocumentCompleted; + + /// + public event GetMFGSettingSmaDataCompletedEventHandler GetMFGSettingSmaDataCompleted; + + /// + public event GetMachineDataCompletedEventHandler GetMachineDataCompleted; + + /// + public event GetMemoDataCompletedEventHandler GetMemoDataCompleted; + + /// + public event GetMonthListCompletedEventHandler GetMonthListCompleted; + + /// + public event GetOrganizationListCompletedEventHandler GetOrganizationListCompleted; + + /// + public event GetOverdueAmtDetailDataCompletedEventHandler GetOverdueAmtDetailDataCompleted; + + /// + public event GetOverdueAmtRankingDataCompletedEventHandler GetOverdueAmtRankingDataCompleted; + + /// + public event GetPLMTempTableDataStatusCompletedEventHandler GetPLMTempTableDataStatusCompleted; + + /// + public event GetPackingMethodDataCompletedEventHandler GetPackingMethodDataCompleted; + + /// + public event GetPaymentTermsDataCompletedEventHandler GetPaymentTermsDataCompleted; + + /// + public event GetPotentialCustomerDataCompletedEventHandler GetPotentialCustomerDataCompleted; + + /// + public event GetProdClassListCompletedEventHandler GetProdClassListCompleted; + + /// + public event GetProdRoutingDataCompletedEventHandler GetProdRoutingDataCompleted; + + /// + public event GetProjectWBSDataCompletedEventHandler GetProjectWBSDataCompleted; + + /// + public event GetReasonCodeCompletedEventHandler GetReasonCodeCompleted; + + /// + public event GetSOInfoDataCompletedEventHandler GetSOInfoDataCompleted; + + /// + public event GetSOInfoDetailDataCompletedEventHandler GetSOInfoDetailDataCompleted; + + /// + public event GetSalesStatisticsDataCompletedEventHandler GetSalesStatisticsDataCompleted; + + /// + public event GetStockDataCompletedEventHandler GetStockDataCompleted; + + /// + public event GetSupplierDataCompletedEventHandler GetSupplierDataCompleted; + + /// + public event GetSupplierItemDataCompletedEventHandler GetSupplierItemDataCompleted; + + /// + public event GetTableAmendmentDataCompletedEventHandler GetTableAmendmentDataCompleted; + + /// + public event GetTaxTypeDataCompletedEventHandler GetTaxTypeDataCompleted; + + /// + public event GetTradeTermDataCompletedEventHandler GetTradeTermDataCompleted; + + /// + public event GetTransactionCategoryCompletedEventHandler GetTransactionCategoryCompleted; + + /// + public event GetUnitConversionDataCompletedEventHandler GetUnitConversionDataCompleted; + + /// + public event GetUserTokenCompletedEventHandler GetUserTokenCompleted; + + /// + public event GetVoucherDocumentDataCompletedEventHandler GetVoucherDocumentDataCompleted; + + /// + public event GetWorkstationDataCompletedEventHandler GetWorkstationDataCompleted; + + /// + public event RollbackBillingAPCompletedEventHandler RollbackBillingAPCompleted; + + /// + public event RollbackVoucherDataCompletedEventHandler RollbackVoucherDataCompleted; + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string CRMGetCustomerData(string request) + { + object[] results = Invoke("CRMGetCustomerData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCRMGetCustomerData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CRMGetCustomerData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCRMGetCustomerData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CRMGetCustomerDataAsync(string request) + { + CRMGetCustomerDataAsync(request, null); + } + + /// + public void CRMGetCustomerDataAsync(string request, object userState) + { + if (CRMGetCustomerDataOperationCompleted == null) + { + CRMGetCustomerDataOperationCompleted = OnCRMGetCustomerDataOperationCompleted; + } + InvokeAsync("CRMGetCustomerData", new object[] { request }, CRMGetCustomerDataOperationCompleted, userState); + } + + private void OnCRMGetCustomerDataOperationCompleted(object arg) + { + if (CRMGetCustomerDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CRMGetCustomerDataCompleted?.Invoke(this, new CRMGetCustomerDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string CheckApsExecution(string request) + { + object[] results = Invoke("CheckApsExecution", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCheckApsExecution(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CheckApsExecution", new object[] { request }, callback, asyncState); + } + + /// + public string EndCheckApsExecution(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CheckApsExecutionAsync(string request) + { + CheckApsExecutionAsync(request, null); + } + + /// + public void CheckApsExecutionAsync(string request, object userState) + { + if (CheckApsExecutionOperationCompleted == null) + { + CheckApsExecutionOperationCompleted = OnCheckApsExecutionOperationCompleted; + } + InvokeAsync("CheckApsExecution", new object[] { request }, CheckApsExecutionOperationCompleted, userState); + } + + private void OnCheckApsExecutionOperationCompleted(object arg) + { + if (CheckApsExecutionCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CheckApsExecutionCompleted?.Invoke(this, new CheckApsExecutionCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string CheckUserAuth(string request) + { + object[] results = Invoke("CheckUserAuth", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCheckUserAuth(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CheckUserAuth", new object[] { request }, callback, asyncState); + } + + /// + public string EndCheckUserAuth(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CheckUserAuthAsync(string request) + { + CheckUserAuthAsync(request, null); + } + + /// + public void CheckUserAuthAsync(string request, object userState) + { + if (CheckUserAuthOperationCompleted == null) + { + CheckUserAuthOperationCompleted = OnCheckUserAuthOperationCompleted; + } + InvokeAsync("CheckUserAuth", new object[] { request }, CheckUserAuthOperationCompleted, userState); + } + + private void OnCheckUserAuthOperationCompleted(object arg) + { + if (CheckUserAuthCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CheckUserAuthCompleted?.Invoke(this, new CheckUserAuthCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string CreateBOMData(string request) + { + object[] results = Invoke("CreateBOMData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateBOMData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateBOMData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateBOMData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateBOMDataAsync(string request) + { + CreateBOMDataAsync(request, null); + } + + /// + public void CreateBOMDataAsync(string request, object userState) + { + if (CreateBOMDataOperationCompleted == null) + { + CreateBOMDataOperationCompleted = OnCreateBOMDataOperationCompleted; + } + InvokeAsync("CreateBOMData", new object[] { request }, CreateBOMDataOperationCompleted, userState); + } + + private void OnCreateBOMDataOperationCompleted(object arg) + { + if (CreateBOMDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateBOMDataCompleted?.Invoke(this, new CreateBOMDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string CreateBillingAP(string request) + { + object[] results = Invoke("CreateBillingAP", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateBillingAP(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateBillingAP", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateBillingAP(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateBillingAPAsync(string request) + { + CreateBillingAPAsync(request, null); + } + + /// + public void CreateBillingAPAsync(string request, object userState) + { + if (CreateBillingAPOperationCompleted == null) + { + CreateBillingAPOperationCompleted = OnCreateBillingAPOperationCompleted; + } + InvokeAsync("CreateBillingAP", new object[] { request }, CreateBillingAPOperationCompleted, userState); + } + + private void OnCreateBillingAPOperationCompleted(object arg) + { + if (CreateBillingAPCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateBillingAPCompleted?.Invoke(this, new CreateBillingAPCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string CreateCustomerContactData(string request) + { + object[] results = Invoke("CreateCustomerContactData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateCustomerContactData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateCustomerContactData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateCustomerContactData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateCustomerContactDataAsync(string request) + { + CreateCustomerContactDataAsync(request, null); + } + + /// + public void CreateCustomerContactDataAsync(string request, object userState) + { + if (CreateCustomerContactDataOperationCompleted == null) + { + CreateCustomerContactDataOperationCompleted = OnCreateCustomerContactDataOperationCompleted; + } + InvokeAsync("CreateCustomerContactData", new object[] { request }, CreateCustomerContactDataOperationCompleted, userState); + } + + private void OnCreateCustomerContactDataOperationCompleted(object arg) + { + if (CreateCustomerContactDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateCustomerContactDataCompleted?.Invoke(this, new CreateCustomerContactDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string CreateCustomerData(string request) + { + object[] results = Invoke("CreateCustomerData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateCustomerData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateCustomerData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateCustomerData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateCustomerDataAsync(string request) + { + CreateCustomerDataAsync(request, null); + } + + /// + public void CreateCustomerDataAsync(string request, object userState) + { + if (CreateCustomerDataOperationCompleted == null) + { + CreateCustomerDataOperationCompleted = OnCreateCustomerDataOperationCompleted; + } + InvokeAsync("CreateCustomerData", new object[] { request }, CreateCustomerDataOperationCompleted, userState); + } + + private void OnCreateCustomerDataOperationCompleted(object arg) + { + if (CreateCustomerDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateCustomerDataCompleted?.Invoke(this, new CreateCustomerDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string CreateCustomerOtheraddressData(string request) + { + object[] results = Invoke("CreateCustomerOtheraddressData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateCustomerOtheraddressData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateCustomerOtheraddressData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateCustomerOtheraddressData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateCustomerOtheraddressDataAsync(string request) + { + CreateCustomerOtheraddressDataAsync(request, null); + } + + /// + public void CreateCustomerOtheraddressDataAsync(string request, object userState) + { + if (CreateCustomerOtheraddressDataOperationCompleted == null) + { + CreateCustomerOtheraddressDataOperationCompleted = OnCreateCustomerOtheraddressDataOperationCompleted; + } + InvokeAsync("CreateCustomerOtheraddressData", new object[] { request }, CreateCustomerOtheraddressDataOperationCompleted, userState); + } + + private void OnCreateCustomerOtheraddressDataOperationCompleted(object arg) + { + if (CreateCustomerOtheraddressDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateCustomerOtheraddressDataCompleted?.Invoke(this, new CreateCustomerOtheraddressDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string CreateDepartmentData(string request) + { + object[] results = Invoke("CreateDepartmentData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateDepartmentData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateDepartmentData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateDepartmentData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateDepartmentDataAsync(string request) + { + CreateDepartmentDataAsync(request, null); + } + + /// + public void CreateDepartmentDataAsync(string request, object userState) + { + if (CreateDepartmentDataOperationCompleted == null) + { + CreateDepartmentDataOperationCompleted = OnCreateDepartmentDataOperationCompleted; + } + InvokeAsync("CreateDepartmentData", new object[] { request }, CreateDepartmentDataOperationCompleted, userState); + } + + private void OnCreateDepartmentDataOperationCompleted(object arg) + { + if (CreateDepartmentDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateDepartmentDataCompleted?.Invoke(this, new CreateDepartmentDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string CreateECNData(string request) + { + object[] results = Invoke("CreateECNData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateECNData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateECNData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateECNData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateECNDataAsync(string request) + { + CreateECNDataAsync(request, null); + } + + /// + public void CreateECNDataAsync(string request, object userState) + { + if (CreateECNDataOperationCompleted == null) + { + CreateECNDataOperationCompleted = OnCreateECNDataOperationCompleted; + } + InvokeAsync("CreateECNData", new object[] { request }, CreateECNDataOperationCompleted, userState); + } + + private void OnCreateECNDataOperationCompleted(object arg) + { + if (CreateECNDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateECNDataCompleted?.Invoke(this, new CreateECNDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string CreateEmployeeData(string request) + { + object[] results = Invoke("CreateEmployeeData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateEmployeeData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateEmployeeData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateEmployeeData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateEmployeeDataAsync(string request) + { + CreateEmployeeDataAsync(request, null); + } + + /// + public void CreateEmployeeDataAsync(string request, object userState) + { + if (CreateEmployeeDataOperationCompleted == null) + { + CreateEmployeeDataOperationCompleted = OnCreateEmployeeDataOperationCompleted; + } + InvokeAsync("CreateEmployeeData", new object[] { request }, CreateEmployeeDataOperationCompleted, userState); + } + + private void OnCreateEmployeeDataOperationCompleted(object arg) + { + if (CreateEmployeeDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateEmployeeDataCompleted?.Invoke(this, new CreateEmployeeDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string CreateIssueReturnData(string request) + { + object[] results = Invoke("CreateIssueReturnData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateIssueReturnData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateIssueReturnData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateIssueReturnData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateIssueReturnDataAsync(string request) + { + CreateIssueReturnDataAsync(request, null); + } + + /// + public void CreateIssueReturnDataAsync(string request, object userState) + { + if (CreateIssueReturnDataOperationCompleted == null) + { + CreateIssueReturnDataOperationCompleted = OnCreateIssueReturnDataOperationCompleted; + } + InvokeAsync("CreateIssueReturnData", new object[] { request }, CreateIssueReturnDataOperationCompleted, userState); + } + + private void OnCreateIssueReturnDataOperationCompleted(object arg) + { + if (CreateIssueReturnDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateIssueReturnDataCompleted?.Invoke(this, new CreateIssueReturnDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string CreateItemApprovalData(string request) + { + object[] results = Invoke("CreateItemApprovalData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateItemApprovalData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateItemApprovalData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateItemApprovalData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateItemApprovalDataAsync(string request) + { + CreateItemApprovalDataAsync(request, null); + } + + /// + public void CreateItemApprovalDataAsync(string request, object userState) + { + if (CreateItemApprovalDataOperationCompleted == null) + { + CreateItemApprovalDataOperationCompleted = OnCreateItemApprovalDataOperationCompleted; + } + InvokeAsync("CreateItemApprovalData", new object[] { request }, CreateItemApprovalDataOperationCompleted, userState); + } + + private void OnCreateItemApprovalDataOperationCompleted(object arg) + { + if (CreateItemApprovalDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateItemApprovalDataCompleted?.Invoke(this, new CreateItemApprovalDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string CreateItemMasterData(string request) + { + object[] results = Invoke("CreateItemMasterData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateItemMasterData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateItemMasterData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateItemMasterData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateItemMasterDataAsync(string request) + { + CreateItemMasterDataAsync(request, null); + } + + /// + public void CreateItemMasterDataAsync(string request, object userState) + { + if (CreateItemMasterDataOperationCompleted == null) + { + CreateItemMasterDataOperationCompleted = OnCreateItemMasterDataOperationCompleted; + } + InvokeAsync("CreateItemMasterData", new object[] { request }, CreateItemMasterDataOperationCompleted, userState); + } + + private void OnCreateItemMasterDataOperationCompleted(object arg) + { + if (CreateItemMasterDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateItemMasterDataCompleted?.Invoke(this, new CreateItemMasterDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string CreateMISCIssueData(string request) + { + object[] results = Invoke("CreateMISCIssueData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateMISCIssueData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateMISCIssueData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateMISCIssueData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateMISCIssueDataAsync(string request) + { + CreateMISCIssueDataAsync(request, null); + } + + /// + public void CreateMISCIssueDataAsync(string request, object userState) + { + if (CreateMISCIssueDataOperationCompleted == null) + { + CreateMISCIssueDataOperationCompleted = OnCreateMISCIssueDataOperationCompleted; + } + InvokeAsync("CreateMISCIssueData", new object[] { request }, CreateMISCIssueDataOperationCompleted, userState); + } + + private void OnCreateMISCIssueDataOperationCompleted(object arg) + { + if (CreateMISCIssueDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateMISCIssueDataCompleted?.Invoke(this, new CreateMISCIssueDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string CreatePLMBOMData(string request) + { + object[] results = Invoke("CreatePLMBOMData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreatePLMBOMData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreatePLMBOMData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreatePLMBOMData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreatePLMBOMDataAsync(string request) + { + CreatePLMBOMDataAsync(request, null); + } + + /// + public void CreatePLMBOMDataAsync(string request, object userState) + { + if (CreatePLMBOMDataOperationCompleted == null) + { + CreatePLMBOMDataOperationCompleted = OnCreatePLMBOMDataOperationCompleted; + } + InvokeAsync("CreatePLMBOMData", new object[] { request }, CreatePLMBOMDataOperationCompleted, userState); + } + + private void OnCreatePLMBOMDataOperationCompleted(object arg) + { + if (CreatePLMBOMDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreatePLMBOMDataCompleted?.Invoke(this, new CreatePLMBOMDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string CreatePLMTempTableData(string request) + { + object[] results = Invoke("CreatePLMTempTableData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreatePLMTempTableData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreatePLMTempTableData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreatePLMTempTableData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreatePLMTempTableDataAsync(string request) + { + CreatePLMTempTableDataAsync(request, null); + } + + /// + public void CreatePLMTempTableDataAsync(string request, object userState) + { + if (CreatePLMTempTableDataOperationCompleted == null) + { + CreatePLMTempTableDataOperationCompleted = OnCreatePLMTempTableDataOperationCompleted; + } + InvokeAsync("CreatePLMTempTableData", new object[] { request }, CreatePLMTempTableDataOperationCompleted, userState); + } + + private void OnCreatePLMTempTableDataOperationCompleted(object arg) + { + if (CreatePLMTempTableDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreatePLMTempTableDataCompleted?.Invoke(this, new CreatePLMTempTableDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string CreatePotentialCustomerData(string request) + { + object[] results = Invoke("CreatePotentialCustomerData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreatePotentialCustomerData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreatePotentialCustomerData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreatePotentialCustomerData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreatePotentialCustomerDataAsync(string request) + { + CreatePotentialCustomerDataAsync(request, null); + } + + /// + public void CreatePotentialCustomerDataAsync(string request, object userState) + { + if (CreatePotentialCustomerDataOperationCompleted == null) + { + CreatePotentialCustomerDataOperationCompleted = OnCreatePotentialCustomerDataOperationCompleted; + } + InvokeAsync("CreatePotentialCustomerData", new object[] { request }, CreatePotentialCustomerDataOperationCompleted, userState); + } + + private void OnCreatePotentialCustomerDataOperationCompleted(object arg) + { + if (CreatePotentialCustomerDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreatePotentialCustomerDataCompleted?.Invoke(this, new CreatePotentialCustomerDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string CreateQuotationData(string request) + { + object[] results = Invoke("CreateQuotationData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateQuotationData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateQuotationData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateQuotationData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateQuotationDataAsync(string request) + { + CreateQuotationDataAsync(request, null); + } + + /// + public void CreateQuotationDataAsync(string request, object userState) + { + if (CreateQuotationDataOperationCompleted == null) + { + CreateQuotationDataOperationCompleted = OnCreateQuotationDataOperationCompleted; + } + InvokeAsync("CreateQuotationData", new object[] { request }, CreateQuotationDataOperationCompleted, userState); + } + + private void OnCreateQuotationDataOperationCompleted(object arg) + { + if (CreateQuotationDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateQuotationDataCompleted?.Invoke(this, new CreateQuotationDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string CreateRepSubPBOMData(string request) + { + object[] results = Invoke("CreateRepSubPBOMData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateRepSubPBOMData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateRepSubPBOMData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateRepSubPBOMData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateRepSubPBOMDataAsync(string request) + { + CreateRepSubPBOMDataAsync(request, null); + } + + /// + public void CreateRepSubPBOMDataAsync(string request, object userState) + { + if (CreateRepSubPBOMDataOperationCompleted == null) + { + CreateRepSubPBOMDataOperationCompleted = OnCreateRepSubPBOMDataOperationCompleted; + } + InvokeAsync("CreateRepSubPBOMData", new object[] { request }, CreateRepSubPBOMDataOperationCompleted, userState); + } + + private void OnCreateRepSubPBOMDataOperationCompleted(object arg) + { + if (CreateRepSubPBOMDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateRepSubPBOMDataCompleted?.Invoke(this, new CreateRepSubPBOMDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string CreateSalesOrderData(string request) + { + object[] results = Invoke("CreateSalesOrderData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateSalesOrderData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateSalesOrderData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateSalesOrderData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateSalesOrderDataAsync(string request) + { + CreateSalesOrderDataAsync(request, null); + } + + /// + public void CreateSalesOrderDataAsync(string request, object userState) + { + if (CreateSalesOrderDataOperationCompleted == null) + { + CreateSalesOrderDataOperationCompleted = OnCreateSalesOrderDataOperationCompleted; + } + InvokeAsync("CreateSalesOrderData", new object[] { request }, CreateSalesOrderDataOperationCompleted, userState); + } + + private void OnCreateSalesOrderDataOperationCompleted(object arg) + { + if (CreateSalesOrderDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateSalesOrderDataCompleted?.Invoke(this, new CreateSalesOrderDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string CreateShippingOrdersWithoutOrders(string request) + { + object[] results = Invoke("CreateShippingOrdersWithoutOrders", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateShippingOrdersWithoutOrders(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateShippingOrdersWithoutOrders", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateShippingOrdersWithoutOrders(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateShippingOrdersWithoutOrdersAsync(string request) + { + CreateShippingOrdersWithoutOrdersAsync(request, null); + } + + /// + public void CreateShippingOrdersWithoutOrdersAsync(string request, object userState) + { + if (CreateShippingOrdersWithoutOrdersOperationCompleted == null) + { + CreateShippingOrdersWithoutOrdersOperationCompleted = OnCreateShippingOrdersWithoutOrdersOperationCompleted; + } + InvokeAsync("CreateShippingOrdersWithoutOrders", new object[] { request }, CreateShippingOrdersWithoutOrdersOperationCompleted, userState); + } + + private void OnCreateShippingOrdersWithoutOrdersOperationCompleted(object arg) + { + if (CreateShippingOrdersWithoutOrdersCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateShippingOrdersWithoutOrdersCompleted?.Invoke(this, new CreateShippingOrdersWithoutOrdersCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string CreateStockInData(string request) + { + object[] results = Invoke("CreateStockInData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateStockInData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateStockInData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateStockInData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateStockInDataAsync(string request) + { + CreateStockInDataAsync(request, null); + } + + /// + public void CreateStockInDataAsync(string request, object userState) + { + if (CreateStockInDataOperationCompleted == null) + { + CreateStockInDataOperationCompleted = OnCreateStockInDataOperationCompleted; + } + InvokeAsync("CreateStockInData", new object[] { request }, CreateStockInDataOperationCompleted, userState); + } + + private void OnCreateStockInDataOperationCompleted(object arg) + { + if (CreateStockInDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateStockInDataCompleted?.Invoke(this, new CreateStockInDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string CreateSupplierItemData(string request) + { + object[] results = Invoke("CreateSupplierItemData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateSupplierItemData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateSupplierItemData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateSupplierItemData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateSupplierItemDataAsync(string request) + { + CreateSupplierItemDataAsync(request, null); + } + + /// + public void CreateSupplierItemDataAsync(string request, object userState) + { + if (CreateSupplierItemDataOperationCompleted == null) + { + CreateSupplierItemDataOperationCompleted = OnCreateSupplierItemDataOperationCompleted; + } + InvokeAsync("CreateSupplierItemData", new object[] { request }, CreateSupplierItemDataOperationCompleted, userState); + } + + private void OnCreateSupplierItemDataOperationCompleted(object arg) + { + if (CreateSupplierItemDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateSupplierItemDataCompleted?.Invoke(this, new CreateSupplierItemDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string CreateVoucherData(string request) + { + object[] results = Invoke("CreateVoucherData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateVoucherData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateVoucherData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateVoucherData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateVoucherDataAsync(string request) + { + CreateVoucherDataAsync(request, null); + } + + /// + public void CreateVoucherDataAsync(string request, object userState) + { + if (CreateVoucherDataOperationCompleted == null) + { + CreateVoucherDataOperationCompleted = OnCreateVoucherDataOperationCompleted; + } + InvokeAsync("CreateVoucherData", new object[] { request }, CreateVoucherDataOperationCompleted, userState); + } + + private void OnCreateVoucherDataOperationCompleted(object arg) + { + if (CreateVoucherDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateVoucherDataCompleted?.Invoke(this, new CreateVoucherDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string CreateWOWorkReportData(string request) + { + object[] results = Invoke("CreateWOWorkReportData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateWOWorkReportData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateWOWorkReportData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateWOWorkReportData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateWOWorkReportDataAsync(string request) + { + CreateWOWorkReportDataAsync(request, null); + } + + /// + public void CreateWOWorkReportDataAsync(string request, object userState) + { + if (CreateWOWorkReportDataOperationCompleted == null) + { + CreateWOWorkReportDataOperationCompleted = OnCreateWOWorkReportDataOperationCompleted; + } + InvokeAsync("CreateWOWorkReportData", new object[] { request }, CreateWOWorkReportDataOperationCompleted, userState); + } + + private void OnCreateWOWorkReportDataOperationCompleted(object arg) + { + if (CreateWOWorkReportDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateWOWorkReportDataCompleted?.Invoke(this, new CreateWOWorkReportDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string DeletePLMTempTableData(string request) + { + object[] results = Invoke("DeletePLMTempTableData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginDeletePLMTempTableData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("DeletePLMTempTableData", new object[] { request }, callback, asyncState); + } + + /// + public string EndDeletePLMTempTableData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void DeletePLMTempTableDataAsync(string request) + { + DeletePLMTempTableDataAsync(request, null); + } + + /// + public void DeletePLMTempTableDataAsync(string request, object userState) + { + if (DeletePLMTempTableDataOperationCompleted == null) + { + DeletePLMTempTableDataOperationCompleted = OnDeletePLMTempTableDataOperationCompleted; + } + InvokeAsync("DeletePLMTempTableData", new object[] { request }, DeletePLMTempTableDataOperationCompleted, userState); + } + + private void OnDeletePLMTempTableDataOperationCompleted(object arg) + { + if (DeletePLMTempTableDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + DeletePLMTempTableDataCompleted?.Invoke(this, new DeletePLMTempTableDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetAPCategoryAccountCode(string request) + { + object[] results = Invoke("GetAPCategoryAccountCode", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetAPCategoryAccountCode(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetAPCategoryAccountCode", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetAPCategoryAccountCode(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetAPCategoryAccountCodeAsync(string request) + { + GetAPCategoryAccountCodeAsync(request, null); + } + + /// + public void GetAPCategoryAccountCodeAsync(string request, object userState) + { + if (GetAPCategoryAccountCodeOperationCompleted == null) + { + GetAPCategoryAccountCodeOperationCompleted = OnGetAPCategoryAccountCodeOperationCompleted; + } + InvokeAsync("GetAPCategoryAccountCode", new object[] { request }, GetAPCategoryAccountCodeOperationCompleted, userState); + } + + private void OnGetAPCategoryAccountCodeOperationCompleted(object arg) + { + if (GetAPCategoryAccountCodeCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetAPCategoryAccountCodeCompleted?.Invoke(this, new GetAPCategoryAccountCodeCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetAccountData(string request) + { + object[] results = Invoke("GetAccountData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetAccountData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetAccountData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetAccountData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetAccountDataAsync(string request) + { + GetAccountDataAsync(request, null); + } + + /// + public void GetAccountDataAsync(string request, object userState) + { + if (GetAccountDataOperationCompleted == null) + { + GetAccountDataOperationCompleted = OnGetAccountDataOperationCompleted; + } + InvokeAsync("GetAccountData", new object[] { request }, GetAccountDataOperationCompleted, userState); + } + + private void OnGetAccountDataOperationCompleted(object arg) + { + if (GetAccountDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetAccountDataCompleted?.Invoke(this, new GetAccountDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetAccountSubjectData(string request) + { + object[] results = Invoke("GetAccountSubjectData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetAccountSubjectData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetAccountSubjectData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetAccountSubjectData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetAccountSubjectDataAsync(string request) + { + GetAccountSubjectDataAsync(request, null); + } + + /// + public void GetAccountSubjectDataAsync(string request, object userState) + { + if (GetAccountSubjectDataOperationCompleted == null) + { + GetAccountSubjectDataOperationCompleted = OnGetAccountSubjectDataOperationCompleted; + } + InvokeAsync("GetAccountSubjectData", new object[] { request }, GetAccountSubjectDataOperationCompleted, userState); + } + + private void OnGetAccountSubjectDataOperationCompleted(object arg) + { + if (GetAccountSubjectDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetAccountSubjectDataCompleted?.Invoke(this, new GetAccountSubjectDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetAccountTypeData(string request) + { + object[] results = Invoke("GetAccountTypeData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetAccountTypeData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetAccountTypeData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetAccountTypeData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetAccountTypeDataAsync(string request) + { + GetAccountTypeDataAsync(request, null); + } + + /// + public void GetAccountTypeDataAsync(string request, object userState) + { + if (GetAccountTypeDataOperationCompleted == null) + { + GetAccountTypeDataOperationCompleted = OnGetAccountTypeDataOperationCompleted; + } + InvokeAsync("GetAccountTypeData", new object[] { request }, GetAccountTypeDataOperationCompleted, userState); + } + + private void OnGetAccountTypeDataOperationCompleted(object arg) + { + if (GetAccountTypeDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetAccountTypeDataCompleted?.Invoke(this, new GetAccountTypeDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetAreaData(string request) + { + object[] results = Invoke("GetAreaData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetAreaData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetAreaData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetAreaData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetAreaDataAsync(string request) + { + GetAreaDataAsync(request, null); + } + + /// + public void GetAreaDataAsync(string request, object userState) + { + if (GetAreaDataOperationCompleted == null) + { + GetAreaDataOperationCompleted = OnGetAreaDataOperationCompleted; + } + InvokeAsync("GetAreaData", new object[] { request }, GetAreaDataOperationCompleted, userState); + } + + private void OnGetAreaDataOperationCompleted(object arg) + { + if (GetAreaDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetAreaDataCompleted?.Invoke(this, new GetAreaDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetAreaList(string request) + { + object[] results = Invoke("GetAreaList", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetAreaList(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetAreaList", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetAreaList(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetAreaListAsync(string request) + { + GetAreaListAsync(request, null); + } + + /// + public void GetAreaListAsync(string request, object userState) + { + if (GetAreaListOperationCompleted == null) + { + GetAreaListOperationCompleted = OnGetAreaListOperationCompleted; + } + InvokeAsync("GetAreaList", new object[] { request }, GetAreaListOperationCompleted, userState); + } + + private void OnGetAreaListOperationCompleted(object arg) + { + if (GetAreaListCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetAreaListCompleted?.Invoke(this, new GetAreaListCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetAxmDocument(string request) + { + object[] results = Invoke("GetAxmDocument", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetAxmDocument(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetAxmDocument", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetAxmDocument(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetAxmDocumentAsync(string request) + { + GetAxmDocumentAsync(request, null); + } + + /// + public void GetAxmDocumentAsync(string request, object userState) + { + if (GetAxmDocumentOperationCompleted == null) + { + GetAxmDocumentOperationCompleted = OnGetAxmDocumentOperationCompleted; + } + InvokeAsync("GetAxmDocument", new object[] { request }, GetAxmDocumentOperationCompleted, userState); + } + + private void OnGetAxmDocumentOperationCompleted(object arg) + { + if (GetAxmDocumentCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetAxmDocumentCompleted?.Invoke(this, new GetAxmDocumentCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetBOMData(string request) + { + object[] results = Invoke("GetBOMData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetBOMData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetBOMData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetBOMData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetBOMDataAsync(string request) + { + GetBOMDataAsync(request, null); + } + + /// + public void GetBOMDataAsync(string request, object userState) + { + if (GetBOMDataOperationCompleted == null) + { + GetBOMDataOperationCompleted = OnGetBOMDataOperationCompleted; + } + InvokeAsync("GetBOMData", new object[] { request }, GetBOMDataOperationCompleted, userState); + } + + private void OnGetBOMDataOperationCompleted(object arg) + { + if (GetBOMDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetBOMDataCompleted?.Invoke(this, new GetBOMDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetBrandData(string request) + { + object[] results = Invoke("GetBrandData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetBrandData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetBrandData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetBrandData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetBrandDataAsync(string request) + { + GetBrandDataAsync(request, null); + } + + /// + public void GetBrandDataAsync(string request, object userState) + { + if (GetBrandDataOperationCompleted == null) + { + GetBrandDataOperationCompleted = OnGetBrandDataOperationCompleted; + } + InvokeAsync("GetBrandData", new object[] { request }, GetBrandDataOperationCompleted, userState); + } + + private void OnGetBrandDataOperationCompleted(object arg) + { + if (GetBrandDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetBrandDataCompleted?.Invoke(this, new GetBrandDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetComponentrepsubData(string request) + { + object[] results = Invoke("GetComponentrepsubData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetComponentrepsubData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetComponentrepsubData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetComponentrepsubData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetComponentrepsubDataAsync(string request) + { + GetComponentrepsubDataAsync(request, null); + } + + /// + public void GetComponentrepsubDataAsync(string request, object userState) + { + if (GetComponentrepsubDataOperationCompleted == null) + { + GetComponentrepsubDataOperationCompleted = OnGetComponentrepsubDataOperationCompleted; + } + InvokeAsync("GetComponentrepsubData", new object[] { request }, GetComponentrepsubDataOperationCompleted, userState); + } + + private void OnGetComponentrepsubDataOperationCompleted(object arg) + { + if (GetComponentrepsubDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetComponentrepsubDataCompleted?.Invoke(this, new GetComponentrepsubDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetCostGroupData(string request) + { + object[] results = Invoke("GetCostGroupData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetCostGroupData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetCostGroupData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetCostGroupData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetCostGroupDataAsync(string request) + { + GetCostGroupDataAsync(request, null); + } + + /// + public void GetCostGroupDataAsync(string request, object userState) + { + if (GetCostGroupDataOperationCompleted == null) + { + GetCostGroupDataOperationCompleted = OnGetCostGroupDataOperationCompleted; + } + InvokeAsync("GetCostGroupData", new object[] { request }, GetCostGroupDataOperationCompleted, userState); + } + + private void OnGetCostGroupDataOperationCompleted(object arg) + { + if (GetCostGroupDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetCostGroupDataCompleted?.Invoke(this, new GetCostGroupDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetCountryData(string request) + { + object[] results = Invoke("GetCountryData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetCountryData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetCountryData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetCountryData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetCountryDataAsync(string request) + { + GetCountryDataAsync(request, null); + } + + /// + public void GetCountryDataAsync(string request, object userState) + { + if (GetCountryDataOperationCompleted == null) + { + GetCountryDataOperationCompleted = OnGetCountryDataOperationCompleted; + } + InvokeAsync("GetCountryData", new object[] { request }, GetCountryDataOperationCompleted, userState); + } + + private void OnGetCountryDataOperationCompleted(object arg) + { + if (GetCountryDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetCountryDataCompleted?.Invoke(this, new GetCountryDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetCountryList(string request) + { + object[] results = Invoke("GetCountryList", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetCountryList(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetCountryList", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetCountryList(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetCountryListAsync(string request) + { + GetCountryListAsync(request, null); + } + + /// + public void GetCountryListAsync(string request, object userState) + { + if (GetCountryListOperationCompleted == null) + { + GetCountryListOperationCompleted = OnGetCountryListOperationCompleted; + } + InvokeAsync("GetCountryList", new object[] { request }, GetCountryListOperationCompleted, userState); + } + + private void OnGetCountryListOperationCompleted(object arg) + { + if (GetCountryListCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetCountryListCompleted?.Invoke(this, new GetCountryListCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetCurrencyData(string request) + { + object[] results = Invoke("GetCurrencyData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetCurrencyData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetCurrencyData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetCurrencyData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetCurrencyDataAsync(string request) + { + GetCurrencyDataAsync(request, null); + } + + /// + public void GetCurrencyDataAsync(string request, object userState) + { + if (GetCurrencyDataOperationCompleted == null) + { + GetCurrencyDataOperationCompleted = OnGetCurrencyDataOperationCompleted; + } + InvokeAsync("GetCurrencyData", new object[] { request }, GetCurrencyDataOperationCompleted, userState); + } + + private void OnGetCurrencyDataOperationCompleted(object arg) + { + if (GetCurrencyDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetCurrencyDataCompleted?.Invoke(this, new GetCurrencyDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetCurrencyList(string request) + { + object[] results = Invoke("GetCurrencyList", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetCurrencyList(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetCurrencyList", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetCurrencyList(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetCurrencyListAsync(string request) + { + GetCurrencyListAsync(request, null); + } + + /// + public void GetCurrencyListAsync(string request, object userState) + { + if (GetCurrencyListOperationCompleted == null) + { + GetCurrencyListOperationCompleted = OnGetCurrencyListOperationCompleted; + } + InvokeAsync("GetCurrencyList", new object[] { request }, GetCurrencyListOperationCompleted, userState); + } + + private void OnGetCurrencyListOperationCompleted(object arg) + { + if (GetCurrencyListCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetCurrencyListCompleted?.Invoke(this, new GetCurrencyListCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetCustClassificationData(string request) + { + object[] results = Invoke("GetCustClassificationData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetCustClassificationData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetCustClassificationData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetCustClassificationData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetCustClassificationDataAsync(string request) + { + GetCustClassificationDataAsync(request, null); + } + + /// + public void GetCustClassificationDataAsync(string request, object userState) + { + if (GetCustClassificationDataOperationCompleted == null) + { + GetCustClassificationDataOperationCompleted = OnGetCustClassificationDataOperationCompleted; + } + InvokeAsync("GetCustClassificationData", new object[] { request }, GetCustClassificationDataOperationCompleted, userState); + } + + private void OnGetCustClassificationDataOperationCompleted(object arg) + { + if (GetCustClassificationDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetCustClassificationDataCompleted?.Invoke(this, new GetCustClassificationDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetCustList(string request) + { + object[] results = Invoke("GetCustList", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetCustList(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetCustList", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetCustList(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetCustListAsync(string request) + { + GetCustListAsync(request, null); + } + + /// + public void GetCustListAsync(string request, object userState) + { + if (GetCustListOperationCompleted == null) + { + GetCustListOperationCompleted = OnGetCustListOperationCompleted; + } + InvokeAsync("GetCustList", new object[] { request }, GetCustListOperationCompleted, userState); + } + + private void OnGetCustListOperationCompleted(object arg) + { + if (GetCustListCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetCustListCompleted?.Invoke(this, new GetCustListCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetCustomerContactData(string request) + { + object[] results = Invoke("GetCustomerContactData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetCustomerContactData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetCustomerContactData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetCustomerContactData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetCustomerContactDataAsync(string request) + { + GetCustomerContactDataAsync(request, null); + } + + /// + public void GetCustomerContactDataAsync(string request, object userState) + { + if (GetCustomerContactDataOperationCompleted == null) + { + GetCustomerContactDataOperationCompleted = OnGetCustomerContactDataOperationCompleted; + } + InvokeAsync("GetCustomerContactData", new object[] { request }, GetCustomerContactDataOperationCompleted, userState); + } + + private void OnGetCustomerContactDataOperationCompleted(object arg) + { + if (GetCustomerContactDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetCustomerContactDataCompleted?.Invoke(this, new GetCustomerContactDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetCustomerData(string request) + { + object[] results = Invoke("GetCustomerData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetCustomerData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetCustomerData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetCustomerData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetCustomerDataAsync(string request) + { + GetCustomerDataAsync(request, null); + } + + /// + public void GetCustomerDataAsync(string request, object userState) + { + if (GetCustomerDataOperationCompleted == null) + { + GetCustomerDataOperationCompleted = OnGetCustomerDataOperationCompleted; + } + InvokeAsync("GetCustomerData", new object[] { request }, GetCustomerDataOperationCompleted, userState); + } + + private void OnGetCustomerDataOperationCompleted(object arg) + { + if (GetCustomerDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetCustomerDataCompleted?.Invoke(this, new GetCustomerDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetCustomerOtheraddressData(string request) + { + object[] results = Invoke("GetCustomerOtheraddressData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetCustomerOtheraddressData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetCustomerOtheraddressData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetCustomerOtheraddressData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetCustomerOtheraddressDataAsync(string request) + { + GetCustomerOtheraddressDataAsync(request, null); + } + + /// + public void GetCustomerOtheraddressDataAsync(string request, object userState) + { + if (GetCustomerOtheraddressDataOperationCompleted == null) + { + GetCustomerOtheraddressDataOperationCompleted = OnGetCustomerOtheraddressDataOperationCompleted; + } + InvokeAsync("GetCustomerOtheraddressData", new object[] { request }, GetCustomerOtheraddressDataOperationCompleted, userState); + } + + private void OnGetCustomerOtheraddressDataOperationCompleted(object arg) + { + if (GetCustomerOtheraddressDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetCustomerOtheraddressDataCompleted?.Invoke(this, new GetCustomerOtheraddressDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetCustomerProductData(string request) + { + object[] results = Invoke("GetCustomerProductData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetCustomerProductData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetCustomerProductData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetCustomerProductData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetCustomerProductDataAsync(string request) + { + GetCustomerProductDataAsync(request, null); + } + + /// + public void GetCustomerProductDataAsync(string request, object userState) + { + if (GetCustomerProductDataOperationCompleted == null) + { + GetCustomerProductDataOperationCompleted = OnGetCustomerProductDataOperationCompleted; + } + InvokeAsync("GetCustomerProductData", new object[] { request }, GetCustomerProductDataOperationCompleted, userState); + } + + private void OnGetCustomerProductDataOperationCompleted(object arg) + { + if (GetCustomerProductDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetCustomerProductDataCompleted?.Invoke(this, new GetCustomerProductDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetDepartmentData(string request) + { + object[] results = Invoke("GetDepartmentData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetDepartmentData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetDepartmentData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetDepartmentData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetDepartmentDataAsync(string request) + { + GetDepartmentDataAsync(request, null); + } + + /// + public void GetDepartmentDataAsync(string request, object userState) + { + if (GetDepartmentDataOperationCompleted == null) + { + GetDepartmentDataOperationCompleted = OnGetDepartmentDataOperationCompleted; + } + InvokeAsync("GetDepartmentData", new object[] { request }, GetDepartmentDataOperationCompleted, userState); + } + + private void OnGetDepartmentDataOperationCompleted(object arg) + { + if (GetDepartmentDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetDepartmentDataCompleted?.Invoke(this, new GetDepartmentDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetDepartmentList(string request) + { + object[] results = Invoke("GetDepartmentList", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetDepartmentList(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetDepartmentList", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetDepartmentList(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetDepartmentListAsync(string request) + { + GetDepartmentListAsync(request, null); + } + + /// + public void GetDepartmentListAsync(string request, object userState) + { + if (GetDepartmentListOperationCompleted == null) + { + GetDepartmentListOperationCompleted = OnGetDepartmentListOperationCompleted; + } + InvokeAsync("GetDepartmentList", new object[] { request }, GetDepartmentListOperationCompleted, userState); + } + + private void OnGetDepartmentListOperationCompleted(object arg) + { + if (GetDepartmentListCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetDepartmentListCompleted?.Invoke(this, new GetDepartmentListCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetDocumentNumber(string request) + { + object[] results = Invoke("GetDocumentNumber", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetDocumentNumber(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetDocumentNumber", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetDocumentNumber(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetDocumentNumberAsync(string request) + { + GetDocumentNumberAsync(request, null); + } + + /// + public void GetDocumentNumberAsync(string request, object userState) + { + if (GetDocumentNumberOperationCompleted == null) + { + GetDocumentNumberOperationCompleted = OnGetDocumentNumberOperationCompleted; + } + InvokeAsync("GetDocumentNumber", new object[] { request }, GetDocumentNumberOperationCompleted, userState); + } + + private void OnGetDocumentNumberOperationCompleted(object arg) + { + if (GetDocumentNumberCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetDocumentNumberCompleted?.Invoke(this, new GetDocumentNumberCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetEmployeeData(string request) + { + object[] results = Invoke("GetEmployeeData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetEmployeeData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetEmployeeData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetEmployeeData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetEmployeeDataAsync(string request) + { + GetEmployeeDataAsync(request, null); + } + + /// + public void GetEmployeeDataAsync(string request, object userState) + { + if (GetEmployeeDataOperationCompleted == null) + { + GetEmployeeDataOperationCompleted = OnGetEmployeeDataOperationCompleted; + } + InvokeAsync("GetEmployeeData", new object[] { request }, GetEmployeeDataOperationCompleted, userState); + } + + private void OnGetEmployeeDataOperationCompleted(object arg) + { + if (GetEmployeeDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetEmployeeDataCompleted?.Invoke(this, new GetEmployeeDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetEmployeeList(string request) + { + object[] results = Invoke("GetEmployeeList", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetEmployeeList(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetEmployeeList", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetEmployeeList(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetEmployeeListAsync(string request) + { + GetEmployeeListAsync(request, null); + } + + /// + public void GetEmployeeListAsync(string request, object userState) + { + if (GetEmployeeListOperationCompleted == null) + { + GetEmployeeListOperationCompleted = OnGetEmployeeListOperationCompleted; + } + InvokeAsync("GetEmployeeList", new object[] { request }, GetEmployeeListOperationCompleted, userState); + } + + private void OnGetEmployeeListOperationCompleted(object arg) + { + if (GetEmployeeListCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetEmployeeListCompleted?.Invoke(this, new GetEmployeeListCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetExchangeRateData(string request) + { + object[] results = Invoke("GetExchangeRateData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetExchangeRateData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetExchangeRateData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetExchangeRateData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetExchangeRateDataAsync(string request) + { + GetExchangeRateDataAsync(request, null); + } + + /// + public void GetExchangeRateDataAsync(string request, object userState) + { + if (GetExchangeRateDataOperationCompleted == null) + { + GetExchangeRateDataOperationCompleted = OnGetExchangeRateDataOperationCompleted; + } + InvokeAsync("GetExchangeRateData", new object[] { request }, GetExchangeRateDataOperationCompleted, userState); + } + + private void OnGetExchangeRateDataOperationCompleted(object arg) + { + if (GetExchangeRateDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetExchangeRateDataCompleted?.Invoke(this, new GetExchangeRateDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetInvoiceTypeList(string request) + { + object[] results = Invoke("GetInvoiceTypeList", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetInvoiceTypeList(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetInvoiceTypeList", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetInvoiceTypeList(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetInvoiceTypeListAsync(string request) + { + GetInvoiceTypeListAsync(request, null); + } + + /// + public void GetInvoiceTypeListAsync(string request, object userState) + { + if (GetInvoiceTypeListOperationCompleted == null) + { + GetInvoiceTypeListOperationCompleted = OnGetInvoiceTypeListOperationCompleted; + } + InvokeAsync("GetInvoiceTypeList", new object[] { request }, GetInvoiceTypeListOperationCompleted, userState); + } + + private void OnGetInvoiceTypeListOperationCompleted(object arg) + { + if (GetInvoiceTypeListCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetInvoiceTypeListCompleted?.Invoke(this, new GetInvoiceTypeListCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetItemData(string request) + { + object[] results = Invoke("GetItemData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetItemData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetItemData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetItemData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetItemDataAsync(string request) + { + GetItemDataAsync(request, null); + } + + /// + public void GetItemDataAsync(string request, object userState) + { + if (GetItemDataOperationCompleted == null) + { + GetItemDataOperationCompleted = OnGetItemDataOperationCompleted; + } + InvokeAsync("GetItemData", new object[] { request }, GetItemDataOperationCompleted, userState); + } + + private void OnGetItemDataOperationCompleted(object arg) + { + if (GetItemDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetItemDataCompleted?.Invoke(this, new GetItemDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetItemGroupData(string request) + { + object[] results = Invoke("GetItemGroupData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetItemGroupData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetItemGroupData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetItemGroupData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetItemGroupDataAsync(string request) + { + GetItemGroupDataAsync(request, null); + } + + /// + public void GetItemGroupDataAsync(string request, object userState) + { + if (GetItemGroupDataOperationCompleted == null) + { + GetItemGroupDataOperationCompleted = OnGetItemGroupDataOperationCompleted; + } + InvokeAsync("GetItemGroupData", new object[] { request }, GetItemGroupDataOperationCompleted, userState); + } + + private void OnGetItemGroupDataOperationCompleted(object arg) + { + if (GetItemGroupDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetItemGroupDataCompleted?.Invoke(this, new GetItemGroupDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetItemList(string request) + { + object[] results = Invoke("GetItemList", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetItemList(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetItemList", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetItemList(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetItemListAsync(string request) + { + GetItemListAsync(request, null); + } + + /// + public void GetItemListAsync(string request, object userState) + { + if (GetItemListOperationCompleted == null) + { + GetItemListOperationCompleted = OnGetItemListOperationCompleted; + } + InvokeAsync("GetItemList", new object[] { request }, GetItemListOperationCompleted, userState); + } + + private void OnGetItemListOperationCompleted(object arg) + { + if (GetItemListCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetItemListCompleted?.Invoke(this, new GetItemListCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetItemOtherGroupData(string request) + { + object[] results = Invoke("GetItemOtherGroupData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetItemOtherGroupData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetItemOtherGroupData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetItemOtherGroupData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetItemOtherGroupDataAsync(string request) + { + GetItemOtherGroupDataAsync(request, null); + } + + /// + public void GetItemOtherGroupDataAsync(string request, object userState) + { + if (GetItemOtherGroupDataOperationCompleted == null) + { + GetItemOtherGroupDataOperationCompleted = OnGetItemOtherGroupDataOperationCompleted; + } + InvokeAsync("GetItemOtherGroupData", new object[] { request }, GetItemOtherGroupDataOperationCompleted, userState); + } + + private void OnGetItemOtherGroupDataOperationCompleted(object arg) + { + if (GetItemOtherGroupDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetItemOtherGroupDataCompleted?.Invoke(this, new GetItemOtherGroupDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetItemStockList(string request) + { + object[] results = Invoke("GetItemStockList", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetItemStockList(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetItemStockList", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetItemStockList(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetItemStockListAsync(string request) + { + GetItemStockListAsync(request, null); + } + + /// + public void GetItemStockListAsync(string request, object userState) + { + if (GetItemStockListOperationCompleted == null) + { + GetItemStockListOperationCompleted = OnGetItemStockListOperationCompleted; + } + InvokeAsync("GetItemStockList", new object[] { request }, GetItemStockListOperationCompleted, userState); + } + + private void OnGetItemStockListOperationCompleted(object arg) + { + if (GetItemStockListCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetItemStockListCompleted?.Invoke(this, new GetItemStockListCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetMFGDocument(string request) + { + object[] results = Invoke("GetMFGDocument", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetMFGDocument(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetMFGDocument", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetMFGDocument(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetMFGDocumentAsync(string request) + { + GetMFGDocumentAsync(request, null); + } + + /// + public void GetMFGDocumentAsync(string request, object userState) + { + if (GetMFGDocumentOperationCompleted == null) + { + GetMFGDocumentOperationCompleted = OnGetMFGDocumentOperationCompleted; + } + InvokeAsync("GetMFGDocument", new object[] { request }, GetMFGDocumentOperationCompleted, userState); + } + + private void OnGetMFGDocumentOperationCompleted(object arg) + { + if (GetMFGDocumentCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetMFGDocumentCompleted?.Invoke(this, new GetMFGDocumentCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetMFGSettingSmaData(string request) + { + object[] results = Invoke("GetMFGSettingSmaData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetMFGSettingSmaData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetMFGSettingSmaData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetMFGSettingSmaData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetMFGSettingSmaDataAsync(string request) + { + GetMFGSettingSmaDataAsync(request, null); + } + + /// + public void GetMFGSettingSmaDataAsync(string request, object userState) + { + if (GetMFGSettingSmaDataOperationCompleted == null) + { + GetMFGSettingSmaDataOperationCompleted = OnGetMFGSettingSmaDataOperationCompleted; + } + InvokeAsync("GetMFGSettingSmaData", new object[] { request }, GetMFGSettingSmaDataOperationCompleted, userState); + } + + private void OnGetMFGSettingSmaDataOperationCompleted(object arg) + { + if (GetMFGSettingSmaDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetMFGSettingSmaDataCompleted?.Invoke(this, new GetMFGSettingSmaDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetMachineData(string request) + { + object[] results = Invoke("GetMachineData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetMachineData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetMachineData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetMachineData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetMachineDataAsync(string request) + { + GetMachineDataAsync(request, null); + } + + /// + public void GetMachineDataAsync(string request, object userState) + { + if (GetMachineDataOperationCompleted == null) + { + GetMachineDataOperationCompleted = OnGetMachineDataOperationCompleted; + } + InvokeAsync("GetMachineData", new object[] { request }, GetMachineDataOperationCompleted, userState); + } + + private void OnGetMachineDataOperationCompleted(object arg) + { + if (GetMachineDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetMachineDataCompleted?.Invoke(this, new GetMachineDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetMemoData(string request) + { + object[] results = Invoke("GetMemoData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetMemoData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetMemoData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetMemoData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetMemoDataAsync(string request) + { + GetMemoDataAsync(request, null); + } + + /// + public void GetMemoDataAsync(string request, object userState) + { + if (GetMemoDataOperationCompleted == null) + { + GetMemoDataOperationCompleted = OnGetMemoDataOperationCompleted; + } + InvokeAsync("GetMemoData", new object[] { request }, GetMemoDataOperationCompleted, userState); + } + + private void OnGetMemoDataOperationCompleted(object arg) + { + if (GetMemoDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetMemoDataCompleted?.Invoke(this, new GetMemoDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetMonthList(string request) + { + object[] results = Invoke("GetMonthList", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetMonthList(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetMonthList", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetMonthList(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetMonthListAsync(string request) + { + GetMonthListAsync(request, null); + } + + /// + public void GetMonthListAsync(string request, object userState) + { + if (GetMonthListOperationCompleted == null) + { + GetMonthListOperationCompleted = OnGetMonthListOperationCompleted; + } + InvokeAsync("GetMonthList", new object[] { request }, GetMonthListOperationCompleted, userState); + } + + private void OnGetMonthListOperationCompleted(object arg) + { + if (GetMonthListCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetMonthListCompleted?.Invoke(this, new GetMonthListCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetOrganizationList(string request) + { + object[] results = Invoke("GetOrganizationList", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetOrganizationList(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetOrganizationList", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetOrganizationList(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetOrganizationListAsync(string request) + { + GetOrganizationListAsync(request, null); + } + + /// + public void GetOrganizationListAsync(string request, object userState) + { + if (GetOrganizationListOperationCompleted == null) + { + GetOrganizationListOperationCompleted = OnGetOrganizationListOperationCompleted; + } + InvokeAsync("GetOrganizationList", new object[] { request }, GetOrganizationListOperationCompleted, userState); + } + + private void OnGetOrganizationListOperationCompleted(object arg) + { + if (GetOrganizationListCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetOrganizationListCompleted?.Invoke(this, new GetOrganizationListCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetOverdueAmtDetailData(string request) + { + object[] results = Invoke("GetOverdueAmtDetailData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetOverdueAmtDetailData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetOverdueAmtDetailData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetOverdueAmtDetailData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetOverdueAmtDetailDataAsync(string request) + { + GetOverdueAmtDetailDataAsync(request, null); + } + + /// + public void GetOverdueAmtDetailDataAsync(string request, object userState) + { + if (GetOverdueAmtDetailDataOperationCompleted == null) + { + GetOverdueAmtDetailDataOperationCompleted = OnGetOverdueAmtDetailDataOperationCompleted; + } + InvokeAsync("GetOverdueAmtDetailData", new object[] { request }, GetOverdueAmtDetailDataOperationCompleted, userState); + } + + private void OnGetOverdueAmtDetailDataOperationCompleted(object arg) + { + if (GetOverdueAmtDetailDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetOverdueAmtDetailDataCompleted?.Invoke(this, new GetOverdueAmtDetailDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetOverdueAmtRankingData(string request) + { + object[] results = Invoke("GetOverdueAmtRankingData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetOverdueAmtRankingData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetOverdueAmtRankingData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetOverdueAmtRankingData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetOverdueAmtRankingDataAsync(string request) + { + GetOverdueAmtRankingDataAsync(request, null); + } + + /// + public void GetOverdueAmtRankingDataAsync(string request, object userState) + { + if (GetOverdueAmtRankingDataOperationCompleted == null) + { + GetOverdueAmtRankingDataOperationCompleted = OnGetOverdueAmtRankingDataOperationCompleted; + } + InvokeAsync("GetOverdueAmtRankingData", new object[] { request }, GetOverdueAmtRankingDataOperationCompleted, userState); + } + + private void OnGetOverdueAmtRankingDataOperationCompleted(object arg) + { + if (GetOverdueAmtRankingDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetOverdueAmtRankingDataCompleted?.Invoke(this, new GetOverdueAmtRankingDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetPLMTempTableDataStatus(string request) + { + object[] results = Invoke("GetPLMTempTableDataStatus", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetPLMTempTableDataStatus(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetPLMTempTableDataStatus", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetPLMTempTableDataStatus(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetPLMTempTableDataStatusAsync(string request) + { + GetPLMTempTableDataStatusAsync(request, null); + } + + /// + public void GetPLMTempTableDataStatusAsync(string request, object userState) + { + if (GetPLMTempTableDataStatusOperationCompleted == null) + { + GetPLMTempTableDataStatusOperationCompleted = OnGetPLMTempTableDataStatusOperationCompleted; + } + InvokeAsync("GetPLMTempTableDataStatus", new object[] { request }, GetPLMTempTableDataStatusOperationCompleted, userState); + } + + private void OnGetPLMTempTableDataStatusOperationCompleted(object arg) + { + if (GetPLMTempTableDataStatusCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetPLMTempTableDataStatusCompleted?.Invoke(this, new GetPLMTempTableDataStatusCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetPackingMethodData(string request) + { + object[] results = Invoke("GetPackingMethodData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetPackingMethodData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetPackingMethodData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetPackingMethodData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetPackingMethodDataAsync(string request) + { + GetPackingMethodDataAsync(request, null); + } + + /// + public void GetPackingMethodDataAsync(string request, object userState) + { + if (GetPackingMethodDataOperationCompleted == null) + { + GetPackingMethodDataOperationCompleted = OnGetPackingMethodDataOperationCompleted; + } + InvokeAsync("GetPackingMethodData", new object[] { request }, GetPackingMethodDataOperationCompleted, userState); + } + + private void OnGetPackingMethodDataOperationCompleted(object arg) + { + if (GetPackingMethodDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetPackingMethodDataCompleted?.Invoke(this, new GetPackingMethodDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetPaymentTermsData(string request) + { + object[] results = Invoke("GetPaymentTermsData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetPaymentTermsData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetPaymentTermsData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetPaymentTermsData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetPaymentTermsDataAsync(string request) + { + GetPaymentTermsDataAsync(request, null); + } + + /// + public void GetPaymentTermsDataAsync(string request, object userState) + { + if (GetPaymentTermsDataOperationCompleted == null) + { + GetPaymentTermsDataOperationCompleted = OnGetPaymentTermsDataOperationCompleted; + } + InvokeAsync("GetPaymentTermsData", new object[] { request }, GetPaymentTermsDataOperationCompleted, userState); + } + + private void OnGetPaymentTermsDataOperationCompleted(object arg) + { + if (GetPaymentTermsDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetPaymentTermsDataCompleted?.Invoke(this, new GetPaymentTermsDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetPotentialCustomerData(string request) + { + object[] results = Invoke("GetPotentialCustomerData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetPotentialCustomerData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetPotentialCustomerData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetPotentialCustomerData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetPotentialCustomerDataAsync(string request) + { + GetPotentialCustomerDataAsync(request, null); + } + + /// + public void GetPotentialCustomerDataAsync(string request, object userState) + { + if (GetPotentialCustomerDataOperationCompleted == null) + { + GetPotentialCustomerDataOperationCompleted = OnGetPotentialCustomerDataOperationCompleted; + } + InvokeAsync("GetPotentialCustomerData", new object[] { request }, GetPotentialCustomerDataOperationCompleted, userState); + } + + private void OnGetPotentialCustomerDataOperationCompleted(object arg) + { + if (GetPotentialCustomerDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetPotentialCustomerDataCompleted?.Invoke(this, new GetPotentialCustomerDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetProdClassList(string request) + { + object[] results = Invoke("GetProdClassList", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetProdClassList(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetProdClassList", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetProdClassList(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetProdClassListAsync(string request) + { + GetProdClassListAsync(request, null); + } + + /// + public void GetProdClassListAsync(string request, object userState) + { + if (GetProdClassListOperationCompleted == null) + { + GetProdClassListOperationCompleted = OnGetProdClassListOperationCompleted; + } + InvokeAsync("GetProdClassList", new object[] { request }, GetProdClassListOperationCompleted, userState); + } + + private void OnGetProdClassListOperationCompleted(object arg) + { + if (GetProdClassListCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetProdClassListCompleted?.Invoke(this, new GetProdClassListCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetProdRoutingData(string request) + { + object[] results = Invoke("GetProdRoutingData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetProdRoutingData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetProdRoutingData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetProdRoutingData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetProdRoutingDataAsync(string request) + { + GetProdRoutingDataAsync(request, null); + } + + /// + public void GetProdRoutingDataAsync(string request, object userState) + { + if (GetProdRoutingDataOperationCompleted == null) + { + GetProdRoutingDataOperationCompleted = OnGetProdRoutingDataOperationCompleted; + } + InvokeAsync("GetProdRoutingData", new object[] { request }, GetProdRoutingDataOperationCompleted, userState); + } + + private void OnGetProdRoutingDataOperationCompleted(object arg) + { + if (GetProdRoutingDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetProdRoutingDataCompleted?.Invoke(this, new GetProdRoutingDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetProjectWBSData(string request) + { + object[] results = Invoke("GetProjectWBSData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetProjectWBSData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetProjectWBSData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetProjectWBSData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetProjectWBSDataAsync(string request) + { + GetProjectWBSDataAsync(request, null); + } + + /// + public void GetProjectWBSDataAsync(string request, object userState) + { + if (GetProjectWBSDataOperationCompleted == null) + { + GetProjectWBSDataOperationCompleted = OnGetProjectWBSDataOperationCompleted; + } + InvokeAsync("GetProjectWBSData", new object[] { request }, GetProjectWBSDataOperationCompleted, userState); + } + + private void OnGetProjectWBSDataOperationCompleted(object arg) + { + if (GetProjectWBSDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetProjectWBSDataCompleted?.Invoke(this, new GetProjectWBSDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetReasonCode(string request) + { + object[] results = Invoke("GetReasonCode", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetReasonCode(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetReasonCode", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetReasonCode(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetReasonCodeAsync(string request) + { + GetReasonCodeAsync(request, null); + } + + /// + public void GetReasonCodeAsync(string request, object userState) + { + if (GetReasonCodeOperationCompleted == null) + { + GetReasonCodeOperationCompleted = OnGetReasonCodeOperationCompleted; + } + InvokeAsync("GetReasonCode", new object[] { request }, GetReasonCodeOperationCompleted, userState); + } + + private void OnGetReasonCodeOperationCompleted(object arg) + { + if (GetReasonCodeCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetReasonCodeCompleted?.Invoke(this, new GetReasonCodeCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetSOInfoData(string request) + { + object[] results = Invoke("GetSOInfoData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetSOInfoData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetSOInfoData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetSOInfoData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetSOInfoDataAsync(string request) + { + GetSOInfoDataAsync(request, null); + } + + /// + public void GetSOInfoDataAsync(string request, object userState) + { + if (GetSOInfoDataOperationCompleted == null) + { + GetSOInfoDataOperationCompleted = OnGetSOInfoDataOperationCompleted; + } + InvokeAsync("GetSOInfoData", new object[] { request }, GetSOInfoDataOperationCompleted, userState); + } + + private void OnGetSOInfoDataOperationCompleted(object arg) + { + if (GetSOInfoDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetSOInfoDataCompleted?.Invoke(this, new GetSOInfoDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetSOInfoDetailData(string request) + { + object[] results = Invoke("GetSOInfoDetailData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetSOInfoDetailData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetSOInfoDetailData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetSOInfoDetailData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetSOInfoDetailDataAsync(string request) + { + GetSOInfoDetailDataAsync(request, null); + } + + /// + public void GetSOInfoDetailDataAsync(string request, object userState) + { + if (GetSOInfoDetailDataOperationCompleted == null) + { + GetSOInfoDetailDataOperationCompleted = OnGetSOInfoDetailDataOperationCompleted; + } + InvokeAsync("GetSOInfoDetailData", new object[] { request }, GetSOInfoDetailDataOperationCompleted, userState); + } + + private void OnGetSOInfoDetailDataOperationCompleted(object arg) + { + if (GetSOInfoDetailDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetSOInfoDetailDataCompleted?.Invoke(this, new GetSOInfoDetailDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetSalesStatisticsData(string request) + { + object[] results = Invoke("GetSalesStatisticsData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetSalesStatisticsData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetSalesStatisticsData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetSalesStatisticsData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetSalesStatisticsDataAsync(string request) + { + GetSalesStatisticsDataAsync(request, null); + } + + /// + public void GetSalesStatisticsDataAsync(string request, object userState) + { + if (GetSalesStatisticsDataOperationCompleted == null) + { + GetSalesStatisticsDataOperationCompleted = OnGetSalesStatisticsDataOperationCompleted; + } + InvokeAsync("GetSalesStatisticsData", new object[] { request }, GetSalesStatisticsDataOperationCompleted, userState); + } + + private void OnGetSalesStatisticsDataOperationCompleted(object arg) + { + if (GetSalesStatisticsDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetSalesStatisticsDataCompleted?.Invoke(this, new GetSalesStatisticsDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetStockData(string request) + { + object[] results = Invoke("GetStockData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetStockData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetStockData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetStockData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetStockDataAsync(string request) + { + GetStockDataAsync(request, null); + } + + /// + public void GetStockDataAsync(string request, object userState) + { + if (GetStockDataOperationCompleted == null) + { + GetStockDataOperationCompleted = OnGetStockDataOperationCompleted; + } + InvokeAsync("GetStockData", new object[] { request }, GetStockDataOperationCompleted, userState); + } + + private void OnGetStockDataOperationCompleted(object arg) + { + if (GetStockDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetStockDataCompleted?.Invoke(this, new GetStockDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetSupplierData(string request) + { + object[] results = Invoke("GetSupplierData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetSupplierData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetSupplierData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetSupplierData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetSupplierDataAsync(string request) + { + GetSupplierDataAsync(request, null); + } + + /// + public void GetSupplierDataAsync(string request, object userState) + { + if (GetSupplierDataOperationCompleted == null) + { + GetSupplierDataOperationCompleted = OnGetSupplierDataOperationCompleted; + } + InvokeAsync("GetSupplierData", new object[] { request }, GetSupplierDataOperationCompleted, userState); + } + + private void OnGetSupplierDataOperationCompleted(object arg) + { + if (GetSupplierDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetSupplierDataCompleted?.Invoke(this, new GetSupplierDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetSupplierItemData(string request) + { + object[] results = Invoke("GetSupplierItemData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetSupplierItemData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetSupplierItemData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetSupplierItemData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetSupplierItemDataAsync(string request) + { + GetSupplierItemDataAsync(request, null); + } + + /// + public void GetSupplierItemDataAsync(string request, object userState) + { + if (GetSupplierItemDataOperationCompleted == null) + { + GetSupplierItemDataOperationCompleted = OnGetSupplierItemDataOperationCompleted; + } + InvokeAsync("GetSupplierItemData", new object[] { request }, GetSupplierItemDataOperationCompleted, userState); + } + + private void OnGetSupplierItemDataOperationCompleted(object arg) + { + if (GetSupplierItemDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetSupplierItemDataCompleted?.Invoke(this, new GetSupplierItemDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetTableAmendmentData(string request) + { + object[] results = Invoke("GetTableAmendmentData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetTableAmendmentData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetTableAmendmentData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetTableAmendmentData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetTableAmendmentDataAsync(string request) + { + GetTableAmendmentDataAsync(request, null); + } + + /// + public void GetTableAmendmentDataAsync(string request, object userState) + { + if (GetTableAmendmentDataOperationCompleted == null) + { + GetTableAmendmentDataOperationCompleted = OnGetTableAmendmentDataOperationCompleted; + } + InvokeAsync("GetTableAmendmentData", new object[] { request }, GetTableAmendmentDataOperationCompleted, userState); + } + + private void OnGetTableAmendmentDataOperationCompleted(object arg) + { + if (GetTableAmendmentDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetTableAmendmentDataCompleted?.Invoke(this, new GetTableAmendmentDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetTaxTypeData(string request) + { + object[] results = Invoke("GetTaxTypeData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetTaxTypeData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetTaxTypeData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetTaxTypeData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetTaxTypeDataAsync(string request) + { + GetTaxTypeDataAsync(request, null); + } + + /// + public void GetTaxTypeDataAsync(string request, object userState) + { + if (GetTaxTypeDataOperationCompleted == null) + { + GetTaxTypeDataOperationCompleted = OnGetTaxTypeDataOperationCompleted; + } + InvokeAsync("GetTaxTypeData", new object[] { request }, GetTaxTypeDataOperationCompleted, userState); + } + + private void OnGetTaxTypeDataOperationCompleted(object arg) + { + if (GetTaxTypeDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetTaxTypeDataCompleted?.Invoke(this, new GetTaxTypeDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetTradeTermData(string request) + { + object[] results = Invoke("GetTradeTermData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetTradeTermData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetTradeTermData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetTradeTermData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetTradeTermDataAsync(string request) + { + GetTradeTermDataAsync(request, null); + } + + /// + public void GetTradeTermDataAsync(string request, object userState) + { + if (GetTradeTermDataOperationCompleted == null) + { + GetTradeTermDataOperationCompleted = OnGetTradeTermDataOperationCompleted; + } + InvokeAsync("GetTradeTermData", new object[] { request }, GetTradeTermDataOperationCompleted, userState); + } + + private void OnGetTradeTermDataOperationCompleted(object arg) + { + if (GetTradeTermDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetTradeTermDataCompleted?.Invoke(this, new GetTradeTermDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetTransactionCategory(string request) + { + object[] results = Invoke("GetTransactionCategory", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetTransactionCategory(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetTransactionCategory", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetTransactionCategory(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetTransactionCategoryAsync(string request) + { + GetTransactionCategoryAsync(request, null); + } + + /// + public void GetTransactionCategoryAsync(string request, object userState) + { + if (GetTransactionCategoryOperationCompleted == null) + { + GetTransactionCategoryOperationCompleted = OnGetTransactionCategoryOperationCompleted; + } + InvokeAsync("GetTransactionCategory", new object[] { request }, GetTransactionCategoryOperationCompleted, userState); + } + + private void OnGetTransactionCategoryOperationCompleted(object arg) + { + if (GetTransactionCategoryCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetTransactionCategoryCompleted?.Invoke(this, new GetTransactionCategoryCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetUnitConversionData(string request) + { + object[] results = Invoke("GetUnitConversionData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetUnitConversionData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetUnitConversionData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetUnitConversionData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetUnitConversionDataAsync(string request) + { + GetUnitConversionDataAsync(request, null); + } + + /// + public void GetUnitConversionDataAsync(string request, object userState) + { + if (GetUnitConversionDataOperationCompleted == null) + { + GetUnitConversionDataOperationCompleted = OnGetUnitConversionDataOperationCompleted; + } + InvokeAsync("GetUnitConversionData", new object[] { request }, GetUnitConversionDataOperationCompleted, userState); + } + + private void OnGetUnitConversionDataOperationCompleted(object arg) + { + if (GetUnitConversionDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetUnitConversionDataCompleted?.Invoke(this, new GetUnitConversionDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetUserToken(string request) + { + object[] results = Invoke("GetUserToken", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetUserToken(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetUserToken", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetUserToken(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetUserTokenAsync(string request) + { + GetUserTokenAsync(request, null); + } + + /// + public void GetUserTokenAsync(string request, object userState) + { + if (GetUserTokenOperationCompleted == null) + { + GetUserTokenOperationCompleted = OnGetUserTokenOperationCompleted; + } + InvokeAsync("GetUserToken", new object[] { request }, GetUserTokenOperationCompleted, userState); + } + + private void OnGetUserTokenOperationCompleted(object arg) + { + if (GetUserTokenCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetUserTokenCompleted?.Invoke(this, new GetUserTokenCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetVoucherDocumentData(string request) + { + object[] results = Invoke("GetVoucherDocumentData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetVoucherDocumentData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetVoucherDocumentData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetVoucherDocumentData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetVoucherDocumentDataAsync(string request) + { + GetVoucherDocumentDataAsync(request, null); + } + + /// + public void GetVoucherDocumentDataAsync(string request, object userState) + { + if (GetVoucherDocumentDataOperationCompleted == null) + { + GetVoucherDocumentDataOperationCompleted = OnGetVoucherDocumentDataOperationCompleted; + } + InvokeAsync("GetVoucherDocumentData", new object[] { request }, GetVoucherDocumentDataOperationCompleted, userState); + } + + private void OnGetVoucherDocumentDataOperationCompleted(object arg) + { + if (GetVoucherDocumentDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetVoucherDocumentDataCompleted?.Invoke(this, new GetVoucherDocumentDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetWorkstationData(string request) + { + object[] results = Invoke("GetWorkstationData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetWorkstationData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetWorkstationData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetWorkstationData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetWorkstationDataAsync(string request) + { + GetWorkstationDataAsync(request, null); + } + + /// + public void GetWorkstationDataAsync(string request, object userState) + { + if (GetWorkstationDataOperationCompleted == null) + { + GetWorkstationDataOperationCompleted = OnGetWorkstationDataOperationCompleted; + } + InvokeAsync("GetWorkstationData", new object[] { request }, GetWorkstationDataOperationCompleted, userState); + } + + private void OnGetWorkstationDataOperationCompleted(object arg) + { + if (GetWorkstationDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetWorkstationDataCompleted?.Invoke(this, new GetWorkstationDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string RollbackBillingAP(string request) + { + object[] results = Invoke("RollbackBillingAP", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginRollbackBillingAP(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("RollbackBillingAP", new object[] { request }, callback, asyncState); + } + + /// + public string EndRollbackBillingAP(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void RollbackBillingAPAsync(string request) + { + RollbackBillingAPAsync(request, null); + } + + /// + public void RollbackBillingAPAsync(string request, object userState) + { + if (RollbackBillingAPOperationCompleted == null) + { + RollbackBillingAPOperationCompleted = OnRollbackBillingAPOperationCompleted; + } + InvokeAsync("RollbackBillingAP", new object[] { request }, RollbackBillingAPOperationCompleted, userState); + } + + private void OnRollbackBillingAPOperationCompleted(object arg) + { + if (RollbackBillingAPCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + RollbackBillingAPCompleted?.Invoke(this, new RollbackBillingAPCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string RollbackVoucherData(string request) + { + object[] results = Invoke("RollbackVoucherData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginRollbackVoucherData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("RollbackVoucherData", new object[] { request }, callback, asyncState); + } + + /// + public string EndRollbackVoucherData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void RollbackVoucherDataAsync(string request) + { + RollbackVoucherDataAsync(request, null); + } + + /// + public void RollbackVoucherDataAsync(string request, object userState) + { + if (RollbackVoucherDataOperationCompleted == null) + { + RollbackVoucherDataOperationCompleted = OnRollbackVoucherDataOperationCompleted; + } + InvokeAsync("RollbackVoucherData", new object[] { request }, RollbackVoucherDataOperationCompleted, userState); + } + + private void OnRollbackVoucherDataOperationCompleted(object arg) + { + if (RollbackVoucherDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + RollbackVoucherDataCompleted?.Invoke(this, new RollbackVoucherDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + public new void CancelAsync(object userState) + { + base.CancelAsync(userState); + } + + private bool IsLocalFileSystemWebService(string url) + { + if (url == null || ReferenceEquals(url, string.Empty)) + { + return false; + } + var wsUri = new Uri(url); + if (wsUri.Port >= 1024 && string.Compare(wsUri.Host, "localHost", StringComparison.OrdinalIgnoreCase) == 0) + { + return true; + } + return false; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CRMGetCustomerDataCompletedEventHandler(object sender, CRMGetCustomerDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CRMGetCustomerDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CRMGetCustomerDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CheckApsExecutionCompletedEventHandler(object sender, CheckApsExecutionCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CheckApsExecutionCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CheckApsExecutionCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CheckUserAuthCompletedEventHandler(object sender, CheckUserAuthCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CheckUserAuthCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CheckUserAuthCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateBOMDataCompletedEventHandler(object sender, CreateBOMDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateBOMDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateBOMDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateBillingAPCompletedEventHandler(object sender, CreateBillingAPCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateBillingAPCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateBillingAPCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateCustomerContactDataCompletedEventHandler(object sender, CreateCustomerContactDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateCustomerContactDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateCustomerContactDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateCustomerDataCompletedEventHandler(object sender, CreateCustomerDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateCustomerDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateCustomerDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateCustomerOtheraddressDataCompletedEventHandler(object sender, CreateCustomerOtheraddressDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateCustomerOtheraddressDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateCustomerOtheraddressDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateDepartmentDataCompletedEventHandler(object sender, CreateDepartmentDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateDepartmentDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateDepartmentDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateECNDataCompletedEventHandler(object sender, CreateECNDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateECNDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateECNDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateEmployeeDataCompletedEventHandler(object sender, CreateEmployeeDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateEmployeeDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateEmployeeDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateIssueReturnDataCompletedEventHandler(object sender, CreateIssueReturnDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateIssueReturnDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateIssueReturnDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateItemApprovalDataCompletedEventHandler(object sender, CreateItemApprovalDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateItemApprovalDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateItemApprovalDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateItemMasterDataCompletedEventHandler(object sender, CreateItemMasterDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateItemMasterDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateItemMasterDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateMISCIssueDataCompletedEventHandler(object sender, CreateMISCIssueDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateMISCIssueDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateMISCIssueDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreatePLMBOMDataCompletedEventHandler(object sender, CreatePLMBOMDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreatePLMBOMDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreatePLMBOMDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreatePLMTempTableDataCompletedEventHandler(object sender, CreatePLMTempTableDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreatePLMTempTableDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreatePLMTempTableDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreatePotentialCustomerDataCompletedEventHandler(object sender, CreatePotentialCustomerDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreatePotentialCustomerDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreatePotentialCustomerDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateQuotationDataCompletedEventHandler(object sender, CreateQuotationDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateQuotationDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateQuotationDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateRepSubPBOMDataCompletedEventHandler(object sender, CreateRepSubPBOMDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateRepSubPBOMDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateRepSubPBOMDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateSalesOrderDataCompletedEventHandler(object sender, CreateSalesOrderDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateSalesOrderDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateSalesOrderDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateShippingOrdersWithoutOrdersCompletedEventHandler(object sender, CreateShippingOrdersWithoutOrdersCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateShippingOrdersWithoutOrdersCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateShippingOrdersWithoutOrdersCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateStockInDataCompletedEventHandler(object sender, CreateStockInDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateStockInDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateStockInDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateSupplierItemDataCompletedEventHandler(object sender, CreateSupplierItemDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateSupplierItemDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateSupplierItemDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateVoucherDataCompletedEventHandler(object sender, CreateVoucherDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateVoucherDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateVoucherDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateWOWorkReportDataCompletedEventHandler(object sender, CreateWOWorkReportDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateWOWorkReportDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateWOWorkReportDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void DeletePLMTempTableDataCompletedEventHandler(object sender, DeletePLMTempTableDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class DeletePLMTempTableDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal DeletePLMTempTableDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetAPCategoryAccountCodeCompletedEventHandler(object sender, GetAPCategoryAccountCodeCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetAPCategoryAccountCodeCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetAPCategoryAccountCodeCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetAccountDataCompletedEventHandler(object sender, GetAccountDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetAccountDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetAccountDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetAccountSubjectDataCompletedEventHandler(object sender, GetAccountSubjectDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetAccountSubjectDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetAccountSubjectDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetAccountTypeDataCompletedEventHandler(object sender, GetAccountTypeDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetAccountTypeDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetAccountTypeDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetAreaDataCompletedEventHandler(object sender, GetAreaDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetAreaDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetAreaDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetAreaListCompletedEventHandler(object sender, GetAreaListCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetAreaListCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetAreaListCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetAxmDocumentCompletedEventHandler(object sender, GetAxmDocumentCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetAxmDocumentCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetAxmDocumentCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetBOMDataCompletedEventHandler(object sender, GetBOMDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetBOMDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetBOMDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetBrandDataCompletedEventHandler(object sender, GetBrandDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetBrandDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetBrandDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetComponentrepsubDataCompletedEventHandler(object sender, GetComponentrepsubDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetComponentrepsubDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetComponentrepsubDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetCostGroupDataCompletedEventHandler(object sender, GetCostGroupDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetCostGroupDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetCostGroupDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetCountryDataCompletedEventHandler(object sender, GetCountryDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetCountryDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetCountryDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetCountryListCompletedEventHandler(object sender, GetCountryListCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetCountryListCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetCountryListCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetCurrencyDataCompletedEventHandler(object sender, GetCurrencyDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetCurrencyDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetCurrencyDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetCurrencyListCompletedEventHandler(object sender, GetCurrencyListCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetCurrencyListCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetCurrencyListCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetCustClassificationDataCompletedEventHandler(object sender, GetCustClassificationDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetCustClassificationDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetCustClassificationDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetCustListCompletedEventHandler(object sender, GetCustListCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetCustListCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetCustListCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetCustomerContactDataCompletedEventHandler(object sender, GetCustomerContactDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetCustomerContactDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetCustomerContactDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetCustomerDataCompletedEventHandler(object sender, GetCustomerDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetCustomerDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetCustomerDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetCustomerOtheraddressDataCompletedEventHandler(object sender, GetCustomerOtheraddressDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetCustomerOtheraddressDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetCustomerOtheraddressDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetCustomerProductDataCompletedEventHandler(object sender, GetCustomerProductDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetCustomerProductDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetCustomerProductDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetDepartmentDataCompletedEventHandler(object sender, GetDepartmentDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetDepartmentDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetDepartmentDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetDepartmentListCompletedEventHandler(object sender, GetDepartmentListCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetDepartmentListCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetDepartmentListCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetDocumentNumberCompletedEventHandler(object sender, GetDocumentNumberCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetDocumentNumberCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetDocumentNumberCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetEmployeeDataCompletedEventHandler(object sender, GetEmployeeDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetEmployeeDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetEmployeeDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetEmployeeListCompletedEventHandler(object sender, GetEmployeeListCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetEmployeeListCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetEmployeeListCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetExchangeRateDataCompletedEventHandler(object sender, GetExchangeRateDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetExchangeRateDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetExchangeRateDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetInvoiceTypeListCompletedEventHandler(object sender, GetInvoiceTypeListCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetInvoiceTypeListCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetInvoiceTypeListCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetItemDataCompletedEventHandler(object sender, GetItemDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetItemDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetItemDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetItemGroupDataCompletedEventHandler(object sender, GetItemGroupDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetItemGroupDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetItemGroupDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetItemListCompletedEventHandler(object sender, GetItemListCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetItemListCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetItemListCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetItemOtherGroupDataCompletedEventHandler(object sender, GetItemOtherGroupDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetItemOtherGroupDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetItemOtherGroupDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetItemStockListCompletedEventHandler(object sender, GetItemStockListCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetItemStockListCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetItemStockListCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetMFGDocumentCompletedEventHandler(object sender, GetMFGDocumentCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetMFGDocumentCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetMFGDocumentCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetMFGSettingSmaDataCompletedEventHandler(object sender, GetMFGSettingSmaDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetMFGSettingSmaDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetMFGSettingSmaDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetMachineDataCompletedEventHandler(object sender, GetMachineDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetMachineDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetMachineDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetMemoDataCompletedEventHandler(object sender, GetMemoDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetMemoDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetMemoDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetMonthListCompletedEventHandler(object sender, GetMonthListCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetMonthListCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetMonthListCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetOrganizationListCompletedEventHandler(object sender, GetOrganizationListCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetOrganizationListCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetOrganizationListCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetOverdueAmtDetailDataCompletedEventHandler(object sender, GetOverdueAmtDetailDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetOverdueAmtDetailDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetOverdueAmtDetailDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetOverdueAmtRankingDataCompletedEventHandler(object sender, GetOverdueAmtRankingDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetOverdueAmtRankingDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetOverdueAmtRankingDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetPLMTempTableDataStatusCompletedEventHandler(object sender, GetPLMTempTableDataStatusCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetPLMTempTableDataStatusCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetPLMTempTableDataStatusCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetPackingMethodDataCompletedEventHandler(object sender, GetPackingMethodDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetPackingMethodDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetPackingMethodDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetPaymentTermsDataCompletedEventHandler(object sender, GetPaymentTermsDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetPaymentTermsDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetPaymentTermsDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetPotentialCustomerDataCompletedEventHandler(object sender, GetPotentialCustomerDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetPotentialCustomerDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetPotentialCustomerDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetProdClassListCompletedEventHandler(object sender, GetProdClassListCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetProdClassListCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetProdClassListCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetProdRoutingDataCompletedEventHandler(object sender, GetProdRoutingDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetProdRoutingDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetProdRoutingDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetProjectWBSDataCompletedEventHandler(object sender, GetProjectWBSDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetProjectWBSDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetProjectWBSDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetReasonCodeCompletedEventHandler(object sender, GetReasonCodeCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetReasonCodeCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetReasonCodeCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetSOInfoDataCompletedEventHandler(object sender, GetSOInfoDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetSOInfoDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetSOInfoDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetSOInfoDetailDataCompletedEventHandler(object sender, GetSOInfoDetailDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetSOInfoDetailDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetSOInfoDetailDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetSalesStatisticsDataCompletedEventHandler(object sender, GetSalesStatisticsDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetSalesStatisticsDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetSalesStatisticsDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetStockDataCompletedEventHandler(object sender, GetStockDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetStockDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetStockDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetSupplierDataCompletedEventHandler(object sender, GetSupplierDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetSupplierDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetSupplierDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetSupplierItemDataCompletedEventHandler(object sender, GetSupplierItemDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetSupplierItemDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetSupplierItemDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetTableAmendmentDataCompletedEventHandler(object sender, GetTableAmendmentDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetTableAmendmentDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetTableAmendmentDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetTaxTypeDataCompletedEventHandler(object sender, GetTaxTypeDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetTaxTypeDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetTaxTypeDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetTradeTermDataCompletedEventHandler(object sender, GetTradeTermDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetTradeTermDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetTradeTermDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetTransactionCategoryCompletedEventHandler(object sender, GetTransactionCategoryCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetTransactionCategoryCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetTransactionCategoryCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetUnitConversionDataCompletedEventHandler(object sender, GetUnitConversionDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetUnitConversionDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetUnitConversionDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetUserTokenCompletedEventHandler(object sender, GetUserTokenCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetUserTokenCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetUserTokenCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetVoucherDocumentDataCompletedEventHandler(object sender, GetVoucherDocumentDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetVoucherDocumentDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetVoucherDocumentDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetWorkstationDataCompletedEventHandler(object sender, GetWorkstationDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetWorkstationDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetWorkstationDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void RollbackBillingAPCompletedEventHandler(object sender, RollbackBillingAPCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class RollbackBillingAPCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal RollbackBillingAPCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void RollbackVoucherDataCompletedEventHandler(object sender, RollbackVoucherDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class RollbackVoucherDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal RollbackVoucherDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } +} \ No newline at end of file diff --git a/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_TP_RPC/Reference.map b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_TP_RPC/Reference.map new file mode 100644 index 0000000..19834ab --- /dev/null +++ b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_TP_RPC/Reference.map @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_TP_RPC/TIPTOPServiceGateWay.wsdl b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_TP_RPC/TIPTOPServiceGateWay.wsdl new file mode 100644 index 0000000..d240a3c --- /dev/null +++ b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_TP_RPC/TIPTOPServiceGateWay.wsdl @@ -0,0 +1,1762 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_WorkFlow/Reference.cs b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_WorkFlow/Reference.cs new file mode 100644 index 0000000..2b928d2 --- /dev/null +++ b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_WorkFlow/Reference.cs @@ -0,0 +1,180 @@ +// ------------------------------------------------------------------------------ +// +// 這段程式碼是由工具產生的。 +// 執行階段版本:4.0.30319.42000 +// +// 對這個檔案所做的變更可能會造成錯誤的行為,而且如果重新產生程式碼, +// 變更將會遺失。 +// +// ------------------------------------------------------------------------------ + + +using System; +using System.ComponentModel; +using System.Diagnostics; +using System.Web.Services; +using System.Web.Services.Protocols; +using Microsoft.VisualBasic.CompilerServices; + +// +// 原始程式碼已由 Microsoft.VSDesigner 自動產生,版本 4.0.30319.42000。 +// +namespace AutoRunLib_C.wsERP_WorkFlow +{ + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + [WebServiceBinding(Name = "WFMESServiceSoap", Namespace = "http://tempuri.org/")] + public partial class WFMESService : SoapHttpClientProtocol + { + + private System.Threading.SendOrPostCallback XMLAdapterOperationCompleted; + + private bool useDefaultCredentialsSetExplicitly; + + /// + public WFMESService() : base() + { + Url = My.MySettings.Default.AutoRunLib_wsERP_WorkFlow_WFMESService; + if (IsLocalFileSystemWebService(Url) == true) + { + UseDefaultCredentials = true; + useDefaultCredentialsSetExplicitly = false; + } + else + { + useDefaultCredentialsSetExplicitly = true; + } + } + + public new string Url + { + get + { + return base.Url; + } + set + { + if (IsLocalFileSystemWebService(base.Url) == true && useDefaultCredentialsSetExplicitly == false && IsLocalFileSystemWebService(value) == false) + + { + base.UseDefaultCredentials = false; + } + base.Url = value; + } + } + + public new bool UseDefaultCredentials + { + get + { + return base.UseDefaultCredentials; + } + set + { + base.UseDefaultCredentials = value; + useDefaultCredentialsSetExplicitly = true; + } + } + + /// + public event XMLAdapterCompletedEventHandler XMLAdapterCompleted; + + /// + [SoapDocumentMethod("http://tempuri.org/XMLAdapter", RequestNamespace = "http://tempuri.org/", ResponseNamespace = "http://tempuri.org/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string XMLAdapter(string sXML) + { + object[] results = Invoke("XMLAdapter", new object[] { sXML }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginXMLAdapter(string sXML, AsyncCallback callback, object asyncState) + { + return BeginInvoke("XMLAdapter", new object[] { sXML }, callback, asyncState); + } + + /// + public string EndXMLAdapter(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void XMLAdapterAsync(string sXML) + { + XMLAdapterAsync(sXML, null); + } + + /// + public void XMLAdapterAsync(string sXML, object userState) + { + if (XMLAdapterOperationCompleted == null) + { + XMLAdapterOperationCompleted = OnXMLAdapterOperationCompleted; + } + InvokeAsync("XMLAdapter", new object[] { sXML }, XMLAdapterOperationCompleted, userState); + } + + private void OnXMLAdapterOperationCompleted(object arg) + { + if (XMLAdapterCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + XMLAdapterCompleted?.Invoke(this, new XMLAdapterCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + public new void CancelAsync(object userState) + { + base.CancelAsync(userState); + } + + private bool IsLocalFileSystemWebService(string url) + { + if (url == null || ReferenceEquals(url, string.Empty)) + { + return false; + } + var wsUri = new Uri(url); + if (wsUri.Port >= 1024 && string.Compare(wsUri.Host, "localHost", StringComparison.OrdinalIgnoreCase) == 0) + { + return true; + } + return false; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void XMLAdapterCompletedEventHandler(object sender, XMLAdapterCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class XMLAdapterCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal XMLAdapterCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } +} \ No newline at end of file diff --git a/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_WorkFlow/Reference.map b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_WorkFlow/Reference.map new file mode 100644 index 0000000..0aacda6 --- /dev/null +++ b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_WorkFlow/Reference.map @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_WorkFlow/WFMESService.disco b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_WorkFlow/WFMESService.disco new file mode 100644 index 0000000..032f9f9 --- /dev/null +++ b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_WorkFlow/WFMESService.disco @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_WorkFlow/WFMESService.wsdl b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_WorkFlow/WFMESService.wsdl new file mode 100644 index 0000000..851ed7a --- /dev/null +++ b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_WorkFlow/WFMESService.wsdl @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsInvoke/Reference.cs b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsInvoke/Reference.cs new file mode 100644 index 0000000..f47916a --- /dev/null +++ b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsInvoke/Reference.cs @@ -0,0 +1,1535 @@ +// ------------------------------------------------------------------------------ +// +// 這段程式碼是由工具產生的。 +// 執行階段版本:4.0.30319.42000 +// +// 對這個檔案所做的變更可能會造成錯誤的行為,而且如果重新產生程式碼, +// 變更將會遺失。 +// +// ------------------------------------------------------------------------------ + + +using System; +using System.ComponentModel; +using System.Data; +using System.Diagnostics; +using System.Web.Services; +using System.Web.Services.Protocols; +using System.Xml.Serialization; +using Microsoft.VisualBasic.CompilerServices; + +// +// 原始程式碼已由 Microsoft.VSDesigner 自動產生,版本 4.0.30319.42000。 +// +namespace AutoRunLib_C.wsInvoke +{ + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + [WebServiceBinding(Name = "wsInvokeSoap", Namespace = "http://www.imestech.com/wsInvoke")] + [XmlInclude(typeof(object[]))] + public partial class wsInvoke : SoapHttpClientProtocol + { + + private System.Threading.SendOrPostCallback invokeSrvOperationCompleted; + + private System.Threading.SendOrPostCallback invokeSrv_EnableLogOperationCompleted; + + private System.Threading.SendOrPostCallback invokeSrv_XmlOperationCompleted; + + private System.Threading.SendOrPostCallback invokeSrv_Xml_SessionOperationCompleted; + + private System.Threading.SendOrPostCallback invokeSrv_DataTableParameterOperationCompleted; + + private System.Threading.SendOrPostCallback invokeSrv_DataTableOperationCompleted; + + private System.Threading.SendOrPostCallback invokeSrv_DataSetOperationCompleted; + + private System.Threading.SendOrPostCallback invokeSrv_SessionOperationCompleted; + + private System.Threading.SendOrPostCallback invokeSrv_Session_jsonOperationCompleted; + + private System.Threading.SendOrPostCallback invokeSrv_jsonOperationCompleted; + + private System.Threading.SendOrPostCallback invokeSrv_Session_plainjsonOperationCompleted; + + private System.Threading.SendOrPostCallback invokeSrv_plainjsonOperationCompleted; + + private System.Threading.SendOrPostCallback TestOperationCompleted; + + private System.Threading.SendOrPostCallback invoke_SignalROperationCompleted; + + private System.Threading.SendOrPostCallback invokeSrv_ModuleOperationCompleted; + + private System.Threading.SendOrPostCallback invokeSrv_Module_DataSetOperationCompleted; + + private System.Threading.SendOrPostCallback Invoke_GuardServer_ProcessOperationCompleted; + + private bool useDefaultCredentialsSetExplicitly; + + /// + public wsInvoke() : base() + { + Url = My.MySettings.Default.AutoRunLib_wsInvoke_wsInvoke; + if (IsLocalFileSystemWebService(Url) == true) + { + UseDefaultCredentials = true; + useDefaultCredentialsSetExplicitly = false; + } + else + { + useDefaultCredentialsSetExplicitly = true; + } + } + + public new string Url + { + get + { + return base.Url; + } + set + { + if (IsLocalFileSystemWebService(base.Url) == true && useDefaultCredentialsSetExplicitly == false && IsLocalFileSystemWebService(value) == false) + + { + base.UseDefaultCredentials = false; + } + base.Url = value; + } + } + + public new bool UseDefaultCredentials + { + get + { + return base.UseDefaultCredentials; + } + set + { + base.UseDefaultCredentials = value; + useDefaultCredentialsSetExplicitly = true; + } + } + + /// + public event invokeSrvCompletedEventHandler invokeSrvCompleted; + + /// + public event invokeSrv_EnableLogCompletedEventHandler invokeSrv_EnableLogCompleted; + + /// + public event invokeSrv_XmlCompletedEventHandler invokeSrv_XmlCompleted; + + /// + public event invokeSrv_Xml_SessionCompletedEventHandler invokeSrv_Xml_SessionCompleted; + + /// + public event invokeSrv_DataTableParameterCompletedEventHandler invokeSrv_DataTableParameterCompleted; + + /// + public event invokeSrv_DataTableCompletedEventHandler invokeSrv_DataTableCompleted; + + /// + public event invokeSrv_DataSetCompletedEventHandler invokeSrv_DataSetCompleted; + + /// + public event invokeSrv_SessionCompletedEventHandler invokeSrv_SessionCompleted; + + /// + public event invokeSrv_Session_jsonCompletedEventHandler invokeSrv_Session_jsonCompleted; + + /// + public event invokeSrv_jsonCompletedEventHandler invokeSrv_jsonCompleted; + + /// + public event invokeSrv_Session_plainjsonCompletedEventHandler invokeSrv_Session_plainjsonCompleted; + + /// + public event invokeSrv_plainjsonCompletedEventHandler invokeSrv_plainjsonCompleted; + + /// + public event TestCompletedEventHandler TestCompleted; + + /// + public event invoke_SignalRCompletedEventHandler invoke_SignalRCompleted; + + /// + public event invokeSrv_ModuleCompletedEventHandler invokeSrv_ModuleCompleted; + + /// + public event invokeSrv_Module_DataSetCompletedEventHandler invokeSrv_Module_DataSetCompleted; + + /// + public event Invoke_GuardServer_ProcessCompletedEventHandler Invoke_GuardServer_ProcessCompleted; + + /// + [SoapDocumentMethod("http://www.imestech.com/wsInvoke/invokeSrv", RequestNamespace = "http://www.imestech.com/wsInvoke", ResponseNamespace = "http://www.imestech.com/wsInvoke", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public object invokeSrv(string method, object[] parameters) + { + object[] results = Invoke("invokeSrv", new object[] { method, parameters }); + return results[0]; + } + + /// + public IAsyncResult BegininvokeSrv(string method, object[] parameters, AsyncCallback callback, object asyncState) + { + return BeginInvoke("invokeSrv", new object[] { method, parameters }, callback, asyncState); + } + + /// + public object EndinvokeSrv(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return results[0]; + } + + /// + public void invokeSrvAsync(string method, object[] parameters) + { + invokeSrvAsync(method, parameters, null); + } + + /// + public void invokeSrvAsync(string method, object[] parameters, object userState) + { + if (invokeSrvOperationCompleted == null) + { + invokeSrvOperationCompleted = OninvokeSrvOperationCompleted; + } + InvokeAsync("invokeSrv", new object[] { method, parameters }, invokeSrvOperationCompleted, userState); + } + + private void OninvokeSrvOperationCompleted(object arg) + { + if (invokeSrvCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + invokeSrvCompleted?.Invoke(this, new invokeSrvCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsInvoke/invokeSrv_EnableLog", RequestNamespace = "http://www.imestech.com/wsInvoke", ResponseNamespace = "http://www.imestech.com/wsInvoke", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public object invokeSrv_EnableLog(string method, object[] parameters, bool LogOn) + { + object[] results = Invoke("invokeSrv_EnableLog", new object[] { method, parameters, LogOn }); + return results[0]; + } + + /// + public IAsyncResult BegininvokeSrv_EnableLog(string method, object[] parameters, bool LogOn, AsyncCallback callback, object asyncState) + { + return BeginInvoke("invokeSrv_EnableLog", new object[] { method, parameters, LogOn }, callback, asyncState); + } + + /// + public object EndinvokeSrv_EnableLog(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return results[0]; + } + + /// + public void invokeSrv_EnableLogAsync(string method, object[] parameters, bool LogOn) + { + invokeSrv_EnableLogAsync(method, parameters, LogOn, null); + } + + /// + public void invokeSrv_EnableLogAsync(string method, object[] parameters, bool LogOn, object userState) + { + if (invokeSrv_EnableLogOperationCompleted == null) + { + invokeSrv_EnableLogOperationCompleted = OninvokeSrv_EnableLogOperationCompleted; + } + InvokeAsync("invokeSrv_EnableLog", new object[] { method, parameters, LogOn }, invokeSrv_EnableLogOperationCompleted, userState); + } + + private void OninvokeSrv_EnableLogOperationCompleted(object arg) + { + if (invokeSrv_EnableLogCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + invokeSrv_EnableLogCompleted?.Invoke(this, new invokeSrv_EnableLogCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsInvoke/invokeSrv_Xml", RequestNamespace = "http://www.imestech.com/wsInvoke", ResponseNamespace = "http://www.imestech.com/wsInvoke", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public object invokeSrv_Xml(string method, string inXMl) + { + object[] results = Invoke("invokeSrv_Xml", new object[] { method, inXMl }); + return results[0]; + } + + /// + public IAsyncResult BegininvokeSrv_Xml(string method, string inXMl, AsyncCallback callback, object asyncState) + { + return BeginInvoke("invokeSrv_Xml", new object[] { method, inXMl }, callback, asyncState); + } + + /// + public object EndinvokeSrv_Xml(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return results[0]; + } + + /// + public void invokeSrv_XmlAsync(string method, string inXMl) + { + invokeSrv_XmlAsync(method, inXMl, null); + } + + /// + public void invokeSrv_XmlAsync(string method, string inXMl, object userState) + { + if (invokeSrv_XmlOperationCompleted == null) + { + invokeSrv_XmlOperationCompleted = OninvokeSrv_XmlOperationCompleted; + } + InvokeAsync("invokeSrv_Xml", new object[] { method, inXMl }, invokeSrv_XmlOperationCompleted, userState); + } + + private void OninvokeSrv_XmlOperationCompleted(object arg) + { + if (invokeSrv_XmlCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + invokeSrv_XmlCompleted?.Invoke(this, new invokeSrv_XmlCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsInvoke/invokeSrv_Xml_Session", RequestNamespace = "http://www.imestech.com/wsInvoke", ResponseNamespace = "http://www.imestech.com/wsInvoke", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public object invokeSrv_Xml_Session(string method, string inXMl) + { + object[] results = Invoke("invokeSrv_Xml_Session", new object[] { method, inXMl }); + return results[0]; + } + + /// + public IAsyncResult BegininvokeSrv_Xml_Session(string method, string inXMl, AsyncCallback callback, object asyncState) + { + return BeginInvoke("invokeSrv_Xml_Session", new object[] { method, inXMl }, callback, asyncState); + } + + /// + public object EndinvokeSrv_Xml_Session(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return results[0]; + } + + /// + public void invokeSrv_Xml_SessionAsync(string method, string inXMl) + { + invokeSrv_Xml_SessionAsync(method, inXMl, null); + } + + /// + public void invokeSrv_Xml_SessionAsync(string method, string inXMl, object userState) + { + if (invokeSrv_Xml_SessionOperationCompleted == null) + { + invokeSrv_Xml_SessionOperationCompleted = OninvokeSrv_Xml_SessionOperationCompleted; + } + InvokeAsync("invokeSrv_Xml_Session", new object[] { method, inXMl }, invokeSrv_Xml_SessionOperationCompleted, userState); + } + + private void OninvokeSrv_Xml_SessionOperationCompleted(object arg) + { + if (invokeSrv_Xml_SessionCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + invokeSrv_Xml_SessionCompleted?.Invoke(this, new invokeSrv_Xml_SessionCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsInvoke/invokeSrv_DataTableParameter", RequestNamespace = "http://www.imestech.com/wsInvoke", ResponseNamespace = "http://www.imestech.com/wsInvoke", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public object invokeSrv_DataTableParameter(string method, object[] parameters, ref DataTable pDataTable) + { + object[] results = Invoke("invokeSrv_DataTableParameter", new object[] { method, parameters, pDataTable }); + pDataTable = (DataTable)results[1]; + return results[0]; + } + + /// + public IAsyncResult BegininvokeSrv_DataTableParameter(string method, object[] parameters, DataTable pDataTable, AsyncCallback callback, object asyncState) + { + return BeginInvoke("invokeSrv_DataTableParameter", new object[] { method, parameters, pDataTable }, callback, asyncState); + } + + /// + public object EndinvokeSrv_DataTableParameter(IAsyncResult asyncResult, ref DataTable pDataTable) + { + object[] results = EndInvoke(asyncResult); + pDataTable = (DataTable)results[1]; + return results[0]; + } + + /// + public void invokeSrv_DataTableParameterAsync(string method, object[] parameters, DataTable pDataTable) + { + invokeSrv_DataTableParameterAsync(method, parameters, pDataTable, null); + } + + /// + public void invokeSrv_DataTableParameterAsync(string method, object[] parameters, DataTable pDataTable, object userState) + { + if (invokeSrv_DataTableParameterOperationCompleted == null) + { + invokeSrv_DataTableParameterOperationCompleted = OninvokeSrv_DataTableParameterOperationCompleted; + } + InvokeAsync("invokeSrv_DataTableParameter", new object[] { method, parameters, pDataTable }, invokeSrv_DataTableParameterOperationCompleted, userState); + } + + private void OninvokeSrv_DataTableParameterOperationCompleted(object arg) + { + if (invokeSrv_DataTableParameterCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + invokeSrv_DataTableParameterCompleted?.Invoke(this, new invokeSrv_DataTableParameterCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsInvoke/invokeSrv_DataTable", RequestNamespace = "http://www.imestech.com/wsInvoke", ResponseNamespace = "http://www.imestech.com/wsInvoke", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public object invokeSrv_DataTable(string method, string InXml, ref DataTable pDataTable) + { + object[] results = Invoke("invokeSrv_DataTable", new object[] { method, InXml, pDataTable }); + pDataTable = (DataTable)results[1]; + return results[0]; + } + + /// + public IAsyncResult BegininvokeSrv_DataTable(string method, string InXml, DataTable pDataTable, AsyncCallback callback, object asyncState) + { + return BeginInvoke("invokeSrv_DataTable", new object[] { method, InXml, pDataTable }, callback, asyncState); + } + + /// + public object EndinvokeSrv_DataTable(IAsyncResult asyncResult, ref DataTable pDataTable) + { + object[] results = EndInvoke(asyncResult); + pDataTable = (DataTable)results[1]; + return results[0]; + } + + /// + public void invokeSrv_DataTableAsync(string method, string InXml, DataTable pDataTable) + { + invokeSrv_DataTableAsync(method, InXml, pDataTable, null); + } + + /// + public void invokeSrv_DataTableAsync(string method, string InXml, DataTable pDataTable, object userState) + { + if (invokeSrv_DataTableOperationCompleted == null) + { + invokeSrv_DataTableOperationCompleted = OninvokeSrv_DataTableOperationCompleted; + } + InvokeAsync("invokeSrv_DataTable", new object[] { method, InXml, pDataTable }, invokeSrv_DataTableOperationCompleted, userState); + } + + private void OninvokeSrv_DataTableOperationCompleted(object arg) + { + if (invokeSrv_DataTableCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + invokeSrv_DataTableCompleted?.Invoke(this, new invokeSrv_DataTableCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsInvoke/invokeSrv_DataSet", RequestNamespace = "http://www.imestech.com/wsInvoke", ResponseNamespace = "http://www.imestech.com/wsInvoke", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public object invokeSrv_DataSet(string method, string InXml, ref DataSet pDataSet) + { + object[] results = Invoke("invokeSrv_DataSet", new object[] { method, InXml, pDataSet }); + pDataSet = (DataSet)results[1]; + return results[0]; + } + + /// + public IAsyncResult BegininvokeSrv_DataSet(string method, string InXml, DataSet pDataSet, AsyncCallback callback, object asyncState) + { + return BeginInvoke("invokeSrv_DataSet", new object[] { method, InXml, pDataSet }, callback, asyncState); + } + + /// + public object EndinvokeSrv_DataSet(IAsyncResult asyncResult, ref DataSet pDataSet) + { + object[] results = EndInvoke(asyncResult); + pDataSet = (DataSet)results[1]; + return results[0]; + } + + /// + public void invokeSrv_DataSetAsync(string method, string InXml, DataSet pDataSet) + { + invokeSrv_DataSetAsync(method, InXml, pDataSet, null); + } + + /// + public void invokeSrv_DataSetAsync(string method, string InXml, DataSet pDataSet, object userState) + { + if (invokeSrv_DataSetOperationCompleted == null) + { + invokeSrv_DataSetOperationCompleted = OninvokeSrv_DataSetOperationCompleted; + } + InvokeAsync("invokeSrv_DataSet", new object[] { method, InXml, pDataSet }, invokeSrv_DataSetOperationCompleted, userState); + } + + private void OninvokeSrv_DataSetOperationCompleted(object arg) + { + if (invokeSrv_DataSetCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + invokeSrv_DataSetCompleted?.Invoke(this, new invokeSrv_DataSetCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsInvoke/invokeSrv_Session", RequestNamespace = "http://www.imestech.com/wsInvoke", ResponseNamespace = "http://www.imestech.com/wsInvoke", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public object invokeSrv_Session(string method, object[] parameters) + { + object[] results = Invoke("invokeSrv_Session", new object[] { method, parameters }); + return results[0]; + } + + /// + public IAsyncResult BegininvokeSrv_Session(string method, object[] parameters, AsyncCallback callback, object asyncState) + { + return BeginInvoke("invokeSrv_Session", new object[] { method, parameters }, callback, asyncState); + } + + /// + public object EndinvokeSrv_Session(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return results[0]; + } + + /// + public void invokeSrv_SessionAsync(string method, object[] parameters) + { + invokeSrv_SessionAsync(method, parameters, null); + } + + /// + public void invokeSrv_SessionAsync(string method, object[] parameters, object userState) + { + if (invokeSrv_SessionOperationCompleted == null) + { + invokeSrv_SessionOperationCompleted = OninvokeSrv_SessionOperationCompleted; + } + InvokeAsync("invokeSrv_Session", new object[] { method, parameters }, invokeSrv_SessionOperationCompleted, userState); + } + + private void OninvokeSrv_SessionOperationCompleted(object arg) + { + if (invokeSrv_SessionCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + invokeSrv_SessionCompleted?.Invoke(this, new invokeSrv_SessionCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsInvoke/invokeSrv_Session_json", RequestNamespace = "http://www.imestech.com/wsInvoke", ResponseNamespace = "http://www.imestech.com/wsInvoke", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string invokeSrv_Session_json(string metadata, string parameter) + { + object[] results = Invoke("invokeSrv_Session_json", new object[] { metadata, parameter }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BegininvokeSrv_Session_json(string metadata, string parameter, AsyncCallback callback, object asyncState) + { + return BeginInvoke("invokeSrv_Session_json", new object[] { metadata, parameter }, callback, asyncState); + } + + /// + public string EndinvokeSrv_Session_json(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void invokeSrv_Session_jsonAsync(string metadata, string parameter) + { + invokeSrv_Session_jsonAsync(metadata, parameter, null); + } + + /// + public void invokeSrv_Session_jsonAsync(string metadata, string parameter, object userState) + { + if (invokeSrv_Session_jsonOperationCompleted == null) + { + invokeSrv_Session_jsonOperationCompleted = OninvokeSrv_Session_jsonOperationCompleted; + } + InvokeAsync("invokeSrv_Session_json", new object[] { metadata, parameter }, invokeSrv_Session_jsonOperationCompleted, userState); + } + + private void OninvokeSrv_Session_jsonOperationCompleted(object arg) + { + if (invokeSrv_Session_jsonCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + invokeSrv_Session_jsonCompleted?.Invoke(this, new invokeSrv_Session_jsonCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsInvoke/invokeSrv_json", RequestNamespace = "http://www.imestech.com/wsInvoke", ResponseNamespace = "http://www.imestech.com/wsInvoke", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string invokeSrv_json(string uri, string content) + { + object[] results = Invoke("invokeSrv_json", new object[] { uri, content }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BegininvokeSrv_json(string uri, string content, AsyncCallback callback, object asyncState) + { + return BeginInvoke("invokeSrv_json", new object[] { uri, content }, callback, asyncState); + } + + /// + public string EndinvokeSrv_json(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void invokeSrv_jsonAsync(string uri, string content) + { + invokeSrv_jsonAsync(uri, content, null); + } + + /// + public void invokeSrv_jsonAsync(string uri, string content, object userState) + { + if (invokeSrv_jsonOperationCompleted == null) + { + invokeSrv_jsonOperationCompleted = OninvokeSrv_jsonOperationCompleted; + } + InvokeAsync("invokeSrv_json", new object[] { uri, content }, invokeSrv_jsonOperationCompleted, userState); + } + + private void OninvokeSrv_jsonOperationCompleted(object arg) + { + if (invokeSrv_jsonCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + invokeSrv_jsonCompleted?.Invoke(this, new invokeSrv_jsonCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsInvoke/invokeSrv_Session_plainjson", RequestNamespace = "http://www.imestech.com/wsInvoke", ResponseNamespace = "http://www.imestech.com/wsInvoke", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string invokeSrv_Session_plainjson(string uri, string content) + { + object[] results = Invoke("invokeSrv_Session_plainjson", new object[] { uri, content }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BegininvokeSrv_Session_plainjson(string uri, string content, AsyncCallback callback, object asyncState) + { + return BeginInvoke("invokeSrv_Session_plainjson", new object[] { uri, content }, callback, asyncState); + } + + /// + public string EndinvokeSrv_Session_plainjson(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void invokeSrv_Session_plainjsonAsync(string uri, string content) + { + invokeSrv_Session_plainjsonAsync(uri, content, null); + } + + /// + public void invokeSrv_Session_plainjsonAsync(string uri, string content, object userState) + { + if (invokeSrv_Session_plainjsonOperationCompleted == null) + { + invokeSrv_Session_plainjsonOperationCompleted = OninvokeSrv_Session_plainjsonOperationCompleted; + } + InvokeAsync("invokeSrv_Session_plainjson", new object[] { uri, content }, invokeSrv_Session_plainjsonOperationCompleted, userState); + } + + private void OninvokeSrv_Session_plainjsonOperationCompleted(object arg) + { + if (invokeSrv_Session_plainjsonCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + invokeSrv_Session_plainjsonCompleted?.Invoke(this, new invokeSrv_Session_plainjsonCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsInvoke/invokeSrv_plainjson", RequestNamespace = "http://www.imestech.com/wsInvoke", ResponseNamespace = "http://www.imestech.com/wsInvoke", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string invokeSrv_plainjson(string uri, string content) + { + object[] results = Invoke("invokeSrv_plainjson", new object[] { uri, content }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BegininvokeSrv_plainjson(string uri, string content, AsyncCallback callback, object asyncState) + { + return BeginInvoke("invokeSrv_plainjson", new object[] { uri, content }, callback, asyncState); + } + + /// + public string EndinvokeSrv_plainjson(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void invokeSrv_plainjsonAsync(string uri, string content) + { + invokeSrv_plainjsonAsync(uri, content, null); + } + + /// + public void invokeSrv_plainjsonAsync(string uri, string content, object userState) + { + if (invokeSrv_plainjsonOperationCompleted == null) + { + invokeSrv_plainjsonOperationCompleted = OninvokeSrv_plainjsonOperationCompleted; + } + InvokeAsync("invokeSrv_plainjson", new object[] { uri, content }, invokeSrv_plainjsonOperationCompleted, userState); + } + + private void OninvokeSrv_plainjsonOperationCompleted(object arg) + { + if (invokeSrv_plainjsonCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + invokeSrv_plainjsonCompleted?.Invoke(this, new invokeSrv_plainjsonCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsInvoke/Test", RequestNamespace = "http://www.imestech.com/wsInvoke", ResponseNamespace = "http://www.imestech.com/wsInvoke", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string Test(string UserNo) + { + object[] results = Invoke("Test", new object[] { UserNo }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginTest(string UserNo, AsyncCallback callback, object asyncState) + { + return BeginInvoke("Test", new object[] { UserNo }, callback, asyncState); + } + + /// + public string EndTest(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void TestAsync(string UserNo) + { + TestAsync(UserNo, null); + } + + /// + public void TestAsync(string UserNo, object userState) + { + if (TestOperationCompleted == null) + { + TestOperationCompleted = OnTestOperationCompleted; + } + InvokeAsync("Test", new object[] { UserNo }, TestOperationCompleted, userState); + } + + private void OnTestOperationCompleted(object arg) + { + if (TestCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + TestCompleted?.Invoke(this, new TestCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsInvoke/invoke_SignalR", RequestNamespace = "http://www.imestech.com/wsInvoke", ResponseNamespace = "http://www.imestech.com/wsInvoke", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public object invoke_SignalR(string mseContent) + { + object[] results = Invoke("invoke_SignalR", new object[] { mseContent }); + return results[0]; + } + + /// + public IAsyncResult Begininvoke_SignalR(string mseContent, AsyncCallback callback, object asyncState) + { + return BeginInvoke("invoke_SignalR", new object[] { mseContent }, callback, asyncState); + } + + /// + public object Endinvoke_SignalR(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return results[0]; + } + + /// + public void invoke_SignalRAsync(string mseContent) + { + invoke_SignalRAsync(mseContent, null); + } + + /// + public void invoke_SignalRAsync(string mseContent, object userState) + { + if (invoke_SignalROperationCompleted == null) + { + invoke_SignalROperationCompleted = Oninvoke_SignalROperationCompleted; + } + InvokeAsync("invoke_SignalR", new object[] { mseContent }, invoke_SignalROperationCompleted, userState); + } + + private void Oninvoke_SignalROperationCompleted(object arg) + { + if (invoke_SignalRCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + invoke_SignalRCompleted?.Invoke(this, new invoke_SignalRCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsInvoke/invokeSrv_Module", RequestNamespace = "http://www.imestech.com/wsInvoke", ResponseNamespace = "http://www.imestech.com/wsInvoke", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public object invokeSrv_Module(string method, ref object[] parameters, object pInvokeType, string[] pLogKeyFields, bool blnLogOn) + { + object[] results = Invoke("invokeSrv_Module", new object[] { method, parameters, pInvokeType, pLogKeyFields, blnLogOn }); + parameters = (object[])results[1]; + return results[0]; + } + + /// + public IAsyncResult BegininvokeSrv_Module(string method, object[] parameters, object pInvokeType, string[] pLogKeyFields, bool blnLogOn, AsyncCallback callback, object asyncState) + { + return BeginInvoke("invokeSrv_Module", new object[] { method, parameters, pInvokeType, pLogKeyFields, blnLogOn }, callback, asyncState); + } + + /// + public object EndinvokeSrv_Module(IAsyncResult asyncResult, ref object[] parameters) + { + object[] results = EndInvoke(asyncResult); + parameters = (object[])results[1]; + return results[0]; + } + + /// + public void invokeSrv_ModuleAsync(string method, object[] parameters, object pInvokeType, string[] pLogKeyFields, bool blnLogOn) + { + invokeSrv_ModuleAsync(method, parameters, pInvokeType, pLogKeyFields, blnLogOn, null); + } + + /// + public void invokeSrv_ModuleAsync(string method, object[] parameters, object pInvokeType, string[] pLogKeyFields, bool blnLogOn, object userState) + { + if (invokeSrv_ModuleOperationCompleted == null) + { + invokeSrv_ModuleOperationCompleted = OninvokeSrv_ModuleOperationCompleted; + } + InvokeAsync("invokeSrv_Module", new object[] { method, parameters, pInvokeType, pLogKeyFields, blnLogOn }, invokeSrv_ModuleOperationCompleted, userState); + } + + private void OninvokeSrv_ModuleOperationCompleted(object arg) + { + if (invokeSrv_ModuleCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + invokeSrv_ModuleCompleted?.Invoke(this, new invokeSrv_ModuleCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsInvoke/invokeSrv_Module_DataSet", RequestNamespace = "http://www.imestech.com/wsInvoke", ResponseNamespace = "http://www.imestech.com/wsInvoke", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public object invokeSrv_Module_DataSet(string method, ref object[] parameters, object pInvokeType, string[] pLogKeyFields, bool blnLogOn, ref DataSet pDataSet) + { + object[] results = Invoke("invokeSrv_Module_DataSet", new object[] { method, parameters, pInvokeType, pLogKeyFields, blnLogOn, pDataSet }); + parameters = (object[])results[1]; + pDataSet = (DataSet)results[2]; + return results[0]; + } + + /// + public IAsyncResult BegininvokeSrv_Module_DataSet(string method, object[] parameters, object pInvokeType, string[] pLogKeyFields, bool blnLogOn, DataSet pDataSet, AsyncCallback callback, object asyncState) + { + return BeginInvoke("invokeSrv_Module_DataSet", new object[] { method, parameters, pInvokeType, pLogKeyFields, blnLogOn, pDataSet }, callback, asyncState); + } + + /// + public object EndinvokeSrv_Module_DataSet(IAsyncResult asyncResult, ref object[] parameters, ref DataSet pDataSet) + { + object[] results = EndInvoke(asyncResult); + parameters = (object[])results[1]; + pDataSet = (DataSet)results[2]; + return results[0]; + } + + /// + public void invokeSrv_Module_DataSetAsync(string method, object[] parameters, object pInvokeType, string[] pLogKeyFields, bool blnLogOn, DataSet pDataSet) + { + invokeSrv_Module_DataSetAsync(method, parameters, pInvokeType, pLogKeyFields, blnLogOn, pDataSet, null); + } + + /// + public void invokeSrv_Module_DataSetAsync(string method, object[] parameters, object pInvokeType, string[] pLogKeyFields, bool blnLogOn, DataSet pDataSet, object userState) + { + if (invokeSrv_Module_DataSetOperationCompleted == null) + { + invokeSrv_Module_DataSetOperationCompleted = OninvokeSrv_Module_DataSetOperationCompleted; + } + InvokeAsync("invokeSrv_Module_DataSet", new object[] { method, parameters, pInvokeType, pLogKeyFields, blnLogOn, pDataSet }, invokeSrv_Module_DataSetOperationCompleted, userState); + } + + private void OninvokeSrv_Module_DataSetOperationCompleted(object arg) + { + if (invokeSrv_Module_DataSetCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + invokeSrv_Module_DataSetCompleted?.Invoke(this, new invokeSrv_Module_DataSetCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsInvoke/Invoke_GuardServer_Process", RequestNamespace = "http://www.imestech.com/wsInvoke", ResponseNamespace = "http://www.imestech.com/wsInvoke", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public object Invoke_GuardServer_Process() + { + object[] results = Invoke("Invoke_GuardServer_Process", new object[0]); + return results[0]; + } + + /// + public IAsyncResult BeginInvoke_GuardServer_Process(AsyncCallback callback, object asyncState) + { + return BeginInvoke("Invoke_GuardServer_Process", new object[0], callback, asyncState); + } + + /// + public object EndInvoke_GuardServer_Process(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return results[0]; + } + + /// + public void Invoke_GuardServer_ProcessAsync() + { + Invoke_GuardServer_ProcessAsync(null); + } + + /// + public void Invoke_GuardServer_ProcessAsync(object userState) + { + if (Invoke_GuardServer_ProcessOperationCompleted == null) + { + Invoke_GuardServer_ProcessOperationCompleted = OnInvoke_GuardServer_ProcessOperationCompleted; + } + InvokeAsync("Invoke_GuardServer_Process", new object[0], Invoke_GuardServer_ProcessOperationCompleted, userState); + } + + private void OnInvoke_GuardServer_ProcessOperationCompleted(object arg) + { + if (Invoke_GuardServer_ProcessCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + Invoke_GuardServer_ProcessCompleted?.Invoke(this, new Invoke_GuardServer_ProcessCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + public new void CancelAsync(object userState) + { + base.CancelAsync(userState); + } + + private bool IsLocalFileSystemWebService(string url) + { + if (url == null || ReferenceEquals(url, string.Empty)) + { + return false; + } + var wsUri = new Uri(url); + if (wsUri.Port >= 1024 && string.Compare(wsUri.Host, "localHost", StringComparison.OrdinalIgnoreCase) == 0) + { + return true; + } + return false; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void invokeSrvCompletedEventHandler(object sender, invokeSrvCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class invokeSrvCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal invokeSrvCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public object Result + { + get + { + RaiseExceptionIfNecessary(); + return results[0]; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void invokeSrv_EnableLogCompletedEventHandler(object sender, invokeSrv_EnableLogCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class invokeSrv_EnableLogCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal invokeSrv_EnableLogCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public object Result + { + get + { + RaiseExceptionIfNecessary(); + return results[0]; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void invokeSrv_XmlCompletedEventHandler(object sender, invokeSrv_XmlCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class invokeSrv_XmlCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal invokeSrv_XmlCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public object Result + { + get + { + RaiseExceptionIfNecessary(); + return results[0]; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void invokeSrv_Xml_SessionCompletedEventHandler(object sender, invokeSrv_Xml_SessionCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class invokeSrv_Xml_SessionCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal invokeSrv_Xml_SessionCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public object Result + { + get + { + RaiseExceptionIfNecessary(); + return results[0]; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void invokeSrv_DataTableParameterCompletedEventHandler(object sender, invokeSrv_DataTableParameterCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class invokeSrv_DataTableParameterCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal invokeSrv_DataTableParameterCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public object Result + { + get + { + RaiseExceptionIfNecessary(); + return results[0]; + } + } + + /// + public DataTable pDataTable + { + get + { + RaiseExceptionIfNecessary(); + return (DataTable)results[1]; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void invokeSrv_DataTableCompletedEventHandler(object sender, invokeSrv_DataTableCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class invokeSrv_DataTableCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal invokeSrv_DataTableCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public object Result + { + get + { + RaiseExceptionIfNecessary(); + return results[0]; + } + } + + /// + public DataTable pDataTable + { + get + { + RaiseExceptionIfNecessary(); + return (DataTable)results[1]; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void invokeSrv_DataSetCompletedEventHandler(object sender, invokeSrv_DataSetCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class invokeSrv_DataSetCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal invokeSrv_DataSetCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public object Result + { + get + { + RaiseExceptionIfNecessary(); + return results[0]; + } + } + + /// + public DataSet pDataSet + { + get + { + RaiseExceptionIfNecessary(); + return (DataSet)results[1]; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void invokeSrv_SessionCompletedEventHandler(object sender, invokeSrv_SessionCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class invokeSrv_SessionCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal invokeSrv_SessionCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public object Result + { + get + { + RaiseExceptionIfNecessary(); + return results[0]; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void invokeSrv_Session_jsonCompletedEventHandler(object sender, invokeSrv_Session_jsonCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class invokeSrv_Session_jsonCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal invokeSrv_Session_jsonCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void invokeSrv_jsonCompletedEventHandler(object sender, invokeSrv_jsonCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class invokeSrv_jsonCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal invokeSrv_jsonCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void invokeSrv_Session_plainjsonCompletedEventHandler(object sender, invokeSrv_Session_plainjsonCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class invokeSrv_Session_plainjsonCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal invokeSrv_Session_plainjsonCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void invokeSrv_plainjsonCompletedEventHandler(object sender, invokeSrv_plainjsonCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class invokeSrv_plainjsonCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal invokeSrv_plainjsonCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void TestCompletedEventHandler(object sender, TestCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class TestCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal TestCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void invoke_SignalRCompletedEventHandler(object sender, invoke_SignalRCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class invoke_SignalRCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal invoke_SignalRCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public object Result + { + get + { + RaiseExceptionIfNecessary(); + return results[0]; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void invokeSrv_ModuleCompletedEventHandler(object sender, invokeSrv_ModuleCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class invokeSrv_ModuleCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal invokeSrv_ModuleCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public object Result + { + get + { + RaiseExceptionIfNecessary(); + return results[0]; + } + } + + /// + public object[] parameters + { + get + { + RaiseExceptionIfNecessary(); + return (object[])results[1]; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void invokeSrv_Module_DataSetCompletedEventHandler(object sender, invokeSrv_Module_DataSetCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class invokeSrv_Module_DataSetCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal invokeSrv_Module_DataSetCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public object Result + { + get + { + RaiseExceptionIfNecessary(); + return results[0]; + } + } + + /// + public object[] parameters + { + get + { + RaiseExceptionIfNecessary(); + return (object[])results[1]; + } + } + + /// + public DataSet pDataSet + { + get + { + RaiseExceptionIfNecessary(); + return (DataSet)results[2]; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void Invoke_GuardServer_ProcessCompletedEventHandler(object sender, Invoke_GuardServer_ProcessCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class Invoke_GuardServer_ProcessCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal Invoke_GuardServer_ProcessCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public object Result + { + get + { + RaiseExceptionIfNecessary(); + return results[0]; + } + } + } +} \ No newline at end of file diff --git a/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsInvoke/Reference.map b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsInvoke/Reference.map new file mode 100644 index 0000000..45b6d58 --- /dev/null +++ b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsInvoke/Reference.map @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsInvoke/wsInvoke.disco b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsInvoke/wsInvoke.disco new file mode 100644 index 0000000..58b19cf --- /dev/null +++ b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsInvoke/wsInvoke.disco @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsInvoke/wsInvoke.wsdl b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsInvoke/wsInvoke.wsdl new file mode 100644 index 0000000..bd1c187 --- /dev/null +++ b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsInvoke/wsInvoke.wsdl @@ -0,0 +1,847 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Invoke with objects and Return XML + + + + + Invoke with objects and Return XML, And Enable Performance Log + + + + + Invoke with Xml String and Return XML + + + + + EnableSession, Invoke with Xml String and Return XML + + + + + Invoke with DataTable and Object Return XML + + + + + Invoke with DataTable and Return XML + + + + + Invoke with DataSet and Return XML + + + + + EnableSession, Invoke and Return XML + + + + + EnableSession, Invoke Web Service Resolved json + + + + + Invoke Web Service Resolved json + + + + + EnableSession, Invoke Web Service Resolved json + + + + + Invoke Web Service Resolved json + + + + + Web service and database connection test + + + + + Call SignalR, Invoke and Return XML + + + + + Invoke Module with InXml + + + + + Invoke Module with InXml and DataSet Parameter + + + + + return hysical directory + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SRC/MESAgent/MESAutoRun/AutoRunLib/app.config b/SRC/MESAgent/MESAutoRun/AutoRunLib/app.config new file mode 100644 index 0000000..7ecc033 --- /dev/null +++ b/SRC/MESAgent/MESAutoRun/AutoRunLib/app.config @@ -0,0 +1,35 @@ + + + + +
+ + + + + + + + + + http://localhost/ERPws_DSC/wsMES.asmx + + + http://10.40.40.30/gas/ws/r/aws_ttsrv2_top2o + + + http://218.211.164.212:8082/ws/r/aws_ttsrv2_top3o + + + http://10.40.41.197:9999/IntegrationEntry + + + http://localhost/MESws_STD/wsInvoke.asmx + + + http://10.40.30.73/WFMES/WFMESService.asmx + + + + diff --git a/SRC/MESAgent/MESAutoRun/AutoRunLib/clsAutoRunLibrary.cs b/SRC/MESAgent/MESAutoRun/AutoRunLib/clsAutoRunLibrary.cs new file mode 100644 index 0000000..379e6b8 --- /dev/null +++ b/SRC/MESAgent/MESAutoRun/AutoRunLib/clsAutoRunLibrary.cs @@ -0,0 +1,1189 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Data; +using System.Data.OracleClient; +using System.Data.SqlClient; +using System.Diagnostics; +using System.IO; +using System.Linq; +using System.Runtime.InteropServices; +using System.Text; +using System.Threading; +using System.Xml; +using iMESCIO.SCI.ERP.Request; +using iMESCIO.SCI.ERP.Response; +using iMESCIO.SCI.ERP.Request_E10ICD; +using iMESCIO.SCI.ERP.Response_E10ICD; +using iMESCIO.SCI.Base; +using Microsoft.VisualBasic; +using Microsoft.VisualBasic.CompilerServices; +using iMESCore.Settings; +using static iMESCore.DataBase.iMESSql; +using static iMESCore.Base.iMESComXML; +using static iMESCore.Base.iMESConst; +using static iMESCore.Base.iMESComSubroutine; +using System.Data.Common; + +namespace AutoRunLib_C +{ + + + + + public class clsAutoRunLibrary + { + + // 2016/06/23 YF, 原呼叫標準各模組的WebService, 改統一呼叫wsInvoke + + public enum ERPName + { + TIPTOP = 0, + Workflow = 1, + T100 = 2, + HMI = 3, + APS = 4 + } + + private DataTable dtERPSetting = null; + + private IDbCommand cmmTemp; + private string strDataBaseType; // DataBase Type:oracle, mysql, access + private string strConnectionString; // Connection string + private string strReportDataBaseType; + private string strReportConnectionString; // Report DB Connection string + private string strMQType; // MessageQueue Type:TIBCO, MQSeries, MSMQ + + private IDbCommand cmmTempERP; + private string strERPconnectionString; + private string strERPDataBaseType; + private string strERPReportConnectionString; + + private string strERPCreator = "ERP"; // 取得Config設定之defCreator. + private string strDefLanguage; // 取得Config設定之LanguageMode. + private string strLanguage_T100; // MES對應ERP T100語系 + + private AppSettings objSetting = new AppSettings(); + private clsDBCom objDBcom = new clsDBCom(); + + public string strComputerName, strERPUnitNo; + public string strAppPath; + + public string gERPUser; // ERP使用者名稱 + public string gERPPassword; // ERP密碼 + public string gERPWSURL; // ERP Web服務網址 + public string gERPOraganization; // ERP營運中心代碼 + public string gERPLanguage; // ERP語系 + public string gERPVersion; // ERP版本 + + // //Web Service相關變數 + private XmlDocument XmlDoc = new XmlDocument(); + private StringReader tmpStringReader; + private string InXml, OutXml, strIdentity, strParameter, XmlData, XmlSchema; + + private string ExceptionXML; // ===== + + private string ERP_EntID; + private string ERP_Site; + private string ERP_URL; + private string results; + private string strLanguageMode = "zh-cht"; + private string strResourceDir = "Resources"; + + // Dim objkcWIP As New kcWIP.clsOperatorState '宣告Sys的物件 + + // //Initial Object-------------------------------------------------------------------------------------------------------------------------------- + public clsAutoRunLibrary() + { + // //Get database type + strDataBaseType = objSetting.GetDataBaseType(); + // //Get connection string + strConnectionString = objSetting.GetConnectionString(strDataBaseType); + // //Get Message Queue Type + strMQType = objSetting.GetMQType(); + + strReportDataBaseType = objSetting.GetReportDataBaseType(); + // //Get connection string + strReportConnectionString = objSetting.GetReportConnectionString(strReportDataBaseType); + + // ERP + // //Get ERP database type + strERPDataBaseType = objSetting.GetDataBaseType_ERP(); + // //Get ERP connection string + strERPconnectionString = objSetting.GetConnectionString_ERP(strERPDataBaseType); + + try + { + strResourceDir = objSetting["ResourceDir"].ToString(); + } + catch (Exception) + { } + try + { + strLanguageMode = objSetting["LanguageMode"].ToString(); + } + catch (Exception) + { + } + + // T100 整合項目增加, 取得 Web.Config 設定項目, 2015/12/15 Add. + + try + { + // 從Web.config取出目前的DatabaseType + strERPCreator = System.Configuration.ConfigurationSettings.AppSettings.Get("defCreator"); + // 2016-03-09, Joe, 取出預設ERP單位屬性編號 + strERPUnitNo = System.Configuration.ConfigurationSettings.AppSettings.Get("defERPUnitNoProperty"); + // 2016-03-02, Joe, 取出預設語系並轉換成ERP對應語系,後續T100多語系資料需用到 + strDefLanguage = System.Configuration.ConfigurationSettings.AppSettings.Get("LanguageMode"); + switch (strDefLanguage.ToUpper() ?? "") + { + case "ZH-CHS": + { + strLanguage_T100 = "zh_CN"; + break; + } + case "EN": + { + strLanguage_T100 = "en_US"; + break; + } + + default: + { + strLanguage_T100 = "zh_TW"; + break; + } + } + } + catch (Exception ex) + { + // 發生錯誤時丟回本身的Function Name及系統錯誤訊息 + } + + + } + + + // //Property-------------------------------------------------------------------------------------------------------------------------------- + public string ConnectionString + { + get + { + return strConnectionString; + } + } + + public string DataBaseType + { + get + { + return strDataBaseType; + } + } + + // Public ReadOnly Property ERPConnectionString() + // Get + // ERPConnectionString = strERPconnectionString + // End Get + // End Property + + // Public ReadOnly Property ERPDataBaseType() + // Get + // ERPDataBaseType = strERPDataBaseType + // End Get + // End Property + + public string MQType + { + get + { + return strMQType; + } + } + + + // //Function-------------------------------------------------------------------------------------------------------------------------------- + #region 共用的function (不可刪除) + + // //Public function---------------------------------------------------------------------------------------------------- + public string ExecuteFunction(string FunctionName, Collection colParameters = null) + { + string ExecuteFunctionRet = default(string); + // 此 Function 將執行傳入之FunctionName + // 傳入值: FunctionName,colParameters + // 傳回值: DataSet(成功), nothing(失敗) + + // colParameters的資料範例如下 + // colParameters.Add("C1", "CustomerNo") + // colParameters.Add("P1", "ProductNo") + + int i; + + try + { + // 2019/07/26 OwenLiu, Mantis:0060463, AutoRunService 支持行業包共用架構 + // -------------------------------------------------------------------------------------------------- + // 半導體芯片製造行業包(SEMI_WAFER):S, AutoRunLib_SEMI_WAFER.dll, Job Function固定以 fun_S_ 開頭 + // 半導體芯片測試行業包(IC_CP_PKG):P, AutoRunLib_IC_CP_PKG.dll, Job Function固定以 fun_P_ 開頭 + // 集成電路封測行業包(IC_FT_PKG):I, AutoRunLib_IC_FT_PKG.dll, Job Function固定以 fun_I_ 開頭 + // 分立器件封測行業包(DISCRETE_PKG):D, AutoRunLib_DISCRETE_PKG.dll, Job Function固定以 fun_D_ 開頭 + // LED封測行業包(LED_PKG):L, AutoRunLib_LED_PKG.dll, Job Function固定以 fun_L_ 開頭 + // 序號組裝行業包(ASM):A, AutoRunLib_ASM.dll, Job Function固定以 fun_A_ 開頭 + // -------------------------------------------------------------------------------------------------- + // 1.處理 FunctionName 大小寫問題 + // 本機執行:將DLL放在執行檔編譯後的位置底下(AutoRunService) + string strFilePath = AppDomain.CurrentDomain.BaseDirectory + @"\"; + string strLibFileName = ""; + string strLibraryName = ""; + if (FunctionName.ToUpper().StartsWith("FUN_S_")) // SEMI_WAFER + { + strLibFileName = "AutoRunLib_SEMI_WAFER.dll"; + } + else if (FunctionName.ToUpper().StartsWith("FUN_P_")) // IC_CP_PKG + { + strLibFileName = "AutoRunLib_IC_CP_PKG.dll"; + } + else if (FunctionName.ToUpper().StartsWith("FUN_I_")) // IC_FT_PKG + { + strLibFileName = "AutoRunLib_IC_FT_PKG.dll"; + } + else if (FunctionName.ToUpper().StartsWith("FUN_D_")) // DISCRETE_PKG + { + strLibFileName = "AutoRunLib_DISCRETE_PKG.dll"; + } + else if (FunctionName.ToUpper().StartsWith("FUN_L_")) // LED_PKG + { + strLibFileName = "AutoRunLib_LED_PKG.dll"; + } + else if (FunctionName.ToUpper().StartsWith("FUN_A_")) // ASM + { + strLibFileName = "AutoRunLib_ASM.dll"; + } + else if (FunctionName.ToUpper().StartsWith("FUN_C_")) // 個案 + { + strLibFileName = "AutoRunLib_C.dll"; + } + else + { + strLibFileName = "AutoRunLib.dll"; + } + strLibraryName = strLibFileName.Substring(0, strLibFileName.LastIndexOf(".dll")) + ".clsAutoRunLibrary"; + strFilePath += strLibFileName; + var mainAssembly = System.Reflection.Assembly.LoadFrom(strFilePath); + System.Reflection.MethodInfo[] MyMethodInfos = mainAssembly.GetType(strLibraryName).GetMethods(System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance); // 取出Private的Function + + var loopTo = MyMethodInfos.Length - 1; + for (i = 0; i <= loopTo; i++) + { + if ((MyMethodInfos[i].Name.ToUpper() ?? "") == (FunctionName.ToUpper() ?? "")) + { + FunctionName = MyMethodInfos[i].Name; + break; + } + } + + // 2.執行Private Function,傳出DataSet + object objArgs = new object[] { colParameters }; + string strClassName = "clsAutoRunLibrary"; + Type t; + System.Reflection.MethodInfo mi; + Type[] argumentTypes; + System.Reflection.ConstructorInfo ctor; + object obj; + + try + { + t = mainAssembly.GetType(mainAssembly.GetName().Name + "." + strClassName, true, true); + } + catch (Exception ex) + { + throw; + } + + argumentTypes = Type.EmptyTypes; + ctor = t.GetConstructor(argumentTypes); + obj = ctor.Invoke(new object[] { }); + mi = t.GetMethod(FunctionName, System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance); + + ExecuteFunctionRet = Conversions.ToString(mi.Invoke(obj, (object[])objArgs)); + } + + + catch (Exception e1) + { + // 2016-08-25, Joe, 加.InnerException將exception傳出 + if (e1.InnerException == null) + { + ExecuteFunctionRet = "fail;" + e1.Message; + } + else + { + ExecuteFunctionRet = "fail;" + e1.InnerException.Message; + } + } + + finally + { + + } + + return ExecuteFunctionRet; + + } + + private string SendMultiEmailNonGroup(ref string EmailSubject, string EmailBody = defString, string EmailAddress = defString, string AttachFileName = defString, byte[] AttachFile = null, string EmailAddressCC = defString) + { + string SendMultiEmailNonGroupRet = default(string); + + // 將發Mail給非群組收件者 多人可用 , 隔開 + + string[] aryAddress, aryAddressCC; + string tmpXML = default(string), tmpXMLCC = default(string); + aryAddress = Strings.Split(EmailAddress, ","); + + // 子收件者包幾個child tag + foreach (string StrTemp in aryAddress) + { + string argTagName = "address"; + string argValue = CombineXMLValue(argTagName, StrTemp); + tmpXML += CombineXMLValueTag(argValue); + } + + if ((EmailAddressCC ?? "") != defString && !string.IsNullOrEmpty(EmailAddressCC)) + { + aryAddressCC = Strings.Split(EmailAddressCC, ","); + foreach (string StrTemp in aryAddressCC) + { + string argTagName1 = "address"; + string argValue1 = CombineXMLValue(argTagName1, StrTemp); + tmpXMLCC += CombineXMLValueTag(argValue1); + } + } + + + try + { + string argCurUserNo = "AUTORUN"; + string argSendTime = Conversions.ToString(DateTime.Now); + strIdentity = CombineXMLIdentity(modWIN.gComputerName, argCurUserNo, argSendTime); + string argvalue_name = "emailaddress"; + string argname = "EmailAddress"; + string argtype = "String"; + string argdesc = ""; + strParameter = CombineXMLParameterMultiValue(argvalue_name, argname, argtype, tmpXML, argdesc); + string argvalue_name1 = "emailsubject"; + string argname1 = "EmailSubject"; + string argtype1 = "String"; + string argdesc1 = ""; + strParameter += CombineXMLParameter(argvalue_name1, argname1, argtype1, EmailSubject, argdesc1); + string argvalue_name2 = "emailbody"; + string argname2 = "EmailBody"; + string argtype2 = "String"; + string argvalue = CInput(EmailBody); + string argdesc2 = ""; + strParameter += CombineXMLParameter(argvalue_name2, argname2, argtype2, argvalue, argdesc2); + + if (!string.IsNullOrEmpty(tmpXMLCC)) + { + string argvalue_name3 = "emailaddresscc"; + string argname3 = "EmailAddressCC"; + string argtype3 = "String"; + string argdesc3 = ""; + strParameter += CombineXMLParameterMultiValue(argvalue_name3, argname3, argtype3, tmpXMLCC, argdesc3); + } + + if ((AttachFileName ?? "") != defString) + { + string argvalue_name4 = "attachfilename"; + string argname4 = "AttachFileName"; + string argtype4 = "String"; + string argdesc4 = ""; + strParameter += CombineXMLParameter(argvalue_name4, argname4, argtype4, AttachFileName, argdesc4); + } + + var XmlDoc = new XmlDocument(); + InXml = CombineXMLRequest(strIdentity, strParameter); + + if ((AttachFileName ?? "") != defString) + { + OutXml = modAutoRunLibrary.InvokeSrv("wsSYS.SendMultiEmailAndAttachFile", InXml, AttachFile); + } + else + { + OutXml = modAutoRunLibrary.InvokeSrv("wsSYS.SendMultiEmail", InXml); + } + + XmlDoc.LoadXml(OutXml); + + if (chkExecutionSuccess(XmlDoc)) // 找出Exception訊並顯示出來 + { + SendMultiEmailNonGroupRet = "success"; + } + else + { + // 20220901,13871,0118251: 【度亘】描述性语言报表,排程执行失败,調整錯誤訊息 + SendMultiEmailNonGroupRet = "fail;" + GetExceptionMesMsg(XmlDoc) + ";" + GetExceptionSysMsg(XmlDoc); + } + + XmlDoc = null; + } + + catch (Exception ex) + { + SendMultiEmailNonGroupRet = "fail;" + ex.Message; + } + + return SendMultiEmailNonGroupRet; + + } + + private void SendJobFailEmail(Collection colParameters) + { + // 發送Email前置作業, 可判別群組與非群組寄送 + + var dsGroup = new DataSet(); + var strGroupBasis = default(string); + + string[] aryEmailAddress; + string strEmailAddress, strNonGroup = default(string), strGroup = default(string), strEmailBody, strEmailTitle; // EmailInfo + + // 取出參數EmailAddress 取不到則不發送 + // 2013/10/18, Hank, 修改若無EmailAddress欄位會crash + if (colParameters.Contains("EmailAddress") == false || colParameters["EmailAddress"] == null || string.IsNullOrEmpty(Strings.Trim(Conversions.ToString(colParameters["EmailAddress"])))) + { + return; + } + else + { + strEmailAddress = Strings.Trim(Conversions.ToString(colParameters["EmailAddress"])); + } + strEmailTitle = "MES AutoRun-" + Strings.Trim(Conversions.ToString(colParameters["JobNo"])) + " Fail"; + strEmailBody = Strings.Trim(Conversions.ToString(colParameters["EmailBody"])); + + LoadGroupBasis(ref dsGroup); + + // 切出 有效群組與非群組 + aryEmailAddress = Strings.Split(strEmailAddress, ","); + for (int i = 0, loopTo = aryEmailAddress.Length - 1; i <= loopTo; i++) + { + if (System.Text.RegularExpressions.Regex.Matches(aryEmailAddress[i], "@").Count == 1) // Non Group + { + strNonGroup += Strings.Trim(aryEmailAddress[i]) + ","; + } + else if (dsGroup.Tables[strGroupBasis].Select("GroupNo ='" + Strings.Trim(aryEmailAddress[i]) + "'").Length > 0) // Group + { + strGroup += Strings.Trim(aryEmailAddress[i]) + ","; + } + } + + // 去掉最後字元為 , + if (Strings.Right(strGroup, 1) == ",") + strGroup = Strings.Mid(strGroup, 1, Strings.Len(strGroup) - 1); + if (Strings.Right(strNonGroup, 1) == ",") + strNonGroup = Strings.Mid(strNonGroup, 1, Strings.Len(strNonGroup) - 1); + + // 群組寄送 + if (!string.IsNullOrEmpty(strGroup)) + { + string argFileName = "N/A"; + modAutoRunLibrary.SendMultiEmail(ref argFileName, ref strEmailTitle, strEmailBody, strGroup); + } + // 非群組寄送 + if (!string.IsNullOrEmpty(strNonGroup)) + { + SendMultiEmailNonGroup(ref strEmailTitle, strEmailBody, strNonGroup); + } + + } + + private string ChgTranslateName(Collection ColSaveControl, string LanguageMode = "en") + { + // 目的: + // 將 Collection 上所有的 Object 都做語系切換 + // 語系檔命名為 MESResource.XX.Resx + // zh-CHS(簡體)、zh-CHT(繁體)、en(英文) + + string strResourceFile; + + if (string.IsNullOrEmpty(LanguageMode)) + { + return default(string); + } + else + { + strResourceFile = "MESResource." + LanguageMode; + } + + string strResourcePath; + strResourcePath = AppDomain.CurrentDomain.BaseDirectory + "Resources"; + + // 檢查檔案是否存在 + if (string.IsNullOrEmpty(FileSystem.Dir(strResourcePath + @"\" + strResourceFile + ".resources"))) // File not exist + { + return default(string); + } + + var rm = System.Resources.ResourceManager.CreateFileBasedResourceManager(strResourceFile, strResourcePath, null); + string TmpString; + int i; + + foreach (var objControl in ColSaveControl) + { + if (objControl is iMESUltraGrid.iMESUltraGridControl) + { + TmpString = Conversions.ToString((objControl as iMESUltraGrid.iMESUltraGridControl).Name.Substring(3, (Strings.Len((objControl as iMESUltraGrid.iMESUltraGridControl).Name) - 3))); + TmpString = rm.GetString(TmpString.ToUpper()); + if (Conversions.ToBoolean(Operators.AndObject(!string.IsNullOrEmpty(TmpString), Operators.ConditionalCompareObjectNotEqual((objControl as iMESUltraGrid.iMESUltraGridControl).iMESUltraGrid.Text, "", false)))) + { + (objControl as iMESUltraGrid.iMESUltraGridControl).iMESUltraGrid.Text = TmpString; + } + } + + else if (objControl is Infragistics.Win.UltraWinGrid.UltraGrid) + { + + int bandCount; + int colCount; + + var loopTo = ((Infragistics.Win.UltraWinGrid.UltraGrid)objControl).DisplayLayout.Bands.Count - 1; + for (bandCount = 0; bandCount <= loopTo; bandCount++) + { + + var loopTo1 = ((Infragistics.Win.UltraWinGrid.UltraGrid)objControl).DisplayLayout.Bands[bandCount].Columns.Count - 1; + for (colCount = 0; colCount <= loopTo1; colCount++) + ((Infragistics.Win.UltraWinGrid.UltraGrid)objControl).DisplayLayout.Bands[bandCount].Columns[colCount].Header.Caption = Conversions.ToString(Interaction.IIf(string.IsNullOrEmpty(rm.GetString(((Infragistics.Win.UltraWinGrid.UltraGrid)objControl).DisplayLayout.Bands[bandCount].Columns[colCount].Key.ToUpper())), ((Infragistics.Win.UltraWinGrid.UltraGrid)objControl).DisplayLayout.Bands[bandCount].Columns[colCount].Header.Caption, rm.GetString(((Infragistics.Win.UltraWinGrid.UltraGrid)objControl).DisplayLayout.Bands[bandCount].Columns[colCount].Key.ToUpper()))); + + // 20120911, Aaron, Group By Box + } ((Infragistics.Win.UltraWinGrid.UltraGrid)objControl).DisplayLayout.GroupByBox.ResetPrompt(); + TmpString = ((Infragistics.Win.UltraWinGrid.UltraGrid)objControl).DisplayLayout.GroupByBox.Prompt; + TmpString = rm.GetString(TmpString.ToUpper()); + + if (!string.IsNullOrEmpty(TmpString)) + { + ((Infragistics.Win.UltraWinGrid.UltraGrid)objControl).DisplayLayout.GroupByBox.Prompt = TmpString; + } + } + TmpString = ""; + } + + return default(string); + + } + public string ChgTranslateName_Content(string ErrorName) + { + string ChgTranslateName_ContentRet = default(string); + + // 1.Check LanguageMode + string strMsgFile, strGenFile; + if (string.IsNullOrEmpty(modWIN.gLanguageMode)) + { + strMsgFile = "msg_name" + "en"; + strGenFile = "mesresource" + "en"; + } + else + { + strMsgFile = "msg_name." + modWIN.gLanguageMode; + strGenFile = "mesresource." + modWIN.gLanguageMode; + } + + // 2.Get File Path + string strResourcePath = AppDomain.CurrentDomain.BaseDirectory + "Resources"; + + // 檢查檔案是否存在 + if (string.IsNullOrEmpty(FileSystem.Dir(strResourcePath + @"\" + strMsgFile + ".resources"))) // File not exist + { + ChgTranslateName_ContentRet = ErrorName; + return ChgTranslateName_ContentRet; + } + if (string.IsNullOrEmpty(FileSystem.Dir(strResourcePath + @"\" + strGenFile + ".resources"))) // File not exist + { + ChgTranslateName_ContentRet = ErrorName; + return ChgTranslateName_ContentRet; + } + + // 4.Replace原始訊息. + string strErrName_Rep = ""; + if (Strings.InStr(ErrorName, "[%", CompareMethod.Text) > 0) + { + // Replace[%%] + var rmGen = System.Resources.ResourceManager.CreateFileBasedResourceManager(strGenFile, strResourcePath, null); + string strKey, strKeyValue; + int intStart, j, k, l; + + intStart = 1; + j = 1; + + while (j != 0) + { + j = Strings.InStr(intStart, ErrorName, "[%", CompareMethod.Text); + if (j == 0) + { + strErrName_Rep += Strings.Mid(ErrorName, intStart); + } + else + { + k = Strings.InStr(j + 2, ErrorName, "%]", CompareMethod.Text); + if (k == 0) + { + // 找不到對應的結束字元. + strErrName_Rep += Strings.Mid(ErrorName, intStart); + j = 0; + } + else + { + // 檢查是否有不對稱的情況. + l = Strings.InStr(j + 2, ErrorName, "[%", CompareMethod.Text); + if (l == 0 || l > k) + { + strErrName_Rep += Strings.Mid(ErrorName, intStart, j - intStart); + strKey = Strings.Mid(ErrorName, j + 2, k - j - 2); + // 將Key執行語系轉換 + try + { + strKeyValue = rmGen.GetString(strKey.ToUpper()); + } + catch (Exception ex) + { + strKeyValue = strKey; + } + if (string.IsNullOrEmpty(strKeyValue)) + { + strErrName_Rep += strKey; + } + else + { + strErrName_Rep += strKeyValue; + } + // 下次截取字串的起始位置 + intStart = k + 2; + } + else + { + // 不對稱,找到最內層的[%%] + int m; + // 在前面的條件下,一定找得到. + m = Strings.InStrRev(ErrorName, "[%", k, CompareMethod.Text); + // 擷出不轉換的字串. + strErrName_Rep += Strings.Mid(ErrorName, intStart, m - intStart); + strKey = Strings.Mid(ErrorName, m + 2, k - m - 2); + // 將Key執行語系轉換 + try + { + strKeyValue = rmGen.GetString(strKey.ToUpper()); + } + catch (Exception ex) + { + strKeyValue = strKey; + } + if (string.IsNullOrEmpty(strKeyValue)) + { + strErrName_Rep += strKey; + } + else + { + strErrName_Rep += strKeyValue; + } + // 下次截取字串的起始位置 + intStart = k + 2; + } + } + } + } + + rmGen = null; + } + + // 5.Final Message. + string strFinalMsg; + // 原始訊息 + if (string.IsNullOrEmpty(strErrName_Rep)) + { + strFinalMsg = ErrorName; + } + else + { + strFinalMsg = strErrName_Rep; + } + + ChgTranslateName_ContentRet = strFinalMsg; + return ChgTranslateName_ContentRet; + + + } + + ~clsAutoRunLibrary() + { + + if (objSetting != null) + objSetting = null; + + } + + /// + /// 向資料庫取得使用TipTop時的ERP整合設定資訊。 + /// + /// + /// + public void funGetERPSetting(string pERPName) + { + // Gary Lu 20120614:ERP整合設定統一由此函數取得 + StringReader tmpStringReader; // 將字串轉換成可讀入DataSet的物件 + string strERPSettingTableName; + string InXml, OutXml, strIdentity, strParameter, XmlData, XmlSchema; // 呼叫WS的字串參數 + var XmlDoc = new XmlDocument(); + try + { + var dsERPSetting_TP = new DataSet(); + + // 組InXml + string argSendTime = Conversions.ToString(DateTime.Now); + strIdentity = CombineXMLIdentity(modWIN.gComputerName, modWIN.gUserNo, argSendTime); + string argvalue_name = "erpname"; + string argname = "ERPName"; + string argtype = "String"; + string argdesc = ""; + strParameter = CombineXMLParameter(argvalue_name, argname, argtype, pERPName, argdesc); + InXml = CombineXMLRequest(strIdentity, strParameter); + + // 呼叫Web服務執行 + OutXml = modAutoRunLibrary.InvokeSrv("wsSYS.LoadERPSetting", InXml); + + // 解讀Web服務的執行結果 + XmlDoc.LoadXml(OutXml); + + if (chkExecutionSuccess(XmlDoc)) + { + + // 讀取取出資料表的名稱 + strERPSettingTableName = XmlDoc.GetElementsByTagName("returnvalue").Item(0).SelectNodes("loaderpsetting").Item(0).SelectNodes("name").Item(0).InnerXml; + + // 取出Schema,dataset讀取Schema可防止Null Field及DateTime的問題 + + XmlSchema = XmlDoc.DocumentElement.GetElementsByTagName("loaderpsetting").Item(0).SelectNodes("schema").Item(0).InnerXml; + if (!string.IsNullOrEmpty(XmlSchema)) + { + // 將XML讀入String Reader object中,因為Dataset讀入XML時必須透過String Reader物件 + tmpStringReader = new StringReader(XmlSchema); + dsERPSetting_TP.ReadXmlSchema(tmpStringReader); + tmpStringReader.Close(); + } + + // 取出Data + XmlData = XmlDoc.DocumentElement.GetElementsByTagName("loaderpsetting").Item(0).SelectNodes("value").Item(0).InnerXml; + if (!string.IsNullOrEmpty(XmlData)) + { + tmpStringReader = new StringReader(XmlData); + dsERPSetting_TP.ReadXml(tmpStringReader, XmlReadMode.InferSchema); + tmpStringReader.Close(); + } + + if (dsERPSetting_TP.Tables[strERPSettingTableName].Rows.Count > 0) + { + gERPUser = dsERPSetting_TP.Tables[strERPSettingTableName].Rows[0]["ERP_USER"].ToString(); + gERPPassword = dsERPSetting_TP.Tables[strERPSettingTableName].Rows[0]["ERP_PWD"].ToString(); + gERPWSURL = dsERPSetting_TP.Tables[strERPSettingTableName].Rows[0]["ERP_WSURL"].ToString(); + gERPOraganization = dsERPSetting_TP.Tables[strERPSettingTableName].Rows[0]["ERP_ORG"].ToString(); + gERPLanguage = dsERPSetting_TP.Tables[strERPSettingTableName].Rows[0]["ERP_LANG"].ToString(); + gERPVersion = dsERPSetting_TP.Tables[strERPSettingTableName].Rows[0]["ERP_VERSION"].ToString(); + } + else + { + throw new Exception("[%ERPWSURL%] not found!"); + } + } + else + { + throw new Exception("[%ERPWSURL%] not found!"); + } + } + + catch (Exception ex) + { + throw; + } + } + + /// + /// 取得ERP整合的設定資料 + /// + /// + /// + /// + private bool GetERPSetting(ref DataTable pTable, string pERPName = defString, int pEAIType = 0) + { + + bool blnResult = false; + var XmlDoc = new XmlDocument(); + var dsTemp = new DataSet(); + + try + { + + // 組InXml + string argSendTime = Conversions.ToString(DateTime.Now); + strIdentity = CombineXMLIdentity(modWIN.gComputerName, modWIN.gUserNo, argSendTime); + strParameter = ""; + if ((pERPName ?? "") != defString) + { + string argvalue_name = "erpname"; + string argname = "ERPName"; + string argtype = "String"; + string argdesc = ""; + strParameter += CombineXMLParameter(argvalue_name, argname, argtype, pERPName, argdesc); + } + if (pEAIType != 0) + { + string argstrAdditional = CombineAddXML_Condition("EAI_Type = " + pEAIType); + strParameter += CombineXMLAdditional(argstrAdditional); + } + + + + InXml = CombineXMLRequest(strIdentity, strParameter); + + // 呼叫Web服務執行 + OutXml = modAutoRunLibrary.InvokeSrv("wsSYS.LoadERPSetting", InXml); + + // 解讀Web服務的執行結果 + XmlDoc.LoadXml(OutXml); + + if (chkExecutionSuccess(XmlDoc)) + { + + XmlSchema = XmlDoc.DocumentElement.GetElementsByTagName("loaderpsetting").Item(0).SelectNodes("schema").Item(0).InnerXml; + + if (!string.IsNullOrEmpty(XmlSchema)) + { + // 將XML讀入String Reader object中,因為Dataset讀入XML時必須透過String Reader物件 + tmpStringReader = new StringReader(XmlSchema); + dsTemp.ReadXmlSchema(tmpStringReader); + tmpStringReader.Close(); + } + + XmlData = XmlDoc.DocumentElement.GetElementsByTagName("loaderpsetting").Item(0).SelectNodes("value").Item(0).InnerXml; + + if (!string.IsNullOrEmpty(XmlData)) + { + tmpStringReader = new StringReader(XmlData); + dsTemp.ReadXml(tmpStringReader, XmlReadMode.InferSchema); + tmpStringReader.Close(); + } + + if (dsTemp.Tables.Count > 0 && dsTemp.Tables[0].Rows.Count > 0) + { + pTable = dsTemp.Tables[0].Copy(); + blnResult = true; + } + else + { + throw new Exception("[%GetERPSetting%] not found!"); + } + + dtERPSetting = dsTemp.Tables[0]; + var row = dtERPSetting.Rows[0]; + + ERP_EntID = row["ERP_ENTID"].ToString(); + ERP_Site = row["ERP_ORG"].ToString(); + ERP_URL = row["ERP_WSURL"].ToString(); + } + + + else + { + throw new Exception("[%GetERPSetting%] not found!"); + } + } + catch (Exception ex) + { + throw; + } + finally + { + XmlDoc = null; + dsTemp = null; + } + + return blnResult; + + } + + #region ProcessAbout + + private int[] GetProcessID(string Str_ProcessName) + { + int[] GetProcessIDRet = default(int[]); + int[] IntArray; + int i; + Process[] allRelationalProcs = Process.GetProcessesByName(Str_ProcessName); + i = 0; + IntArray = new int[1]; + + foreach (var thisProcess in allRelationalProcs) + { + try + { + Array.Resize(ref IntArray, i + 1); + IntArray[i] = thisProcess.Id; + i += 1; + } + catch (Exception ex) + { + // MessageBox.Show(ex.GetBaseException.ToString, "GetProcessID Error", MessageBoxButtons.OK, MessageBoxIcon.Error) + } + } + + GetProcessIDRet = IntArray; + return GetProcessIDRet; + + } + + private int[] GetNewPID(int[] OldPID, int[] AllPID) + { + int[] GetNewPIDRet = default(int[]); + int i, j, k; + int[] IntArray; + j = 0; + IntArray = new int[1]; + + var loopTo = Information.UBound(AllPID); + for (i = 0; i <= loopTo; i++) + { + k = Array.IndexOf(OldPID, AllPID[i]); + if (k == -1) + { + Array.Resize(ref IntArray, j + 1); + IntArray[j] = AllPID[i]; + j += 1; + } + } + GetNewPIDRet = IntArray; + return GetNewPIDRet; + + } + + private bool KillProcess(int Str_ProcessID) + { + try + { + var Process = System.Diagnostics.Process.GetProcessById(Str_ProcessID); + + if (Conversions.ToBoolean(!Process.CloseMainWindow())) + { + Process.Kill(); + } + } + catch (Exception ex) + { + // MessageBox.Show(ex.GetBaseException.ToString, "Close Process Error", MessageBoxButtons.OK, MessageBoxIcon.Error) + } + + return default(Boolean); + + } + + #endregion + + private void LoadGroupBasis(ref DataSet dsGroup) + { + // 讀取使用者群組主檔 + var strGroupBasis = default(string); + + // 先判斷是否dataset中已有equipmenttype之datatable,若有,需先remove否則會有錯誤 + if (!(dsGroup.Tables[strGroupBasis] == null)) + { + dsGroup.Tables.Remove(strGroupBasis); + } + + // 組InXml的字串 + string argSendTime = Conversions.ToString(DateTime.Now); + strIdentity = CombineXMLIdentity(modWIN.gComputerName, modWIN.gUserNo, argSendTime); + // 加上IssueState要求取出所有資料 + string argvalue_name = "issuestate"; + string argname = "issuestate"; + string argtype = "Integer"; + string argvalue = defInteger.ToString(); + string argdesc = ""; + strParameter = CombineXMLParameter(argvalue_name, argname, argtype, argvalue, argdesc); + int modAutoRundefTmp = defInteger; + modAutoRundefTmp = Conversions.ToInteger(argvalue); + InXml = CombineXMLRequest(strIdentity, strParameter); + + try + { + // OutXml = wsUSR.LoadGroupBasis(InXml) + OutXml = modAutoRunLibrary.InvokeSrv("wsUSR.LoadGroupBasis", InXml); + + // 利用XmlDoc物件處理ReturnValue + XmlDoc.LoadXml(OutXml); + + if (chkExecutionSuccess(XmlDoc)) + { + strGroupBasis = XmlDoc.GetElementsByTagName("returnvalue").Item(0).SelectNodes("loadgroupbasis").Item(0).SelectNodes("name").Item(0).InnerXml; + // 取出Schema,dataset讀取Schema可防止Null Field及DateTime的問題 + + XmlSchema = XmlDoc.DocumentElement.GetElementsByTagName("loadgroupbasis").Item(0).SelectNodes("schema").Item(0).InnerXml; + if (!string.IsNullOrEmpty(XmlSchema)) + { + // 將XML讀入String Reader object中,因為Dataset讀入XML時必須透過String Reader物件 + tmpStringReader = new StringReader(XmlSchema); + dsGroup.ReadXmlSchema(tmpStringReader); + tmpStringReader.Close(); + } + // 取出Data + XmlData = XmlDoc.DocumentElement.GetElementsByTagName("loadgroupbasis").Item(0).SelectNodes("value").Item(0).InnerXml; + if (!string.IsNullOrEmpty(XmlData)) + { + tmpStringReader = new StringReader(XmlData); + dsGroup.ReadXml(tmpStringReader); + tmpStringReader.Close(); + } + else + { + throw new Exception(GetExceptionSysMsg(XmlDoc)); + } + } + } + catch (Exception ex) + { + throw; + } + + } + + public string CombineRequestXMLbyCDO(ref object SCI_Object, string pService, string pUserNo, string pServiceName, string pCalledID = defString, string pRequestKey = defString) + { + string CombineRequestXMLbyCDORet = default(string); + + DataRow[] drERPSetting; + string strFilter = ""; + + do + { + try + { + strFilter = "ERP_Name ='" + pService + "' "; + if ((pCalledID ?? "") != defString && string.IsNullOrEmpty(pCalledID) == false) + strFilter += " And CalledID ='" + pCalledID + "' "; + // 取得服務資訊 + drERPSetting = dtERPSetting.Select(strFilter); + if (drERPSetting == null) + break; + if (drERPSetting.Length != 1) + break; + if ((pCalledID ?? "") == defString) + { + pCalledID = drERPSetting[0]["CalledID"].ToString(); + } + + // 2017-03-17, Joe, 加Parameter for E10 + (SCI_Object as iMESCIO.SCI.ERP.ERPRequestBase).enterprise_no = drERPSetting[0]["ERP_ENTID"].ToString(); + (SCI_Object as iMESCIO.SCI.ERP.ERPRequestBase).site_no = drERPSetting[0]["ERP_ORG"].ToString(); + + // 轉XML + string RequestHead = ""; + RequestHead += ""; + string RequestDataKey = "" + drERPSetting[0]["ERP_ENTID"].ToString() + "" + drERPSetting[0]["ERP_ORG"].ToString() + ""; + string RequestXML_Body = Conversions.ToString((SCI_Object as iMESCIO.SCI.ERP.ERPResponseBase).ParseXml()); + pRequestKey = modAutoRunLibrary.GetRequestKey(RequestHead); + string RequestHeader = "" + RequestHead + RequestDataKey + "" + RequestXML_Body + ""; + // CDO to XML + CombineRequestXMLbyCDORet = RequestHeader; + } + + catch (Exception ex) + { + throw; + } + } + while (false); + return CombineRequestXMLbyCDORet; + + } + + /// + /// EAI 檢核編碼(MD5) + /// + /// + /// + // Private Function GetRequestKey(ByVal input As String) As String + + // Const ID As String = "28682266" ' 鼎新統編 + + // Dim key As String = "" + // Dim md5Hasher As MD5 = MD5.Create() ' 建立MD5物件 + + // Try + + // input += ID + + // ' 將input轉換成MD5,並且以Bytes傳回,由於ComputeHash只接受Bytes型別參數,所以要先轉型別為Bytes + // Dim data As Byte() = md5Hasher.ComputeHash(Encoding.UTF8.GetBytes(input)) + + // ' 建立StringBuilder物件 + // Dim sb As New StringBuilder() + + // ' 將Bytes轉型別為String,並且以16進位存放 + // For i As Integer = 0 To data.Length - 1 + // sb.Append(data(i).ToString("x2")) + // Next i + + // key = sb.ToString + + // Catch ex As Exception + // Throw + // Finally + // md5Hasher = Nothing + // End Try + + // Return key + + // End Function + + #endregion + + #region 客製JobName + + + #endregion + + #region 測試用JobName + + // Add by Martin 2009/03/03 for testing the Url get by using gMESWebServiceHost and GetAppSettings mathod. + // Private Function funTestFuncton(Optional ByVal colParameters As Collection = Nothing) As String + // Dim cnnTemp As OleDb.OleDbConnection + // Dim drTemp As OleDb.OleDbDataReader + // Dim wsSPC As New wsSPC.wsSPC + // wsSPC.Url = LocalizeWebService(wsSPC.Url.ToString) + // wsSPC.EnableDecompression = True + + // strIdentity = CombineXMLIdentity("Autorun", "Autorun", Now) + // InXml = CombineXMLRequest(strIdentity, strParameter) + + // Try + // '開始執行 + // OutXml = wsSPC.LoadOQCForm(InXml) + // 'MsgBox(OutXml, , "Test Function Response!") '2012/08/21,Even,由於該msgbox造成錯誤(程式不允許auto 回復為msgbox形式) + + // funTestFuncton = "success" + + // Catch e1 As Exception + // funTestFuncton = "fail;" & e1.Message + // '發生錯誤時丟回本身的Function Name及系統錯誤訊息 + // 'Throw New Exception("clsAutoRunLibary.funTestFuncton: " & e1.Message) + + // '2013/02/05, Hank, Send Email + // colParameters.Add(funTestFuncton, "EmailBody") + // SendJobFailEmail(colParameters) + + // Finally + // Call objSetting.CloseConnection(cnnTemp) + // If Not wsSPC Is Nothing Then wsSPC.Dispose() + // End Try + + // End Function + + #endregion + + } +} \ No newline at end of file diff --git a/SRC/MESAgent/MESAutoRun/AutoRunLib/modAutoRunLibrary.cs b/SRC/MESAgent/MESAutoRun/AutoRunLib/modAutoRunLibrary.cs new file mode 100644 index 0000000..67d238b --- /dev/null +++ b/SRC/MESAgent/MESAutoRun/AutoRunLib/modAutoRunLibrary.cs @@ -0,0 +1,712 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Data; +using System.IO; +using System.Linq; +using System.Resources; +using System.Runtime.InteropServices; +using System.Security.Cryptography; +using System.Text; +using System.Xml; +using Microsoft.VisualBasic; +using Microsoft.VisualBasic.CompilerServices; +using static iMESCore.Base.iMESComXML; +using static iMESCore.Base.iMESConst; + +namespace AutoRunLib_C +{ + + static class modAutoRunLibrary + { + public enum GroupType + { + UserGroup = 0, // 使用者群組 + IssueGroup = 1, // 簽核群組 + EquipmentGroup = 2, // 設備工程師群組 + InventoryGroup = 3, // 庫房工程師群組 + ReportGroup = 4, // 報表使用群組 + ERFDispositionGroup = 5, // 異常處理群組 + ERFMailccGroup = 6 // 附件收件人群組 + } + + private static string InXml, OutXml, strIdentity, strParameter, XmlData, XmlSchema; + + + #region Invoke + + /// + /// 叫用Web Service, 並回傳Response XML + /// + /// 要呼叫哪一個WebService的方法, ex: wsWIP.LoadLotBasis + /// InXml + /// 是否客製的WebService + /// + /// + /// 2019/08/22 OwenLiu, Mantis:0061402, 修正WS加上CI/CO執行時間紀錄 運作邏輯後AutoRun Servive呼叫WS失敗的問題 + /// + public static string InvokeSrv(string Method, string InXml, bool Customize = false, int TimeOut = defInteger, bool LogOn = false) + { + + object result; + + try + { + + using (var ws = new wsInvoke.wsInvoke()) + { + ws.Url = modWIN.LocalizeWebService(ws.Url.ToString(), Customize); + ws.EnableDecompression = true; + + if (TimeOut != defInteger) + { + ws.Timeout = TimeOut; + } + + result = ws.invokeSrv(Method, new object[] { InXml, LogOn }); + } + } + + catch (Exception ex) + { + throw; + } + + return Conversions.ToString(result); + + } + + /// + /// 叫用Web Service, 回傳Response XML + /// + /// 要呼叫哪一個WebService的方法, ex: wsWIP.LoadLotBasis + /// InXml + /// 用來取回byte資料或傳入byte資料 + /// 是否客製的WebService + /// + /// 2019/08/22 OwenLiu, Mantis:0061402, 修正WS加上CI/CO執行時間紀錄 運作邏輯後AutoRun Servive呼叫WS失敗的問題 + /// + public static string InvokeSrv(string Method, string InXml, byte[] buffer, bool Customize = false, int TimeOut = defInteger, bool LogOn = false) + { + + object result; + + try + { + + using (var ws = new wsInvoke.wsInvoke()) + { + ws.Url = modWIN.LocalizeWebService(ws.Url.ToString(), Customize); + ws.EnableDecompression = true; + + if (TimeOut != defInteger) + { + ws.Timeout = TimeOut; + } + + result = ws.invokeSrv(Method, new object[] { InXml, buffer, LogOn }); + } + } + + catch (Exception ex) + { + throw; + } + + return Conversions.ToString(result); + + } + + /// + /// 叫用Web Service, 並回傳Response XML + /// + /// 要呼叫哪一個WebService的方法, ex: wsWIP.LoadLotBasis + /// InXml + /// 接收結果的DataSet + /// 是否客製的WebService + /// + public static string InvokeSrv(string Method, string InXml, ref DataSet pDataSet, bool Customize = false) + { + + object result; + + try + { + + using (var ws = new wsInvoke.wsInvoke()) + { + ws.Url = modWIN.LocalizeWebService(ws.Url.ToString(), Customize); + ws.EnableDecompression = true; + result = ws.invokeSrv_DataSet(Method, InXml, ref pDataSet); + } + } + + catch (Exception ex) + { + throw; + } + + return Conversions.ToString(result); + + } + + public static string InvokeSrv_GuardServer(bool Customize = false) + { + object result; + + try + { + + using (var ws = new wsInvoke.wsInvoke()) + { + ws.Url = modWIN.LocalizeWebService(ws.Url.ToString(), Customize); + ws.EnableDecompression = true; + result = ws.Invoke_GuardServer_Process(); + + } + } + + catch (Exception ex) + { + throw; + } + + return Conversions.ToString(result); + } + + #endregion + + + /// + /// EAI 檢核編碼(MD5) + /// + /// + /// + public static string GetRequestKey(string input) + { + + const string ID = "28682266"; // 鼎新統編 + + string key = ""; + var md5Hasher = MD5.Create(); // 建立MD5物件 + + try + { + + input += ID; + + // 將input轉換成MD5,並且以Bytes傳回,由於ComputeHash只接受Bytes型別參數,所以要先轉型別為Bytes + byte[] data = md5Hasher.ComputeHash(Encoding.UTF8.GetBytes(input)); + + // 建立StringBuilder物件 + var sb = new StringBuilder(); + + // 將Bytes轉型別為String,並且以16進位存放 + for (int i = 0, loopTo = data.Length - 1; i <= loopTo; i++) + sb.Append(data[i].ToString("x2")); + + key = sb.ToString(); + } + + catch (Exception ex) + { + throw; + } + finally + { + md5Hasher = null; + } + + return key; + + } + + + /// + /// 紀錄Transaction + /// + /// + /// + /// + /// + /// + /// + /// + /// + public static bool addTransactionLog(string InXml, string OutXml, string TransactionID, string ModuleID, string FunctionID, string ComputerName, string CurUserNo, string SendTime, string Result, string KeyValue, string ExceptionFun, string strException = null) + { + bool addTransactionLogRet = default(bool); + try + { + using (var wsERP = new wsERP_MES.wsMES()) + { + wsERP.Url = modWIN.LocalizeWebService_ERP(wsERP.Url.ToString()); + wsERP.EnableDecompression = true; + if (wsERP.addTransactionLog(InXml, OutXml, TransactionID, ModuleID, FunctionID, ComputerName, CurUserNo, SendTime, Result, KeyValue, ExceptionFun, ref strException) == true) + { + addTransactionLogRet = true; + } + else + { + addTransactionLogRet = false; + } + } + } + catch (Exception ex) + { + addTransactionLogRet = false; + } + + return addTransactionLogRet; + } + /// + /// 紀錄Transaction + /// + public static bool addTransactionLog_ErrorCode(string InXml, string OutXml, string TransactionID, string ModuleID, string FunctionID, string ComputerName, string CurUserNo, string SendTime, string Result, string KeyValue, string ExceptionFun, string strException = null, string ErrorCode = "0000-999999", string LogClass = null) + { + bool addTransactionLog_ErrorCodeRet = default(bool); + try + { + using (var wsERP = new wsERP_MES.wsMES()) + { + wsERP.Url = modWIN.LocalizeWebService_ERP(wsERP.Url.ToString()); + wsERP.EnableDecompression = true; + if (wsERP.addTransactionLog_ErrorCode(InXml, OutXml, TransactionID, ModuleID, FunctionID, ComputerName, CurUserNo, SendTime, Result, KeyValue, ExceptionFun, ref strException, ErrorCode, LogClass) == true) + { + addTransactionLog_ErrorCodeRet = true; + } + else + { + addTransactionLog_ErrorCodeRet = false; + } + } + } + catch (Exception ex) + { + addTransactionLog_ErrorCodeRet = false; + } + + return addTransactionLog_ErrorCodeRet; + } + + + // =====Elvis ,0091128: [605][CP+FT] E10ICD整合問題_AutoRun主檔拋轉的ERP交易紀錄exception時紀錄不正確 + #region --- Combine (Exception, Message) --- + + public static bool ChgTranslateException(ref List Exception, ref string strExceptionSysmsg, ref string strExceptionMesmsg, ref string strExceptionStack) + { + bool ChgTranslateExceptionRet = default(bool); + + try + { + foreach (ArrayList al in Exception) + { + // If strExceptionSysmsg <> String.Empty Then strExceptionSysmsg += Chr(10) + if (string.IsNullOrEmpty(Conversions.ToString(al[1])) == false) + strExceptionSysmsg += al[1].ToString(); + // If String.IsNullOrEmpty(strExceptionMesmsg) = False Then strExceptionMesmsg += Chr(10) + if (string.IsNullOrEmpty(Conversions.ToString(al[2])) == false) + { + // 翻譯錯誤訊息 + string strErrName_Rep = ""; + string ErrorName = al[2].ToString(); + if (Strings.InStr(ErrorName, "[%", CompareMethod.Text) > 0) + { + string strKey, strKeyValue; + int intStart, j, k, l; + + intStart = 1; + j = 1; + + while (j != 0) + { + j = Strings.InStr(intStart, ErrorName, "[%", CompareMethod.Text); + if (j == 0) + { + strErrName_Rep += Strings.Mid(ErrorName, intStart); + } + else + { + k = Strings.InStr(j + 2, ErrorName, "%]", CompareMethod.Text); + if (k == 0) + { + // 找不到對應的結束字元. + strErrName_Rep += Strings.Mid(ErrorName, intStart); + j = 0; + } + else + { + // 檢查是否有不對稱的情況. + l = Strings.InStr(j + 2, ErrorName, "[%", CompareMethod.Text); + if (l == 0 || l > k) + { + strErrName_Rep += Strings.Mid(ErrorName, intStart, j - intStart); + strKey = Strings.Mid(ErrorName, j + 2, k - j - 2); + // 將Key執行語系轉換 + try + { + strKeyValue = ""; + } + // strKeyValue = Resources.Resource.ResourceManager.GetString(strKey) + catch (Exception ex) + { + strKeyValue = strKey; + } + if (string.IsNullOrEmpty(strKeyValue)) + { + strErrName_Rep += strKey; + } + else + { + strErrName_Rep += strKeyValue; + } // & "(" & strKey & ")" + // 下次截取字串的起始位置 + intStart = k + 2; + } + else + { + // 不對稱,找到最內層的[%%] + int m; + // 在前面的條件下,一定找得到. + m = Strings.InStrRev(ErrorName, "[%", k, CompareMethod.Text); + // 擷出不轉換的字串. + strErrName_Rep += Strings.Mid(ErrorName, intStart, m - intStart); + strKey = Strings.Mid(ErrorName, m + 2, k - m - 2); + // 將Key執行語系轉換 + try + { + strKeyValue = ""; + } + // strKeyValue = Resources.Resource.ResourceManager.GetString(strKey) + catch (Exception ex) + { + strKeyValue = strKey; + } + if (string.IsNullOrEmpty(strKeyValue)) + { + strErrName_Rep += strKey; + } + else + { + strErrName_Rep += strKeyValue; + } // & "(" & strKey & ")" + // 下次截取字串的起始位置 + intStart = k + 2; + } + } + } + } + } + // strExceptionMesmsg += Chr(9) & Chr(9) & Chr(9) & Resources.Resource.ResourceManager.GetString(al.Item(2).ToString) & "(" & al.Item(2).ToString & ")" + strExceptionMesmsg += strErrName_Rep; + } + + // If strExceptionStack <> String.Empty Then strExceptionStack += Chr(10) + if (string.IsNullOrEmpty(Conversions.ToString(al[3])) == false) + strExceptionStack += al[3].ToString(); + } + + ChgTranslateExceptionRet = true; + } + + catch (Exception e1) + { + throw; + ChgTranslateExceptionRet = false; + } + + return ChgTranslateExceptionRet; + + } + + + public static string CombineXMLResponse(string Identity, string ReturnValue = null, List Exception = null, string Result = null, List Message = null) + { + string CombineXMLResponseRet = default(string); + + try + { + // + CombineXMLResponseRet = ""; + + // + if (string.IsNullOrEmpty(Identity)) + { + CombineXMLResponseRet += ""; + } + else + { + CombineXMLResponseRet += ""; + CombineXMLResponseRet += Identity; + CombineXMLResponseRet += ""; + } + + // + if (string.IsNullOrEmpty(ReturnValue)) + { + CombineXMLResponseRet += ""; + } + else + { + CombineXMLResponseRet += ""; + CombineXMLResponseRet += ReturnValue; + CombineXMLResponseRet += ""; + } + + // + if (string.IsNullOrEmpty(Result)) + { + CombineXMLResponseRet += ""; + } + else + { + CombineXMLResponseRet += "" + Result + ""; + } + + // + string strExceptionSysmsg = string.Empty; + string strExceptionMesmsg = string.Empty; + string strExceptionStack = string.Empty; + + if (Exception.Count == 0) + { + CombineXMLResponseRet += ""; + } + else + { + // 2016-12-01, Joe, Exception轉語系 + ChgTranslateException(ref Exception, ref strExceptionSysmsg, ref strExceptionMesmsg, ref strExceptionStack); + + CombineXMLResponseRet += ""; + CombineXMLResponseRet += ""; + if (string.IsNullOrEmpty(strExceptionSysmsg) == true) + { + CombineXMLResponseRet += ""; + } + else + { + CombineXMLResponseRet += "" + strExceptionSysmsg + '\n' + "" + '\n'; + } + if (string.IsNullOrEmpty(strExceptionMesmsg) == true) + { + CombineXMLResponseRet += "" + strExceptionMesmsg + "" + '\n'; + } + else + { + CombineXMLResponseRet += "" + strExceptionMesmsg + "" + '\n'; + } + if (string.IsNullOrEmpty(strExceptionStack)) + { + CombineXMLResponseRet += ""; + } + else + { + // CombineXMLResponse += Chr(9) & Chr(9) & "" & Chr(10) & strExceptionStack & Chr(10) & Chr(9) & Chr(9) & "" & Chr(10) + CombineXMLResponseRet += ""; + } + CombineXMLResponseRet += '\t' + "" + '\n'; + } + + // + string strMmsg = string.Empty; + + if (Message.Count == 0) + { + CombineXMLResponseRet += '\t' + "" + '\n'; + } + else + { + CombineXMLResponseRet += '\t' + "" + '\n'; + // 2016-12-01, Joe, Message轉語系 + // Call ChgTranslateMessage(Message, strMmsg) + + CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + "" + '\n'; + CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + "" + '\n'; + CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + "" + strMmsg + "" + '\n'; + CombineXMLResponseRet += '\t' + "" + '\n'; + } + + CombineXMLResponseRet += "" + '\n'; + } + + catch (Exception e1) + { + // 發生錯誤時丟回本身的Function Name及系統錯誤訊息 + // Throw 'New Exception("modWS.CombineXMLResponse: " & e1.Message) + CombineXMLResponseRet = "" + '\n'; + CombineXMLResponseRet += '\t' + "" + '\n'; + CombineXMLResponseRet += '\t' + "" + '\n'; + CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + "" + '\n'; + CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + "" + '\n'; + CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + '\t' + e1.Message + '\n'; + CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + "" + '\n'; + CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + "" + '\n'; + CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + '\t' + "CombineXMLResponse;Fail" + '\n'; + CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + "" + '\n'; + CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + "" + '\n'; + CombineXMLResponseRet += e1.StackTrace + '\n'; + CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + "" + '\n'; + CombineXMLResponseRet += '\t' + "" + '\n'; + CombineXMLResponseRet += '\t' + "" + '\n'; + CombineXMLResponseRet += ""; + } + + return CombineXMLResponseRet; + + } + + public static bool combineException(ref List arrException, string code = null, string sysmsg = null, string mesmsg = null, string stack = null) + { + bool result = false; + try + { + var al = new ArrayList(); + + al.Add(code); + al.Add(sysmsg); + al.Add(mesmsg); + al.Add(stack); + arrException.Add(al); + result = true; + } + catch (Exception ex) + { + result = false; + } + + return default(Boolean); + + } + + // Public Function combineMessage( + // ByRef strMessage As List(Of ArrayList), + // Optional ByVal mcode As String = Nothing, + // Optional ByVal mtype As String = Nothing, + // Optional ByVal mmsg As String = Nothing + // ) As Boolean + // Dim result As Boolean = False + // Try + // Dim al As New ArrayList + // al.Add(mcode) + // al.Add(mtype) + // al.Add(mmsg) + // strMessage.Add(al) + // result = True + // Catch ex As Exception + // result = False + // End Try + // End Function + + #endregion + // ===== + + // 發Mail功能 非群組與群組發送 + public static string SendMultiEmail(ref string FileName, ref string EmailSubject, string EmailBody = defString, string GroupNo = defString, byte[] AttachFile = null, GroupType GroupType = GroupType.UserGroup) + { + string SendMultiEmailRet = default(string); + // GroupType + // 0:User Group (使用者群組) + // 1:Issue Group (簽核群組) + // 2:Equipment Group(設備工程師群組) + // 3:Inventory Group(庫房工程師群組) + // 4:Report Group(報表使用群組) + // 5:ERF Disposition Group(異常處理群組) + // 6:ERF Mail ccGroup(附件收件人群組) + + try + { + + strIdentity = CombineXMLIdentity(modWIN.gComputerName, "AUTORUN", DateTime.Now.ToString()); + strParameter = CombineXMLParameter("groupno", "GroupNo", "String", CInput(GroupNo), ""); + strParameter = strParameter + CombineXMLParameter("emailsubject", "EmailSubject", "String", EmailSubject, ""); + strParameter = strParameter + CombineXMLParameter("emailbody", "EmailBody", "String", EmailBody, ""); + strParameter = strParameter + CombineXMLParameter("grouptype", "GroupType", "Integer", GroupType.ToString(), ""); + strParameter = strParameter + CombineXMLParameter("attachfilename", "AttachFileName", "String", FileName, ""); + + var XmlDoc = new XmlDocument(); + + InXml = CombineXMLRequest(strIdentity, strParameter); + + // OutXml = wsWIP.SendEmailAndAttachFileToGroup(InXml, AttachFile) + OutXml = InvokeSrv("wsWIP.SendEmailAndAttachFileToGroup", InXml, AttachFile); + + XmlDoc.LoadXml(OutXml); + + if (chkExecutionSuccess(XmlDoc)) // 找出Exception訊並顯示出來 + { + SendMultiEmailRet = "success"; + } + else + { + SendMultiEmailRet = "fail"; + } + + XmlDoc = null; + } + + catch (Exception ex) + { + SendMultiEmailRet = "fail;" + ex.Message; + } + + return SendMultiEmailRet; + + } + + #region --- 數值查核 --- + + public static bool funChkNumericIsValid(string pSourceText, bool AllowFloat = true, bool AllowContainsDot = true, bool AllowZeroValue = true, bool AllowMinus = true) + { + + bool blnExecResult = false; + decimal decInputValue = 0m; + + try + { + + if (!Information.IsNumeric(pSourceText)) + { + blnExecResult = false; + return blnExecResult; + } + decInputValue = Convert.ToDecimal(pSourceText); + + if (!AllowMinus && decInputValue < 0m) + { + blnExecResult = false; + return blnExecResult; + } + if (!AllowZeroValue && decInputValue == 0m) + { + blnExecResult = false; + return blnExecResult; + } + if (!AllowFloat) + { + if (decInputValue % 1m > 0m) + { + blnExecResult = false; + return blnExecResult; + } + } + + if (!AllowContainsDot && !pSourceText.IndexOf(".").Equals(-1)) + { + blnExecResult = false; + return blnExecResult; + } + + blnExecResult = true; + } + catch (Exception ex) + { + throw; + } + + return blnExecResult; + + } + + #endregion + } +} \ No newline at end of file diff --git a/SRC/MESAgent/MESAutoRun/AutoRunLib/modWIN.cs b/SRC/MESAgent/MESAutoRun/AutoRunLib/modWIN.cs new file mode 100644 index 0000000..19ff128 --- /dev/null +++ b/SRC/MESAgent/MESAutoRun/AutoRunLib/modWIN.cs @@ -0,0 +1,225 @@ +using System; +using System.Collections; +using static System.Configuration.ConfigurationSettings; +using System.Data; +using System.Runtime.InteropServices; +using System.Xml; +using Microsoft.VisualBasic; +using Microsoft.VisualBasic.CompilerServices; + +namespace AutoRunLib_C +{ + + static class modWIN + { + + // ReviseDate : 2003/08/07,修改處理AdditionalXML + // ReviseDate : 2003/08/05,新增Public gReturnArray + // ReviseDate : 2003/07/01,更改AddFlow產生的Error(CInput) + // ReviseDate : 2002/11/04,新增CUnInput function + + public static string gComputerName = System.Environment.MachineName; + public static string gUserNo = "AUTService"; + public static string gMESWebServiceHost = GetAppSettings("MesWebServiceHost"); + public static string gCUSWebServiceHost = GetAppSettings("CusWebServiceHost"); + public static string gERPWebServiceHost = GetAppSettings("ERPWebServiceHost"); + public static string gLanguageMode = GetAppSettings("LanguageMode"); + + // Add By Peter 2005/6/20 + public static string gSettingMode = ""; + + + public static string PasswordEncoding(ref string Password) + { + string PasswordEncodingRet = default(string); + // 此 Function 將傳入值加以編碼後傳出,編碼後長度不變 + // 傳入值: 密碼 + // 傳回值: 編碼後密碼 + + // Vernam密碼是由Gilbert Vernam在1918年發明的 + string g_Key = "xNDFz6LH67LOv7xKbWFpbMu1wejrM7SzvV4tLRvq3X47m708O1xMHLoaMNCqGhoaEN"; + string strChar, iCryptChar, strEncrypted = default(string); + int i, iKeyChar, iStringChar; + + var loopTo = Strings.Len(Password); + for (i = 1; i <= loopTo; i++) + { + iKeyChar = Strings.Asc(Strings.Mid(g_Key, i, 1)); + iStringChar = Strings.Asc(Strings.Mid(Password, i, 1)); + iCryptChar = (iKeyChar ^ iStringChar).ToString(); + strEncrypted = strEncrypted + Strings.Chr(Conversions.ToInteger(iCryptChar)); + } + + PasswordEncodingRet = Convert.ToBase64String(System.Text.Encoding.ASCII.GetBytes(strEncrypted)); + return PasswordEncodingRet; + + } + + + // 2017-06-05, Joe, 依XML標準定義轉換特殊字元 + public static string CInputWithXMLStandard(ref string strInput) + { + string CInputWithXMLStandardRet = default(string); + + // 轉換 ' 為 ' + CInputWithXMLStandardRet = Strings.Replace(strInput, "'", "'"); + + // 轉換 & 為 & + CInputWithXMLStandardRet = Strings.Replace(CInputWithXMLStandardRet, "&", "&"); + + // 轉換 " 為 quot; + CInputWithXMLStandardRet = Strings.Replace(CInputWithXMLStandardRet, "\"", """); + + // 轉換 > 為 > + CInputWithXMLStandardRet = Strings.Replace(CInputWithXMLStandardRet, ">", ">"); + + // 轉換 < 為 < + CInputWithXMLStandardRet = Strings.Replace(CInputWithXMLStandardRet, "<", "<"); + return CInputWithXMLStandardRet; + + } + + // 2017-06-05, Joe, 依XML標準定義反轉換特殊字元 + public static string CUnInputWithXMLStandard(ref string strInput) + { + string CUnInputWithXMLStandardRet = default(string); + + // 轉換 ' 為 "'" + CUnInputWithXMLStandardRet = Strings.Replace(strInput, "'", "'"); + + // 轉換 " 為 quot; + CUnInputWithXMLStandardRet = Strings.Replace(CUnInputWithXMLStandardRet, """, "\""); + + // 轉換 & 為 & + CUnInputWithXMLStandardRet = Strings.Replace(CUnInputWithXMLStandardRet, "&", "&"); + + // 轉換 > 為 > + CUnInputWithXMLStandardRet = Strings.Replace(CUnInputWithXMLStandardRet, ">", ">"); + + // 轉換 < 為 < + CUnInputWithXMLStandardRet = Strings.Replace(CUnInputWithXMLStandardRet, "<", "<"); + return CUnInputWithXMLStandardRet; + + } + + // **Add by py 2003/12/04,Gary Lu 20120911:以MESWin1~Win4的版本進行替換 + public static string LocalizeWebService(string wsUrl, bool Customize = false) + { + + string[] tmpString; + int i; + tmpString = wsUrl.Split('/'); + if (Customize == true) + { + if (!string.IsNullOrEmpty(Strings.Trim(gCUSWebServiceHost))) + { + if (tmpString.Length == 6) + { + wsUrl = tmpString[0].ToString() + "/" + tmpString[1].ToString() + "/" + gCUSWebServiceHost + "/" + tmpString[4].ToString() + "/" + tmpString[5].ToString(); + } + else if (tmpString.Length == 5) + { + wsUrl = "http://" + gCUSWebServiceHost + "/" + tmpString[tmpString.Length - 1].ToString(); + } + } + } + else if (!string.IsNullOrEmpty(Strings.Trim(gMESWebServiceHost))) + { + if (tmpString.Length == 6) + { + // wsUrl = "http://" & gMESWebServiceHost & "/" & tmpString(tmpString.Length - 2).ToString & "/" & tmpString(tmpString.Length - 1).ToString + wsUrl = tmpString[0].ToString() + "/" + tmpString[1].ToString() + "/" + gMESWebServiceHost + "/" + tmpString[4].ToString() + "/" + tmpString[5].ToString(); + } + else if (tmpString.Length == 5) + { + wsUrl = "http://" + gMESWebServiceHost + "/" + tmpString[tmpString.Length - 1].ToString(); + } + } + + return wsUrl; + // Have to assume the web service is on the machine that this application came from + } // LocalizeWebService + + public static string LocalizeWebService_ERP(string wsUrl) + { + + string[] tmpString; + int i; + tmpString = wsUrl.Split('/'); + + if (!string.IsNullOrEmpty(Strings.Trim(gERPWebServiceHost))) + { + wsUrl = tmpString[0].ToString() + "/" + tmpString[1].ToString() + "/" + gERPWebServiceHost + "/" + tmpString[4].ToString(); + } + + return wsUrl; + + } + + // Add By Peter 2005/6/20 + public static string GetAppSettings(string key, string section = "") + { + string result = string.Empty; + + try + { + + if (!string.IsNullOrEmpty(section)) + { + result = Conversions.ToString(((Hashtable)GetConfig(section))[key]); + } + else if (string.IsNullOrEmpty(gSettingMode) || string.IsNullOrEmpty(gSettingMode) || gSettingMode.Length == 0) + { + result = AppSettings[key]; + } + else + { + Hashtable ht = (Hashtable)GetConfig(gSettingMode); + if (ht != null) + { + result = Conversions.ToString(ht[key]); + if (string.IsNullOrEmpty(result)) + { + result = AppSettings[key]; + if (string.IsNullOrEmpty(result)) + { + result = ""; + } + } + } + else + { + result = AppSettings[key]; + } + } + } + + catch (Exception ex) + { + throw ex; + } + + return result; + + } + + + public static string GetSubString(string strValue, int intLength) + { + int intLen; + string strReturn; + + // Dim byteValue As Byte() = System.Text.Encoding.UTF8.GetBytes(strValue) + // If intLength > byteValue.Length - 1 Then + // intLen = byteValue.Length - 1 + // End If + // Dim strReturn As String = System.Text.Encoding.UTF8.GetString(byteValue, 0, intLen) + intLen = (int)Math.Round(Conversion.Int(intLength / 3d)); + strReturn = Strings.Left(strValue, intLen); + + return strReturn; + + } + + } +} \ No newline at end of file diff --git a/SRC/MESAgent/MESAutoRun/MESAutoRun.sln b/SRC/MESAgent/MESAutoRun/MESAutoRun.sln new file mode 100644 index 0000000..e1749dc --- /dev/null +++ b/SRC/MESAgent/MESAutoRun/MESAutoRun.sln @@ -0,0 +1,30 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 14 +VisualStudioVersion = 14.0.25420.1 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AutoRunLib_C", "AutoRunLib\AutoRunLib_C.csproj", "{7C0468A8-E807-0FF4-0C04-C1AD9B3D7D2A}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x86 = Debug|x86 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {7C0468A8-E807-0FF4-0C04-C1AD9B3D7D2A}.Debug|x86.ActiveCfg = Debug|Any CPU + {7C0468A8-E807-0FF4-0C04-C1AD9B3D7D2A}.Debug|x86.Build.0 = Debug|Any CPU + {7C0468A8-E807-0FF4-0C04-C1AD9B3D7D2A}.Release|x86.ActiveCfg = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(TeamFoundationVersionControl) = preSolution + SccNumberOfProjects = 2 + SccEnterpriseProvider = {4CA58AB2-18FA-4F8D-95D4-32DDF27D184C} + SccTeamFoundationServer = http://tfs.imestech.com:8080/tfs/messeries6 + SccLocalPath0 = . + SccProjectUniqueName1 = AutoRunLib\\AutoRunLib_C.vbproj + SccProjectName1 = AutoRunLib + SccLocalPath1 = AutoRunLib + EndGlobalSection +EndGlobal diff --git a/SRC/MESEAI/EAICws/EAICws/EAIws_C.csproj b/SRC/MESEAI/EAICws/EAICws/EAIws_C.csproj new file mode 100644 index 0000000..bf80049 --- /dev/null +++ b/SRC/MESEAI/EAICws/EAICws/EAIws_C.csproj @@ -0,0 +1,143 @@ + + + + + Debug + AnyCPU + {74B7676A-6420-0784-301F-696024D2A8D7} + Library + EAIws_C + EAIws_C + 512 + Windows + v4.6.2 + SAK + SAK + SAK + SAK + + $(DefaultItemExcludes);$(ProjectDir)**\*.vb + + + true + full + true + true + ..\..\..\MES_S_DLL\ + ..\..\..\MES_S_DLL\EAIws_C.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + false + + + pdbonly + false + true + true + bin\Release\ + bin\Release\EAIws_C.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + false + + + On + + + Binary + + + Off + + + On + + + + False + ..\..\..\MES_S_DLL\Apache.NMS.dll + False + + + False + ..\..\..\MES_S_DLL\Apache.NMS.ActiveMQ.dll + False + + + False + ..\..\..\MES_S_DLL\iMESAppSetting.dll + False + + + False + ..\..\..\MES_S_DLL\iMESConst.dll + False + + + + False + ..\..\..\MES_S_DLL\iMESCIO.dll + False + + + False + ..\..\..\MES_S_DLL\iMESException.dll + + + + + + + + + + + False + ..\..\..\MES_S_DLL\tcEAI_C.dll + + + + + + + + + + + + + + + + + + + + + True + Application.myapp + + + True + Settings.settings + True + + + + + MyApplicationCodeGenerator + Application.Designer.cs + + + SettingsSingleFileGenerator + EAIws_C.My + Settings.Designer.cs + + + + + \ No newline at end of file diff --git a/SRC/MESEAI/EAICws/EAICws/My Project/Application.Designer.cs b/SRC/MESEAI/EAICws/EAICws/My Project/Application.Designer.cs new file mode 100644 index 0000000..299bbe3 --- /dev/null +++ b/SRC/MESEAI/EAICws/EAICws/My Project/Application.Designer.cs @@ -0,0 +1,11 @@ +// ------------------------------------------------------------------------------ +// +// 這段程式碼是由工具產生的。 +// 執行階段版本:4.0.30319.42000 +// +// 對這個檔案所做的變更可能會造成錯誤的行為,而且如果重新產生程式碼, +// 變更將會遺失。 +// +// ------------------------------------------------------------------------------ + + diff --git a/SRC/MESEAI/EAICws/EAICws/My Project/Application.myapp b/SRC/MESEAI/EAICws/EAICws/My Project/Application.myapp new file mode 100644 index 0000000..758895d --- /dev/null +++ b/SRC/MESEAI/EAICws/EAICws/My Project/Application.myapp @@ -0,0 +1,10 @@ + + + false + false + 0 + true + 0 + 1 + true + diff --git a/SRC/MESEAI/EAICws/EAICws/My Project/AssemblyInfo.cs b/SRC/MESEAI/EAICws/EAICws/My Project/AssemblyInfo.cs new file mode 100644 index 0000000..eca4b74 --- /dev/null +++ b/SRC/MESEAI/EAICws/EAICws/My Project/AssemblyInfo.cs @@ -0,0 +1,35 @@ +using System; +using System.Reflection; +using System.Runtime.InteropServices; + +// 組件的一般資訊是由下列的屬性集控制。 +// 變更這些屬性的值即可修改組件的相關 +// 資訊。 + +// 檢閱組件屬性的值 + +[assembly: AssemblyTitle("EAIws_C")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("EAICws")] +[assembly: AssemblyCopyright("Copyright © 2018")] +[assembly: AssemblyTrademark("")] + +[assembly: ComVisible(false)] + +// 下列 GUID 為專案公開 (Expose) 至 COM 時所要使用的 typelib ID +[assembly: Guid("968ccd3c-116a-41ae-97a1-bd5dafb45d36")] + +// 組件的版本資訊由下列四個值所組成: +// +// 主要版本 +// 次要版本 +// 組建編號 +// 修訂編號 +// +// 您可以指定所有的值,也可以依照以下的方式,使用 '*' 將組建和修訂編號 +// 指定為預設值: +// + +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/SRC/MESEAI/EAICws/EAICws/My Project/Resources.resx b/SRC/MESEAI/EAICws/EAICws/My Project/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/SRC/MESEAI/EAICws/EAICws/My Project/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/SRC/MESEAI/EAICws/EAICws/My Project/Settings.Designer.cs b/SRC/MESEAI/EAICws/EAICws/My Project/Settings.Designer.cs new file mode 100644 index 0000000..e8b6167 --- /dev/null +++ b/SRC/MESEAI/EAICws/EAICws/My Project/Settings.Designer.cs @@ -0,0 +1,88 @@ +// ------------------------------------------------------------------------------ +// +// 這段程式碼是由工具產生的。 +// 執行階段版本:4.0.30319.42000 +// +// 對這個檔案所做的變更可能會造成錯誤的行為,而且如果重新產生程式碼, +// 變更將會遺失。 +// +// ------------------------------------------------------------------------------ + +using System.Diagnostics; +using Microsoft.VisualBasic; + + +namespace EAIws_C.My +{ + + [System.Runtime.CompilerServices.CompilerGenerated()] + [System.CodeDom.Compiler.GeneratedCode("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")] + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Advanced)] + internal sealed partial class MySettings : System.Configuration.ApplicationSettingsBase + { + + private static MySettings defaultInstance = (MySettings)Synchronized(new MySettings()); + + #region My.Settings 自動儲存功能 + /* TODO ERROR: Skipped IfDirectiveTrivia + #If _MyType = "WindowsForms" Then + *//* TODO ERROR: Skipped DisabledTextTrivia + Private Shared addedHandler As Boolean + + Private Shared addedHandlerLockObject As New Object + + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub + *//* TODO ERROR: Skipped EndIfDirectiveTrivia + #End If + */ + #endregion + + public static MySettings Default + { + get + { + + /* TODO ERROR: Skipped IfDirectiveTrivia + #If _MyType = "WindowsForms" Then + *//* TODO ERROR: Skipped DisabledTextTrivia + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If + *//* TODO ERROR: Skipped EndIfDirectiveTrivia + #End If + */ + return defaultInstance; + } + } + } +} + +namespace EAIws_C.My +{ + + [HideModuleName()] + [DebuggerNonUserCode()] + [System.Runtime.CompilerServices.CompilerGenerated()] + internal static class MySettingsProperty + { + + [System.ComponentModel.Design.HelpKeyword("My.Settings")] + internal static MySettings Settings + { + get + { + return MySettings.Default; + } + } + } +} \ No newline at end of file diff --git a/SRC/MESEAI/EAICws/EAICws/My Project/Settings.settings b/SRC/MESEAI/EAICws/EAICws/My Project/Settings.settings new file mode 100644 index 0000000..85b890b --- /dev/null +++ b/SRC/MESEAI/EAICws/EAICws/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/SRC/MESEAI/EAICws/EAICws/modEAP.cs b/SRC/MESEAI/EAICws/EAICws/modEAP.cs new file mode 100644 index 0000000..28a466b --- /dev/null +++ b/SRC/MESEAI/EAICws/EAICws/modEAP.cs @@ -0,0 +1,28 @@ +using System; +using System.Xml; +using Apache.NMS; +using Apache.NMS.Util; +using tcEAI_C; + +namespace EAIws_C +{ + + static class modEAP + { + + private static XmlDocument xmlDoc = new XmlDocument(); // 用以讀取Xml字串 + private static DateTime ArriveTime; // 送達時間 + private static string strIdentity; // Identity XML字串 + private static string strReturnValue; // ReturnValue XML字串 + private static string strException; // Exception XML字串 + private static string strResult; // Result XML字串 + private static string strMessage; // Message XML字串 + private static object strServiceName = "modEAP"; + private static int i = 0; + + #region EAP 客制接口 + + #endregion + + } +} \ No newline at end of file diff --git a/SRC/MESEAI/EAICws/EAICws/modERP.cs b/SRC/MESEAI/EAICws/EAICws/modERP.cs new file mode 100644 index 0000000..8034ece --- /dev/null +++ b/SRC/MESEAI/EAICws/EAICws/modERP.cs @@ -0,0 +1,120 @@ +using System; +using tcEAI_C; +using iMESCore.Settings; +using System.Collections; +using System.Collections.Generic; +using static iMESCore.Base.iMESConst; + +namespace EAIws_C +{ + + static class modERP + { + + public static string strService = "ERP"; + public static string strDataBaseType; + public static string strConnectionString; + + public static string funCreateOperation(string InXml) + { + string funCreateOperationRet = default(string); + System.Xml.XmlDocument xmlDoc = new System.Xml.XmlDocument(); // 用以讀取Xml字串 + string OutXml = null; + + string strIdentity = string.Empty; // Identity XML字串 + string strResult = "fail"; // Result XML字串 + List strException = new List(); // Exception XML字串 + List strMessage = new List(); // Message XML字串 + string strKeyValue = string.Empty; // TransactionLot KeyValue + string strMode = string.Empty; // Mode + + try + { + try + { + // 讀取InXml字串 + xmlDoc.LoadXml(InXml); + } + catch (Exception ex) + { + clsERP.combineException(ref strException, null, ex.Message, "[%InXmlError%]", ex.StackTrace); + goto exitFun; + } + + // 組Identity字串 + try + { + strIdentity = modWS.CombineXMLIdentity(xmlDoc); + } + catch (Exception ex) + { + clsERP.combineException(ref strException, null, ex.Message, "[%IndentityError%]", ex.StackTrace); + goto exitFun; + } + + + // 2019/05/09 OwenLiu, Mantis:0057304 作業站整合若資料已存在, + // 且ERP未傳值的狀況, 不更新OPType, OPClass, OPShortName, OPOrder + string OPNo = string.Empty; + string OPName = string.Empty; + string OPType = defString; + string PSNo = defString; + int OPClass = defInteger; // Default 0 : General OP + string OPShortName = defString; + int OPOrder = defInteger; // Default 0 + string Description = string.Empty; + string Creator = string.Empty; + DateTime CreateDate = DateTime.Now; // Default Today + int PrintOutOnRunCard = 1; // Default 1 + double StdUnitRunTime = 0; // Default 0 + long CountOpUnitQty = 1; // Default 1 + double StdQueueTime = 0; // Default 0 + decimal decStdUnitRunTime = defInteger; + decimal decCountOpUnitQty = defInteger; + decimal decStdQueueTime = defInteger; + int OSOption = defInteger; + int OSOptionTemp = defInteger; + string ERPPDLineNo = defString; + // Dim OldERPPDLineNo As String = defString '存放作業站修改前的群組資料 + + // OPNo + if (xmlDoc.DocumentElement.GetElementsByTagName("opno").Count > 0 && xmlDoc.GetElementsByTagName("opno").Item(0).SelectNodes("value").Count > 0) + OPNo = modWS.CInput(xmlDoc.DocumentElement.GetElementsByTagName("opno").Item(0).SelectNodes("value").Item(0).InnerText); + + // OPName + if (xmlDoc.DocumentElement.GetElementsByTagName("opname").Count > 0 && xmlDoc.GetElementsByTagName("opname").Item(0).SelectNodes("value").Count > 0) + OPName = modWS.CInput(xmlDoc.DocumentElement.GetElementsByTagName("opname").Item(0).SelectNodes("value").Item(0).InnerText); + + + + // 判斷成功與否 + if (strException.Count > 0) + goto exitFun; + + strResult = "success"; + + exitFun: + ; + } + + catch (Exception ex) + { + clsERP.combineException(ref strException, null, ex.Message, "[%CreateOPFail%]", ex.StackTrace); + } + + finally + { + + // 將各部份之XML字串組起來並傳出 + OutXml = modWS.CombineXMLResponse(strIdentity, null, strException, strResult, strMessage); + + funCreateOperationRet = OutXml; + } + + return funCreateOperationRet; + } + + + + } +} \ No newline at end of file diff --git a/SRC/MESEAI/EAICws/EAICws/modERPIntegrate.cs b/SRC/MESEAI/EAICws/EAICws/modERPIntegrate.cs new file mode 100644 index 0000000..740f816 --- /dev/null +++ b/SRC/MESEAI/EAICws/EAICws/modERPIntegrate.cs @@ -0,0 +1,16 @@ +using tcEAI_C; +using iMESCore.Settings; + +namespace EAIws_C +{ + + static class modERPIntegrate + { + + public static string strService = "ERPIntegrate"; + public static string strDataBaseType; + public static string strConnectionString; + + + } +} \ No newline at end of file diff --git a/SRC/MESEAI/EAICws/EAICws/modKMI.cs b/SRC/MESEAI/EAICws/EAICws/modKMI.cs new file mode 100644 index 0000000..4ce0867 --- /dev/null +++ b/SRC/MESEAI/EAICws/EAICws/modKMI.cs @@ -0,0 +1,37 @@ +using System; +using System.Xml; + +namespace EAIws_C +{ + + /// +/// +/// + static class modKMI + { + + private static string strService = "KMI"; + + private static string RequestKey = string.Empty; + private static string AccountID = string.Empty; + private static string SeesionID = string.Empty; + public const string SuccessCode = "0"; + + public static void GetXMLHeaderNode(XmlDocument xmlDoc) + { + + if (xmlDoc.SelectNodes("request").Item(0).SelectNodes("host").Count != 0) + { + AccountID = ((XmlElement)xmlDoc.SelectNodes("request").Item(0).SelectNodes("host").Item(0)).GetAttribute("acct"); + if (string.IsNullOrEmpty(AccountID)) + throw new Exception("GetXMLHeaderNode fail!", new Exception("acct is Empty!")); + } + else + { + throw new Exception("GetXMLHeaderNode fail!", new Exception("acct is not found!")); + } + + } + + } +} \ No newline at end of file diff --git a/SRC/MESEAI/EAICws/EAICws/modWS.cs b/SRC/MESEAI/EAICws/EAICws/modWS.cs new file mode 100644 index 0000000..a642f68 --- /dev/null +++ b/SRC/MESEAI/EAICws/EAICws/modWS.cs @@ -0,0 +1,1473 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using static System.Configuration.ConfigurationManager; +using System.Data; +using System.IO; +using System.Resources; +using System.Runtime.InteropServices; +using System.Web; +using System.Xml; +using Microsoft.VisualBasic; +using Microsoft.VisualBasic.CompilerServices; +using static iMESCore.Base.iMESConst; + +namespace EAIws_C +{ + + static class modWS + { + #region --- Get Xml Value --- + + + public static string GetXMLIdentityNode(XmlDocument xmlDoc, string SelectNode) + { + try + { + return xmlDoc.GetElementsByTagName("identity").Item(0).SelectNodes(SelectNode).Item(0).InnerXml; + } + catch (Exception e1) + { + return "IdentityError"; + } + + } + + public static string GetXMLTransactionID(ref XmlDocument xmlDoc) + { + try + { + return xmlDoc.GetElementsByTagName("identity").Item(0).SelectNodes("transactionid").Item(0).InnerXml; + } + catch (Exception e1) + { + // 發生錯誤時丟回本身的Function Name及系統錯誤訊息 + throw; + } // New Exception("modWS.GetXMLCurUserNo: " & e1.Message) + } + + public static string GetXMLModuleID(ref XmlDocument xmlDoc) + { + try + { + return xmlDoc.GetElementsByTagName("identity").Item(0).SelectNodes("moduleid").Item(0).InnerXml; + } + catch (Exception e1) + { + // 發生錯誤時丟回本身的Function Name及系統錯誤訊息 + throw; + } // New Exception("modWS.GetXMLCurUserNo: " & e1.Message) + } + + public static string GetXMLFunctionID(ref XmlDocument xmlDoc) + { + try + { + return xmlDoc.GetElementsByTagName("identity").Item(0).SelectNodes("functionid").Item(0).InnerXml; + } + catch (Exception e1) + { + // 發生錯誤時丟回本身的Function Name及系統錯誤訊息 + throw; + } // New Exception("modWS.GetXMLCurUserNo: " & e1.Message) + } + + public static string GetXMLComputerName(ref XmlDocument xmlDoc) + { + try + { + return xmlDoc.GetElementsByTagName("identity").Item(0).SelectNodes("computername").Item(0).InnerXml; + } + catch (Exception e1) + { + // 發生錯誤時丟回本身的Function Name及系統錯誤訊息 + throw; + } // New Exception("modWS.GetXMLCurUserNo: " & e1.Message) + } + + public static string GetXMLCurUserNo(ref XmlDocument xmlDoc) + { + try + { + return xmlDoc.GetElementsByTagName("identity").Item(0).SelectNodes("curuserno").Item(0).InnerXml; + } + catch (Exception e1) + { + // 發生錯誤時丟回本身的Function Name及系統錯誤訊息 + throw; + } // New Exception("modWS.GetXMLCurUserNo: " & e1.Message) + } + + public static string GetXMLSendTime(ref XmlDocument xmlDoc) + { + try + { + return xmlDoc.GetElementsByTagName("identity").Item(0).SelectNodes("sendtime").Item(0).InnerXml; + } + catch (Exception e1) + { + // 發生錯誤時丟回本身的Function Name及系統錯誤訊息 + throw; + } // New Exception("modWS.GetXMLCurUserNo: " & e1.Message) + } + + public static string GetExceptionSysMsg(ref XmlDocument Xmldoc) + { + string GetExceptionSysMsgRet = default(string); + GetExceptionSysMsgRet = CInput(Xmldoc.DocumentElement.GetElementsByTagName("sysmsg").Item(0).InnerXml); + return GetExceptionSysMsgRet; + } + + public static string GetExceptionMesMsg(ref XmlDocument Xmldoc) + { + string GetExceptionMesMsgRet = default(string); + GetExceptionMesMsgRet = CInput(Xmldoc.DocumentElement.GetElementsByTagName("mesmsg").Item(0).InnerXml); + return GetExceptionMesMsgRet; + } + + public static bool chkExecutionSuccess(ref XmlDocument Xmldoc) + { + bool chkExecutionSuccessRet = default(bool); + if (Xmldoc.DocumentElement["result"].InnerXml == "success") + { + chkExecutionSuccessRet = true; + } + else + { + chkExecutionSuccessRet = false; + } + + return chkExecutionSuccessRet; + } + + + #endregion + + #region --- Combine Indentity Xml --- + + public static string CombineXMLIdentity(XmlDocument XMLDoc) + { + string CombineXMLIdentityRet = default(string); + CombineXMLIdentityRet = Conversions.ToString('\t') + '\t' + "" + GetXMLIdentityNode(XMLDoc, "transactionid") + "" + '\n'; + CombineXMLIdentityRet += Conversions.ToString('\t') + '\t' + "" + GetXMLIdentityNode(XMLDoc, "moduleid") + "" + '\n'; + CombineXMLIdentityRet += Conversions.ToString('\t') + '\t' + "" + GetXMLIdentityNode(XMLDoc, "functionid") + "" + '\n'; + CombineXMLIdentityRet += Conversions.ToString('\t') + '\t' + "" + GetXMLIdentityNode(XMLDoc, "computername") + "" + '\n'; + CombineXMLIdentityRet += Conversions.ToString('\t') + '\t' + "" + GetXMLIdentityNode(XMLDoc, "curuserno") + "" + '\n'; + CombineXMLIdentityRet += Conversions.ToString('\t') + '\t' + "" + GetXMLIdentityNode(XMLDoc, "sendtime") + ""; + return CombineXMLIdentityRet; + } + + public static string CombineXMLIdentity(ref string ComputerName, ref string CurUserNo, ref string SendTime) + { + string CombineXMLIdentityRet = default(string); + CombineXMLIdentityRet = "" + ComputerName + "" + "" + CurUserNo + "" + "" + SendTime + ""; + return CombineXMLIdentityRet; + } + + #endregion + + #region --- Combine Input Xml --- + + + public static string CombineXMLIdentity(ref string TransactionID, ref string ModuleID, ref string FunctionID, ref string ComputerName, ref string CurUserNo, ref string SendTime) + { + string CombineXMLIdentityRet = default(string); + CombineXMLIdentityRet = "" + TransactionID + "" + "" + ModuleID + "" + "" + FunctionID + "" + "" + ComputerName + "" + "" + CurUserNo + "" + "" + SendTime + ""; + return CombineXMLIdentityRet; + } + + public static string CombineXMLParameter(ref string value_name, ref string name, ref string type, ref string value, ref string desc) + { + string CombineXMLParameterRet = default(string); + + CombineXMLParameterRet = "<" + value_name.ToLower() + ">" + "" + name + "" + "" + type + "" + "" + value + "" + "" + desc + "" + ""; + return CombineXMLParameterRet; + + } + + public static string CombineXMLParameter(ref string name, ref string type, ref string value, ref string desc) + { + string CombineXMLParameterRet = default(string); + CombineXMLParameterRet = "<" + name.ToLower() + ">" + "" + name + "" + "" + type + "" + "" + value + "" + "" + desc + "" + ""; + return CombineXMLParameterRet; + } + + public static string CombineXMLValue(ref string TagName, ref string Value) + { + string CombineXMLValueRet = default(string); + CombineXMLValueRet = "<" + TagName + ">" + Value + ""; + return CombineXMLValueRet; + } + + public static string CombineXMLValueTag(ref string Value) + { + string CombineXMLValueTagRet = default(string); + CombineXMLValueTagRet = "" + Value + ""; + return CombineXMLValueTagRet; + } + + public static string CombineXMLRequest(ref string strIdentity, ref string strParameter) + { + string CombineXMLRequestRet = default(string); + + CombineXMLRequestRet = "" + "" + strIdentity + ""; + if (!string.IsNullOrEmpty(strParameter)) + { + CombineXMLRequestRet = CombineXMLRequestRet + "" + strParameter + ""; + } + CombineXMLRequestRet = CombineXMLRequestRet + ""; + return CombineXMLRequestRet; + + } + + public static string CombineXMLParameterMultiValue(ref string value_name, ref string name, ref string type, ref string value, ref string desc) + { + string CombineXMLParameterMultiValueRet = default(string); + // Value不用加上Tag + CombineXMLParameterMultiValueRet = "<" + value_name.ToLower() + ">" + "" + name + "" + "" + type + "" + value + "" + desc + "" + ""; + return CombineXMLParameterMultiValueRet; + } + + public static string CombineXMLAdditional(ref string strAdditional) + { + string CombineXMLAdditionalRet = default(string); + CombineXMLAdditionalRet = "" + strAdditional; + CombineXMLAdditionalRet = CombineXMLAdditionalRet + ""; + return CombineXMLAdditionalRet; + } + + public static string CombineAddXML_Add(ref string name, ref string type, ref string value) + { + string CombineAddXML_AddRet = default(string); + CombineAddXML_AddRet = "" + "" + name + "" + "" + type + "" + "" + value + "" + ""; + return CombineAddXML_AddRet; + } + + public static string CombineAddXML_Edit(ref string name, ref string type, ref string value) + { + string CombineAddXML_EditRet = default(string); + CombineAddXML_EditRet = "" + "" + name + "" + "" + type + "" + "" + value + "" + ""; + return CombineAddXML_EditRet; + } + + public static string CombineAddXML_Field(ref string name) + { + string CombineAddXML_FieldRet = default(string); + CombineAddXML_FieldRet = "" + "" + name + "" + ""; + return CombineAddXML_FieldRet; + } + + public static string CombineAddXML_Condition(string condition) + { + string CombineAddXML_ConditionRet = default(string); + + // 2007/03/22,sammi.呼叫CombineAddXML_Condition時,不可加CInput. + // 因CInput會將單引號轉成二個單引號,若Condition為下述範例時,會Error. + // strAdditional = CombineXMLAdditional(CombineAddXML_Condition("ModuleType in ('REWORK','SLR')")) + // strParameter += strAdditional + + CombineAddXML_ConditionRet = "" + condition + ""; + return CombineAddXML_ConditionRet; + + } + + public static string CInput(string strInput) + { + string CInputRet = default(string); + // 將傳入值內的單引號轉換為可存入資料庫的格式 + // 將傳入值內的 &, >, < 三個特殊字元轉換為XmlDocument可解譯之代替符號 + // 傳入值: strInput包含特殊字元的字串 + // 傳回值: 將特殊字元變更為代替符號的字串 + + // 轉換 ' 為 '' (單引號轉為兩個單引號) + CInputRet = Strings.Replace(strInput, "'", "''"); + + // 轉換 & 為 & + CInputRet = Strings.Replace(CInputRet, "&", "&"); + + // CInput = Replace(CInput, """", "''") 'AddFlow的Xml字串不可將雙引號轉為兩個單引號,XMLToFlow會Error + + // 轉換 > 為 > + CInputRet = Strings.Replace(CInputRet, ">", ">"); + + // 轉換 < 為 < + CInputRet = Strings.Replace(CInputRet, "<", "<"); + return CInputRet; + + } + + #endregion + + #region --- Combine Output Xml --- + + public static bool ChgTranslateException(List Exception, ref string strExceptionSysmsg, ref string strExceptionMesmsg, ref string strExceptionStack) + { + bool ChgTranslateExceptionRet = default(bool); + + try + { + foreach (ArrayList al in Exception) + { + if (!string.IsNullOrEmpty(strExceptionSysmsg)) + strExceptionSysmsg += Conversions.ToString('\n'); + if (string.IsNullOrEmpty(Conversions.ToString(al[1])) == false) + strExceptionSysmsg += Conversions.ToString('\t') + '\t' + '\t' + al[1].ToString(); + if (string.IsNullOrEmpty(strExceptionMesmsg) == false) + strExceptionMesmsg += Conversions.ToString('\n'); + if (string.IsNullOrEmpty(Conversions.ToString(al[2])) == false) + { + // 翻譯錯誤訊息 + string strErrName_Rep = ""; + string ErrorName = al[2].ToString(); + if (Strings.InStr(ErrorName, "[%", CompareMethod.Text) > 0) + { + string strKey, strKeyValue; + int intStart, j, k, l; + + intStart = 1; + j = 1; + + while (j != 0) + { + j = Strings.InStr(intStart, ErrorName, "[%", CompareMethod.Text); + if (j == 0) + { + strErrName_Rep += Strings.Mid(ErrorName, intStart); + } + else + { + k = Strings.InStr(j + 2, ErrorName, "%]", CompareMethod.Text); + if (k == 0) + { + // 找不到對應的結束字元. + strErrName_Rep += Strings.Mid(ErrorName, intStart); + j = 0; + } + else + { + // 檢查是否有不對稱的情況. + l = Strings.InStr(j + 2, ErrorName, "[%", CompareMethod.Text); + if (l == 0 || l > k) + { + strErrName_Rep += Strings.Mid(ErrorName, intStart, j - intStart); + strKey = Strings.Mid(ErrorName, j + 2, k - j - 2); + // 將Key執行語系轉換 + try + { + strKeyValue = ""; + strKeyValue = TranslateMsg(strKey); + } + catch (Exception ex) + { + strKeyValue = strKey; + } + if (string.IsNullOrEmpty(strKeyValue)) + { + strErrName_Rep += strKey; + } + else + { + strErrName_Rep += strKeyValue; + } // & "(" & strKey & ")" + // 下次截取字串的起始位置 + intStart = k + 2; + } + else + { + // 不對稱,找到最內層的[%%] + int m; + // 在前面的條件下,一定找得到. + m = Strings.InStrRev(ErrorName, "[%", k, CompareMethod.Text); + // 擷出不轉換的字串. + strErrName_Rep += Strings.Mid(ErrorName, intStart, m - intStart); + strKey = Strings.Mid(ErrorName, m + 2, k - m - 2); + // 將Key執行語系轉換 + try + { + strKeyValue = ""; + strKeyValue = TranslateMsg(strKey); + } + catch (Exception ex) + { + strKeyValue = strKey; + } + if (string.IsNullOrEmpty(strKeyValue)) + { + strErrName_Rep += strKey; + } + else + { + strErrName_Rep += strKeyValue; + } // & "(" & strKey & ")" + // 下次截取字串的起始位置 + intStart = k + 2; + } + } + } + } + } + // strExceptionMesmsg += Chr(9) & Chr(9) & Chr(9) & Resources.Resource.ResourceManager.GetString(al.Item(2).ToString) & "(" & al.Item(2).ToString & ")" + strExceptionMesmsg += Conversions.ToString('\t') + '\t' + '\t' + strErrName_Rep; + } + + if (!string.IsNullOrEmpty(strExceptionStack)) + strExceptionStack += Conversions.ToString('\n'); + if (string.IsNullOrEmpty(Conversions.ToString(al[3])) == false) + strExceptionStack += Conversions.ToString('\t') + '\t' + '\t' + al[3].ToString(); + } + + ChgTranslateExceptionRet = true; + } + + catch (Exception e1) + { + throw; + ChgTranslateExceptionRet = false; + } + + return ChgTranslateExceptionRet; + + } + + public static bool ChgTranslateException_ByLanguage(ref List Exception, ref string strExceptionSysmsg, ref string strExceptionMesmsg, ref string strExceptionStack, bool ShowStack) + { + bool ChgTranslateException_ByLanguageRet = default(bool); + + try + { + // item content>> 0:code, 1:sysmsg, 2:mesmsg, 3:stack + foreach (ArrayList al in Exception) + { + if (!string.IsNullOrEmpty(strExceptionSysmsg)) + strExceptionSysmsg += Conversions.ToString(ControlChars.Cr); + if (!string.IsNullOrEmpty(strExceptionStack)) + strExceptionStack += Conversions.ToString(ControlChars.Cr); + // code + if (string.IsNullOrEmpty(Conversions.ToString(al[0])) == false) + { + strExceptionSysmsg += string.Format("[{0}]", TranslateMsg(al[0].ToString())); + } + if (string.IsNullOrEmpty(Conversions.ToString(al[1])) == false) + { + strExceptionSysmsg += "," + TranslateMsg(al[1].ToString()); + } + if (string.IsNullOrEmpty(strExceptionMesmsg) == false) + strExceptionMesmsg += Conversions.ToString(ControlChars.Cr); + if (string.IsNullOrEmpty(Conversions.ToString(al[2])) == false) + { + // 翻譯錯誤訊息 + string strErrName_Rep = ""; + string ErrorName = al[2].ToString(); + strErrName_Rep = TranslateMsg(ErrorName); + strExceptionMesmsg += "," + strErrName_Rep; + } + // stack + if (ShowStack == true && string.IsNullOrEmpty(Conversions.ToString(al[3])) == false) + { + strExceptionStack += ControlChars.Tab + al[3].ToString(); + } + } + + ChgTranslateException_ByLanguageRet = true; + } + + catch (Exception ex) + { + throw; + ChgTranslateException_ByLanguageRet = false; + } + + return ChgTranslateException_ByLanguageRet; + + } + + public static bool ChgTranslateException_ByLanguage(ref List Exception, ref string strExceptionSysmsg, ref string strExceptionMesmsg, ref string strExceptionStack) + { + bool ChgTranslateException_ByLanguageRet = default(bool); + + try + { + foreach (ArrayList al in Exception) + { + if (!string.IsNullOrEmpty(strExceptionSysmsg)) + strExceptionSysmsg += Conversions.ToString('\n'); + if (string.IsNullOrEmpty(Conversions.ToString(al[1])) == false) + strExceptionSysmsg += Conversions.ToString('\t') + '\t' + '\t' + TranslateMsg(al[1].ToString()); + if (string.IsNullOrEmpty(strExceptionMesmsg) == false) + strExceptionMesmsg += Conversions.ToString('\n'); + if (string.IsNullOrEmpty(Conversions.ToString(al[2])) == false) + { + // 翻譯錯誤訊息 + string strErrName_Rep = ""; + string ErrorName = al[2].ToString(); + strErrName_Rep = TranslateMsg(ErrorName); + strExceptionMesmsg += Conversions.ToString('\t') + '\t' + '\t' + strErrName_Rep; + } + + if (!string.IsNullOrEmpty(strExceptionStack)) + strExceptionStack += Conversions.ToString('\n'); + if (string.IsNullOrEmpty(Conversions.ToString(al[3])) == false) + strExceptionStack += Conversions.ToString('\t') + '\t' + '\t' + al[3].ToString(); + } + + ChgTranslateException_ByLanguageRet = true; + } + + catch (Exception e1) + { + throw; + ChgTranslateException_ByLanguageRet = false; + } + + return ChgTranslateException_ByLanguageRet; + + } + + public static bool ChgTranslateMessage(ref List Message, ref string strMmsg) + { + bool ChgTranslateMessageRet = default(bool); + + try + { + foreach (ArrayList al in Message) + { + if (!string.IsNullOrEmpty(strMmsg)) + strMmsg += Conversions.ToString('\n'); + if (string.IsNullOrEmpty(Conversions.ToString(al[2])) == false) + { + // 翻譯訊息 + string strErrName_Rep = ""; + string ErrorName = al[2].ToString(); + if (Strings.InStr(ErrorName, "[%", CompareMethod.Text) > 0) + { + // Replace[%%] + string strKey, strKeyValue; + int intStart, j, k, l; + + intStart = 1; + j = 1; + + while (j != 0) + { + j = Strings.InStr(intStart, ErrorName, "[%", CompareMethod.Text); + if (j == 0) + { + strErrName_Rep += Strings.Mid(ErrorName, intStart); + } + else + { + k = Strings.InStr(j + 2, ErrorName, "%]", CompareMethod.Text); + if (k == 0) + { + // 找不到對應的結束字元. + strErrName_Rep += Strings.Mid(ErrorName, intStart); + j = 0; + } + else + { + // 檢查是否有不對稱的情況. + l = Strings.InStr(j + 2, ErrorName, "[%", CompareMethod.Text); + if (l == 0 || l > k) + { + strErrName_Rep += Strings.Mid(ErrorName, intStart, j - intStart); + strKey = Strings.Mid(ErrorName, j + 2, k - j - 2); + // 將Key執行語系轉換 + try + { + strKeyValue = ""; + strKeyValue = TranslateMsg(strKey); + } + catch (Exception ex) + { + strKeyValue = strKey; + } + if (string.IsNullOrEmpty(strKeyValue)) + { + strErrName_Rep += strKey; + } + else + { + strErrName_Rep += strKeyValue; + } // & "(" & strKey & ")" + // 下次截取字串的起始位置 + intStart = k + 2; + } + else + { + // 不對稱,找到最內層的[%%] + int m; + // 在前面的條件下,一定找得到. + m = Strings.InStrRev(ErrorName, "[%", k, CompareMethod.Text); + // 擷出不轉換的字串. + strErrName_Rep += Strings.Mid(ErrorName, intStart, m - intStart); + strKey = Strings.Mid(ErrorName, m + 2, k - m - 2); + // 將Key執行語系轉換 + try + { + strKeyValue = ""; + strKeyValue = TranslateMsg(strKey); + } + catch (Exception ex) + { + strKeyValue = strKey; + } + if (string.IsNullOrEmpty(strKeyValue)) + { + strErrName_Rep += strKey; + } + else + { + strErrName_Rep += strKeyValue; + } // & "(" & strKey & ")" + // 下次截取字串的起始位置 + intStart = k + 2; + } + } + } + } + } + + // strMmsg += Resources.Resource.ResourceManager.GetString(al.Item(2).ToString) & "(" & al.Item(2).ToString & ")" + strMmsg += strErrName_Rep; + } + + } + + ChgTranslateMessageRet = true; + } + + catch (Exception e1) + { + throw; + + ChgTranslateMessageRet = false; + } + + return ChgTranslateMessageRet; + + } + + public static string CombineXMLReturnValue(ref string value_name, ref string name, ref string type, ref string schema, ref string value, ref string desc) + { + string CombineXMLReturnValueRet = default(string); + + try + { + CombineXMLReturnValueRet = "<" + value_name.Trim().ToLower() + ">" + "" + name + "" + "" + type + "" + "" + schema + "" + "" + value + "" + "" + desc + "" + ""; + } + + catch (Exception e1) + { + // 發生錯誤時丟回本身的Function Name及系統錯誤訊息 + throw; + + } // New Exception("modWS.CombineXMLReturnValue: " & e1.Message) + + return CombineXMLReturnValueRet; + + } + + public static string CombineXMLException(ref string code, ref string sysmsg, ref string mesmsg, string stack = "") + { + string CombineXMLExceptionRet = default(string); + + // Edit by Yun 2006.8.9 加上 CInput + try + { + CombineXMLExceptionRet = "" + code + "" + "" + CInput(sysmsg) + "" + "" + CInput(mesmsg) + "" + "" + CInput(stack) + ""; + } + + catch (Exception e1) + { + // 發生錯誤時丟回本身的Function Name及系統錯誤訊息 + throw; + + } // New Exception("modWS.CombineXMLException: " & e1.Message) + + return CombineXMLExceptionRet; + + } + + public static string CombineXMLMessage(string code, string type, string msg) + { + string CombineXMLMessageRet = default(string); + + try + { + CombineXMLMessageRet = "" + "" + code + "" + "" + type + "" + "" + msg + "" + ""; + } + catch (Exception e1) + { + // 發生錯誤時丟回本身的Function Name及系統錯誤訊息 + throw; + + } // New Exception("modWS.CombineXMLMessage: " & e1.Message) + + return CombineXMLMessageRet; + + } + + public static string CombineXMLResponse(string Identity, string ReturnValue = null, List Exception = null, string Result = null, List Message = null) + { + string CombineXMLResponseRet = default(string); + + try + { + // + CombineXMLResponseRet = "" + '\n'; + + // + if (string.IsNullOrEmpty(Identity)) + { + CombineXMLResponseRet += '\t' + "" + '\n'; + } + else + { + CombineXMLResponseRet += '\t' + "" + '\n'; + CombineXMLResponseRet += Identity + '\n'; + CombineXMLResponseRet += '\t' + "" + '\n'; + } + + // + if (string.IsNullOrEmpty(ReturnValue)) + { + CombineXMLResponseRet += '\t' + "" + '\n'; + } + else + { + CombineXMLResponseRet += '\t' + "" + '\n'; + CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + ReturnValue + '\n'; + CombineXMLResponseRet += '\t' + "" + '\n'; + } + + // + if (string.IsNullOrEmpty(Result)) + { + CombineXMLResponseRet += '\t' + "" + '\n'; + } + else + { + CombineXMLResponseRet += '\t' + "" + Result + "" + '\n'; + } + + // + string strExceptionSysmsg = string.Empty; + string strExceptionMesmsg = string.Empty; + string strExceptionStack = string.Empty; + + if (Exception.Count == 0) + { + CombineXMLResponseRet += '\t' + "" + '\n'; + } + else + { + // 2016-12-01, Joe, Exception轉語系 + ChgTranslateException(Exception, ref strExceptionSysmsg, ref strExceptionMesmsg, ref strExceptionStack); + + CombineXMLResponseRet += '\t' + "" + '\n'; + CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + "" + AppSettings["defWSErrCode"] + "" + '\n'; + if (string.IsNullOrEmpty(strExceptionSysmsg) == true) + { + CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + "" + '\n'; + } + else + { + CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + "" + '\n' + strExceptionSysmsg + '\n' + '\t' + '\t' + "" + '\n'; + } + if (string.IsNullOrEmpty(strExceptionMesmsg) == true) + { + CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + "" + strExceptionMesmsg + "" + '\n'; + } + else + { + CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + "" + '\n' + strExceptionMesmsg + '\n' + '\t' + '\t' + "" + '\n'; + } + if (string.IsNullOrEmpty(strExceptionStack)) + { + CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + "" + '\n'; + } + else + { + CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + "" + '\n' + strExceptionStack + '\n' + '\t' + '\t' + "" + '\n'; + } + CombineXMLResponseRet += '\t' + "" + '\n'; + } + + // + string strMmsg = string.Empty; + + if (Message.Count == 0) + { + CombineXMLResponseRet += '\t' + "" + '\n'; + } + else + { + CombineXMLResponseRet += '\t' + "" + '\n'; + // 2016-12-01, Joe, Message轉語系 + // Call ChgTranslateMessage(Message, strMmsg) + + CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + "" + AppSettings["defMSGCode"] + "" + '\n'; + CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + "" + AppSettings["defMSGType"] + "" + '\n'; + CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + "" + strMmsg + "" + '\n'; + CombineXMLResponseRet += '\t' + "" + '\n'; + } + + CombineXMLResponseRet += "" + '\n'; + } + + catch (Exception e1) + { + // 發生錯誤時丟回本身的Function Name及系統錯誤訊息 + // Throw 'New Exception("modWS.CombineXMLResponse: " & e1.Message) + CombineXMLResponseRet = "" + '\n'; + CombineXMLResponseRet += '\t' + "" + '\n'; + CombineXMLResponseRet += '\t' + "" + '\n'; + CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + "" + '\n'; + CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + "" + '\n'; + CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + '\t' + e1.Message + '\n'; + CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + "" + '\n'; + CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + "" + '\n'; + CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + '\t' + "CombineXMLResponse;Fail" + '\n'; + CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + "" + '\n'; + CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + "" + '\n'; + CombineXMLResponseRet += e1.StackTrace + '\n'; + CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + "" + '\n'; + CombineXMLResponseRet += '\t' + "" + '\n'; + CombineXMLResponseRet += '\t' + "" + '\n'; + CombineXMLResponseRet += ""; + } + + return CombineXMLResponseRet; + + } + + public static string CombineXMLResponse(ref string Identity, ref string ReturnValue, ref string Exception, ref string Result, ref string Message) + { + string CombineXMLResponseRet = default(string); + + try + { + CombineXMLResponseRet = "" + Identity + ""; + + if (!string.IsNullOrEmpty(ReturnValue)) + { + CombineXMLResponseRet = CombineXMLResponseRet + "" + ReturnValue + ""; + } + + if (!string.IsNullOrEmpty(Exception)) + { + CombineXMLResponseRet = CombineXMLResponseRet + "" + Exception + ""; + } + + CombineXMLResponseRet = CombineXMLResponseRet + "" + Result + ""; + + if (!string.IsNullOrEmpty(Message)) + { + CombineXMLResponseRet = CombineXMLResponseRet + "" + Message + ""; + } + + CombineXMLResponseRet = CombineXMLResponseRet + ""; + } + + catch (Exception e1) + { + // 發生錯誤時丟回本身的Function Name及系統錯誤訊息 + throw; + + } // New Exception("modWS.CombineXMLResponse: " & e1.Message) + + return CombineXMLResponseRet; + + } + + // 2016-02-03, Joe, 調整Response XML架構 + + public static string CombineXMLResponse_Parameter(string key = defString, string type = defString, DataTable[] dtTemp = null, bool IsDetail = false) + { + string CombineXMLResponse_ParameterRet = default(string); + + int i = 0; + var XmlDoc = new XmlDocument(); + XmlElement nodeParameter = null; + if ((key ?? "") != defString | (type ?? "") != defString) + { + nodeParameter = XmlDoc.CreateElement("parameter"); + if ((key ?? "") != defString) + nodeParameter.SetAttribute("key", key); + if ((type ?? "") != defString) + nodeParameter.SetAttribute("type", type); + XmlDoc.AppendChild(nodeParameter); + } + + if (!(dtTemp[0] == null)) + { + // For iTable As Integer = 0 To dtTemp.Length - 1 + // If dtTemp(iTable) Is Nothing Then Continue For + i = 0; + + XmlElement nodeData; + XmlElement nodeDetail = null; + XmlElement nodeTemp; + if (IsDetail == false) + { + nodeData = XmlDoc.CreateElement("data"); + nodeTemp = nodeData; + } + else + { + nodeDetail = XmlDoc.CreateElement("detail"); + nodeTemp = nodeDetail; + } + + // 除第一個table外其他視為第二階 + nodeTemp.SetAttribute("name", dtTemp[0].TableName); + XmlElement nodeField; + foreach (DataRow dr in dtTemp[0].Rows) + { + + var nodeRow = XmlDoc.CreateElement("row"); + i = i + 1; + nodeRow.SetAttribute("seq", i.ToString()); + foreach (DataColumn dc in dtTemp[0].Columns) + { + nodeField = XmlDoc.CreateElement("field"); + nodeField.SetAttribute("name", dc.ColumnName.ToLower()); + nodeField.SetAttribute("type", "string"); + nodeField.InnerText = dr[dc].ToString(); + nodeRow.AppendChild(nodeField); + } + if (IsDetail == false) + { + for (int iTable = 1, loopTo = dtTemp.Length - 1; iTable <= loopTo; iTable++) + CombineXMLResponse_Parameter(dtTemp: new DataTable[] { dtTemp[iTable] }, IsDetail: true); + } + nodeTemp.AppendChild(nodeRow); + } + if (IsDetail == false) + { + nodeParameter.AppendChild(nodeTemp); + } + else + { + nodeDetail.AppendChild(nodeTemp); + } + // Next + } + + CombineXMLResponse_ParameterRet = XmlDoc.InnerXml; + return CombineXMLResponse_ParameterRet; + + } + + public static string FormatXMLSchema(ref string XmlSchema) + { + string FormatXMLSchemaRet = default(string); + + int intTruncateLength; + + try + { + FormatXMLSchemaRet = ""; + + // 將Schema字串的前面一行刪除,以符合XML格式 + intTruncateLength = Strings.InStr(XmlSchema, "?>") + 1; + if (intTruncateLength != 1) + { + FormatXMLSchemaRet = Strings.Right(XmlSchema, Strings.Len(XmlSchema) - intTruncateLength); + } + else + { + FormatXMLSchemaRet = XmlSchema; + } + } + + catch (Exception e1) + { + // 發生錯誤時丟回本身的Function Name及系統錯誤訊息 + throw; + + } // New Exception("modWS.FormatXMLSchema: " & e1.Message) + + return FormatXMLSchemaRet; + + } + + #endregion + + #region --- for Message Change Resource use--- + + /// + /// 2020/05/17 OwenLiu, Mantis:0071895, 讀取語系檔案到 Dictionary + /// + /// + /// + private static Dictionary funReadResourceFile_Dictionary(string ResourceFilePath) + { + + var oReturnResource = new Dictionary(); + + try + { + var reader = new ResourceReader(ResourceFilePath); + var en = reader.GetEnumerator(); + + while (en.MoveNext()) + oReturnResource.Add(Conversions.ToString(en.Key), Conversions.ToString(en.Value)); + reader.Close(); + } + catch (Exception ex) + { + throw; + } + + return oReturnResource; + + } + + /// + /// 2020/05/15 OwenLiu, Mantis:0071895, 增加多語系檔案的語系轉換機制 + /// + /// + /// + /// + /// + private static bool funGetResouceValueText(string sourceFile, string pKey, ref string pResValue) + { + + bool blnResult = false; + ResourceSet rmGen = null; + + try + { + using (var fs = new FileStream(sourceFile, FileMode.Open, FileAccess.Read, FileShare.Read)) + { + rmGen = new ResourceSet(fs); + fs.Close(); + } + + pResValue = rmGen.GetString(pKey.ToUpper()); + if (!string.IsNullOrEmpty(pResValue)) + blnResult = true; + } + catch (Exception ex) + { + throw; + } + + return blnResult; + + } + + /// + /// 2020/05/15 OwenLiu, Mantis:0071895, 取回所有語系檔案的 ResourceManager Array + /// + /// + /// + /// + /// + private static bool funGetMultiResourceManager(string pResourcePath, string pLanguageMode, ref ResourceManager oResourceManager, ref Dictionary[] oResourceDictionary) + { + + bool blnResult = false; + string strResourceFile = "mesresource"; + + try + { + + if (!string.IsNullOrEmpty(pLanguageMode)) + { + strResourceFile += "." + pLanguageMode; + } + else + { + strResourceFile += ".en"; + } + + if (new DirectoryInfo(pResourcePath).Exists == false) + { + oResourceManager = null; + return blnResult; + } + + // 一次性建立多個ResourceManager, 以節省控制項的語系轉換須多次開檔的時間(控制項一定會有多個) + int intIndex = 0; + short intResouceFileQty = 2; + if (intResouceFileQty == 1) + { + oResourceDictionary = null; + } + else if (intResouceFileQty > 1) + { + oResourceDictionary = new Dictionary[intResouceFileQty - 2 + 1]; + } + oResourceManager = ResourceManager.CreateFileBasedResourceManager(strResourceFile, pResourcePath, null); + oResourceDictionary[0] = funReadResourceFile_Dictionary(pResourcePath + @"\" + strResourceFile + ".resources91"); + + blnResult = true; + } + + catch (Exception ex) + { + throw; + } + + return blnResult; + + } + + + /// + /// 2020/05/15 OwenLiu, Mantis:0071895, 從所有語系檔案的 ResourceManager Array 取出對應的語系值 + /// + /// + /// + /// + private static string funGetResourceManager_Text(string pKey, ref ResourceManager oResourceManager, ref Dictionary[] oResourceDictionary) + { + string strResult = ""; + bool blnKeyExists = false; + + do + { + try + { + + // 先搜尋Dictionary 是否有對應的Key + if (oResourceDictionary != null) + { + foreach (Dictionary ResourceDic in oResourceDictionary) + { + if (ResourceDic.ContainsKey(pKey)) + { + strResult = ResourceDic[pKey]; + blnKeyExists = true; + break; + } + } + } + + if (!blnKeyExists) + { + // 未找到Key, 搜尋ResourceManager + strResult = oResourceManager.GetString(pKey); + if (!string.IsNullOrEmpty(strResult)) + break; + } + } + + catch (Exception ex) + { + } + } + // Throw + while (false); + + return strResult; + + } + + public static string TranslateMsg(string Message) + { + string TranslateMsgRet = default(string); + + // 1.Check LanguageMode + string strFileName, strGenFile; + string LanguageMode = AppSettings.Get("LanguageMode"); + if (string.IsNullOrEmpty(LanguageMode)) + { + strFileName = "mesresource.en"; + strGenFile = "mesresource.en"; + } + else + { + strFileName = "mesresource." + LanguageMode; + strGenFile = "mesresource." + LanguageMode; + } + + // 2.Get File Path + string strResourcePath = ""; + string strResourceDirectory = AppSettings.Get("ResourceDir"); + + // 2016/05/13 YF, 修改Server.MapPath取得實體路徑 + if (HttpContext.Current != null && HttpContext.Current.Server != null) + { + strResourcePath = HttpContext.Current.Server.MapPath("./" + strResourceDirectory); + } + + string strErrName_Rep = ""; + + // 檢查檔案是否存在 + if (File.Exists(strResourcePath + "/" + strFileName + ".resources") == true) + { + // 4.Replace原始訊息. + if (Strings.InStr(Message, "[%", CompareMethod.Text) > 0) + { + // Replace[%%] + // Dim rmGen As ResourceManager = ResourceManager.CreateFileBasedResourceManager(strGenFile, strResourcePath, Nothing) + // 2014/03/20 Hank, 修正讀取Resources檔造成佔用的情形 + // Dim fs As New FileStream(strResourcePath.ToString & "/" & strFileName & ".resources", FileMode.Open, FileAccess.Read, FileShare.Read) + // Dim rmGen As New ResourceSet(fs) + // fs.Close() + + // 2020/05/20 OwenLiu, Mantis:0071895, 增加多語系檔案的語系轉換機制 + ResourceManager ResourceMgr = null; + Dictionary[] ResourceDictionary = null; + funGetMultiResourceManager(strResourcePath, LanguageMode, ref ResourceMgr, ref ResourceDictionary); + + string strKey, strKeyValue; + int intStart, j, k, l; + + intStart = 1; + j = 1; + + while (j != 0) + { + j = Strings.InStr(intStart, Message, "[%", CompareMethod.Text); + if (j == 0) + { + strErrName_Rep += Strings.Mid(Message, intStart); + } + else + { + k = Strings.InStr(j + 2, Message, "%]", CompareMethod.Text); + if (k == 0) + { + // 找不到對應的結束字元. + strErrName_Rep += Strings.Mid(Message, intStart); + j = 0; + } + else + { + // 檢查是否有不對稱的情況. + l = Strings.InStr(j + 2, Message, "[%", CompareMethod.Text); + if (l == 0 || l > k) + { + strErrName_Rep += Strings.Mid(Message, intStart, j - intStart); + strKey = Strings.Mid(Message, j + 2, k - j - 2); + // 將Key執行語系轉換 + try + { + // 2020/05/20 OwenLiu, Mantis:0071895, 增加多語系檔案的語系轉換機制 + strKeyValue = funGetResourceManager_Text(strKey.ToUpper(), oResourceManager: ref ResourceMgr, oResourceDictionary: ref ResourceDictionary); + } + catch (Exception ex) + { + strKeyValue = strKey; + } + if (string.IsNullOrEmpty(strKeyValue)) + { + strErrName_Rep += strKey; + } + else + { + strErrName_Rep += strKeyValue; + } + // 下次截取字串的起始位置 + intStart = k + 2; + } + else + { + // 不對稱,找到最內層的[%%] + int m; + // 在前面的條件下,一定找得到. + m = Strings.InStrRev(Message, "[%", k, CompareMethod.Text); + // 擷出不轉換的字串. + strErrName_Rep += Strings.Mid(Message, intStart, m - intStart); + strKey = Strings.Mid(Message, m + 2, k - m - 2); + // 將Key執行語系轉換 + try + { + // 2020/05/20 OwenLiu, Mantis:0071895, 增加多語系檔案的語系轉換機制 + strKeyValue = funGetResourceManager_Text(strKey.ToUpper(), oResourceManager: ref ResourceMgr, oResourceDictionary: ref ResourceDictionary); + } + catch (Exception ex) + { + strKeyValue = strKey; + } + if (string.IsNullOrEmpty(strKeyValue)) + { + strErrName_Rep += strKey; + } + else + { + strErrName_Rep += strKeyValue; + } + // 下次截取字串的起始位置 + intStart = k + 2; + } + } + } + } + + ResourceMgr = null; + ResourceDictionary = null; + } + else + { + strErrName_Rep = Message; + } + } + else + { + strErrName_Rep = Message.Replace("[%", "").Replace("%]", ""); + } + + TranslateMsgRet = strErrName_Rep; + return TranslateMsgRet; + + } + + public static string TranslateMsg(string Message, string pLanguage) + { + string TranslateMsgRet = default(string); + + // 1.Check LanguageMode + string strFileName, strGenFile; + string LanguageMode = pLanguage; + if (string.IsNullOrEmpty(LanguageMode)) + { + strFileName = "mesresource.en"; + strGenFile = "mesresource.en"; + } + else + { + strFileName = "mesresource." + LanguageMode; + strGenFile = "mesresource." + LanguageMode; + } + + // 2.Get File Path + string strResourcePath = ""; + string strResourceDirectory = AppSettings.Get("ResourceDir"); + + string strErrName_Rep = ""; + + if (HttpContext.Current != null && HttpContext.Current.Server != null) + { + strResourcePath = HttpContext.Current.Server.MapPath("./" + strResourceDirectory); + } + + // 檢查檔案是否存在 + if (File.Exists(strResourcePath + "/" + strFileName + ".resources") == true) + { + // 4.Replace原始訊息. + if (Strings.InStr(Message, "[%", CompareMethod.Text) > 0) + { + // Replace[%%] + // Dim rmGen As ResourceManager = ResourceManager.CreateFileBasedResourceManager(strGenFile, strResourcePath, Nothing) + // 2014/03/20 Hank, 修正讀取Resources檔造成佔用的情形 + // Dim fs As New FileStream(strResourcePath.ToString & "/" & strFileName & ".resources", FileMode.Open, FileAccess.Read, FileShare.Read) + // Dim rmGen As New ResourceSet(fs) + // fs.Close() + + // 2020/05/20 OwenLiu, Mantis:0071895, 增加多語系檔案的語系轉換機制 + ResourceManager ResourceMgr = null; + Dictionary[] ResourceDictionary = null; + funGetMultiResourceManager(strResourcePath, pLanguage, ref ResourceMgr, ref ResourceDictionary); + + string strKey, strKeyValue; + int intStart, j, k, l; + + intStart = 1; + j = 1; + + while (j != 0) + { + j = Strings.InStr(intStart, Message, "[%", CompareMethod.Text); + if (j == 0) + { + strErrName_Rep += Strings.Mid(Message, intStart); + } + else + { + k = Strings.InStr(j + 2, Message, "%]", CompareMethod.Text); + if (k == 0) + { + // 找不到對應的結束字元. + strErrName_Rep += Strings.Mid(Message, intStart); + j = 0; + } + else + { + // 檢查是否有不對稱的情況. + l = Strings.InStr(j + 2, Message, "[%", CompareMethod.Text); + if (l == 0 || l > k) + { + strErrName_Rep += Strings.Mid(Message, intStart, j - intStart); + strKey = Strings.Mid(Message, j + 2, k - j - 2); + // 將Key執行語系轉換 + try + { + // 2020/05/20 OwenLiu, Mantis:0071895, 增加多語系檔案的語系轉換機制 + strKeyValue = funGetResourceManager_Text(strKey.ToUpper(), oResourceManager: ref ResourceMgr, oResourceDictionary: ref ResourceDictionary); + } + catch (Exception ex) + { + strKeyValue = strKey; + } + if (string.IsNullOrEmpty(strKeyValue)) + { + strErrName_Rep += strKey; + } + else + { + strErrName_Rep += strKeyValue; + } + // 下次截取字串的起始位置 + intStart = k + 2; + } + else + { + // 不對稱,找到最內層的[%%] + int m; + // 在前面的條件下,一定找得到. + m = Strings.InStrRev(Message, "[%", k, CompareMethod.Text); + // 擷出不轉換的字串. + strErrName_Rep += Strings.Mid(Message, intStart, m - intStart); + strKey = Strings.Mid(Message, m + 2, k - m - 2); + // 將Key執行語系轉換 + try + { + // 2020/05/20 OwenLiu, Mantis:0071895, 增加多語系檔案的語系轉換機制 + strKeyValue = funGetResourceManager_Text(strKey.ToUpper(), oResourceManager: ref ResourceMgr, oResourceDictionary: ref ResourceDictionary); + } + catch (Exception ex) + { + strKeyValue = strKey; + } + if (string.IsNullOrEmpty(strKeyValue)) + { + strErrName_Rep += strKey; + } + else + { + strErrName_Rep += strKeyValue; + } + // 下次截取字串的起始位置 + intStart = k + 2; + } + } + } + } + + ResourceMgr = null; + ResourceDictionary = null; + } + else + { + strErrName_Rep = Message; + } + } + else + { + strErrName_Rep = Message.Replace("[%", "").Replace("%]", ""); + } + + TranslateMsgRet = strErrName_Rep; + return TranslateMsgRet; + + } + + #endregion + + } +} \ No newline at end of file diff --git a/SRC/MESEAI/EAItc/EAItc_C.csproj b/SRC/MESEAI/EAItc/EAItc_C.csproj new file mode 100644 index 0000000..5c2cb85 --- /dev/null +++ b/SRC/MESEAI/EAItc/EAItc_C.csproj @@ -0,0 +1,182 @@ + + + + + Debug + AnyCPU + {443394E0-F618-0D60-04C0-E207199604A2} + Library + tcEAI_C + tcEAI_C + 512 + Windows + v4.6.2 + SAK + SAK + SAK + SAK + + $(DefaultItemExcludes);$(ProjectDir)**\*.vb + + + true + full + true + true + ..\..\MES_S_DLL\ + ..\..\MES_S_DLL\tcEAI_C.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + AnyCPU + false + + + pdbonly + false + true + true + ..\..\MES_S_DLL\ + ..\..\MES_S_DLL\tcEAI_C.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + false + + + On + + + Binary + + + Off + + + On + + + + False + ..\..\MES_S_DLL\Apache.NMS.dll + False + + + False + ..\..\MES_S_DLL\Apache.NMS.ActiveMQ.dll + False + + + False + ..\..\MES_S_DLL\data_access_service.dll + False + + + False + ..\..\MES_S_DLL\iMESAppSetting.dll + False + + + False + ..\..\MES_S_DLL\iMESComSubroutine.dll + False + + + False + ..\..\MES_S_DLL\iMESComXML.dll + False + + + False + ..\..\MES_S_DLL\iMESConst.dll + False + + + + ..\..\MES_S_DLL\iMESCIO.dll + False + + + ..\..\MES_S_DLL\iMESDataObject.dll + False + + + ..\..\MES_S_DLL\iMESException.dll + False + + + False + ..\..\MES_S_DLL\iMESLog.dll + + + ..\..\MES_S_DLL\kcMTL.dll + False + + + ..\..\MES_S_DLL\kcPRD.dll + False + + + ..\..\MES_S_DLL\kcQC.dll + False + + + ..\..\MES_S_DLL\kcSPC.dll + + + + + + + + + + + False + ..\..\MES_S_DLL\udReverse.dll + + + + + + + + + + + + + + + + + + + + + + True + Application.myapp + + + True + Settings.settings + True + + + + + MyApplicationCodeGenerator + Application.Designer.cs + + + SettingsSingleFileGenerator + tcEAI_C.My + Settings.Designer.cs + + + + + \ No newline at end of file diff --git a/SRC/MESEAI/EAItc/My Project/Application.Designer.cs b/SRC/MESEAI/EAItc/My Project/Application.Designer.cs new file mode 100644 index 0000000..299bbe3 --- /dev/null +++ b/SRC/MESEAI/EAItc/My Project/Application.Designer.cs @@ -0,0 +1,11 @@ +// ------------------------------------------------------------------------------ +// +// 這段程式碼是由工具產生的。 +// 執行階段版本:4.0.30319.42000 +// +// 對這個檔案所做的變更可能會造成錯誤的行為,而且如果重新產生程式碼, +// 變更將會遺失。 +// +// ------------------------------------------------------------------------------ + + diff --git a/SRC/MESEAI/EAItc/My Project/Application.myapp b/SRC/MESEAI/EAItc/My Project/Application.myapp new file mode 100644 index 0000000..758895d --- /dev/null +++ b/SRC/MESEAI/EAItc/My Project/Application.myapp @@ -0,0 +1,10 @@ + + + false + false + 0 + true + 0 + 1 + true + diff --git a/SRC/MESEAI/EAItc/My Project/AssemblyInfo.cs b/SRC/MESEAI/EAItc/My Project/AssemblyInfo.cs new file mode 100644 index 0000000..805a6dd --- /dev/null +++ b/SRC/MESEAI/EAItc/My Project/AssemblyInfo.cs @@ -0,0 +1,35 @@ +using System; +using System.Reflection; +using System.Runtime.InteropServices; + +// 組件的一般資訊是由下列的屬性集控制。 +// 變更這些屬性的值即可修改組件的相關 +// 資訊。 + +// 檢閱組件屬性的值 + +[assembly: AssemblyTitle("EAItc_C")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("EAItc")] +[assembly: AssemblyCopyright("Copyright © 2019")] +[assembly: AssemblyTrademark("")] + +[assembly: ComVisible(false)] + +// 下列 GUID 為專案公開 (Expose) 至 COM 時所要使用的 typelib ID +[assembly: Guid("c6f5bc9b-8482-4694-8df4-0b0a3f7b9707")] + +// 組件的版本資訊由下列四個值所組成: +// +// 主要版本 +// 次要版本 +// 組建編號 +// 修訂編號 +// +// 您可以指定所有的值,也可以依照以下的方式,使用 '*' 將組建和修訂編號 +// 指定為預設值: +// + +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/SRC/MESEAI/EAItc/My Project/Resources.resx b/SRC/MESEAI/EAItc/My Project/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/SRC/MESEAI/EAItc/My Project/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/SRC/MESEAI/EAItc/My Project/Settings.Designer.cs b/SRC/MESEAI/EAItc/My Project/Settings.Designer.cs new file mode 100644 index 0000000..d651d7b --- /dev/null +++ b/SRC/MESEAI/EAItc/My Project/Settings.Designer.cs @@ -0,0 +1,88 @@ +// ------------------------------------------------------------------------------ +// +// 這段程式碼是由工具產生的。 +// 執行階段版本:4.0.30319.42000 +// +// 對這個檔案所做的變更可能會造成錯誤的行為,而且如果重新產生程式碼, +// 變更將會遺失。 +// +// ------------------------------------------------------------------------------ + +using System.Diagnostics; +using Microsoft.VisualBasic; + + +namespace tcEAI_C.My +{ + + [System.Runtime.CompilerServices.CompilerGenerated()] + [System.CodeDom.Compiler.GeneratedCode("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")] + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Advanced)] + internal sealed partial class MySettings : System.Configuration.ApplicationSettingsBase + { + + private static MySettings defaultInstance = (MySettings)Synchronized(new MySettings()); + + #region My.Settings 自動儲存功能 + /* TODO ERROR: Skipped IfDirectiveTrivia + #If _MyType = "WindowsForms" Then + *//* TODO ERROR: Skipped DisabledTextTrivia + Private Shared addedHandler As Boolean + + Private Shared addedHandlerLockObject As New Object + + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub + *//* TODO ERROR: Skipped EndIfDirectiveTrivia + #End If + */ + #endregion + + public static MySettings Default + { + get + { + + /* TODO ERROR: Skipped IfDirectiveTrivia + #If _MyType = "WindowsForms" Then + *//* TODO ERROR: Skipped DisabledTextTrivia + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If + *//* TODO ERROR: Skipped EndIfDirectiveTrivia + #End If + */ + return defaultInstance; + } + } + } +} + +namespace tcEAI_C.My +{ + + [HideModuleName()] + [DebuggerNonUserCode()] + [System.Runtime.CompilerServices.CompilerGenerated()] + internal static class MySettingsProperty + { + + [System.ComponentModel.Design.HelpKeyword("My.Settings")] + internal static MySettings Settings + { + get + { + return MySettings.Default; + } + } + } +} \ No newline at end of file diff --git a/SRC/MESEAI/EAItc/My Project/Settings.settings b/SRC/MESEAI/EAItc/My Project/Settings.settings new file mode 100644 index 0000000..85b890b --- /dev/null +++ b/SRC/MESEAI/EAItc/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/SRC/MESEAI/EAItc/clsCom.cs b/SRC/MESEAI/EAItc/clsCom.cs new file mode 100644 index 0000000..60eedca --- /dev/null +++ b/SRC/MESEAI/EAItc/clsCom.cs @@ -0,0 +1,195 @@ +using System; +using System.Reflection; +using Apache.NMS; +using Microsoft.VisualBasic; + +namespace tcEAI_C +{ + + /// +/// 20211027 13871,共用功能 +/// + public class clsCom + { + + /// + /// 20211027 13871,Reflection方法 + /// + /// DLL Name + /// Class Name + /// Function Name + /// + /// + /// + public static bool DetermineCustomized_Constructor(string strComponent, string strClassName, string strMethodName, ref MethodInfo mi, ref object obj) + { + bool DetermineCustomized_ConstructorRet = default(bool); + bool blnResult = false; + + DetermineCustomized_ConstructorRet = false; + try + { + blnResult = DetermineMethod_Constructor(strComponent, strClassName, strMethodName, ref mi, ref obj); + } + catch (Exception ex) + { + } + + finally + { + DetermineCustomized_ConstructorRet = blnResult; + } + + return DetermineCustomized_ConstructorRet; + + } + + /// + /// 20211027 13871,Reflection找出Method + /// + public static bool DetermineMethod_Constructor(string strComponent, string strClassName, string strMethodName, ref MethodInfo mi, ref object obj) + { + string strAppBase = AppDomain.CurrentDomain.BaseDirectory; + string strFilePath = ""; + Assembly mainAssembly; + Type t; + Type[] argumentTypes; + ConstructorInfo ctor; + + MethodInfo[] aryMethos; + + try + { + strFilePath = strAppBase.TrimEnd('\\') + @"\bin\" + strComponent; + mainAssembly = Assembly.LoadFrom(strFilePath); + t = mainAssembly.GetType(mainAssembly.GetName().Name + "." + strClassName, true, true); + // 20211211 13871,支援Module + if (t.GetConstructors().Length > 0) + { + argumentTypes = Type.EmptyTypes; + ctor = t.GetConstructor(argumentTypes); + obj = ctor.Invoke(new object[] { }); + } + strMethodName = Strings.Replace(strMethodName, ".", "_"); + aryMethos = t.GetMethods(); + foreach (MethodInfo item in aryMethos) + { + if ((strMethodName.ToUpper() ?? "") == (item.Name.ToUpper() ?? "")) + { + mi = item; + return true; + } + } + + if (mi == null) + { + return false; + } + else + { + return true; + } + } + catch (Exception ex) + { + return false; + } + } + + /// + /// 20211027 13871,取得Method的參數預設值陣列 + /// + /// DLL Name,可不傳副檔名,會自動補.dll + /// Class Name + /// Method Name + /// + public static object[] funGetMethodParameters(string strComponent, string strClassName, string strMethodName) + { + object[] funGetMethodParametersRet = default(object[]); + try + { + var mi = default(MethodInfo); + var obj = default(object); + if (!strComponent.ToUpper().Contains(".DLL")) + { + strComponent = strComponent + ".dll"; + } + + if (!DetermineCustomized_Constructor(strComponent, strClassName, strMethodName, ref mi, ref obj)) + { + throw new iMESException.MESException("0000-200003", strComponent + "." + strClassName + "," + strMethodName + " [%METHOD%] [%NOT FOUND%]"); + } + + int iParameterLength = mi.GetParameters().Length; + var aryParameter = new object[iParameterLength]; + for (int i = 0, loopTo = mi.GetParameters().Length - 1; i <= loopTo; i++) + aryParameter[i] = mi.GetParameters()[i].DefaultValue; + funGetMethodParametersRet = aryParameter; + } + catch (Exception ex) + { + throw; + } + + return funGetMethodParametersRet; + } + + /// + /// 20211027 13871,執行指定DLL、Class、Method,無法執行多載Method + /// + /// DLL Name,可不傳副檔名,會自動補.dll + /// Class Name + /// Method Name + /// + public static object funExecuteMethod(string strComponent, string strClassName, string strMethodName, ref object[] aryParameters) + { + object funExecuteMethodRet = default(object); + try + { + var mi = default(MethodInfo); + var obj = default(object); + if (!strComponent.ToUpper().Contains(".DLL")) + { + strComponent = strComponent + ".dll"; + } + + if (!DetermineCustomized_Constructor(strComponent, strClassName, strMethodName, ref mi, ref obj)) + { + throw new iMESException.MESException("0000-200003", strComponent + "." + strClassName + "," + strMethodName + " [%METHOD%] [%NOT FOUND%]"); + } + + funExecuteMethodRet = mi.Invoke(obj, aryParameters); + } + + catch (Exception ex) + { + ex = funGetRealException(ex); + throw ex; + } + + return funExecuteMethodRet; + } + + // 20211208 13871,從clsEAP移植 + public static Exception funGetRealException(Exception ex) + { + Exception funGetRealExceptionRet = default(Exception); + try + { + funGetRealExceptionRet = ex; + + if (ex is TargetInvocationException && ex.InnerException != null) + { + funGetRealExceptionRet = funGetRealException(ex.InnerException); + } + } + catch (Exception ex2) + { + throw; + } + + return funGetRealExceptionRet; + } + + } +} \ No newline at end of file diff --git a/SRC/MESEAI/EAItc/clsEAP.cs b/SRC/MESEAI/EAItc/clsEAP.cs new file mode 100644 index 0000000..54c3bfe --- /dev/null +++ b/SRC/MESEAI/EAItc/clsEAP.cs @@ -0,0 +1,99 @@ +using System; +using System.Data; +using Microsoft.VisualBasic; +using Microsoft.VisualBasic.CompilerServices; +using static iMESCore.Base.iMESConst; +using static iMESCore.Base.iMESComXML; +using static iMESCore.Base.iMESComSubroutine; + +namespace tcEAI_C +{ + + public class clsEAP + { + + public static string strDataBaseType; + public static string strConnectionString; + + #region EAP 客制接口 + + + #endregion + + #region 共用功能 ConbineXMLFunction + + public static string CombineXMLRequest_AutoExecutionLot(string InXml, string functionid, string computername, DataTable dtLotInfo, string OPNo, string CurUserNo, string SendTime, bool blnRuleChk = true) + { + string CombineXMLRequest_AutoExecutionLotRet = default(string); + + string strLotXML = ""; + string strLotNoColumnName = ""; + if (dtLotInfo.Columns.Contains("Lot_ID")) + { + strLotNoColumnName = "Lot_ID"; + } + else if (dtLotInfo.Columns.Contains("LotNo")) + { + strLotNoColumnName = "LotNo"; + } + + string strrulecheckTag = ""; + if (!blnRuleChk) + { + strrulecheckTag = "false"; + } + + foreach (DataRow drTemp in dtLotInfo.Rows) + strLotXML = Conversions.ToString(strLotXML + Operators.ConcatenateObject(Operators.ConcatenateObject("", drTemp[strLotNoColumnName]), "")); + strLotXML += ""; + CombineXMLRequest_AutoExecutionLotRet = "" + " " + "" + Strings.Format(DateTime.Now, "yyyyMMddHHmmssfff") + "" + "" + functionid + "" + strLotXML + "" + computername + "" + "" + OPNo + "" + "" + CurUserNo + "" + "" + SendTime + "" + strrulecheckTag + "" + "" + InXml + "" + ""; + return CombineXMLRequest_AutoExecutionLotRet; + } + + #endregion + + #region ReverseTriggerOP + + public static bool ExeReverseTriggerOP_NotUseUndo(string pUserNo, string pLotNo, string pLotSerial = defString, int pLotStamp = defInteger, string ComputreName = "EAI") + { + + string InXml, OutXml, strIdentity, strParameter; + bool blnExecResult = false; + + // 2020/3/17 Ning, Mantis: 0068960, WIP_Kit 增加ExeReverseTriggerOP_NotUseUndo共用函式 + try + { + // 檢查此 BR 是否此站第一次執行,若是第一次執行則以刪除Temp, Cont, LotLog...的方式取消Trigger OP的動作 + strIdentity = CombineXMLIdentity(ComputreName, pUserNo, DateTime.Now.ToString(defDateTimeFormat)); + + strParameter = CombineXMLParameter("lotno", "LotNo", "String", CInput(pLotNo), ""); + // 因FormLoad不見得會成功取得Lot的資料,有可能失敗,故使用變數來決定是否傳出參數. + if ((pLotSerial ?? "") != defString) + { + strParameter += CombineXMLParameter("lotserial", "LotSerial", "String", CInput(pLotSerial), ""); + } + if (pLotStamp != defInteger) + { + strParameter += CombineXMLParameter("lotstamp", "LotStamp", "Long", pLotStamp.ToString(), ""); + } + InXml = CombineXMLRequest(strIdentity, strParameter); + // OutXml = InvokeSrv("wsWIP.ReverseTriggerOP_NotUseUndo", InXml) + + object[] aryPars = clsCom.funGetMethodParameters("wsSTD", "wsWIP", "ReverseTriggerOP_NotUseUndo"); + aryPars[0] = InXml; + OutXml = clsCom.funExecuteMethod("wsSTD", "wsWIP", "ReverseTriggerOP_NotUseUndo", ref aryPars) as string; + + blnExecResult = true; + } + catch (Exception ex) + { + + } + + return blnExecResult; + } + + #endregion + + } +} \ No newline at end of file diff --git a/SRC/MESEAI/EAItc/clsERP.cs b/SRC/MESEAI/EAItc/clsERP.cs new file mode 100644 index 0000000..16420f5 --- /dev/null +++ b/SRC/MESEAI/EAItc/clsERP.cs @@ -0,0 +1,74 @@ +using System; +using System.Collections; +using System.Collections.Generic; + +namespace tcEAI_C +{ + public class clsERP + { + #region --- Combine (Exception, Message) --- + + public static bool combineException(ref List strException, string code = null, string sysmsg = null, string mesmsg = null, string stack = null) + { + bool result = false; + try + { + var al = new ArrayList(); + al.Add(code); + al.Add(sysmsg); + al.Add(mesmsg); + al.Add(stack); + strException.Add(al); + result = true; + } + catch (Exception ex) + { + result = false; + } + + return default(bool); + + } + + public static bool combineMessage(ref List strMessage, string mcode = null, string mtype = null, string mmsg = null) + { + bool result = false; + try + { + var al = new ArrayList(); + al.Add(mcode); + al.Add(mtype); + al.Add(mmsg); + strMessage.Add(al); + result = true; + } + catch (Exception ex) + { + result = false; + } + + return default(bool); + } + + public static bool combineFileMessage(ref List aryFileMessage, string mmsg) + { + bool result = false; + + try + { + var al = new ArrayList(); + al.Add(mmsg); + aryFileMessage.Add(al); + result = true; + } + catch (Exception ex) + { + result = false; + } + + return result; + } + #endregion + + } +} \ No newline at end of file diff --git a/SRC/MESEAI/EAItc/clsMDS.cs b/SRC/MESEAI/EAItc/clsMDS.cs new file mode 100644 index 0000000..5eb33d4 --- /dev/null +++ b/SRC/MESEAI/EAItc/clsMDS.cs @@ -0,0 +1,25 @@ + +namespace tcEAI_C +{ + + public class clsMDS + { + + public string strDataBaseType; + public string strConnectionString; + private udReverse.clsReverse objReverse = new udReverse.clsReverse(); + + // 2003/03/22,sammi. + // 因TC可能呼叫KC,在整個Function中,必須要使用同一個Reverse物件,如此在產生AddReverseUpdateContent的資料時,ReverseOrder才不會重覆. + // 若KC再往下呼叫UD,則必須將Reverse物件傳遞予UD. + public udReverse.clsReverse ReverseObj + { + get + { + return objReverse; + } + } + + + } +} \ No newline at end of file diff --git a/SRC/MESEAI/EAItc/clsSPC.cs b/SRC/MESEAI/EAItc/clsSPC.cs new file mode 100644 index 0000000..b79d1ff --- /dev/null +++ b/SRC/MESEAI/EAItc/clsSPC.cs @@ -0,0 +1,62 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.IO; +using Microsoft.VisualBasic; + +namespace tcEAI_C +{ + + public class clsSPC + { + public static string strDataBaseType; + public static string strConnectionString; + + private string Filepath_E = @"D:\Log\EAI_TC\"; // 指定Log + + public void SaveLog(string msg) + { + if (!Directory.Exists(Filepath_E)) + { + Directory.CreateDirectory(Filepath_E); + } + //{ + // var withBlock = My.MyProject.Application.Log.DefaultFileLogWriter; + // // If CInt(Format(Now, "mm")) >= 20 And CInt(Format(Now, "mm")) < 40 Then + // // .BaseFileName = "Log" & "_20" 'Log檔的檔名 + // // ElseIf CInt(Format(Now, "mm")) >= 40 Then + // // .BaseFileName = "Log" & "_40" 'Log檔的檔名 + // // Else + // withBlock.BaseFileName = "Log"; // & Format(Now, "mm") 'Log檔的檔名 + // // End If + // withBlock.CustomLocation = Filepath_E; // 自訂Log檔的存放路徑 + // withBlock.AutoFlush = true; // Log檔寫完後自動清除緩衝 + // withBlock.LogFileCreationSchedule = Microsoft.VisualBasic.Logging.LogFileCreationScheduleOption.Daily; // 設定一天產生一個Log檔 + // withBlock.MaxFileSize = long.MaxValue; // 預設容量5M 改為 最大容量 + //} + + //My.MyProject.Application.Log.WriteEntry(string.Format("{0} {1}", Strings.Format(DateTime.Now, "yy/MM/dd HH:mm:ss ffff,"), msg)); + } + + public void combineException(ref List strException, string code = null, string sysmsg = null, string mesmsg = null, string stack = null) + { + bool result = false; + try + { + var al = new ArrayList(); + al.Add(code); + al.Add(sysmsg); + al.Add(mesmsg); + al.Add(stack); + strException.Add(al); + result = true; + } + catch (Exception ex) + { + result = false; + } + } + + + } +} \ No newline at end of file diff --git a/SRC/MESEAI/MESEAI.sln b/SRC/MESEAI/MESEAI.sln new file mode 100644 index 0000000..d2e37de --- /dev/null +++ b/SRC/MESEAI/MESEAI.sln @@ -0,0 +1,156 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 14 +VisualStudioVersion = 14.0.25420.1 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EAIws_C", "EAICws\EAICws\EAIws_C.csproj", "{74B7676A-6420-0784-301F-696024D2A8D7}" + ProjectSection(ProjectDependencies) = postProject + {443394E0-F618-0D60-04C0-E207199604A2} = {443394E0-F618-0D60-04C0-E207199604A2} + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EAItc_C", "EAItc\EAItc_C.csproj", "{443394E0-F618-0D60-04C0-E207199604A2}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + C++Buile|Any CPU = C++Buile|Any CPU + C++Buile|Mixed Platforms = C++Buile|Mixed Platforms + C++Buile|x64 = C++Buile|x64 + C++Buile|x86 = C++Buile|x86 + Debug|Any CPU = Debug|Any CPU + Debug|Mixed Platforms = Debug|Mixed Platforms + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Quick|Any CPU = Quick|Any CPU + Quick|Mixed Platforms = Quick|Mixed Platforms + Quick|x64 = Quick|x64 + Quick|x86 = Quick|x86 + Release|Any CPU = Release|Any CPU + Release|Mixed Platforms = Release|Mixed Platforms + Release|x64 = Release|x64 + Release|x86 = Release|x86 + StorageBuild|Any CPU = StorageBuild|Any CPU + StorageBuild|Mixed Platforms = StorageBuild|Mixed Platforms + StorageBuild|x64 = StorageBuild|x64 + StorageBuild|x86 = StorageBuild|x86 + UnitTest|Any CPU = UnitTest|Any CPU + UnitTest|Mixed Platforms = UnitTest|Mixed Platforms + UnitTest|x64 = UnitTest|x64 + UnitTest|x86 = UnitTest|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {74B7676A-6420-0784-301F-696024D2A8D7}.C++Buile|Any CPU.ActiveCfg = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.C++Buile|Any CPU.Build.0 = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.C++Buile|Mixed Platforms.ActiveCfg = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.C++Buile|Mixed Platforms.Build.0 = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.C++Buile|x64.ActiveCfg = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.C++Buile|x64.Build.0 = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.C++Buile|x86.ActiveCfg = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.C++Buile|x86.Build.0 = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.Debug|x64.ActiveCfg = Debug|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.Debug|x64.Build.0 = Debug|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.Debug|x86.ActiveCfg = Debug|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.Debug|x86.Build.0 = Debug|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.Quick|Any CPU.ActiveCfg = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.Quick|Any CPU.Build.0 = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.Quick|Mixed Platforms.ActiveCfg = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.Quick|Mixed Platforms.Build.0 = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.Quick|x64.ActiveCfg = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.Quick|x64.Build.0 = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.Quick|x86.ActiveCfg = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.Quick|x86.Build.0 = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.Release|Any CPU.Build.0 = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.Release|x64.ActiveCfg = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.Release|x64.Build.0 = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.Release|x86.ActiveCfg = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.Release|x86.Build.0 = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.StorageBuild|Any CPU.ActiveCfg = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.StorageBuild|Any CPU.Build.0 = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.StorageBuild|Mixed Platforms.ActiveCfg = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.StorageBuild|Mixed Platforms.Build.0 = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.StorageBuild|x64.ActiveCfg = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.StorageBuild|x64.Build.0 = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.StorageBuild|x86.ActiveCfg = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.StorageBuild|x86.Build.0 = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.UnitTest|Any CPU.ActiveCfg = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.UnitTest|Any CPU.Build.0 = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.UnitTest|Mixed Platforms.ActiveCfg = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.UnitTest|Mixed Platforms.Build.0 = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.UnitTest|x64.ActiveCfg = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.UnitTest|x64.Build.0 = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.UnitTest|x86.ActiveCfg = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.UnitTest|x86.Build.0 = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.C++Buile|Any CPU.ActiveCfg = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.C++Buile|Any CPU.Build.0 = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.C++Buile|Mixed Platforms.ActiveCfg = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.C++Buile|Mixed Platforms.Build.0 = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.C++Buile|x64.ActiveCfg = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.C++Buile|x64.Build.0 = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.C++Buile|x86.ActiveCfg = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.C++Buile|x86.Build.0 = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.Debug|x64.ActiveCfg = Debug|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.Debug|x64.Build.0 = Debug|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.Debug|x86.ActiveCfg = Debug|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.Debug|x86.Build.0 = Debug|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.Quick|Any CPU.ActiveCfg = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.Quick|Any CPU.Build.0 = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.Quick|Mixed Platforms.ActiveCfg = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.Quick|Mixed Platforms.Build.0 = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.Quick|x64.ActiveCfg = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.Quick|x64.Build.0 = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.Quick|x86.ActiveCfg = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.Quick|x86.Build.0 = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.Release|Any CPU.Build.0 = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.Release|x64.ActiveCfg = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.Release|x64.Build.0 = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.Release|x86.ActiveCfg = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.Release|x86.Build.0 = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.StorageBuild|Any CPU.ActiveCfg = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.StorageBuild|Any CPU.Build.0 = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.StorageBuild|Mixed Platforms.ActiveCfg = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.StorageBuild|Mixed Platforms.Build.0 = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.StorageBuild|x64.ActiveCfg = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.StorageBuild|x64.Build.0 = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.StorageBuild|x86.ActiveCfg = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.StorageBuild|x86.Build.0 = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.UnitTest|Any CPU.ActiveCfg = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.UnitTest|Any CPU.Build.0 = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.UnitTest|Mixed Platforms.ActiveCfg = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.UnitTest|Mixed Platforms.Build.0 = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.UnitTest|x64.ActiveCfg = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.UnitTest|x64.Build.0 = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.UnitTest|x86.ActiveCfg = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.UnitTest|x86.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {8C4647D6-0300-48B8-9394-09E4BF0D878A} + EndGlobalSection + GlobalSection(TeamFoundationVersionControl) = preSolution + SccNumberOfProjects = 3 + SccEnterpriseProvider = {4CA58AB2-18FA-4F8D-95D4-32DDF27D184C} + SccTeamFoundationServer = http://tfs.imestech.com:8080/tfs/messeries6 + SccLocalPath0 = . + SccProjectUniqueName1 = EAICws\\EAICws\\EAIws_C.vbproj + SccProjectName1 = EAICws/EAICws + SccLocalPath1 = EAICws\\EAICws + SccProjectUniqueName2 = EAItc\\EAItc_C.vbproj + SccProjectName2 = EAItc + SccLocalPath2 = EAItc + EndGlobalSection +EndGlobal diff --git a/SRC/MESPlugin/MESPI_BusinessRule/MESPI_BusinessRule.csproj b/SRC/MESPlugin/MESPI_BusinessRule/MESPI_BusinessRule.csproj new file mode 100644 index 0000000..ea44882 --- /dev/null +++ b/SRC/MESPlugin/MESPI_BusinessRule/MESPI_BusinessRule.csproj @@ -0,0 +1,119 @@ + + + + + Debug + AnyCPU + {6CD932DD-93B6-0C5E-06F9-47F39C95CB5A} + Library + MESPI_BusinessRule + MESPI_BusinessRule + 512 + Windows + v4.6.2 + + SAK + SAK + SAK + SAK + $(DefaultItemExcludes);$(ProjectDir)**\*.vb + + + true + full + true + true + ..\..\MES_S_DLL\plugin\ + ..\..\MES_S_DLL\plugin\MESPI_BusinessRule.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + false + + + pdbonly + false + true + true + bin\Release\ + bin\Release\ + + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + false + + + On + + + Binary + + + Off + + + On + + + true + + + iMES.snk + + + + + False + ..\..\MES_S_DLL\iMESCIO.dll + False + + + + + + + + + + + + + + + + + + + + + + + + + True + Application.myapp + + + True + Settings.settings + True + + + + + + MyApplicationCodeGenerator + Application.Designer.cs + + + SettingsSingleFileGenerator + MESPI_BusinessRule.My + Settings.Designer.cs + + + + + \ No newline at end of file diff --git a/SRC/MESPlugin/MESPI_BusinessRule/MESPI_BusinessRule.sln b/SRC/MESPlugin/MESPI_BusinessRule/MESPI_BusinessRule.sln new file mode 100644 index 0000000..4f0a0e2 --- /dev/null +++ b/SRC/MESPlugin/MESPI_BusinessRule/MESPI_BusinessRule.sln @@ -0,0 +1,30 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 14 +VisualStudioVersion = 14.0.25123.0 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MESPI_BusinessRule", "MESPI_BusinessRule.csproj", "{6CD932DD-93B6-0C5E-06F9-47F39C95CB5A}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {6CD932DD-93B6-0C5E-06F9-47F39C95CB5A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6CD932DD-93B6-0C5E-06F9-47F39C95CB5A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6CD932DD-93B6-0C5E-06F9-47F39C95CB5A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6CD932DD-93B6-0C5E-06F9-47F39C95CB5A}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(TeamFoundationVersionControl) = preSolution + SccNumberOfProjects = 2 + SccEnterpriseProvider = {4CA58AB2-18FA-4F8D-95D4-32DDF27D184C} + SccTeamFoundationServer = http://tfs.imestech.com:8080/tfs/messeries6 + SccLocalPath0 = . + SccProjectUniqueName1 = MESPI_BusinessRule.vbproj + SccLocalPath1 = . + EndGlobalSection +EndGlobal diff --git a/SRC/MESPlugin/MESPI_BusinessRule/MESPI_BusinessRule.vssscc b/SRC/MESPlugin/MESPI_BusinessRule/MESPI_BusinessRule.vssscc new file mode 100644 index 0000000..6cb031b --- /dev/null +++ b/SRC/MESPlugin/MESPI_BusinessRule/MESPI_BusinessRule.vssscc @@ -0,0 +1,10 @@ +"" +{ +"FILE_VERSION" = "9237" +"ENLISTMENT_CHOICE" = "NEVER" +"PROJECT_FILE_RELATIVE_PATH" = "" +"NUMBER_OF_EXCLUDED_FILES" = "0" +"ORIGINAL_PROJECT_FILE_PATH" = "" +"NUMBER_OF_NESTED_PROJECTS" = "0" +"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROJECT" +} diff --git a/SRC/MESPlugin/MESPI_BusinessRule/My Project/Application.Designer.cs b/SRC/MESPlugin/MESPI_BusinessRule/My Project/Application.Designer.cs new file mode 100644 index 0000000..299bbe3 --- /dev/null +++ b/SRC/MESPlugin/MESPI_BusinessRule/My Project/Application.Designer.cs @@ -0,0 +1,11 @@ +// ------------------------------------------------------------------------------ +// +// 這段程式碼是由工具產生的。 +// 執行階段版本:4.0.30319.42000 +// +// 對這個檔案所做的變更可能會造成錯誤的行為,而且如果重新產生程式碼, +// 變更將會遺失。 +// +// ------------------------------------------------------------------------------ + + diff --git a/SRC/MESPlugin/MESPI_BusinessRule/My Project/Application.myapp b/SRC/MESPlugin/MESPI_BusinessRule/My Project/Application.myapp new file mode 100644 index 0000000..758895d --- /dev/null +++ b/SRC/MESPlugin/MESPI_BusinessRule/My Project/Application.myapp @@ -0,0 +1,10 @@ + + + false + false + 0 + true + 0 + 1 + true + diff --git a/SRC/MESPlugin/MESPI_BusinessRule/My Project/AssemblyInfo.cs b/SRC/MESPlugin/MESPI_BusinessRule/My Project/AssemblyInfo.cs new file mode 100644 index 0000000..6648594 --- /dev/null +++ b/SRC/MESPlugin/MESPI_BusinessRule/My Project/AssemblyInfo.cs @@ -0,0 +1,35 @@ +using System; +using System.Reflection; +using System.Runtime.InteropServices; + +// 組件的一般資訊是由下列的屬性集控制。 +// 變更這些屬性的值即可修改組件的相關 +// 資訊。 + +// 檢閱組件屬性的值 + +[assembly: AssemblyTitle("MESPI_BusinessRule")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("MESPI_BusinessRule")] +[assembly: AssemblyCopyright("Copyright © 2016")] +[assembly: AssemblyTrademark("")] + +[assembly: ComVisible(false)] + +// 下列 GUID 為專案公開 (Expose) 至 COM 時所要使用的 typelib ID +[assembly: Guid("ad5034de-f368-4373-8f98-36aec3edf64e")] + +// 組件的版本資訊由下列四個值所組成: +// +// 主要版本 +// 次要版本 +// 組建編號 +// 修訂編號 +// +// 您可以指定所有的值,也可以依照以下的方式,使用 '*' 將組建和修訂編號 +// 指定為預設值: +// + +[assembly: AssemblyVersion("6.0.0.0")] +[assembly: AssemblyFileVersion("6.0.0.0")] diff --git a/SRC/MESPlugin/MESPI_BusinessRule/My Project/Resources.resx b/SRC/MESPlugin/MESPI_BusinessRule/My Project/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/SRC/MESPlugin/MESPI_BusinessRule/My Project/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/SRC/MESPlugin/MESPI_BusinessRule/My Project/Settings.Designer.cs b/SRC/MESPlugin/MESPI_BusinessRule/My Project/Settings.Designer.cs new file mode 100644 index 0000000..77191f5 --- /dev/null +++ b/SRC/MESPlugin/MESPI_BusinessRule/My Project/Settings.Designer.cs @@ -0,0 +1,26 @@ +//------------------------------------------------------------------------------ +// +// 這段程式碼是由工具產生的。 +// 執行階段版本:4.0.30319.42000 +// +// 對這個檔案所做的變更可能會造成錯誤的行為,而且如果重新產生程式碼, +// 變更將會遺失。 +// +//------------------------------------------------------------------------------ + +namespace MESPI_BusinessRule.My { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + } +} diff --git a/SRC/MESPlugin/MESPI_BusinessRule/My Project/Settings.settings b/SRC/MESPlugin/MESPI_BusinessRule/My Project/Settings.settings new file mode 100644 index 0000000..85b890b --- /dev/null +++ b/SRC/MESPlugin/MESPI_BusinessRule/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/SRC/MESPlugin/MESPI_BusinessRule/clsBusinessRule.cs b/SRC/MESPlugin/MESPI_BusinessRule/clsBusinessRule.cs new file mode 100644 index 0000000..7ef3087 --- /dev/null +++ b/SRC/MESPlugin/MESPI_BusinessRule/clsBusinessRule.cs @@ -0,0 +1,16 @@ +using iMESCIO.PIO.Plugin; +using Microsoft.VisualBasic; + +namespace MESPI_BusinessRule +{ + + public class clsBusinessRule : IBusinessRule + { + + private string funBR_Test(Collection colParameters) + { + return "Pass"; + } + + } +} \ No newline at end of file diff --git a/SRC/MESPlugin/MESPI_BusinessRule/clsGetFunctionBR.cs b/SRC/MESPlugin/MESPI_BusinessRule/clsGetFunctionBR.cs new file mode 100644 index 0000000..435204b --- /dev/null +++ b/SRC/MESPlugin/MESPI_BusinessRule/clsGetFunctionBR.cs @@ -0,0 +1,96 @@ +using System; +using System.Data; +using System.IO; +using System.Linq; +using System.Reflection; +using iMESCIO.PIO.Plugin; +using Microsoft.VisualBasic; +using Microsoft.VisualBasic.CompilerServices; + +namespace MESPI_BusinessRule +{ + + public class clsGetFunctionBR : ICommonPlugin + { + + public string PlugInPoint + { + get + { + return "wsOP.LoadBRFunctionName"; + } + } + + public object AfterExecut(params object[] Parameters) + { + + string strAppBase = AppDomain.CurrentDomain.BaseDirectory; + string strFilePath = strAppBase.TrimEnd('\\') + @"\Plugin\BusinessRule"; + Assembly mainAssembly; + MethodInfo[] MyMethodInfos; + string strFunction; + string strResult = ""; + + try + { + + foreach (string file in Directory.GetFiles(strFilePath)) + { + + if (new System.IO.FileInfo(file).Extension.ToUpper() != ".DLL") + { + continue; + } + + mainAssembly = Assembly.LoadFrom(file); + + foreach (Type item in mainAssembly.GetTypes()) + { + + var InterfaceTemp = item.GetInterfaces().Where(x => (x.Name ?? "") == (typeof(IBusinessRule).Name.ToString() ?? "")).FirstOrDefault(); + + if (InterfaceTemp == null == false) + { + + MyMethodInfos = item.GetMethods(BindingFlags.NonPublic | BindingFlags.Instance); + + for (int i = 0, loopTo = MyMethodInfos.Length - 1; i <= loopTo; i++) + { + + strFunction = MyMethodInfos[i].Name; + + if (Conversions.ToBoolean(Strings.InStr(strFunction.ToUpper(), "FUNBR"))) + { + strResult += "" + "FunctionName" + "String" + "" + "" + strFunction + "" + "" + "" + new System.IO.FileInfo(file).Name + "" + ""; + } + + } + + } + + } + + } + } + + catch (Exception ex) + { + throw; + } + finally + { + mainAssembly = null; + MyMethodInfos = null; + } + + return strResult; + + } + + public object BeforeExecut(ref bool paramIsCancel, params object[] Parameters) + { + throw new NotImplementedException(); + } + + } +} \ No newline at end of file diff --git a/SRC/MESPlugin/MESPI_BusinessRule/iMES.snk b/SRC/MESPlugin/MESPI_BusinessRule/iMES.snk new file mode 100644 index 0000000..4206cdc Binary files /dev/null and b/SRC/MESPlugin/MESPI_BusinessRule/iMES.snk differ diff --git a/SRC/MESPlugin/MESPI_WIP/MESPI_WIP.csproj b/SRC/MESPlugin/MESPI_WIP/MESPI_WIP.csproj new file mode 100644 index 0000000..5509568 --- /dev/null +++ b/SRC/MESPlugin/MESPI_WIP/MESPI_WIP.csproj @@ -0,0 +1,124 @@ + + + + Debug + AnyCPU + + + + + {F9051601-B027-0745-17C2-D36A87ABB6A1} + Library + MESPI_WIP + MESPI_WIP + 512 + Windows + v4.6.2 + SAK + SAK + SAK + SAK + + $(DefaultItemExcludes);$(ProjectDir)**\*.vb + + + true + full + true + true + ..\..\MES_S_DLL\plugin\WIP\ + ..\..\MES_S_DLL\plugin\WIP\MESPI_WIP.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + false + 0 + + + pdbonly + false + true + true + bin\Release\ + bin\Release\MESPI_WIP.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + false + 0 + + + On + + + Binary + + + Off + + + On + + + + + False + ..\..\MES_S_DLL\iMESException.dll + True + + + ..\..\MES_S_DLL\iMESLog.dll + + + False + ..\..\MES_S_DLL\kcPRD.dll + + + ..\..\MES_S_DLL\kcWIP.dll + + + + + + + + + + + + + + + + + + + + + + + True + Application.myapp + + + True + Settings.settings + True + + + + + MyApplicationCodeGenerator + Application.Designer.cs + + + SettingsSingleFileGenerator + MESPI_WIP.My + Settings.Designer.cs + + + + + \ No newline at end of file diff --git a/SRC/MESPlugin/MESPI_WIP/MESPI_WIP.sln b/SRC/MESPlugin/MESPI_WIP/MESPI_WIP.sln new file mode 100644 index 0000000..29ee868 --- /dev/null +++ b/SRC/MESPlugin/MESPI_WIP/MESPI_WIP.sln @@ -0,0 +1,32 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 14 +VisualStudioVersion = 14.0.25420.1 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MESPI_WIP", "MESPI_WIP.csproj", "{F9051601-B027-0745-17C2-D36A87ABB6A1}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {F9051601-B027-0745-17C2-D36A87ABB6A1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F9051601-B027-0745-17C2-D36A87ABB6A1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F9051601-B027-0745-17C2-D36A87ABB6A1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F9051601-B027-0745-17C2-D36A87ABB6A1}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(TeamFoundationVersionControl) = preSolution + SccNumberOfProjects = 1 + SccEnterpriseProvider = {4CA58AB2-18FA-4F8D-95D4-32DDF27D184C} + SccTeamFoundationServer = http://tfs.imestech.com:8080/tfs/messeries6 + SccProjectUniqueName0 = MESPI_WIP.csproj + SccProjectName0 = . + SccAuxPath0 = http://tfs.imestech.com:8080/tfs/messeries6 + SccLocalPath0 = . + SccProvider0 = {4CA58AB2-18FA-4F8D-95D4-32DDF27D184C} + EndGlobalSection +EndGlobal diff --git a/SRC/MESPlugin/MESPI_WIP/My Project/Application.Designer.cs b/SRC/MESPlugin/MESPI_WIP/My Project/Application.Designer.cs new file mode 100644 index 0000000..299bbe3 --- /dev/null +++ b/SRC/MESPlugin/MESPI_WIP/My Project/Application.Designer.cs @@ -0,0 +1,11 @@ +// ------------------------------------------------------------------------------ +// +// 這段程式碼是由工具產生的。 +// 執行階段版本:4.0.30319.42000 +// +// 對這個檔案所做的變更可能會造成錯誤的行為,而且如果重新產生程式碼, +// 變更將會遺失。 +// +// ------------------------------------------------------------------------------ + + diff --git a/SRC/MESPlugin/MESPI_WIP/My Project/Application.myapp b/SRC/MESPlugin/MESPI_WIP/My Project/Application.myapp new file mode 100644 index 0000000..758895d --- /dev/null +++ b/SRC/MESPlugin/MESPI_WIP/My Project/Application.myapp @@ -0,0 +1,10 @@ + + + false + false + 0 + true + 0 + 1 + true + diff --git a/SRC/MESPlugin/MESPI_WIP/My Project/AssemblyInfo.cs b/SRC/MESPlugin/MESPI_WIP/My Project/AssemblyInfo.cs new file mode 100644 index 0000000..0d0d221 --- /dev/null +++ b/SRC/MESPlugin/MESPI_WIP/My Project/AssemblyInfo.cs @@ -0,0 +1,35 @@ +using System; +using System.Reflection; +using System.Runtime.InteropServices; + +// 組件的一般資訊是由下列的屬性集控制。 +// 變更這些屬性的值即可修改組件的相關 +// 資訊。 + +// 檢閱組件屬性的值 + +[assembly: AssemblyTitle("MESPI_WIP")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("MESPI_WIP")] +[assembly: AssemblyCopyright("Copyright © 2018")] +[assembly: AssemblyTrademark("")] + +[assembly: ComVisible(false)] + +// 下列 GUID 為專案公開 (Expose) 至 COM 時所要使用的 typelib ID +[assembly: Guid("438509c2-63aa-45a9-955b-b76a4ad092ac")] + +// 組件的版本資訊是由下列四項值構成: +// +// 主要版本 +// 次要版本 +// 組建編號 +// 修訂編號 +// +// 您可以指定所有的值,也可以依照以下的方式,使用 '*' 將組建和修訂編號 +// 指定為預設值: +// + +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/SRC/MESPlugin/MESPI_WIP/My Project/Resources.resx b/SRC/MESPlugin/MESPI_WIP/My Project/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/SRC/MESPlugin/MESPI_WIP/My Project/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/SRC/MESPlugin/MESPI_WIP/My Project/Settings.Designer.cs b/SRC/MESPlugin/MESPI_WIP/My Project/Settings.Designer.cs new file mode 100644 index 0000000..ecde249 --- /dev/null +++ b/SRC/MESPlugin/MESPI_WIP/My Project/Settings.Designer.cs @@ -0,0 +1,88 @@ +// ------------------------------------------------------------------------------ +// +// 這段程式碼是由工具產生的。 +// 執行階段版本:4.0.30319.42000 +// +// 對這個檔案所做的變更可能會造成錯誤的行為,而且如果重新產生程式碼, +// 變更將會遺失。 +// +// ------------------------------------------------------------------------------ + +using System.Diagnostics; +using Microsoft.VisualBasic; + + +namespace MESPI_WIP.My +{ + + [System.Runtime.CompilerServices.CompilerGenerated()] + [System.CodeDom.Compiler.GeneratedCode("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.9.0.0")] + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Advanced)] + internal sealed partial class MySettings : System.Configuration.ApplicationSettingsBase + { + + private static MySettings defaultInstance = (MySettings)Synchronized(new MySettings()); + + #region My.Settings 自動儲存功能 + /* TODO ERROR: Skipped IfDirectiveTrivia + #If _MyType = "WindowsForms" Then + *//* TODO ERROR: Skipped DisabledTextTrivia + Private Shared addedHandler As Boolean + + Private Shared addedHandlerLockObject As New Object + + _ + Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub + *//* TODO ERROR: Skipped EndIfDirectiveTrivia + #End If + */ + #endregion + + public static MySettings Default + { + get + { + + /* TODO ERROR: Skipped IfDirectiveTrivia + #If _MyType = "WindowsForms" Then + *//* TODO ERROR: Skipped DisabledTextTrivia + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If + *//* TODO ERROR: Skipped EndIfDirectiveTrivia + #End If + */ + return defaultInstance; + } + } + } +} + +namespace MESPI_WIP.My +{ + + [HideModuleName()] + [DebuggerNonUserCode()] + [System.Runtime.CompilerServices.CompilerGenerated()] + internal static class MySettingsProperty + { + + [System.ComponentModel.Design.HelpKeyword("My.Settings")] + internal static MySettings Settings + { + get + { + return MySettings.Default; + } + } + } +} \ No newline at end of file diff --git a/SRC/MESPlugin/MESPI_WIP/My Project/Settings.settings b/SRC/MESPlugin/MESPI_WIP/My Project/Settings.settings new file mode 100644 index 0000000..85b890b --- /dev/null +++ b/SRC/MESPlugin/MESPI_WIP/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/SRC/MESWin/Resources/AUT.png b/SRC/MESWin/Resources/AUT.png new file mode 100644 index 0000000..a0b4091 Binary files /dev/null and b/SRC/MESWin/Resources/AUT.png differ diff --git a/SRC/MESWin/Resources/AutoRPTMeasureData.xls b/SRC/MESWin/Resources/AutoRPTMeasureData.xls new file mode 100644 index 0000000..471b5c5 Binary files /dev/null and b/SRC/MESWin/Resources/AutoRPTMeasureData.xls differ diff --git a/SRC/MESWin/Resources/AutoRPTPareto.xls b/SRC/MESWin/Resources/AutoRPTPareto.xls new file mode 100644 index 0000000..251060d Binary files /dev/null and b/SRC/MESWin/Resources/AutoRPTPareto.xls differ diff --git a/SRC/MESWin/Resources/AutoRPTVarMonthReport.xls b/SRC/MESWin/Resources/AutoRPTVarMonthReport.xls new file mode 100644 index 0000000..f781fe3 Binary files /dev/null and b/SRC/MESWin/Resources/AutoRPTVarMonthReport.xls differ diff --git a/SRC/MESWin/Resources/DEFAULT.png b/SRC/MESWin/Resources/DEFAULT.png new file mode 100644 index 0000000..b566b9f Binary files /dev/null and b/SRC/MESWin/Resources/DEFAULT.png differ diff --git a/SRC/MESWin/Resources/DT.png b/SRC/MESWin/Resources/DT.png new file mode 100644 index 0000000..38f7231 Binary files /dev/null and b/SRC/MESWin/Resources/DT.png differ diff --git a/SRC/MESWin/Resources/DirectionDown.png b/SRC/MESWin/Resources/DirectionDown.png new file mode 100644 index 0000000..8f89533 Binary files /dev/null and b/SRC/MESWin/Resources/DirectionDown.png differ diff --git a/SRC/MESWin/Resources/DirectionLeft.png b/SRC/MESWin/Resources/DirectionLeft.png new file mode 100644 index 0000000..80ea854 Binary files /dev/null and b/SRC/MESWin/Resources/DirectionLeft.png differ diff --git a/SRC/MESWin/Resources/DirectionRight.png b/SRC/MESWin/Resources/DirectionRight.png new file mode 100644 index 0000000..cc26c41 Binary files /dev/null and b/SRC/MESWin/Resources/DirectionRight.png differ diff --git a/SRC/MESWin/Resources/DirectionUp.png b/SRC/MESWin/Resources/DirectionUp.png new file mode 100644 index 0000000..1f2c2ab Binary files /dev/null and b/SRC/MESWin/Resources/DirectionUp.png differ diff --git a/SRC/MESWin/Resources/EMS.png b/SRC/MESWin/Resources/EMS.png new file mode 100644 index 0000000..80b96c7 Binary files /dev/null and b/SRC/MESWin/Resources/EMS.png differ diff --git a/SRC/MESWin/Resources/ENT.png b/SRC/MESWin/Resources/ENT.png new file mode 100644 index 0000000..fa35ea8 Binary files /dev/null and b/SRC/MESWin/Resources/ENT.png differ diff --git a/SRC/MESWin/Resources/EQP.png b/SRC/MESWin/Resources/EQP.png new file mode 100644 index 0000000..c317f14 Binary files /dev/null and b/SRC/MESWin/Resources/EQP.png differ diff --git a/SRC/MESWin/Resources/FINIAL WEEKLY REPORT.xls b/SRC/MESWin/Resources/FINIAL WEEKLY REPORT.xls new file mode 100644 index 0000000..e4a86f2 Binary files /dev/null and b/SRC/MESWin/Resources/FINIAL WEEKLY REPORT.xls differ diff --git a/SRC/MESWin/Resources/IEW.png b/SRC/MESWin/Resources/IEW.png new file mode 100644 index 0000000..4268fb0 Binary files /dev/null and b/SRC/MESWin/Resources/IEW.png differ diff --git a/SRC/MESWin/Resources/INV.png b/SRC/MESWin/Resources/INV.png new file mode 100644 index 0000000..b3a8a61 Binary files /dev/null and b/SRC/MESWin/Resources/INV.png differ diff --git a/SRC/MESWin/Resources/ISU.png b/SRC/MESWin/Resources/ISU.png new file mode 100644 index 0000000..1993304 Binary files /dev/null and b/SRC/MESWin/Resources/ISU.png differ diff --git a/SRC/MESWin/Resources/ImportSample-AttributesQCItem.xls b/SRC/MESWin/Resources/ImportSample-AttributesQCItem.xls new file mode 100644 index 0000000..0ddf7e0 Binary files /dev/null and b/SRC/MESWin/Resources/ImportSample-AttributesQCItem.xls differ diff --git a/SRC/MESWin/Resources/ImportSample-Equipment1.csv b/SRC/MESWin/Resources/ImportSample-Equipment1.csv new file mode 100644 index 0000000..d13f678 --- /dev/null +++ b/SRC/MESWin/Resources/ImportSample-Equipment1.csv @@ -0,0 +1,17 @@ +Lot No.,80501,,,,,,,,,,,,,, +Type,CEBHM13-X10-1,,,,,,,,,,,,,, +Date,2007/3/8 AM 11:29:11,,,,,,,,,,,,,, +Q'ty,,,,,,,,,,,,,,, + ,Min,Max,,,,,,,,,,,,, +Vf2(V),,,,,,,,,,,,,,, +Iv(mcd),,,,,,,,,,,,,,, +Wd(nm),,,,,,,,,,,,,,, +Calibrate File,blue(450~475)-06.03.23.cal,,,,,,,,,,,,,, +Condition,If1(uA)=10.0\If2(mA)=20.0,,,,,,,,,,,,,, +Condition,Ir(uA)=0.5\Vr(V)=5.0\If4(mA)=1.0,,,,,,,,,,,,,, +QCItemNo.,IPQC-ԤO,Vf2(V),Vr(V),Ir(uA),Iv(mcd),fd(nm),fp(nm),Gf(nm),CIE-x,CIE-y,Vf4(V),PeakData,Vf3(V),Vscr(V),Vth(V) +1,2.38,3.17,10,0,49.47,469.9,465.3,21.2,0.13,0.0632,2.27,2130,0,0,0 +2,2.38,3.17,10,0,50.58,469.7,467.2,20.3,0.1307,0.0616,2.27,2350,0,0,0 +3,2.38,3.12,10,0,48.93,470.4,468.2,20.1,0.1289,0.0656,2.27,2228.8,0,0,0 +4,2.38,3.12,10,0,48.95,470.4,468.2,20.1,0.1289,0.0657,2.27,2218.6,0,0,0 +5,2.34,3.16,10,0,50.27,469.7,465.3,21.4,0.1305,0.0621,2.22,2196.6,0,0,0 diff --git a/SRC/MESWin/Resources/ImportSample-Equipment2.txt b/SRC/MESWin/Resources/ImportSample-Equipment2.txt new file mode 100644 index 0000000..4f9d025 --- /dev/null +++ b/SRC/MESWin/Resources/ImportSample-Equipment2.txt @@ -0,0 +1,29 @@ +Printer Report +Date:03/07/2007 +Time:14:22:19 +Method :7 +Sample : +Lot : +Operator : +Note : + 1 009.4c + 2 009.6c + 3 010.0c + 4 010.0 + 5 010.0c + 6 009.8c + 7 009.9c + 8 009.6c + 9 009.9c + 10 009.1c + 11 009.7 + 12 009.3c + 13 010.0c + 14 009.9c + 15 009.6c + 16 010.3c + 17 009.8 + 18 010.0c + 19 009.5 + 20 010.1c + \ No newline at end of file diff --git a/SRC/MESWin/Resources/ImportSample-QCChar.xls b/SRC/MESWin/Resources/ImportSample-QCChar.xls new file mode 100644 index 0000000..f6ec43e Binary files /dev/null and b/SRC/MESWin/Resources/ImportSample-QCChar.xls differ diff --git a/SRC/MESWin/Resources/ImportSample-SPCData.xls b/SRC/MESWin/Resources/ImportSample-SPCData.xls new file mode 100644 index 0000000..d44a766 Binary files /dev/null and b/SRC/MESWin/Resources/ImportSample-SPCData.xls differ diff --git a/SRC/MESWin/Resources/ImportSample-VariablesQCItem.xls b/SRC/MESWin/Resources/ImportSample-VariablesQCItem.xls new file mode 100644 index 0000000..e345d80 Binary files /dev/null and b/SRC/MESWin/Resources/ImportSample-VariablesQCItem.xls differ diff --git a/SRC/MESWin/Resources/MSA.png b/SRC/MESWin/Resources/MSA.png new file mode 100644 index 0000000..51a87c7 Binary files /dev/null and b/SRC/MESWin/Resources/MSA.png differ diff --git a/SRC/MESWin/Resources/MTL.png b/SRC/MESWin/Resources/MTL.png new file mode 100644 index 0000000..01ce547 Binary files /dev/null and b/SRC/MESWin/Resources/MTL.png differ diff --git a/SRC/MESWin/Resources/OE.png b/SRC/MESWin/Resources/OE.png new file mode 100644 index 0000000..4b61ef0 Binary files /dev/null and b/SRC/MESWin/Resources/OE.png differ diff --git a/SRC/MESWin/Resources/OP.png b/SRC/MESWin/Resources/OP.png new file mode 100644 index 0000000..a3d8f6c Binary files /dev/null and b/SRC/MESWin/Resources/OP.png differ diff --git a/SRC/MESWin/Resources/PM.png b/SRC/MESWin/Resources/PM.png new file mode 100644 index 0000000..7bbc6d5 Binary files /dev/null and b/SRC/MESWin/Resources/PM.png differ diff --git a/SRC/MESWin/Resources/PRD.png b/SRC/MESWin/Resources/PRD.png new file mode 100644 index 0000000..975164b Binary files /dev/null and b/SRC/MESWin/Resources/PRD.png differ diff --git a/SRC/MESWin/Resources/PRS.png b/SRC/MESWin/Resources/PRS.png new file mode 100644 index 0000000..cca6bd8 Binary files /dev/null and b/SRC/MESWin/Resources/PRS.png differ diff --git a/SRC/MESWin/Resources/QC.png b/SRC/MESWin/Resources/QC.png new file mode 100644 index 0000000..4434746 Binary files /dev/null and b/SRC/MESWin/Resources/QC.png differ diff --git a/SRC/MESWin/Resources/RPT.png b/SRC/MESWin/Resources/RPT.png new file mode 100644 index 0000000..dc0400e Binary files /dev/null and b/SRC/MESWin/Resources/RPT.png differ diff --git a/SRC/MESWin/Resources/SMD.png b/SRC/MESWin/Resources/SMD.png new file mode 100644 index 0000000..3c3d88e Binary files /dev/null and b/SRC/MESWin/Resources/SMD.png differ diff --git a/SRC/MESWin/Resources/SPC.png b/SRC/MESWin/Resources/SPC.png new file mode 100644 index 0000000..40edf2a Binary files /dev/null and b/SRC/MESWin/Resources/SPC.png differ diff --git a/SRC/MESWin/Resources/SPCExport_2003_Standard.xls b/SRC/MESWin/Resources/SPCExport_2003_Standard.xls new file mode 100644 index 0000000..b27df0a Binary files /dev/null and b/SRC/MESWin/Resources/SPCExport_2003_Standard.xls differ diff --git a/SRC/MESWin/Resources/SPCExport_STD.xls b/SRC/MESWin/Resources/SPCExport_STD.xls new file mode 100644 index 0000000..ca1cc0b Binary files /dev/null and b/SRC/MESWin/Resources/SPCExport_STD.xls differ diff --git a/SRC/MESWin/Resources/SPCExport_STD02.xls b/SRC/MESWin/Resources/SPCExport_STD02.xls new file mode 100644 index 0000000..ddf4bd4 Binary files /dev/null and b/SRC/MESWin/Resources/SPCExport_STD02.xls differ diff --git a/SRC/MESWin/Resources/SPCExport_STD02_2003.xls b/SRC/MESWin/Resources/SPCExport_STD02_2003.xls new file mode 100644 index 0000000..02056c1 Binary files /dev/null and b/SRC/MESWin/Resources/SPCExport_STD02_2003.xls differ diff --git a/SRC/MESWin/Resources/SPCExport_STD_190111.xls b/SRC/MESWin/Resources/SPCExport_STD_190111.xls new file mode 100644 index 0000000..f5851ee Binary files /dev/null and b/SRC/MESWin/Resources/SPCExport_STD_190111.xls differ diff --git a/SRC/MESWin/Resources/SPCExport_STD_190111H.xlsm b/SRC/MESWin/Resources/SPCExport_STD_190111H.xlsm new file mode 100644 index 0000000..ae66fc3 Binary files /dev/null and b/SRC/MESWin/Resources/SPCExport_STD_190111H.xlsm differ diff --git a/SRC/MESWin/Resources/SPCReport.xls b/SRC/MESWin/Resources/SPCReport.xls new file mode 100644 index 0000000..7f45579 Binary files /dev/null and b/SRC/MESWin/Resources/SPCReport.xls differ diff --git a/SRC/MESWin/Resources/SYS.png b/SRC/MESWin/Resources/SYS.png new file mode 100644 index 0000000..63e3dbb Binary files /dev/null and b/SRC/MESWin/Resources/SYS.png differ diff --git a/SRC/MESWin/Resources/USR.png b/SRC/MESWin/Resources/USR.png new file mode 100644 index 0000000..d3c0d1c Binary files /dev/null and b/SRC/MESWin/Resources/USR.png differ diff --git a/SRC/MESWin/Resources/WIP.png b/SRC/MESWin/Resources/WIP.png new file mode 100644 index 0000000..a390d74 Binary files /dev/null and b/SRC/MESWin/Resources/WIP.png differ diff --git a/SRC/MESWin/Resources/WIPReport.xls b/SRC/MESWin/Resources/WIPReport.xls new file mode 100644 index 0000000..3a9694e Binary files /dev/null and b/SRC/MESWin/Resources/WIPReport.xls differ diff --git a/SRC/MESWin/Resources/mesresource.en.resources91 b/SRC/MESWin/Resources/mesresource.en.resources91 new file mode 100644 index 0000000..6c05a97 Binary files /dev/null and b/SRC/MESWin/Resources/mesresource.en.resources91 differ diff --git a/SRC/MESWin/Resources/mesresource.zh-chs.resources91 b/SRC/MESWin/Resources/mesresource.zh-chs.resources91 new file mode 100644 index 0000000..6c05a97 Binary files /dev/null and b/SRC/MESWin/Resources/mesresource.zh-chs.resources91 differ diff --git a/SRC/MESWin/Resources/mesresource.zh-cht.resources91 b/SRC/MESWin/Resources/mesresource.zh-cht.resources91 new file mode 100644 index 0000000..6c05a97 Binary files /dev/null and b/SRC/MESWin/Resources/mesresource.zh-cht.resources91 differ diff --git a/SRC/MESWin/Resources/msg_action.en.resources b/SRC/MESWin/Resources/msg_action.en.resources new file mode 100644 index 0000000..19fb658 Binary files /dev/null and b/SRC/MESWin/Resources/msg_action.en.resources differ diff --git a/SRC/MESWin/Resources/msg_action.zh-chs.resources b/SRC/MESWin/Resources/msg_action.zh-chs.resources new file mode 100644 index 0000000..1c99d89 Binary files /dev/null and b/SRC/MESWin/Resources/msg_action.zh-chs.resources differ diff --git a/SRC/MESWin/Resources/msg_action.zh-cht.resources b/SRC/MESWin/Resources/msg_action.zh-cht.resources new file mode 100644 index 0000000..1709fdc Binary files /dev/null and b/SRC/MESWin/Resources/msg_action.zh-cht.resources differ diff --git a/SRC/MESWin/Resources/msg_name.en.resources b/SRC/MESWin/Resources/msg_name.en.resources new file mode 100644 index 0000000..614b483 Binary files /dev/null and b/SRC/MESWin/Resources/msg_name.en.resources differ diff --git a/SRC/MESWin/Resources/msg_name.zh-chs.resources b/SRC/MESWin/Resources/msg_name.zh-chs.resources new file mode 100644 index 0000000..336b894 Binary files /dev/null and b/SRC/MESWin/Resources/msg_name.zh-chs.resources differ diff --git a/SRC/MESWin/Resources/msg_name.zh-cht.resources b/SRC/MESWin/Resources/msg_name.zh-cht.resources new file mode 100644 index 0000000..5b51a68 Binary files /dev/null and b/SRC/MESWin/Resources/msg_name.zh-cht.resources differ diff --git a/SRC/MESWin/Test/MDI_Panel.resx b/SRC/MESWin/Test/MDI_Panel.resx new file mode 100644 index 0000000..2d7050a --- /dev/null +++ b/SRC/MESWin/Test/MDI_Panel.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 254, 17 + + \ No newline at end of file diff --git a/SRC/MESWin/Test/MDI_Panel.vb b/SRC/MESWin/Test/MDI_Panel.vb new file mode 100644 index 0000000..e57dab1 --- /dev/null +++ b/SRC/MESWin/Test/MDI_Panel.vb @@ -0,0 +1,1016 @@ +Imports iMESMainMenu +Imports Infragistics.Win +Imports Infragistics.Win.UltraWinToolbars +Public Class MDI_Panel + + Inherits System.Windows.Forms.Form + + '//Data + Dim dsData As New DataSet + Dim ModuleNo As String + Dim strUserPriv As String + + '//其他共用變數 + Dim i As Integer + Dim blnShow As Boolean + Dim imlMDI As New ImageList + + '// MainMenu & ToolBar變數 + Dim utbMDI As Infragistics.Win.UltraWinToolbars.UltraToolbar = New UltraToolbar("ToolBar") + Dim utbMDIMenu As Infragistics.Win.UltraWinToolbars.UltraToolbar = New UltraToolbar("MainMenu") + Dim OptionSet1 As Infragistics.Win.UltraWinToolbars.OptionSet = New Infragistics.Win.UltraWinToolbars.OptionSet("LanguageMode") + Dim btlMDI As ButtonTool + Dim popMDI As PopupMenuTool + Dim sbtMDI As StateButtonTool + + +#Region " Windows Form 設計工具產生的程式碼 " + + Public Sub New() + MyBase.New() + + '此呼叫為 Windows Form 設計工具的必要項。 + InitializeComponent() + + '在 InitializeComponent() 呼叫之後加入所有的初始設定 + + End Sub + + 'Form 覆寫 Dispose 以清除元件清單。 + Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) + If disposing Then + If Not (components Is Nothing) Then + components.Dispose() + End If + End If + MyBase.Dispose(disposing) + End Sub + + '為 Windows Form 設計工具的必要項 + Private components As System.ComponentModel.IContainer + + '注意: 以下為 Windows Form 設計工具所需的程序 + '您可以使用 Windows Form 設計工具進行修改。 + '請勿使用程式碼編輯器來修改這些程序。 + Friend WithEvents UltraToolbarsManager1 As Infragistics.Win.UltraWinToolbars.UltraToolbarsManager + Friend WithEvents _MDIENT_Panel_Toolbars_Dock_Area_Left As Infragistics.Win.UltraWinToolbars.UltraToolbarsDockArea + Friend WithEvents _MDIENT_Panel_Toolbars_Dock_Area_Right As Infragistics.Win.UltraWinToolbars.UltraToolbarsDockArea + Friend WithEvents _MDIENT_Panel_Toolbars_Dock_Area_Top As Infragistics.Win.UltraWinToolbars.UltraToolbarsDockArea + Friend WithEvents _MDIENT_Panel_Toolbars_Dock_Area_Bottom As Infragistics.Win.UltraWinToolbars.UltraToolbarsDockArea + Friend WithEvents UltraDockManager1 As Infragistics.Win.UltraWinDock.UltraDockManager + Friend WithEvents _MDIENT_PanelUnpinnedTabAreaLeft As Infragistics.Win.UltraWinDock.UnpinnedTabArea + Friend WithEvents _MDIENT_PanelUnpinnedTabAreaRight As Infragistics.Win.UltraWinDock.UnpinnedTabArea + Friend WithEvents _MDIENT_PanelUnpinnedTabAreaTop As Infragistics.Win.UltraWinDock.UnpinnedTabArea + Friend WithEvents _MDIENT_PanelUnpinnedTabAreaBottom As Infragistics.Win.UltraWinDock.UnpinnedTabArea + Friend WithEvents _MDIENT_PanelAutoHideControl As Infragistics.Win.UltraWinDock.AutoHideControl + Friend WithEvents uebMenu As Infragistics.Win.UltraWinExplorerBar.UltraExplorerBar + Friend WithEvents WindowDockingArea1 As Infragistics.Win.UltraWinDock.WindowDockingArea + Friend WithEvents DockableWindow1 As Infragistics.Win.UltraWinDock.DockableWindow + Private Sub InitializeComponent() + Me.components = New System.ComponentModel.Container() + Dim DockAreaPane2 As Infragistics.Win.UltraWinDock.DockAreaPane = New Infragistics.Win.UltraWinDock.DockAreaPane(Infragistics.Win.UltraWinDock.DockedLocation.DockedLeft, New System.Guid("8666bbed-9885-4c68-819e-c049f9eac535")) + Dim DockableControlPane2 As Infragistics.Win.UltraWinDock.DockableControlPane = New Infragistics.Win.UltraWinDock.DockableControlPane(New System.Guid("5a475b0e-96d9-4cd0-973b-da8cba709615"), New System.Guid("00000000-0000-0000-0000-000000000000"), -1, New System.Guid("8666bbed-9885-4c68-819e-c049f9eac535"), -1) + Me.uebMenu = New Infragistics.Win.UltraWinExplorerBar.UltraExplorerBar() + Me.UltraToolbarsManager1 = New Infragistics.Win.UltraWinToolbars.UltraToolbarsManager(Me.components) + Me._MDIENT_Panel_Toolbars_Dock_Area_Left = New Infragistics.Win.UltraWinToolbars.UltraToolbarsDockArea() + Me._MDIENT_Panel_Toolbars_Dock_Area_Right = New Infragistics.Win.UltraWinToolbars.UltraToolbarsDockArea() + Me._MDIENT_Panel_Toolbars_Dock_Area_Top = New Infragistics.Win.UltraWinToolbars.UltraToolbarsDockArea() + Me._MDIENT_Panel_Toolbars_Dock_Area_Bottom = New Infragistics.Win.UltraWinToolbars.UltraToolbarsDockArea() + Me.UltraDockManager1 = New Infragistics.Win.UltraWinDock.UltraDockManager(Me.components) + Me._MDIENT_PanelUnpinnedTabAreaLeft = New Infragistics.Win.UltraWinDock.UnpinnedTabArea() + Me._MDIENT_PanelUnpinnedTabAreaRight = New Infragistics.Win.UltraWinDock.UnpinnedTabArea() + Me._MDIENT_PanelUnpinnedTabAreaTop = New Infragistics.Win.UltraWinDock.UnpinnedTabArea() + Me._MDIENT_PanelUnpinnedTabAreaBottom = New Infragistics.Win.UltraWinDock.UnpinnedTabArea() + Me._MDIENT_PanelAutoHideControl = New Infragistics.Win.UltraWinDock.AutoHideControl() + Me.DockableWindow1 = New Infragistics.Win.UltraWinDock.DockableWindow() + Me.WindowDockingArea1 = New Infragistics.Win.UltraWinDock.WindowDockingArea() + CType(Me.uebMenu, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.UltraToolbarsManager1, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.UltraDockManager1, System.ComponentModel.ISupportInitialize).BeginInit() + Me._MDIENT_PanelAutoHideControl.SuspendLayout() + Me.DockableWindow1.SuspendLayout() + Me.SuspendLayout() + ' + 'uebMenu + ' + Me.uebMenu.Location = New System.Drawing.Point(0, 18) + Me.uebMenu.Name = "uebMenu" + Me.uebMenu.Size = New System.Drawing.Size(300, 424) + Me.uebMenu.TabIndex = 10 + ' + 'UltraToolbarsManager1 + ' + Me.UltraToolbarsManager1.DesignerFlags = 1 + Me.UltraToolbarsManager1.DockWithinContainer = Me + Me.UltraToolbarsManager1.DockWithinContainerBaseType = GetType(System.Windows.Forms.Form) + ' + '_MDIENT_Panel_Toolbars_Dock_Area_Left + ' + Me._MDIENT_Panel_Toolbars_Dock_Area_Left.AccessibleRole = System.Windows.Forms.AccessibleRole.Grouping + Me._MDIENT_Panel_Toolbars_Dock_Area_Left.BackColor = System.Drawing.SystemColors.Control + Me._MDIENT_Panel_Toolbars_Dock_Area_Left.DockedPosition = Infragistics.Win.UltraWinToolbars.DockedPosition.Left + Me._MDIENT_Panel_Toolbars_Dock_Area_Left.ForeColor = System.Drawing.SystemColors.ControlText + Me._MDIENT_Panel_Toolbars_Dock_Area_Left.Location = New System.Drawing.Point(0, 0) + Me._MDIENT_Panel_Toolbars_Dock_Area_Left.Name = "_MDIENT_Panel_Toolbars_Dock_Area_Left" + Me._MDIENT_Panel_Toolbars_Dock_Area_Left.Size = New System.Drawing.Size(0, 442) + Me._MDIENT_Panel_Toolbars_Dock_Area_Left.ToolbarsManager = Me.UltraToolbarsManager1 + ' + '_MDIENT_Panel_Toolbars_Dock_Area_Right + ' + Me._MDIENT_Panel_Toolbars_Dock_Area_Right.AccessibleRole = System.Windows.Forms.AccessibleRole.Grouping + Me._MDIENT_Panel_Toolbars_Dock_Area_Right.BackColor = System.Drawing.SystemColors.Control + Me._MDIENT_Panel_Toolbars_Dock_Area_Right.DockedPosition = Infragistics.Win.UltraWinToolbars.DockedPosition.Right + Me._MDIENT_Panel_Toolbars_Dock_Area_Right.ForeColor = System.Drawing.SystemColors.ControlText + Me._MDIENT_Panel_Toolbars_Dock_Area_Right.Location = New System.Drawing.Point(624, 0) + Me._MDIENT_Panel_Toolbars_Dock_Area_Right.Name = "_MDIENT_Panel_Toolbars_Dock_Area_Right" + Me._MDIENT_Panel_Toolbars_Dock_Area_Right.Size = New System.Drawing.Size(0, 442) + Me._MDIENT_Panel_Toolbars_Dock_Area_Right.ToolbarsManager = Me.UltraToolbarsManager1 + ' + '_MDIENT_Panel_Toolbars_Dock_Area_Top + ' + Me._MDIENT_Panel_Toolbars_Dock_Area_Top.AccessibleRole = System.Windows.Forms.AccessibleRole.Grouping + Me._MDIENT_Panel_Toolbars_Dock_Area_Top.BackColor = System.Drawing.SystemColors.Control + Me._MDIENT_Panel_Toolbars_Dock_Area_Top.DockedPosition = Infragistics.Win.UltraWinToolbars.DockedPosition.Top + Me._MDIENT_Panel_Toolbars_Dock_Area_Top.ForeColor = System.Drawing.SystemColors.ControlText + Me._MDIENT_Panel_Toolbars_Dock_Area_Top.Location = New System.Drawing.Point(0, 0) + Me._MDIENT_Panel_Toolbars_Dock_Area_Top.Name = "_MDIENT_Panel_Toolbars_Dock_Area_Top" + Me._MDIENT_Panel_Toolbars_Dock_Area_Top.Size = New System.Drawing.Size(624, 0) + Me._MDIENT_Panel_Toolbars_Dock_Area_Top.ToolbarsManager = Me.UltraToolbarsManager1 + ' + '_MDIENT_Panel_Toolbars_Dock_Area_Bottom + ' + Me._MDIENT_Panel_Toolbars_Dock_Area_Bottom.AccessibleRole = System.Windows.Forms.AccessibleRole.Grouping + Me._MDIENT_Panel_Toolbars_Dock_Area_Bottom.BackColor = System.Drawing.SystemColors.Control + Me._MDIENT_Panel_Toolbars_Dock_Area_Bottom.DockedPosition = Infragistics.Win.UltraWinToolbars.DockedPosition.Bottom + Me._MDIENT_Panel_Toolbars_Dock_Area_Bottom.ForeColor = System.Drawing.SystemColors.ControlText + Me._MDIENT_Panel_Toolbars_Dock_Area_Bottom.Location = New System.Drawing.Point(0, 442) + Me._MDIENT_Panel_Toolbars_Dock_Area_Bottom.Name = "_MDIENT_Panel_Toolbars_Dock_Area_Bottom" + Me._MDIENT_Panel_Toolbars_Dock_Area_Bottom.Size = New System.Drawing.Size(624, 0) + Me._MDIENT_Panel_Toolbars_Dock_Area_Bottom.ToolbarsManager = Me.UltraToolbarsManager1 + ' + 'UltraDockManager1 + ' + DockableControlPane2.Control = Me.uebMenu + DockableControlPane2.FlyoutSize = New System.Drawing.Size(239, -1) + DockableControlPane2.Key = "WIPModule" + DockableControlPane2.OriginalControlBounds = New System.Drawing.Rectangle(208, 112, 175, 230) + DockableControlPane2.Pinned = False + DockableControlPane2.Size = New System.Drawing.Size(100, 100) + DockableControlPane2.Text = "WIP" + DockAreaPane2.Panes.AddRange(New Infragistics.Win.UltraWinDock.DockablePaneBase() {DockableControlPane2}) + DockAreaPane2.Size = New System.Drawing.Size(239, 294) + Me.UltraDockManager1.DockAreas.AddRange(New Infragistics.Win.UltraWinDock.DockAreaPane() {DockAreaPane2}) + Me.UltraDockManager1.HostControl = Me + Me.UltraDockManager1.ShowCloseButton = False + ' + '_MDIENT_PanelUnpinnedTabAreaLeft + ' + Me._MDIENT_PanelUnpinnedTabAreaLeft.Dock = System.Windows.Forms.DockStyle.Left + Me._MDIENT_PanelUnpinnedTabAreaLeft.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(136, Byte)) + Me._MDIENT_PanelUnpinnedTabAreaLeft.Location = New System.Drawing.Point(0, 0) + Me._MDIENT_PanelUnpinnedTabAreaLeft.Name = "_MDIENT_PanelUnpinnedTabAreaLeft" + Me._MDIENT_PanelUnpinnedTabAreaLeft.Owner = Me.UltraDockManager1 + Me._MDIENT_PanelUnpinnedTabAreaLeft.Size = New System.Drawing.Size(21, 442) + Me._MDIENT_PanelUnpinnedTabAreaLeft.TabIndex = 5 + ' + '_MDIENT_PanelUnpinnedTabAreaRight + ' + Me._MDIENT_PanelUnpinnedTabAreaRight.Dock = System.Windows.Forms.DockStyle.Right + Me._MDIENT_PanelUnpinnedTabAreaRight.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(136, Byte)) + Me._MDIENT_PanelUnpinnedTabAreaRight.Location = New System.Drawing.Point(624, 0) + Me._MDIENT_PanelUnpinnedTabAreaRight.Name = "_MDIENT_PanelUnpinnedTabAreaRight" + Me._MDIENT_PanelUnpinnedTabAreaRight.Owner = Me.UltraDockManager1 + Me._MDIENT_PanelUnpinnedTabAreaRight.Size = New System.Drawing.Size(0, 442) + Me._MDIENT_PanelUnpinnedTabAreaRight.TabIndex = 6 + ' + '_MDIENT_PanelUnpinnedTabAreaTop + ' + Me._MDIENT_PanelUnpinnedTabAreaTop.Dock = System.Windows.Forms.DockStyle.Top + Me._MDIENT_PanelUnpinnedTabAreaTop.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(136, Byte)) + Me._MDIENT_PanelUnpinnedTabAreaTop.Location = New System.Drawing.Point(21, 0) + Me._MDIENT_PanelUnpinnedTabAreaTop.Name = "_MDIENT_PanelUnpinnedTabAreaTop" + Me._MDIENT_PanelUnpinnedTabAreaTop.Owner = Me.UltraDockManager1 + Me._MDIENT_PanelUnpinnedTabAreaTop.Size = New System.Drawing.Size(603, 0) + Me._MDIENT_PanelUnpinnedTabAreaTop.TabIndex = 7 + ' + '_MDIENT_PanelUnpinnedTabAreaBottom + ' + Me._MDIENT_PanelUnpinnedTabAreaBottom.Dock = System.Windows.Forms.DockStyle.Bottom + Me._MDIENT_PanelUnpinnedTabAreaBottom.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(136, Byte)) + Me._MDIENT_PanelUnpinnedTabAreaBottom.Location = New System.Drawing.Point(21, 442) + Me._MDIENT_PanelUnpinnedTabAreaBottom.Name = "_MDIENT_PanelUnpinnedTabAreaBottom" + Me._MDIENT_PanelUnpinnedTabAreaBottom.Owner = Me.UltraDockManager1 + Me._MDIENT_PanelUnpinnedTabAreaBottom.Size = New System.Drawing.Size(603, 0) + Me._MDIENT_PanelUnpinnedTabAreaBottom.TabIndex = 8 + ' + '_MDIENT_PanelAutoHideControl + ' + Me._MDIENT_PanelAutoHideControl.Controls.Add(Me.DockableWindow1) + Me._MDIENT_PanelAutoHideControl.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(136, Byte)) + Me._MDIENT_PanelAutoHideControl.Location = New System.Drawing.Point(21, 0) + Me._MDIENT_PanelAutoHideControl.Name = "_MDIENT_PanelAutoHideControl" + Me._MDIENT_PanelAutoHideControl.Owner = Me.UltraDockManager1 + Me._MDIENT_PanelAutoHideControl.Size = New System.Drawing.Size(14, 442) + Me._MDIENT_PanelAutoHideControl.TabIndex = 9 + ' + 'DockableWindow1 + ' + Me.DockableWindow1.Controls.Add(Me.uebMenu) + Me.DockableWindow1.Location = New System.Drawing.Point(0, 0) + Me.DockableWindow1.Name = "DockableWindow1" + Me.DockableWindow1.Owner = Me.UltraDockManager1 + Me.DockableWindow1.Size = New System.Drawing.Size(239, 442) + Me.DockableWindow1.TabIndex = 17 + ' + 'WindowDockingArea1 + ' + Me.WindowDockingArea1.Dock = System.Windows.Forms.DockStyle.Left + Me.WindowDockingArea1.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(136, Byte)) + Me.WindowDockingArea1.Location = New System.Drawing.Point(21, 0) + Me.WindowDockingArea1.Name = "WindowDockingArea1" + Me.WindowDockingArea1.Owner = Me.UltraDockManager1 + Me.WindowDockingArea1.Size = New System.Drawing.Size(244, 294) + Me.WindowDockingArea1.TabIndex = 11 + ' + 'MDI_Panel + ' + Me.AutoScaleBaseSize = New System.Drawing.Size(5, 14) + Me.ClientSize = New System.Drawing.Size(624, 442) + Me.Controls.Add(Me._MDIENT_PanelAutoHideControl) + Me.Controls.Add(Me.WindowDockingArea1) + Me.Controls.Add(Me._MDIENT_PanelUnpinnedTabAreaTop) + Me.Controls.Add(Me._MDIENT_PanelUnpinnedTabAreaBottom) + Me.Controls.Add(Me._MDIENT_PanelUnpinnedTabAreaLeft) + Me.Controls.Add(Me._MDIENT_PanelUnpinnedTabAreaRight) + Me.Controls.Add(Me._MDIENT_Panel_Toolbars_Dock_Area_Left) + Me.Controls.Add(Me._MDIENT_Panel_Toolbars_Dock_Area_Right) + Me.Controls.Add(Me._MDIENT_Panel_Toolbars_Dock_Area_Bottom) + Me.Controls.Add(Me._MDIENT_Panel_Toolbars_Dock_Area_Top) + Me.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(136, Byte)) + Me.IsMdiContainer = True + Me.Name = "MDI_Panel" + Me.Text = "Test" + Me.WindowState = System.Windows.Forms.FormWindowState.Maximized + CType(Me.uebMenu, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.UltraToolbarsManager1, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.UltraDockManager1, System.ComponentModel.ISupportInitialize).EndInit() + Me._MDIENT_PanelAutoHideControl.ResumeLayout(False) + Me.DockableWindow1.ResumeLayout(False) + Me.ResumeLayout(False) + + End Sub + +#End Region + + Private Sub MDIENT_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load + + Cursor.Current = Cursors.WaitCursor + + ''---掛載Online Help---- + Dim clsHelp As New clsOnlineHelp + clsHelp.AddEventToForm(Me) + + 'set BackColor + Call setMDIBackColor(Me) + + ModuleNo = "SYS" + + ' 2016/05/09 YF, 產生選單 + GenerateMenu() + + '3.Get EnterpriseNo----------------------------------------------------------------------------------------------------------- + Call funGetEnterpriseNo() + + '4.版本檢查 + Call ChkVersion() + + 'Me.Text = Me.Text & " - " & GetClientVersion() 'Gary Lu 20120718:標題加上版本編號 + + '5.Execute Change Resource----------------------------------------------------------------------------------------------------- + 'Call ExeChangeResource(Me, gLanguageMode) + + '6.Set iMESExceptionManager LanguageMode--------------------------------------------------------------------------------------- + iMESExceptionManager.ExceptionManager.LanguageMode = gLanguageMode + + Cursor.Current = Cursors.Default + + End Sub + +#Region " UltraWinToolbars Menu & ToolBar Function " + + Private Function funCreateUltraPopupMenuToolbar(ByRef ParentMenuItem As iMESMenuItem) As PopupMenuTool + + + 'PopupMenuTool + popMDI = New PopupMenuTool(ParentMenuItem.Name) + popMDI.SharedProps.Tag = ParentMenuItem.Name + popMDI.SharedProps.ToolTipText = ParentMenuItem.Name + UltraToolbarsManager1.Tools.Add(popMDI) + + Return popMDI + + End Function + + Private Function funCreateUltraButtonMenuToolbar(ByRef ParentMenuItem As iMESMenuItem) + + 'Button Tool + btlMDI = New ButtonTool(ParentMenuItem.Name) + btlMDI.SharedProps.Tag = ParentMenuItem.Name + btlMDI.SharedProps.ToolTipText = ParentMenuItem.Name + UltraToolbarsManager1.Tools.Add(btlMDI) + + utbMDIMenu.Tools.AddRange(New Infragistics.Win.UltraWinToolbars.ToolBase() {btlMDI}) + + End Function + + Private Sub funCreateUltraMenuItemToolbar(ByRef tmppopMDI As PopupMenuTool, ByRef ParentMenuItem As iMESMenuItem, Optional ByVal btlEnabled As Boolean = True) + + If ParentMenuItem.Name.ToUpper = "EN" Or ParentMenuItem.Name.ToUpper = "ZH-CHT" Or + ParentMenuItem.Name.ToUpper = "ZH-CHS" Or ParentMenuItem.Name.ToUpper = "JP" Or + ParentMenuItem.Name.ToUpper = "KOR" Or ParentMenuItem.Name.ToUpper = "THAI" Or + ParentMenuItem.Name.ToUpper = "VIET" Then + + funCreateUltraStatButtonToolbar(tmppopMDI, ParentMenuItem, , "LanguageMode") + + ElseIf ParentMenuItem.Checkable = True Then + + funCreateUltraStatButtonToolbar(tmppopMDI, ParentMenuItem, btlEnabled) + + Else + + '產生UltraToolBar Button + btlMDI = New ButtonTool(ParentMenuItem.Name) + btlMDI.SharedProps.Tag = ParentMenuItem.Name + btlMDI.SharedProps.ToolTipText = ParentMenuItem.Name + btlMDI.SharedProps.Enabled = btlEnabled + + If Not ParentMenuItem.Icon Is Nothing Then + 'Image + imlMDI.Images.Add(ParentMenuItem.Icon) + + btlMDI.SharedProps.AppearancesSmall.Appearance.Image = imlMDI.Images.Count - 1 + + End If + + + btlMDI.SharedProps.Shortcut = ParentMenuItem.Shortcut + + UltraToolbarsManager1.Tools.Add(btlMDI) + tmppopMDI.Tools.AddRange(New Infragistics.Win.UltraWinToolbars.ToolBase() {btlMDI}) + + End If + + + End Sub + + Private Sub funCreateUltraStatButtonToolbar(ByRef tmppopMDI As PopupMenuTool, ByRef ParentMenuItem As iMESMenuItem, Optional ByVal btlEnabled As Boolean = True, Optional ByVal tmpOptionSetKey As String = "") + + '產生UltraToolBar Button + sbtMDI = New StateButtonTool(ParentMenuItem.Name) + sbtMDI.MenuDisplayStyle = Infragistics.Win.UltraWinToolbars.StateButtonMenuDisplayStyle.DisplayCheckmark + sbtMDI.SharedProps.Tag = ParentMenuItem.Name + sbtMDI.SharedProps.ToolTipText = ParentMenuItem.Name + sbtMDI.SharedProps.Enabled = btlEnabled + sbtMDI.OptionSetKey = tmpOptionSetKey + + If gLanguageMode.ToUpper = ParentMenuItem.Name.ToUpper Or ParentMenuItem.Checked = True Then + sbtMDI.Checked = True + End If + + + If Not ParentMenuItem.Icon Is Nothing Then + 'Image + imlMDI.Images.Add(ParentMenuItem.Icon) + + sbtMDI.SharedProps.AppearancesSmall.Appearance.Image = imlMDI.Images.Count - 1 + + End If + + sbtMDI.SharedProps.Shortcut = ParentMenuItem.Shortcut + + UltraToolbarsManager1.Tools.Add(sbtMDI) + tmppopMDI.Tools.AddRange(New Infragistics.Win.UltraWinToolbars.ToolBase() {sbtMDI}) + + End Sub + + Private Sub funCreateUltraToolbar(ByRef ParentMenuItem As iMESMenuItem) + + '產生UltraToolBar Button + If Not ParentMenuItem.Icon Is Nothing Then + 'Image + imlMDI.Images.Add(ParentMenuItem.Icon) + 'Button + btlMDI = New ButtonTool(ParentMenuItem.Name) + btlMDI.SharedProps.Tag = ParentMenuItem.Name + btlMDI.SharedProps.ToolTipText = ParentMenuItem.Name + btlMDI.SharedProps.AppearancesSmall.Appearance.Image = imlMDI.Images.Count - 1 + utbMDI.Tools.AddRange(New Infragistics.Win.UltraWinToolbars.ToolBase() {btlMDI}) + End If + + End Sub + +#End Region + + +#Region " UltraWinExplorerBar & UltraWinToolbars Events " + + + Private Sub uebRPTMenu_ItemClick(ByVal sender As System.Object, ByVal e As Infragistics.Win.UltraWinExplorerBar.ItemEventArgs) Handles uebMenu.ItemClick + ExecutingFunction(e.Item.Key) + End Sub + + Private Sub uebRPTMenu_ItemDoubleClick(ByVal sender As System.Object, ByVal e As Infragistics.Win.UltraWinExplorerBar.ItemEventArgs) Handles uebMenu.ItemDoubleClick + ExecutingFunction(e.Item.Key) + End Sub + + Private Sub UltraToolbarsManager1_ToolClick(ByVal sender As System.Object, ByVal e As Infragistics.Win.UltraWinToolbars.ToolClickEventArgs) Handles UltraToolbarsManager1.ToolClick + + Dim strOptionSetKey As String = "" + + If (e.Tool.GetType Is GetType(StateButtonTool)) Then + strOptionSetKey = CType(e.Tool, StateButtonTool).OptionSetKey + End If + + ExecutingFunction(e.Tool.Key, strOptionSetKey) + + End Sub + + Protected Sub ExecutingFunction(ByVal FunctionKey As String, Optional OptionSetKey As String = "") + Dim strFormName As String + Dim TempChild As Form + Dim CurrentForm As Form + Cursor.Current = Cursors.WaitCursor + Try + + ' 2016/05/09 YF, 重新產生選單 + If OptionSetKey = "MODULE" Then + ModuleNo = FunctionKey.Replace("Module", "") + GenerateMenu() + Exit Sub + End If + + Select Case FunctionKey.ToUpper + Case "EXIT" + 'End + Me.Close() + Case "CASCADE" + Me.LayoutMdi(MdiLayout.Cascade) + Case "VERTICAL" + Me.LayoutMdi(MdiLayout.TileVertical) + Case "HORIZONTAL" + Me.LayoutMdi(MdiLayout.TileHorizontal) + + 'Change Language Mode + Case "zh-CHT".ToUpper + gLanguageMode = "zh-CHT" + + iMESExceptionManager.ExceptionManager.LanguageMode = gLanguageMode + + CurrentForm = Form.ActiveForm + + If Not CurrentForm Is Nothing Then + Call ExeChangeResource(CurrentForm, gLanguageMode) + End If + + '變更畫面上的表單(僅限MDI Child Form) + + For Each TempChild In Me.MdiChildren + If Not (TempChild Is CurrentForm) Then + Call ExeChangeResource(TempChild, gLanguageMode) + End If + Next + + '變更其他語系的Checked為False + 'Call funChangeChecked(mnuMenuItem) + + Case "zh-CHS".ToUpper + gLanguageMode = "zh-CHS" + + iMESExceptionManager.ExceptionManager.LanguageMode = gLanguageMode + + CurrentForm = Form.ActiveForm + + If Not CurrentForm Is Nothing Then + Call ExeChangeResource(CurrentForm, gLanguageMode) + End If + + '變更畫面上的表單(僅限MDI Child Form) + + For Each TempChild In Me.MdiChildren + If Not (TempChild Is CurrentForm) Then + Call ExeChangeResource(TempChild, gLanguageMode) + End If + Next + + '變更其他語系的Checked為False + 'Call funChangeChecked(mnuMenuItem) + + Case "en".ToUpper + gLanguageMode = "en" + + iMESExceptionManager.ExceptionManager.LanguageMode = gLanguageMode + + CurrentForm = Form.ActiveForm + + If Not CurrentForm Is Nothing Then + Call ExeChangeResource(CurrentForm, gLanguageMode) + End If + + '變更畫面上的表單(僅限MDI Child Form) + For Each TempChild In Me.MdiChildren + If Not (TempChild Is CurrentForm) Then + Call ExeChangeResource(TempChild, gLanguageMode) + End If + Next + + '變更其他語系的Checked為False + 'Call funChangeChecked(mnuMenuItem) + + Case "jp".ToUpper + gLanguageMode = "jp" + + iMESExceptionManager.ExceptionManager.LanguageMode = gLanguageMode + + CurrentForm = Form.ActiveForm + + If Not CurrentForm Is Nothing Then + Call ExeChangeResource(CurrentForm, gLanguageMode) + End If + + '變更畫面上的表單(僅限MDI Child Form) + For Each TempChild In Me.MdiChildren + If Not (TempChild Is CurrentForm) Then + Call ExeChangeResource(TempChild, gLanguageMode) + End If + Next + + '變更其他語系的Checked為False + 'Call funChangeChecked(mnuMenuItem) + + Case "kor".ToUpper 'Korea(韓國語系) + gLanguageMode = "kor" + + iMESExceptionManager.ExceptionManager.LanguageMode = gLanguageMode + + CurrentForm = Form.ActiveForm + + If Not CurrentForm Is Nothing Then + Call ExeChangeResource(CurrentForm, gLanguageMode) + End If + + '變更畫面上的表單(僅限MDI Child Form) + For Each TempChild In Me.MdiChildren + If Not (TempChild Is CurrentForm) Then + Call ExeChangeResource(TempChild, gLanguageMode) + End If + Next + + '變更其他語系的Checked為False + 'Call funChangeChecked(mnuMenuItem) + + Case "thai".ToUpper 'Thailand(泰國語系) + gLanguageMode = "thai" + + iMESExceptionManager.ExceptionManager.LanguageMode = gLanguageMode + + CurrentForm = Form.ActiveForm + + If Not CurrentForm Is Nothing Then + Call ExeChangeResource(CurrentForm, gLanguageMode) + End If + + '變更畫面上的表單(僅限MDI Child Form) + For Each TempChild In Me.MdiChildren + If Not (TempChild Is CurrentForm) Then + Call ExeChangeResource(TempChild, gLanguageMode) + End If + Next + + '變更其他語系的Checked為False + 'Call funChangeChecked(mnuMenuItem) + + Case "viet".ToUpper 'VietNam(越南語系) + gLanguageMode = "viet" + + iMESExceptionManager.ExceptionManager.LanguageMode = gLanguageMode + + CurrentForm = Form.ActiveForm + + If Not CurrentForm Is Nothing Then + Call ExeChangeResource(CurrentForm, gLanguageMode) + End If + + '變更畫面上的表單(僅限MDI Child Form) + For Each TempChild In Me.MdiChildren + If Not (TempChild Is CurrentForm) Then + Call ExeChangeResource(TempChild, gLanguageMode) + End If + Next + + '變更其他語系的Checked為False + 'Call funChangeChecked(mnuMenuItem) + + Case "ABOUTME" + strFormName = "frmAboutMe" + blnShow = False + For i = 0 To Me.MdiChildren.Length - 1 + If Me.MdiChildren(i).Name = strFormName Then + Me.MdiChildren(i).Focus() + blnShow = True + Exit For + End If + Next + + If blnShow = False Then '目前沒有顯示 + + Dim mainAssembly As System.Reflection.Assembly = LoadAssembly("COM_AboutMe.dll") + + If (mainAssembly Is Nothing) Then + Exit Sub + End If + + Dim objForm As Form = mainAssembly.CreateInstance(mainAssembly.GetName.Name & "." & strFormName) + + If objForm Is Nothing Then 'Form不存在 + MsgBox("Form : " & strFormName & " is not exist!!", MsgBoxStyle.Exclamation) + Exit Sub + End If + + objForm.MdiParent = MDI_Panel.ActiveForm + objForm.AutoScaleMode = Windows.Forms.AutoScaleMode.None + objForm.Show() + + End If + + Case Else + + Dim strExecutionFile As String = dsData.Tables(strUserPriv).Select("FunctionNo='" & FunctionKey & "'")(0)("ExecutionFile") + strFormName = dsData.Tables(strUserPriv).Select("FunctionNo='" & FunctionKey & "'")(0)("FormName") + + If (Not Application.OpenForms.Item(strFormName) Is Nothing) AndAlso (strFormName <> "frmRPT_Script") Then + If Application.OpenForms.Item(strFormName).WindowState <> FormWindowState.Normal Then Application.OpenForms.Item(strFormName).WindowState = FormWindowState.Normal + Application.OpenForms.Item(strFormName).Focus() + Exit Sub + End If + + Dim mainAssembly As System.Reflection.Assembly = LoadAssembly(strExecutionFile) + + If (mainAssembly Is Nothing) Then + Exit Sub + End If + + 'Show Form + 'Dim mainAssembly As System.Reflection.Assembly = System.Reflection.Assembly.GetExecutingAssembly + 'Dim objForm As Form = mainAssembly.CreateInstance(mainAssembly.EntryPoint.ReflectedType.Namespace & "." & strFormName) + Dim objForm As Form = mainAssembly.CreateInstance(mainAssembly.GetName.Name & "." & strFormName) + + If objForm Is Nothing Then 'Form不存在 + MsgBox("Form : " & strFormName & " is not exist!!", MsgBoxStyle.Exclamation) + Exit Sub + End If + + objForm.MdiParent = MDI_Panel.ActiveForm + + '設定值予公用變數 + Dim myfieldinfo() As System.Reflection.FieldInfo + Dim myType As Type = objForm.GetType + Dim i As Integer + myfieldinfo = myType.GetFields() + For i = 0 To myfieldinfo.Length - 1 + If myfieldinfo(i).Name.ToUpper = "PrivFunNo".ToUpper Then + myfieldinfo(i).SetValue(objForm, FunctionKey) + End If + Next i + objForm.AutoScaleMode = Windows.Forms.AutoScaleMode.None + objForm.Show() + + End Select + + Catch ex As Exception + MsgBox("This Function can not be executed. " & ex.Message, MsgBoxStyle.Exclamation, "Warning") + 'ExceptionManager.iMESShowDialog(defWinErrCode, ex.Message, ex.StackTrace) + End Try + Cursor.Current = Cursors.Default + End Sub + +#End Region + + Private Sub funLoadUserPriv() + + If (Not dsData.Tables(strUserPriv) Is Nothing) Then + dsData.Tables.Remove(strUserPriv) + End If + + Dim XmlDoc As New XmlDocument '處理Xml字串之物件? + Dim tmpStringReader As System.IO.StringReader '將字串轉換成可讀入DataSet的物件 + Dim InXml, OutXml, strIdentity, strParameter As String '呼叫WS的字串參數 + Dim XmlData, XmlSchema As String '儲存取回之資料及資料結構 + + '組InXml的字串 + strIdentity = CombineXMLIdentity(gComputerName, gUserNo, GetNow()) + strParameter = CombineXMLParameter("userno", "UserNo", "String", gUserNo, "") + strParameter = strParameter & CombineXMLParameter("moduleno", "ModuleNo", "String", ModuleNo, "") + InXml = CombineXMLRequest(strIdentity, strParameter) + + Try + OutXml = InvokeSrv("wsUSR.LoadUserPriv", InXml) + XmlDoc.LoadXml(OutXml) + + If ChkExecutionSuccess(XmlDoc) Then + strUserPriv = XmlDoc.GetElementsByTagName("returnvalue").Item(0).SelectNodes("loaduserpriv").Item(0).SelectNodes("name").Item(0).InnerXml + '取出Data + XmlData = XmlDoc.DocumentElement.GetElementsByTagName("loaduserpriv").Item(0).SelectNodes("value").Item(0).InnerXml + If XmlData <> "" Then + tmpStringReader = New System.IO.StringReader(XmlData) + dsData.ReadXml(tmpStringReader, XmlReadMode.InferSchema) + tmpStringReader.Close() + End If + Else + MsgBox(GetExceptionSysMsg(XmlDoc) & Chr(13) & GetExceptionMesMsg(XmlDoc), MsgBoxStyle.Exclamation) + Exit Sub + End If + + Catch e1 As Exception + MsgBox("Unexpected Error. Load User's Priv Failed," & e1.Message, MsgBoxStyle.Exclamation) + Finally + XmlDoc = Nothing + tmpStringReader = Nothing + + End Try + + End Sub + + Protected Overrides Sub Finalize() + MyBase.Finalize() + End Sub + + Public Sub funGetEnterpriseNo() + + Dim XmlDoc As New XmlDocument + Dim tmpStringReader As System.IO.StringReader + Dim InXml, OutXml, strIdentity, strParameter, XmlData, XmlSchema, strPara As String + Dim dsTemp As New DataSet + + strIdentity = CombineXMLIdentity(gComputerName, gUserNo, GetNow()) + strParameter = CombineXMLParameter("parameterno", "ParameterNo", "String", "EnterpriseNo", "") + InXml = CombineXMLRequest(strIdentity, strParameter) + + Try + + OutXml = InvokeSrv("wsSYS.LoadParameter", InXml) + + XmlDoc.LoadXml(OutXml) + + If ChkExecutionSuccess(XmlDoc) Then + + strPara = XmlDoc.GetElementsByTagName("returnvalue").Item(0).SelectNodes("loadparameter").Item(0).SelectNodes("name").Item(0).InnerXml + + XmlSchema = XmlDoc.DocumentElement.GetElementsByTagName("loadparameter").Item(0).SelectNodes("schema").Item(0).InnerXml + + If XmlSchema <> "" Then + '將XML讀入String Reader object中,因為Dataset讀入XML時必須透過String Reader物件 + tmpStringReader = New System.IO.StringReader(XmlSchema) + dsTemp.ReadXmlSchema(tmpStringReader) + tmpStringReader.Close() + End If + + XmlData = XmlDoc.DocumentElement.GetElementsByTagName("loadparameter").Item(0).SelectNodes("value").Item(0).InnerXml + + If XmlData <> "" Then + tmpStringReader = New System.IO.StringReader(XmlData) + dsTemp.ReadXml(tmpStringReader, XmlReadMode.InferSchema) + tmpStringReader.Close() + End If + + If dsTemp.Tables(strPara).Rows.Count > 0 Then + gEnterpriseNo = dsTemp.Tables(strPara).Rows(0)("ParameterValue").ToString.ToUpper + End If + + Else + MsgBox(GetExceptionSysMsg(XmlDoc) & Chr(13) & GetExceptionMesMsg(XmlDoc), MsgBoxStyle.Exclamation) + End If + + Catch ex As Exception + MsgBox("Unexpected Error. GetEnterpriseNo failed, " & ex.Message, MsgBoxStyle.Exclamation) + Finally + XmlDoc = Nothing + tmpStringReader = Nothing + dsTemp = Nothing + End Try + + End Sub + + ' 2016/05/09 YF, 產生模組選單 + Private Sub GenerateModuleItems() + + Dim aryModule() As String = {"AUT", "DT", "EMS", "ENT", "EQP", "IEW", "INV", "ISU", "MSA", "MTL", "OE", "OP", "PM", "PRD", "PRS", "QC", "RPT", "SMD", "SPC", "SYS", "USR", "WIP"} + Dim popModule As PopupMenuTool + Dim sbt As StateButtonTool + + Try + + popModule = New PopupMenuTool("MODULE") + popModule.SharedProps.Tag = "MODULE" + popModule.SharedProps.ToolTipText = "MODULE" + UltraToolbarsManager1.Tools.Add(popModule) + + '產生UltraToolBar Button + For Each m As String In aryModule + + sbt = New StateButtonTool(m & "Module") + sbt.MenuDisplayStyle = Infragistics.Win.UltraWinToolbars.StateButtonMenuDisplayStyle.DisplayCheckmark + sbt.CustomizedCaption = m + sbt.SharedProps.Tag = m + sbt.SharedProps.ToolTipText = m + sbt.SharedProps.Enabled = True + sbt.OptionSetKey = "MODULE" + + If ModuleNo = m Then + sbt.Checked = True + End If + + UltraToolbarsManager1.Tools.Add(sbt) + popModule.Tools.AddRange(New Infragistics.Win.UltraWinToolbars.ToolBase() {sbt}) + + Next + + Me.utbMDIMenu.Tools.AddRange(New Infragistics.Win.UltraWinToolbars.ToolBase() {popModule}) + + Me.utbMDIMenu.Tools.Item("MODULE").CustomizedIsFirstInGroup = DefaultableBoolean.True + + Catch ex As Exception + MsgBox("GenerateModuleMenu failed, " & ex.Message, MsgBoxStyle.Exclamation) + End Try + + End Sub + + Private Sub GenerateMenu() + + Try + + ' 2016/05/09 YF, 清空選單 + RemoveObject() + + '取出User Privileges + Call funLoadUserPriv() + + '1.Create MainMenu------------------------------------------------------------------------------------------------------------- + Dim strFileName As String + strFileName = GetMainMenuFileName() + + '檢查檔案是否存在 + If Dir(strFileName) = "" Then 'File not exist + MsgBox(strFileName & vbCrLf & "is not exist,Load MDI Form failed!!", MsgBoxStyle.Exclamation) + Exit Sub + End If + + '將處理 MenuItem 被點選的函數以 EventHandler Delegation 傳給 mnuMainMenu + Dim mnuMainMenu As New iMESMainMenu.iMESMainMenuControl(strFileName, Nothing) + + 'Add ExplorerBar MainMenu By carl 2007.08.14 + Dim j As Integer + Dim tempMenuSplit As Integer = defInteger + Dim panelmenu As MainMenu = New MainMenu(mnuMainMenu.CreateMainMenu(ModuleNo)) + Dim tmpMenuItem1 As iMESMenuItem + Dim tmpPopMenu As PopupMenuTool + UltraDockManager1.ControlPanes(0).Pinned = False + UltraDockManager1.ShowCloseButton = False + + uebMenu.GroupSettings.AllowDrag = DefaultableBoolean.False + uebMenu.GroupSettings.AllowEdit = DefaultableBoolean.False + uebMenu.GroupSettings.AllowItemDrop = DefaultableBoolean.False + uebMenu.ItemSettings.AllowDragCopy = UltraWinExplorerBar.ItemDragStyle.None + uebMenu.ItemSettings.AllowDragMove = UltraWinExplorerBar.ItemDragStyle.None + uebMenu.ItemSettings.AllowEdit = DefaultableBoolean.False + uebMenu.ShowDefaultContextMenu = False + + uebMenu.ItemSettings.UseDefaultImage = Infragistics.Win.DefaultableBoolean.False + uebMenu.ItemSettings.MaxLines = 2 + + If Not dsData.Tables(strUserPriv) Is Nothing Then '沒有任何權限,所有Privilege MenuItem都不可使用 + + For i = 0 To panelmenu.MenuItems.Count - 1 + tmpMenuItem1 = CType(panelmenu.MenuItems(i), iMESMenuItem) + + If i <= panelmenu.MenuItems.Count - 4 Then + uebMenu.Groups.Add(tmpMenuItem1.Text.ToUpper) + uebMenu.Groups(i).Expanded = True + End If + + If tmpMenuItem1.Name.ToUpper = "EXIT" Then + + funCreateUltraButtonMenuToolbar(tmpMenuItem1) + + Else + + tmpPopMenu = funCreateUltraPopupMenuToolbar(tmpMenuItem1) + + For j = 0 To tmpMenuItem1.MenuItems.Count - 1 + If CType(tmpMenuItem1.MenuItems(j), iMESMenuItem).MenuType = iMESMenuItem.mesMenuType.MenuPrivilege Then + If dsData.Tables(strUserPriv).Select("FunctionNo='" & tmpMenuItem1.MenuItems(j).Text.ToUpper & "'").Length > 0 Then + funCreateUltraMenuItemToolbar(tmpPopMenu, CType(tmpMenuItem1.MenuItems(j), iMESMenuItem)) + + uebMenu.Groups(i).Items.Add(tmpMenuItem1.MenuItems(j).Text) + + funCreateUltraToolbar(CType(tmpMenuItem1.MenuItems(j), iMESMenuItem)) + + If tempMenuSplit = j Then + tmpPopMenu.Tools(tmpMenuItem1.MenuItems(j).Text).InstanceProps.IsFirstInGroup = True + End If + + Else + funCreateUltraMenuItemToolbar(tmpPopMenu, CType(tmpMenuItem1.MenuItems(j), iMESMenuItem), False) + + If tempMenuSplit = j Then + tmpPopMenu.Tools(tmpMenuItem1.MenuItems(j).Text).InstanceProps.IsFirstInGroup = True + End If + + End If + + ElseIf CType(tmpMenuItem1.MenuItems(j), iMESMenuItem).MenuType = iMESMenuItem.mesMenuType.MenuString Then + + + funCreateUltraMenuItemToolbar(tmpPopMenu, CType(tmpMenuItem1.MenuItems(j), iMESMenuItem)) + + If tempMenuSplit = j Then + tmpPopMenu.Tools(tmpMenuItem1.MenuItems(j).Text).InstanceProps.IsFirstInGroup = True + End If + + ElseIf CType(tmpMenuItem1.MenuItems(j), iMESMenuItem).MenuType = iMESMenuItem.mesMenuType.MenuSplit Then + + tempMenuSplit = j + 1 + + End If + + Next + + utbMDIMenu.Tools.AddRange(New Infragistics.Win.UltraWinToolbars.ToolBase() {tmpPopMenu}) + + End If + + Next + + End If + + 'Add UltraToolBar----------------------------------------------------------------------------------------------------------------- + If utbMDI.Tools.Count > 0 Then + imlMDI.ImageSize = New Size(24, 24) + utbMDI.Text = "Toolbar" + utbMDI.Settings.ToolDisplayStyle = ToolDisplayStyle.ImageAndText + utbMDI.Settings.CaptionPlacement = TextPlacement.Default + utbMDI.IsMainMenuBar = False + utbMDI.DockedPosition = DockedPosition.Top + UltraToolbarsManager1.Style = ToolbarStyle.Office2003 + UltraToolbarsManager1.ImageListSmall = imlMDI + UltraToolbarsManager1.Toolbars.Add(utbMDI) + End If + + 'Add Menu UltraToolBar----------------------------------------------------------------------------------------------------------------- + If utbMDIMenu.Tools.Count > 0 Then + imlMDI.ImageSize = New Size(24, 24) + utbMDIMenu.Text = "MainMenu" + utbMDIMenu.Settings.ToolDisplayStyle = ToolDisplayStyle.ImageAndText + utbMDIMenu.Settings.CaptionPlacement = TextPlacement.Default + utbMDIMenu.IsMainMenuBar = True + utbMDIMenu.DockedPosition = DockedPosition.Top + UltraToolbarsManager1.OptionSets.Add(OptionSet1) + UltraToolbarsManager1.Style = ToolbarStyle.Office2003 + UltraToolbarsManager1.ImageListSmall = imlMDI + UltraToolbarsManager1.Toolbars.Add(utbMDIMenu) + UltraToolbarsManager1.Toolbars("MainMenu").ToolbarsManager.ToolbarSettings.ToolSpacing = 5 + End If + + ' 2016/05/09 YF, 產生模組選單 + GenerateModuleItems() + + Catch ex As Exception + MsgBox("GenerateMenuItem failed, " & ex.Message, MsgBoxStyle.Exclamation) + Finally + Me.Text = "Test" + ExeChangeResource(Me, gLanguageMode) + End Try + + End Sub + + Private Sub RemoveObject() + + uebMenu.Groups.Clear() + utbMDIMenu.Tools.Clear() + utbMDI.Tools.Clear() + UltraToolbarsManager1.Toolbars.Clear() + UltraToolbarsManager1.Tools.Clear() + UltraToolbarsManager1.OptionSets.Clear() + Me.UltraDockManager1.DockAreas(0).Panes.Item(0).Text = ModuleNo + Me.UltraDockManager1.DockAreas(0).Panes.Item(0).Key = ModuleNo & "Module" + + For i As Integer = Application.OpenForms.Count - 1 To 0 Step -1 + + If (Application.OpenForms.Item(i).Name <> "MDI_Panel") Then + Application.OpenForms.Item(i).Close() + End If + + Next + + End Sub + +End Class diff --git a/SRC/MESWin/Test/My Project/Application.Designer.vb b/SRC/MESWin/Test/My Project/Application.Designer.vb new file mode 100644 index 0000000..4f9342a --- /dev/null +++ b/SRC/MESWin/Test/My Project/Application.Designer.vb @@ -0,0 +1,13 @@ +'------------------------------------------------------------------------------ +' +' 這段程式碼是由工具產生的。 +' 執行階段版本:4.0.30319.42000 +' +' 對這個檔案所做的變更可能會造成錯誤的行為,而且如果重新產生程式碼, +' 變更將會遺失。 +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + diff --git a/SRC/MESWin/Test/My Project/Application.myapp b/SRC/MESWin/Test/My Project/Application.myapp new file mode 100644 index 0000000..758895d --- /dev/null +++ b/SRC/MESWin/Test/My Project/Application.myapp @@ -0,0 +1,10 @@ + + + false + false + 0 + true + 0 + 1 + true + diff --git a/SRC/MESWin/Test/My Project/AssemblyInfo.vb b/SRC/MESWin/Test/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..d43ca3b --- /dev/null +++ b/SRC/MESWin/Test/My Project/AssemblyInfo.vb @@ -0,0 +1,35 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' 組件的一般資訊是由下列的屬性集控制。 +' 變更這些屬性的值即可修改組件的相關 +' 資訊。 + +' 檢閱組件屬性的值 + + + + + + + + + + +'下列 GUID 為專案公開 (Expose) 至 COM 時所要使用的 typelib ID + + +' 組件的版本資訊由下列四個值所組成: +' +' 主要版本 +' 次要版本 +' 組建編號 +' 修訂編號 +' +' 您可以指定所有的值,也可以依照以下的方式,使用 '*' 將組建和修訂編號 +' 指定為預設值: +' + + + diff --git a/SRC/MESWin/Test/My Project/Resources.Designer.vb b/SRC/MESWin/Test/My Project/Resources.Designer.vb new file mode 100644 index 0000000..3995654 --- /dev/null +++ b/SRC/MESWin/Test/My Project/Resources.Designer.vb @@ -0,0 +1,73 @@ +'------------------------------------------------------------------------------ +' +' 這段程式碼是由工具產生的。 +' 執行階段版本:4.0.30319.42000 +' +' 對這個檔案所做的變更可能會造成錯誤的行為,而且如果重新產生程式碼, +' 變更將會遺失。 +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + +Imports System + +Namespace My.Resources + + '這個類別是自動產生的,是利用 StronglyTypedResourceBuilder + '類別透過 ResGen 或 Visual Studio 這類工具。 + '若要加入或移除成員,請編輯您的 .ResX 檔,然後重新執行 ResGen + '(利用 /str 選項),或重建您的 VS 專案。 + ''' + ''' 用於查詢當地語系化字串等的強類型資源類別。 + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' 傳回這個類別使用的快取的 ResourceManager 執行個體。 + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If Object.ReferenceEquals(resourceMan, Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("Test.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' 覆寫目前執行緒的 CurrentUICulture 屬性,對象是所有 + ''' 使用這個強類型資源類別的資源查閱。 + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set + resourceCulture = value + End Set + End Property + + ''' + ''' 查詢類型 System.Byte[] 的當地語系化資源。 + ''' + Friend ReadOnly Property iMES() As Byte() + Get + Dim obj As Object = ResourceManager.GetObject("iMES", resourceCulture) + Return CType(obj,Byte()) + End Get + End Property + End Module +End Namespace diff --git a/SRC/MESWin/Test/My Project/Resources.resx b/SRC/MESWin/Test/My Project/Resources.resx new file mode 100644 index 0000000..c14f0b3 --- /dev/null +++ b/SRC/MESWin/Test/My Project/Resources.resx @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\resources\imes.isl;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/SRC/MESWin/Test/My Project/Settings.Designer.vb b/SRC/MESWin/Test/My Project/Settings.Designer.vb new file mode 100644 index 0000000..d0b470b --- /dev/null +++ b/SRC/MESWin/Test/My Project/Settings.Designer.vb @@ -0,0 +1,73 @@ +'------------------------------------------------------------------------------ +' +' 這段程式碼是由工具產生的。 +' 執行階段版本:4.0.30319.42000 +' +' 對這個檔案所做的變更可能會造成錯誤的行為,而且如果重新產生程式碼, +' 變更將會遺失。 +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + +Namespace My + + _ + Partial Friend NotInheritable Class MySettings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings) + +#Region "My.Settings 自動儲存功能" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + Private Shared addedHandlerLockObject As New Object + + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As MySettings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If +#End If + Return defaultInstance + End Get + End Property + End Class +End Namespace + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.Test.My.MySettings + Get + Return Global.Test.My.MySettings.Default + End Get + End Property + End Module +End Namespace diff --git a/SRC/MESWin/Test/My Project/Settings.settings b/SRC/MESWin/Test/My Project/Settings.settings new file mode 100644 index 0000000..f7f176a --- /dev/null +++ b/SRC/MESWin/Test/My Project/Settings.settings @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/SRC/MESWin/Test/My Project/licenses.licx b/SRC/MESWin/Test/My Project/licenses.licx new file mode 100644 index 0000000..e69de29 diff --git a/SRC/MESWin/Test/Resources/iMES.isl b/SRC/MESWin/Test/Resources/iMES.isl new file mode 100644 index 0000000..0679a67 --- /dev/null +++ b/SRC/MESWin/Test/Resources/iMES.isl @@ -0,0 +1,4303 @@ + + + + 2015-02-05T03:06:30 + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA3gMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADgElEQVRoQ+2XzWsTQRjGq/Qk1YOgFz3qHyLFi4LeRAri0YMHTx68eCseBMFL8W+waGPRIoixYkUrUmgVaZKaNJ/bbNpNm48mjUle531lttPpZGcm0IvMAw+Tncy7s89vZ2eTkVwuB7aOx+PWnpyctPax52k4bmEcP0wNQWi328auVCoUykYcQqPRMDaOx4u0EQ9mIxzvIDgIDgLJQWByEJgcBCYHgclBYHIQmBwEphACBjN1sVikULbGULbmoY7aI6urq2BrVUidVSF1tv0zNIzpDxSGspHneRTKRhyCatkPMo7Hi7QRD2YjHO8gmEDodrtQKBSgWq3SsQmErb0eXF/YgGe/a3RsAiFfrcHVj0V4+qtCxyYQ5HlMIKhqIiEggFKpRPsAgkDpIOAkE199GGEnv7ZQpj4dBARwY6FENVfmi9Sng6CaRwdhUM1ACP1+nwLj9/gGQSCoKAidXh9uf/Npsxmf92Cj9a8mCkK11oCJzyWqufS+AOmgRv1REAbNEwUhqiaEgL8BMGyz2aTjIAggkUhAOp2G3d1d6kOJEJa39+DyR3bst4DNAY8T23DiRQYuzuXhU6VFY1AihEVvG8bjBZjLBlCrs7ArPtVceJOFd/kghCNCMJ1HhGBTE0Iol8t019fW1sD3fUgmk5BKpaDV2i9AiRDuLm0S2fOvc3B/eQtOzazD2dksfNls0/dcIoQ7ix7VnJtdh3vfN+DkywycebUOH/LVEIAMwXQeEYJNzYHHAQPi3cc+BMBXhSj5cbi1WIbR6Qw9Z6djWXjr7a8aLhEC+iZb/qPTbHKsmclALLO/ArhFCCiTeUQIKNOaAxB6vR79KsRVgI8D7guyZAjNPz14+DOAMXZHnyR3oNU9XCND8Hfq8GCpDGNseT764cNmrX4AAFqGYDKPDMG05tDGiME7nY4SAEqGgMKTp+od2nxUkiGgMfiKv0Mbo9jPLUNA6eaRIaBMag5B0EkFQScVBJ1VEHRSQdAphIDBTI1vCwxlawxlax7qqE3/Im2tCqmzKqTOuLurLnqQcfwwNQTBRhyCjTgEG8ViMbpIG+FbYJiaEAK/y1Hm4zgEOoHGKBGCaoxslAhBNUY2HzdMjYOAn8VwOvNxDgJrHQTWOgisdRBY6yCw1kFg7X8LwVQiBFOJEEwlQjAVBhqmhiDYGkPZGiFgMFNPTU2Fd+xonYa/RnTXOFz4kRIAAAAASUVORK5CYIILAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + + + + 249, 249, 249 + MiddleCenter + + + + + White + Segoe UI, 9pt + 75, 75, 75 + MiddleLeft + MiddleLeft + + + + + White + Segoe UI, 8.25pt + 75, 75, 75 + + + + + White + Segoe UI, 9pt + 75, 75, 75 + + + + + 75, 75, 75 + White + 0, 170, 222 + White + Silver + Left + Long + False + False + + + + + White + Segoe UI, 9pt + 75, 75, 75 + + + + + White + Flat + Segoe UI, 9pt + 75, 75, 75 + + + + + White + None + Microsoft Sans Serif, 12pt + 0, 170, 222 + MiddleCenter + + + + + 0, 170, 222 + White + None + Gainsboro + Flat + Segoe UI, 9.75pt, style=Bold + MiddleCenter + AlwaysUnderline + 133, 133, 133 + MiddleCenter + 179, 230, 245 + + + + + White + FixedSingle + Segoe UI, 9pt + 75, 75, 75 + + + + + True + White + FixedSingle + Segoe UI, 9pt + 75, 75, 75 + Nonclickable + LargeIcon + + + + + White + 75, 75, 75 + True + True + 0, 170, 222 + White + 191, 191, 191 + + + + + White + None + Segoe UI, 8.25pt + 75, 75, 75 + + + + + White + None + + + + + White + White + 75, 75, 75 + Segoe UI, 9pt + White + White + True + White + True + White + 75, 75, 75 + + + + + White + Segoe UI, 9pt + 75, 75, 75 + MiddleCenter + MiddleLeft + + + + + White + None + 75, 75, 75 + + + + + White + None + 75, 75, 75 + + + + + 133, 133, 133 + None + + + + + Segoe UI, 9pt + True + + + + + White + FixedSingle + Segoe UI, 9pt + 75, 75, 75 + Left + + + + + White + + + + + White + None + False + Segoe UI, 9pt + 75, 75, 75 + False + False + True + 25 + False + True + True + + + + + White + Segoe UI, 8.25pt + 75, 75, 75 + + + + + + True + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA7QMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADj0lEQVRoQ+2YzWsTQRiHq/Qk1YOgFz0q/h1SvCjoTaQgXgQPHjx58OKteBAEL8W/waKNRasgxhYrpiqFVrFNUpPmu9k0SZuPJo1JXuf3ym4n2012JuBtHvgddjNvZt9nZycfI8lkknQTDAa1Mzk5qZ0jz2N0VCMYP0wNS2g2m8opFArclA5ra2vcVK1WU04gEOCL1OH2t8JQNUaCkWAkMEaCwEgQGAkCI0FgJAiMBIGRIHAkoDHVZDIZloDGVBMKhVgCGlPN1NQUf6/HRarmwtvUUDUj6+vrpBtI0A0k6GaYH0PD1LAEHXK5HDelgy3Ba9n3C8bjInWwG9MB440EFQntdpvS6TSVy2U+VpFQ3O/QtcUteva7wscqElLlCl1ZyNDTXwU+VpHgnkdFglfNQAkQkM1meR+ACOAnAZNMhCwaEW9+dTHP5/wkQMD1xSzXXJ7P8Dk/CV7z+EnoV9NXQrfb5YbxOj5BIAQMktDqdOnWV4s3m/H5HG01/tUMklCu1Gjic5ZrLn5IU6xU4fODJPSbZ5CEQTWOBHwHQLP1ep2PS6UShcNhisVitLe3x+eALGFlZ58uLYhjq0FiDnoc3qFjL+J0fi5FnwoNHgNkCUu5HRoPpmkuUaJKVTS7anHNuTcJep8qOXJkCarzyBJ0ahwJ+Xye7/rGxgZZlkWRSISi0Sg1GgcFQJZwd3mbzZ59naT7K0U6MbNJp2cT9GW7ya/byBLuLOW45szsJt37vkXHX8bp1KtN+pgqOwLcElTnkSXo1PQ8DmgQdx/nIMBeFTLux+HmUp5Gp+P8nJ0MJOhd7mDV2MgSkBti+Y9Oi8lRMxOnQPxgBdiRJQCVeWQJQLWmR0Kn0+FvhVgFeBywL7hxS6j/6dDDnyUaE3f0SWSXGu3DNW4J1m6VHiznaUwsz0c/LNquVHsEIG4JKvO4JajWHNoY0Xir1fIUANwSAN48Wm3x5uOFWwKCxletXd4Y5fN23BKA3zxuCUCl5pAEP7wk+OElwS9eEvzwkuCHIwGNqQafFmhKN2hKN3ZT/zv8K1I3Xk36xatJv2B397rofsH4YWpYgg7FYpGb0sGWoAPG4yJ1sBvTAeMdCfKd7hcgS8BHj1+ALMFrjDtAluA1xh0gS/Aa4w4wEgRGgsBIEBgJAiNBYCQIjASBkSDokaCKLEEVWYIqsgRVZAmqOBLQmGrwxyua0g2a0o3d1P9NjP4C33z6NGMDUeMAAAAASUVORK5CYIILAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAAvQMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADX0lEQVRoQ+2Xz2sTQRTHq/Qk1YOgFz3qHyLFi4LeRAri0YMHTx68eCseBMGbf4NFW4sWQYwtVrRFCq0iTVKT5kezzabdtPnRpDHJc97IbCfTyc68gEVhPvA97HReZt9nZyfN0OrqKlATi8XIGR8fJ+fY8xQcJwTnD1LDJTSbTesICRSEhFqtZh2cjzdJQTRGAec7CU6Ck8BxEhhOAsNJYDgJDCeB4SQwnARGKIEabIoabIoa0dTfzj8tgfpjCDNIDZdAQUigICTotn2/4Hy8QQqiKQpOAsNKQrvdhnw+D+VymV/bSNje78D1+U149rPCr20k5MoVuDq3AU9/lPi1jQR1HRsJuppICSigUCjwxlEEYpKAi4x98WGIffi1+SIfM0lAATfmC7zmyuwGHzNJ0K1jktCvpq+EbrcLnufxprPZLBeCRElodbpwe9Hnh9PorAebjT81URLKlRqMfSrwmkvv85AKKnw8SkK/daIkRNWEEvB/AGy2Xq/z6yAIIB6PQyqVgr29PT6GyBKWd/bh8pwHMb8BbA14HN+BEy/ScHEmBx9LDT4HkSUseDswGsvDTCaASpU1u+LzmgtvMvAuF4RyZAm268gSKDWhhGKxyBtcW1sD3/chkUhAMpmERuOgAJEl3F3a4mbPv87C/eVtODW5DmenM/B5q8n/LpAl3FnweM256XW493UTTr5Mw5lX6/AhVw4FqBJs15ElUGp6Xgfc/vj0cQwFiF0hI0tAbi0UYXgizd+z01MZeOsd7BqBLAFzk23/4Qm2ONZMpmEqfbADRGQJiM06sgTEtqZHQqfTgVKpxHcBvg54LqioEuq/OvDwewAj7Ik+SexCo324RpXg71bhwVIRRtj2fPTNh61KtUcARpVgs44qwbbm0MGIjbdaLa0ARJWA4Icnqy1++OhQJWCw8RV/lx+M8riIKgExraNKQGxqDkkwoZNgQifBFJ0EEzoJJkIJ1GBT1GBT1ODBJhqzzSA1Q/i1SI2uSVN0TZpypBIoCAkUhAQKOB9vkIJoikKPBPGUoyLmCQn41WMKIkvQzVGDyBJ0c9QgsgTdHDWIk8BwEhhOAsNJYDgJDCeB4SQw/hsJ/EYNEfMGqQkl2CJLsEWWYIsswRZZgi2hBGqwKWqwKWqO5rdDCn4DepjAZpDd1xAAAAAASUVORK5CYIILAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA8QMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADk0lEQVRoQ+2YTWsTURSGq3Ql1YWgG10q/g4pbhR0J1IQN4ILF65cuHEXXAiCm+JvsGhj0SqIscWKqUqhVWyT1KT5biZN0uajSWOS432PJL2ZTjL3DggK94EXOpM5uXOeuXNn0pFEIkG6CQQC2vH5fNo59DRKhzWC473UsIRGo6GcfD7PTemwurrKTVWrVeX4/X4+SR1ufsl7qjESjAQjgTESBEaCwEgQGAkCI0FgJAiMBEFPAhpTTTqdZgloTDXBYJAloDHVTE5O8ns9TlI1514nPdWMrK2tkW4gQTeQoBsvP4a81LAEHbLZLDelSiQS4dmAppym/aBgNuAkdcCV9VLz1yXkcrn/X0Kr1aJUKkWlUom3VSQU9tp0ZWGTnvws87aKhGSpTJfm0/T4R563VSTYx1GR4FQzVAIEZDIZXgcgArhJwCATQYtGxMlcXsjxPjcJEHB1IcM1F+fSvM9NgtM4bhIG1QyU0Ol0uGF8jicIhIBhEprtDt34bPFiMz6Xpc36n5phEkrlKk18zHDN+XcpihbLvH+YhEHjDJMwrKYnAe8AaLZWq/F2sVikUChE0WiUdnd3eR+QJSxv79GFebFt1UmMQQ9D23TkWYzOzibpQ77OxwBZwmJ2m8YDKZqNF6lcqZJvxeKaM6/i9DZZ7MmRJaiOI0vQqelJwAKGv9fX18myLAqHw7yy1+v7BUCWcHtpi82efpmgu8sFOja9QSdn4vRpq8Gfd5El3FrMcs2pmQ2683WTjj6P0YkXG/Q+WeoJsEtQHUeWoFPTdzugQVx97IOA7qyQsd8O1xdzNDoV4/vsuD9Ob7L7s6aL/Xa4Jqb/6JR4PqNmOkb+2P4M6MZ+O6iMI0sAqjV9EtrtNr8VYhbgdsC6YMcuofarTfe/F2lMXNFH4R2qtw7W2CVYOxW6t5SjMTE9H3yzaKtc6ROA2CWojGOXoFpzYGFE481m01EAsEsA+PJIpcmLjxNOCyMaX7F2eGGU93fjtDC6jWOXAFRqDkhww0mCG04S3OIkwQ0nCW70JKAx1eBpAQloTDX//A8oPBZ1Awm6gQTdoCFcWdXgeC81LEGHQqHATemA2YCmdMBswEnqgCvrpaYnQb7SgwJkCXj0uAXIEpyOsQfIEpyOsQfIEpyOsQcYCQIjQWAkCIwEgZEgMBIERoLASBD0SVBFlqCKLEEVWYIqsgRVehLQmGrwj1dIQGOq+bd/QCXpN3LrT59/MUO0AAAAAElFTkSuQmCCCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAASAIAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAAB6klEQVRoQ+2ZQUsCQRTHLTpFdOjQqWv0QaJr3YPo0q1z126ego7SZygqiahOS5GQFQRCICVlrqCuumFlmaa93hvMJtlwZmFDdt8P/gd33+C+3+7MOhgCFxiGoZ1wOKyd/8K1BB2SyaRoqlqtKicajbZHew9LQFgCwhIQloCwBIQlICwBYQkIS0BYAuJaAjWmmng8LiRQY6qJRCLtb/Me1xJ00894Ph1SqZR4GvoZzyVYlhVMCXa9BXOxAmzcPYvPgZNAAubjRQht3sNszBLHAiWh0fqExYsiDKCA6eM8FGpNcdzXEhKVOsyc5MEo1gD7h7WbCgxvp2HyIAunpZqoIXwtYfmqLO76xL4JKwkbRncfYHwvA2fld3H+G99Ph4VzC4a20mINGItm4Cj/1j7zg+8lvH60YPX6EUZ20rB++wS1Js6LLgKxMFLjqZeGWBidCISEXvhWAjWmGtpA9TMh0zRBNyRBN7SL1A29eQY1QvVuxggJOti2LZrSgZ4GakoH2k7TReqwdFlyNaYjQb7Tf4WQJdBrsVcIWYJTTXcIWYJTTXcIWYJTTXcIloCwBIQlICwBYQkIS0BYAsISkF8SVJElqCJLUEWWoIosQZWOBGpMNblcTkigxlTj9h8o+l1PF6maqcOsizFZ+AIGcQg8msEiNgAAAABJRU5ErkJgggsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA+QMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADm0lEQVRoQ+2YzWsTQRjGq/Qk1YOgFz0q/h1SvCjoTaQgXgQPHjx58OIteBAEL8W/waKNRasgxhYrpiqFVrFNUpPmu9k0SZuPJo1JXud5Jel0u8nOrAgq88AD2ck+mX1/87G7GUokEqTrQCCgbZ/Pp+0Dj6N0UMM430uGITQaDWXn83kuSkfLy8tcVLVaVbbf7+eL1NH1T3lPGQPBQDAQWAaCkIEgZCAIGQhCBoKQgSBkIAj1IKAwVafTaYaAwlQdDAYZAgpT9fj4OD/X4yJVfeZl0lNmaGVlhXQNCLoGBF17eRnykmEIOspms1yUqiKRCM8GFOU07fsZswEXqSOMrJfMH4eQy+X+fQitVotSqRSVSiU+VoFQ2GnTpbl1evS9zMcqEJKlMl2YTdPDb3k+VoFg70cFglNmIAQAyGQyvA8ABOQGAZ2MBS0aEhdzcS7HbW4QAODyXIYz52fS3OYGwakfNwj9Mn0hdDodLhjf4w4CINAgCM12h659tHizGZ3J0nr9V2YQhFK5SmPvM5w5+yZF0WKZ2wdB6NfPIAiDMj0IeAZAsbVajY+LxSKFQiGKRqO0vb3NbZAMYXFzh87NimOrTqIPuh/apENPYnR6Oknv8nU+B5IhzGc3aTSQoul4kcqVKvmWLM6cehGn18liD44MQbUfGYJOpgcBGxg+r66ukmVZFA6HeWev13cDkAzh5sIGkz35PEG3Fwt0ZHKNjk/F6cNGg7/vSoZwYz7LmRNTa3Tr8zodfhqjY8/W6G2y1ANgh6DajwxBJ7NnOaBAjD7aAKA7K2TZl8PV+RwNT8R4nR31x+lVdnfWdGVfDlfE9B+eEPdnZCZj5I/tzoCu7ctBpR8ZAqSa2QOh3W7zUyFmAZYD9gW77BBqP9p092uRRsSIPghvUb21P2OHYG1V6M5CjkbE9Lz3xaKNcmUPANgOQaUfOwTVzL6NEYU3m01HAJAdAoQfj1SavPk4yWljROFL1hZvjHJ7104bo1s/dgiQSmYfBDc5QXCTEwQ3O0FwkxMEN/UgoDBV424BCChM1X/9CxRui7oGBF0Dgq5REEZW1dgAvWQYgo4KhQIXpSPMBhSlI8wGXKSOUJCXTA+CPNL9DMkQ+AdcDMkQnM6xG5IhOJ1jd/c8LxkDAZ+7xdkLdjJkIAgZCEIGgpCBIGQgCBkIQv81BFXJEFQlQ1CVDEFVKMhLhiGgMFXjj1dAQGGq/p0XqO6oqVo/E6WfdBY2E/BzX6AAAAAASUVORK5CYIILAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA6wMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADjUlEQVRoQ+2XT2sTQRjGq/Qk1YOgFz0qfg4pXhT0JlIQL4IHD548ePEWPAiCl+JnsGhj0SqIscWKqUqhVWyT1KT532zapM2fJo1JXud5ZdPpdpOdWRAU5gcPdDfzdvb97exsMpRKpUg3oVBIO4FAQDuHnsbpsEYw3k8NS2g2m8opFovclA7Ly8vcVK1WU04wGOSL1OHml6KvGiPBSDASGCNBYCQIjASBkSAwEgRGgsBIEPQkoDHVZLNZloDGVBMOh1kCGlPN+Pg4f6/HRarm3Ou0r5qhlZUV0g0k6AYSdOPnx5CfGpagQz6f56ZUicVivBrQlNuy7xesBlykDrizfmr+uoRCofD/S2i325TJZKhcLvOxioTN3Q5dmVunJz8rfKwiIV2u0KXZLD3+UeRjFQnOeVQkuNUMlAABuVyO9wGIAF4SMMlY2KIhcTGX5wp8zksCBFydy3HNxZksn/OS4DaPl4R+NX0ldLtdbhif4w0CIWCQhFanSzc+W7zZjM7kab3xp2aQhHKlRmMfc1xz/l2G4qUKnx8kod88gyQMqulJwHcANFuv1/m4VCpRJBKheDxOOzs7fA7IEha3dunCrDi2GiTmoIeRLTryLEFnp9P0odjgMUCWMJ/fotFQhqaTJapUaxRYsrjmzKskvU2XenJkCarzyBJ0anoSsIHh79XVVbIsi6LRKO/sjcZeAZAl3F7YYLOnX6bo7uImHZtco5NTSfq00eTPbWQJt+bzXHNqao3ufF2no88TdOLFGr1Pl3sCnBJU55El6NTsexzQIO4+zkGAvSpknI/D9fkCDU8k+Dk7HkzSm/zeqrFxPg7XxPIfnhDvZ9RMJiiY2FsBdpyPg8o8sgSgWrNPQqfT4W+FWAV4HLAvOHFKqP/q0P3vJRoRd/RRdJsa7YM1TgnWdpXuLRRoRCzPB98s2qhU9wlAnBJU5nFKUK05sDGi8Var5SoAOCUA/PNYtcWbjxtuGyMaX7K2eWOUz9tx2xi95nFKACo1ByR44SbBCzcJXnGT4IWbBC96EtCYavC2gAQ0ppp//gcUXou6gQTdQIJu0BDurGow3k8NS9DBlqADVgOa0gGrARepA+6sn5qeBPsuD4o9zpaAV49XgCzBbYwzQJbgNsYZIEtwG+MMMBIERoLASBAYCQIjQWAkCIwEgZEg2CdBFVmCKrIEVWQJqsgSVOlJ0A0koDHV/Ns/oNL0G0NuTL0rh9nUAAAAAElFTkSuQmCCCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA+QMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADm0lEQVRoQ+2YzWsTQRjGq/Qk1YOgFz0q/h1SvCjoTaQgXgQPHjx58OIteBAEL8W/waKNRasgxhYrpiqFVrFNUpPmu9k0SZuPJo1JXud5Jel0u8nOrAgq88AD2ck+mX1/87G7GUokEqTrQCCgbZ/Pp+0Dj6N0UMM430uGITQaDWXn83kuSkfLy8tcVLVaVbbf7+eL1NH1T3lPGQPBQDAQWAaCkIEgZCAIGQhCBoKQgSBkIAj1IKAwVafTaYaAwlQdDAYZAgpT9fj4OD/X4yJVfeZl0lNmaGVlhXQNCLoGBF17eRnykmEIOspms1yUqiKRCM8GFOU07fsZswEXqSOMrJfMH4eQy+X+fQitVotSqRSVSiU+VoFQ2GnTpbl1evS9zMcqEJKlMl2YTdPDb3k+VoFg70cFglNmIAQAyGQyvA8ABOQGAZ2MBS0aEhdzcS7HbW4QAODyXIYz52fS3OYGwakfNwj9Mn0hdDodLhjf4w4CINAgCM12h659tHizGZ3J0nr9V2YQhFK5SmPvM5w5+yZF0WKZ2wdB6NfPIAiDMj0IeAZAsbVajY+LxSKFQiGKRqO0vb3NbZAMYXFzh87NimOrTqIPuh/apENPYnR6Oknv8nU+B5IhzGc3aTSQoul4kcqVKvmWLM6cehGn18liD44MQbUfGYJOpgcBGxg+r66ukmVZFA6HeWev13cDkAzh5sIGkz35PEG3Fwt0ZHKNjk/F6cNGg7/vSoZwYz7LmRNTa3Tr8zodfhqjY8/W6G2y1ANgh6DajwxBJ7NnOaBAjD7aAKA7K2TZl8PV+RwNT8R4nR31x+lVdnfWdGVfDlfE9B+eEPdnZCZj5I/tzoCu7ctBpR8ZAqSa2QOh3W7zUyFmAZYD9gW77BBqP9p092uRRsSIPghvUb21P2OHYG1V6M5CjkbE9Lz3xaKNcmUPANgOQaUfOwTVzL6NEYU3m01HAJAdAoQfj1SavPk4yWljROFL1hZvjHJ7104bo1s/dgiQSmYfBDc5QXCTEwQ3O0FwkxMEN/UgoDBV424BCChM1X/9CxRui7oGBF0Dgq5REEZW1dgAvWQYgo4KhQIXpSPMBhSlI8wGXKSOUJCXTA+CPNL9DMkQ+AdcDMkQnM6xG5IhOJ1jd/c8LxkDAZ+7xdkLdjJkIAgZCEIGgpCBIGQgCBkIQv81BFXJEFQlQ1CVDEFVKMhLhiGgMFXjj1dAQGGq/p0XqO6oqVo/E6WfdBY2E/BzX6AAAAAASUVORK5CYIILAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + + + + VisualStudio2008Vista + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAArQMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADT0lEQVRoQ+2ZzWsTURTFq3Ql1YWgG10q/h1S3CjoTqQgbgQXLly5cOMuuBAEN8W/waKNRasgxooVU5VCq9gmqUnzOc2knbT5aNKY5PrOlUyn00nmvQFB5R040HmZ0zf3N+/dmbRDmUyGVB2JRJQdCoWUfeBxkg4qGOcHyTCEZrMp7VKpxEWpaGlpiYuq1WrSDofDfJEquv65FCijIWgIGgJLQxDSEIQ0BCENQUhDENIQhDQEIRsCCpN1Pp9nCChM1tFolCGgMFmPj4/zez0uUtZnXmYDZYaWl5dJ1YCgakBQdZAvQ0EyDEFFhmFwUbJKJBK8GlCU17LvZ6wGXKSKcGeDZP44hGKx+O9DaLfblMvlqFwu87EMhI2dDl2aXaNHPyp8LAMhW67QhXd5evi9xMcyENzzyEDwygyEAACFQoH7AEBAfhAwyVjUpCFxMRdnizzmBwEALs8WOHN+Js9jfhC85vGD0C/TF0K32+WC8TmeIAACDYLQ6nTp2ieTm83ojEFrjd+ZQRDKlRqNfShw5uybHCWtCo8PgtBvnkEQBmVsCHgHQLH1ep2PLcuiWCxGyWSStre3eQxyQljY3KFz78Sx2SAxB92PbdKhJyk6PZ2l96UGnwM5IcwZmzQaydF02qJKtUahRZMzp16k6XXWsuE4IcjO44SgkrEhoIHh55WVFTJNk+LxOHf2RmM3ADkh3JxfZ7Inn2fo9sIGHZlcpeNTafq43uTPe3JCuDFncObE1Crd+rJGh5+m6NizVXqbLdsA3BBk53FCUMns2Q4oEHcfYwDQWxVOubfD1bkiDU+keJ8dDafplbG7anpyb4crYvkPT4jnMzKTKQqndldAz+7tIDOPEwIkm9kDodPp8FshVgG2A/qCW24I9Z8duvvNohFxRx/Et6jR3p9xQzC3qnRnvkgjYnne+2rSeqW6BwDshiAzjxuCbGZfY0ThrVbLEwDkhgDhlyeqLW4+XvJqjCh80dzixugc79mrMfrN44YAyWT2QfCTFwQ/eUHwsxcEP3lB8JMNAYXJGk8LQEBhsv7rv0DhsahqQFA1IKgaBeHOyhrnB8novyeIjIagIWgILA1BSEMQ0hCENAQhDUFIQxDSEIRsCChM1v/ff6Cy9AsSMSlLu0Av/QAAAABJRU5ErkJgggsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2zXFsx4kTZ/GWw/2d+GbevFz7Oe7IXzqy/XLPu/f871kTEg+y2azs7u7K4uLitayvr0s6nS6uuInz83OZm5uTvr4+6e3tVRkbG5NkMimXl5fFVc/j+PhYuru7pa6uTmpra1UaGxtle3u7pM7maU6+/DcmrzStyUuNV/JWeFfC++dScKtUrKMkFAoFicfjanAsFlOjLy4u5OzsTJ9vbW1JJBJRkizy+bxsbm6qwXyyHlgip6amlET7HGQyGRkdHZWmpibVOzk5UaMhcnZ2Vtra2pREnluksgX5ZeFQ3g5H5NfFIzWM8ycyBfljNSUfPYnKt2Nx2T7NXykY3FZHSUgkEnpwa7xfTk9PJRqN6k3lcjlVxPClpSU1wAXIgFTIwHgwPj6uHoMnuADpw8PD0t7ernsCjPjOHNga4kfsIi8/zh8aw/Yken5l1G11Qhx2Y2NDN3URYAVjd3Z21M35zk2WIsCCW15YWFDyuN3m5uaSBFjgleFwWCYnJ9WId3oisnX27JZdyJt9vh6JyW9PU1XphPCA/f19p+F+wQAMIgdAXCVAZ3p6WnMAoVAq5r0gJDs6OjSefzZuXSg+L4fxZEY++SdalU6IuC0VBn7BXQkD4jbICyzwNG6VJBjkBRbs09raKi+bRLaefpaHyiF+UZD3H+9VpaMkuAx2CYbjCT09PcXXBAP3xnNqamoq8gJA0u3q6pIX/l4rmfn9yJiFnw/FqtK5tSdQKfAEflcCEinhQBn0Zv1yIJFSKShpO2dXiTgIR6YifGiyfjU6ITI41cFvsEswglxAUtzb2yu+qjxIuIQDfQBJshKQfAkHavrDjcpCaOE4K+89jlSlE8ILcHFu2WW4VyiTJC0OSV339g2lAMmrq6u6R2dnZ0W5ZGRkRAYHB7Wp+WxgXxImdoPwkyl5P0wnq9LRPoFGCHEZbgVvwSC+E9uE0crKir7MBdbgLRgE0fwml/T39xdX3AT5A29paGiQg4MDje1vRuPyYPKguOImcsbWP9dP5M3uXZlPZavSURK4UW4KSaVS6sLcGN5BCFBC19bW9LcFZBDr8/PzcnR0pO/ACHIA+lQRGh/eZ8G7aIQolxDE+0iCvAujKaH19fXPhdq2ie+PTRn7ypS+wcSFyeh5TWjE81wqo+XwjUc7MmT+ZnFbnevZgcPj5hBB3POJIXwnBDioHyQw1s3MzGjcUwXoECcmJjQE8AA/IIg19AHEPVWAJNjS0iIDAwNKhh90db+bpubT/qiWtC+G9uUD0+292xuR7407c5t+3EbnmgQAEYQF7TDujthushTwmDszQHED3Dyfdj7AVXF12mVc1JsI79wAheFk/lLZHoNJjNyUJQjD78wAhVEYxCe3ws0Tz9zi8vKyJkVI4G8Q5R+gssavHm6cyOsdWxIy3dq91k2TmROSNKyj4xqgyumUGqDK6ZQaoCrVCZEDbDKCAG8+sEIocDhcm9DwDlB/mU1ebV7XTazQut4fjkna1CLXABWk4xqggnRcA1SlOiGMtmFgPcAveARr8AjbNtsweK39imW/3GvdkNWTrOr5B6ggHcLCP0AF6bgGqEp1dHaw8BvvFeKaW8RzvAOUaxMrtKV4kH+Acq21gg5k+wco11or6LgGKNdaK14dJcEmO27cbzxivQWDiG/vAAWrrk1ww6eGbd7tH6CCdFwDVJCOa4CqVCdEbJMLAEnQRQIhwO1wOL57B6gHUwfyotnYvxFNSSKT1yzvH6CCdFwDVJCOHYaq0QlxSOo6RiIYZz0CD8Bo2y5TJvnHq3eAItPeH45fsw7LbPIkfpUzXANUkI5rgArScQ1Qlepon2CnQ4DLYxy3jkAMscwMgNcQBvyGJDtApXOXsprOKbO42YHZnDUQWmqAcumwd7kByqXjH4aq0VESMNp2hdyUNZxDQYSdIO/8AMVhDg8PlQxclyrAJ8YQApDhB89Y8/8eoET+A46Kvwl1DPddAAAAAElFTkSuQmCCCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA+gMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADnElEQVRoQ+2YTWsTURSGq3Ql1YWgG10q/g4pbhR0J1IQN4ILF65cuHEXXAiCm+JvsGhj0SqItcWKqUqhVWyT1KT5biZN0uajaWOS432PTHo7nWTuHSio3AdeyEzm5M555s6dJAPJZJJ0MzU1pZ1AIKCdQ09jdFgjON5PDUvY3t5WTqFQ4KZ0WFpa4qZqtZpygsEgn6QON78UfNUYCUaCkcAYCQIjQWAkCIwEgZEgMBIERoKgKwGNqSaTybAENKaaUCjEEtCYakZHR/l7PU5SNedep3zVDCwvL5NuIEE3kKAbPz+G/NSwBB1yuRw3pUo0GuXZgKbcpn2vYDbgJHXAlfVTc+AS8vn8vy+h1WpROp2mcrnM2yoSijttujK7Rk9+VnhbRUKqXKFLMxl6/KPA2yoSnOOoSHCr6SsBArLZLK8DEAG8JGCQkZBFA+JkLs/meZ+XBAi4OpvlmovTGd7nJcFtHC8JvWp6Suh0Otww3scTBEJAPwnNdodufLZ4sRmeztFa409NPwnlSo1GPma55vy7NMVKFd7fT0KvcfpJ6FfTlYDvAGi2Xq/zdqlUonA4TLFYjLa2tngfkCUsbOzQhRmxbTVIjEEPwxt05Fmczk6m6EOhwccAWcJcboOGp9I0mShRpVqjwKLFNWdeJehtqtSVI0tQHUeWoFPTlYAFDK9XVlbIsiyKRCK8sjcauwVAlnB7fp3Nnn6ZpLsLRTo2vkonJxL0aX2b37eRJdyay3HNqYlVuvN1jY4+j9OJF6v0PlXuCnBKUB1HlqBTs+d2QIO4+tgHAfaskHHeDtfn8jQ4Fuf77HgwQW9yu7PGxnk7XBPTf3BMPJ9RMx6nYHx3Bthx3g4q48gSgGrNHgntdpu/FWIW4HbAuuDEKaH+q033v5doSFzRR5FNarT21zglWJtVujefpyExPR98s2i9Ut0jAHFKUBnHKUG1Zt/CiMabzaarAOCUAPDh0WqTFx833BZGNL5obfLCKO+347Yweo3jlABUavZJ8MJNghduErziJsELNwledCWgMdXgaQEJaEw1f/0PKDwWdQMJuoEE3aAhXFnVYAH0U8MSdCgWi9yUDpgNaEoHzAacpA5oyE9NV4J8pXsFyBL4AzwCZAluxzgDZAluxzhjH+enxkjAa7s5Z8NuAUaCwEgQGAkCI0FgJAiMBMF/LUEVWYIqsgRVIME+UVXk5lTpSkBjqsEfr5CAxlTj9weU3dTBJka/AW4uNg3p+taQAAAAAElFTkSuQmCCCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + + + Far + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgIAAAAJAwAAAA8DAAAA7AAAAAKJUE5HDQoaCgAAAA1JSERSAAAAFAAAABQIBgAAAI2JHQ0AAAAEZ0FNQQAAsY8L/GEFAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAH5JREFUOE+tzMEJwDAQA0G3kP47SFMp5WKbEwizryiPwWY5NKrqVxgTGBMYExgTGBMY3XU/Na1XZubbBaPrQY3u/3njMDofangnGF0PanT/6U4wOh9qM/PtgtH1oEb3/7xxGJ0PNbwTjK4HNbr/dCcYExgTGBMYExgTGL+r8QL1YYgBA3bF7AAAAABJRU5ErkJgggsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgIAAAAJAwAAAA8DAAAA4AAAAAKJUE5HDQoaCgAAAA1JSERSAAAAFAAAABQIBgAAAI2JHQ0AAAAEZ0FNQQAAsY8L/GEFAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAHJJREFUOE+tzMEJgEAQBMFLwfwzMClDWc/HQCP9cnwULM2wa2Z+pbGhsaGxobGhsaGRjvOKyW270Eh4FroLjcRHud8b0kh4Fjv79qGR+Ci37UIj4VnoLjQSH+V+b0gj4Vns7NuHxobGhsaGxobGhsbvZt1vy4gBqcW4UgAAAABJRU5ErkJgggsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + TopOnBorder + BottomToTop + + + + + HighlightEntireItem + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA9QMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADl0lEQVRoQ+2XzWsTQRjGq/Qk1YOgFz0q/h1SvCjoTaQgXgQPHjx58OIteBAEL8W/waKNRasgxhYrpiqFVrFNUpPmu9m0SZuPpo1JXud5ZdPpdpOdWSiozAMPm53Mk9n3tzOzm4FUKkW6DoVC2g4EAto+9DROhzWM/n4yDGF7e1vZxWKRi9LR4uIiF1Wr1ZQdDAb5InV080vRV8ZAMBAMBJaBIGQgCBkIQgaCkIEgZCAIGQhCXQgoTNXZbJYhoDBVh8NhhoDCVD06Osrv9bhIVZ97nfaVGVhaWiJdA4KuAUHXfv4M+ckwBB3l83kuSlWxWIxnA4pym/a9jNmAi9QR7qyfzIFDKBQK/z6EVqtFmUyGyuUyn6tAWN9p05WZVXrys8LnKhDS5Qpdms7S4x9FPleB4BxHBYJbpi8EAMjlcrwPAATkBQGDjIQtGhAXc3mmwG1eEADg6kyOMxenstzmBcFtHC8IvTI9IXQ6HS4Y3+MJAiBQPwjNdodufLZ4sxmeytNq40+mH4RypUYjH3OcOf8uQ/FShdv7Qeg1Tj8I/TJdCHgHQLH1ep3PS6USRSIRisfjtLW1xW2QDGF+Y4cuTItzq0FiDHoY2aAjzxJ0djJNH4oN7gPJEGbzGzQcytBkskSVao0CCxZnzrxK0tt0qQtHhqA6jgxBJ9OFgA0Mn5eXl8myLIpGo7yzNxq7AUiGcHtujcmefpmiu/PrdGx8hU5OJOnT2jZ/b0uGcGs2z5lTEyt05+sqHX2eoBMvVuh9utwF4ISgOo4MQSezZzmgQNx9tAGAPStkOZfD9dkCDY4leJ0dDybpTX531thyLodrYvoPjonnMzLjCQomdmeAbedyUBlHhgCpZvZAaLfb/FaIWYDlgH3BKSeE+q823f9eoiFxRx9FN6nR2p9xQrA2q3RvrkBDYno++GbRWqW6BwDshKAyjhOCambfxojCm82mKwDICQHCj8eqTd583OS2MaLwBWuTN0a53bbbxug1jhMCpJLZB8FLbhC85AbBy24QvOQGwUtdCChM1XhaAAIKU/Vf/wcKj0VdA4KuAUHXKAh3VtXYAP1kGIKObAg6wmxAUTrCbMBF6ggF+cl0Idh3uZ/tfjYE/gEPQzIEtz5OQzIEtz5O2/38ZAwEfJaL87Ldz0AQRwNBHA0EcTQQxNFAEEcDQRz/WwiqkiGoSoagKhmCqlCQnwxD0DUgoDBV+/0DZd+xg3WcfgND/TMv156b9wAAAABJRU5ErkJgggsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA+AMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADmklEQVRoQ+2YzWsTQRjGq/Qk1YOgFz0q/h1SvCjoTaQgXgQPHjx58OIteBAEL8W/waKNRasgxhYrpiqFVrFNUpPmu9k0SZuPJo1JXud5Jel0u8nOLBRU5oEHspN9Mvv+5mN3M5RIJEjXgUBA2z6fT9uHnkbpsIZxvpcMQ2g0GsrO5/NclI6Wl5e5qGq1qmy/388XqaObX/KeMgaCgWAgsAwEIQNByEAQMhCEDAQhA0HIQBDqQUBhqk6n0wwBhak6GAwyBBSm6vHxcX6ux0Wq+tzrpKfM0MrKCukaEHQNCLr28jLkJcMQdJTNZrkoVUUiEZ4NKMpp2vczZgMuUkcYWS+ZA4eQy+X+fQitVotSqRSVSiU+VoFQ2GnTlbl1evKzzMcqEJKlMl2aTdPjH3k+VoFg70cFglNmIAQAyGQyvA8ABOQGAZ2MBS0aEhdzeS7HbW4QAODqXIYzF2fS3OYGwakfNwj9Mn0hdDodLhjf4w4CINAgCM12h258tnizGZ3J0nr9T2YQhFK5SmMfM5w5/y5F0WKZ2wdB6NfPIAiDMj0IeAZAsbVajY+LxSKFQiGKRqO0vb3NbZAMYXFzhy7MimOrTqIPehjapCPPYnR2Okkf8nU+B5IhzGc3aTSQoul4kcqVKvmWLM6ceRWnt8liD44MQbUfGYJOpgcBGxg+r66ukmVZFA6HeWev13cDkAzh9sIGkz39MkF3Fwt0bHKNTk7F6dNGg7/vSoZwaz7LmVNTa3Tn6zodfR6jEy/W6H2y1ANgh6DajwxBJ7NnOaBAjD7aAKA7K2TZl8P1+RwNT8R4nR33x+lNdnfWdGVfDtfE9B+eEPdnZCZj5I/tzoCu7ctBpR8ZAqSa2QOh3W7zUyFmAZYD9gW77BBqv9p0/3uRRsSIPgpvUb21P2OHYG1V6N5CjkbE9HzwzaKNcmUPANgOQaUfOwTVzL6NEYU3m01HAJAdAoQfj1SavPk4yWljROFL1hZvjHJ7104bo1s/dgiQSmYfBDc5QXCTEwQ3O0FwkxMEN/UgoDBV424BCChM1X/9CxRui7oGBF0Dgq5REEZW1dgAvWQYgo4KhQIXpSPMBhSlI8wGXKSOUJCXTA+CPNL9DMkQ+AdcDMkQnM6xG5IhOJ1jd/c8LxkDAZ+7xdkLdjJkIAgZCEIGgpCBIGQgCBkIQv81BFXJEFQlQ1CVDEFVKMhLhiGgMFXjj1dAQGGq9voC1R2xg3WUfgNzejYRjgB1CAAAAABJRU5ErkJgggsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2zXFsx4kTZ/GWw/2d+GbevFz7Oe7IXzqy/XLPu/f871kTEg+y2azs7u7K4uLitayvr0s6nS6uuInz83OZm5uTvr4+6e3tVRkbG5NkMimXl5fFVc/j+PhYuru7pa6uTmpra1UaGxtle3u7pM7maU6+/DcmrzStyUuNV/JWeFfC++dScKtUrKMkFAoFicfjanAsFlOjLy4u5OzsTJ9vbW1JJBJRkizy+bxsbm6qwXyyHlgip6amlET7HGQyGRkdHZWmpibVOzk5UaMhcnZ2Vtra2pREnluksgX5ZeFQ3g5H5NfFIzWM8ycyBfljNSUfPYnKt2Nx2T7NXykY3FZHSUgkEnpwa7xfTk9PJRqN6k3lcjlVxPClpSU1wAXIgFTIwHgwPj6uHoMnuADpw8PD0t7ernsCjPjOHNga4kfsIi8/zh8aw/Yken5l1G11Qhx2Y2NDN3URYAVjd3Z21M35zk2WIsCCW15YWFDyuN3m5uaSBFjgleFwWCYnJ9WId3oisnX27JZdyJt9vh6JyW9PU1XphPCA/f19p+F+wQAMIgdAXCVAZ3p6WnMAoVAq5r0gJDs6OjSefzZuXSg+L4fxZEY++SdalU6IuC0VBn7BXQkD4jbICyzwNG6VJBjkBRbs09raKi+bRLaefpaHyiF+UZD3H+9VpaMkuAx2CYbjCT09PcXXBAP3xnNqamoq8gJA0u3q6pIX/l4rmfn9yJiFnw/FqtK5tSdQKfAEflcCEinhQBn0Zv1yIJFSKShpO2dXiTgIR6YifGiyfjU6ITI41cFvsEswglxAUtzb2yu+qjxIuIQDfQBJshKQfAkHavrDjcpCaOE4K+89jlSlE8ILcHFu2WW4VyiTJC0OSV339g2lAMmrq6u6R2dnZ0W5ZGRkRAYHB7Wp+WxgXxImdoPwkyl5P0wnq9LRPoFGCHEZbgVvwSC+E9uE0crKir7MBdbgLRgE0fwml/T39xdX3AT5A29paGiQg4MDje1vRuPyYPKguOImcsbWP9dP5M3uXZlPZavSURK4UW4KSaVS6sLcGN5BCFBC19bW9LcFZBDr8/PzcnR0pO/ACHIA+lQRGh/eZ8G7aIQolxDE+0iCvAujKaH19fXPhdq2ie+PTRn7ypS+wcSFyeh5TWjE81wqo+XwjUc7MmT+ZnFbnevZgcPj5hBB3POJIXwnBDioHyQw1s3MzGjcUwXoECcmJjQE8AA/IIg19AHEPVWAJNjS0iIDAwNKhh90db+bpubT/qiWtC+G9uUD0+292xuR7407c5t+3EbnmgQAEYQF7TDujthushTwmDszQHED3Dyfdj7AVXF12mVc1JsI79wAheFk/lLZHoNJjNyUJQjD78wAhVEYxCe3ws0Tz9zi8vKyJkVI4G8Q5R+gssavHm6cyOsdWxIy3dq91k2TmROSNKyj4xqgyumUGqDK6ZQaoCrVCZEDbDKCAG8+sEIocDhcm9DwDlB/mU1ebV7XTazQut4fjkna1CLXABWk4xqggnRcA1SlOiGMtmFgPcAveARr8AjbNtsweK39imW/3GvdkNWTrOr5B6ggHcLCP0AF6bgGqEp1dHaw8BvvFeKaW8RzvAOUaxMrtKV4kH+Acq21gg5k+wco11or6LgGKNdaK14dJcEmO27cbzxivQWDiG/vAAWrrk1ww6eGbd7tH6CCdFwDVJCOa4CqVCdEbJMLAEnQRQIhwO1wOL57B6gHUwfyotnYvxFNSSKT1yzvH6CCdFwDVJCOHYaq0QlxSOo6RiIYZz0CD8Bo2y5TJvnHq3eAItPeH45fsw7LbPIkfpUzXANUkI5rgArScQ1Qlepon2CnQ4DLYxy3jkAMscwMgNcQBvyGJDtApXOXsprOKbO42YHZnDUQWmqAcumwd7kByqXjH4aq0VESMNp2hdyUNZxDQYSdIO/8AMVhDg8PlQxclyrAJ8YQApDhB89Y8/8eoET+A46Kvwl1DPddAAAAAElFTkSuQmCCCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA8QMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADk0lEQVRoQ+2XzWsTQRjGq/Qk1YOgFz0q/h1SvCjoTaQgXgQPHjx58OIteBAEL8W/waKNRasgxhYrpiqFVrFNUpPmu9m0SZuPpo1JXud5ZdPpdpOdWSiozAMPk93Mk9n3N7Ozm4FUKkW6DoVC2g4EAto+9DROhzWM/n4yDGF7e1vZxWKRi9LR4uIiF1Wr1ZQdDAb5InV080vRV8ZAMBAMBJaBIGQgCBkIQgaCkIEgZCAIGQhCXQgoTNXZbJYhoDBVh8NhhoDCVD06Osrv9bhIVZ97nfaVGVhaWiJdA4KuAUHXfv4M+ckwBB3l83kuSlWxWIxXA4pyW/a9jNWAi9QRZtZP5sAhFAqFfx9Cq9WiTCZD5XKZj1UgrO+06crMKj35WeFjFQjpcoUuTWfp8Y8iH6tAcI6jAsEt0xcCAORyOd4HAALygoBBRsIWDYiLuTxT4HNeEADg6kyOMxensnzOC4LbOF4QemV6Quh0OlwwvscTBECgfhCa7Q7d+GzxZjM8lafVxp9MPwjlSo1GPuY4c/5dhuKlCp/vB6HXOP0g9Mt0IeAdAMXW63U+LpVKFIlEKB6P09bWFp+DZAjzGzt0YVocWw0SY9DDyAYdeZags5Np+lBscB9IhjCb36DhUIYmkyWqVGsUWLA4c+ZVkt6mS104MgTVcWQIOpkuBGxg+Ly8vEyWZVE0GuWdvdHYDUAyhNtza0z29MsU3Z1fp2PjK3RyIkmf1rb5e1syhFuzec6cmlihO19X6ejzBJ14sULv0+UuACcE1XFkCDqZPbcDCsTs4xwA2KtClvN2uD5boMGxBN9nx4NJepPfXTW2nLfDNbH8B8fE8xmZ8QQFE7srwLbzdlAZR4YAqWb2QGi32/xWiFWA2wH7glNOCPVfbbr/vURDYkYfRTep0dqfcUKwNqt0b65AQ2J5Pvhm0VqlugcA7ISgMo4Tgmpm38aIwpvNpisAyAkBwo/Hqk3efNzktjGi8AVrkzdG+bxtt43RaxwnBEglsw+Cl9wgeMkNgpfdIHjJDYKXuhBQmKrxtAAEFKbqv/4PFB6LugYEXQOCrlEQZlbV2AD9ZBiCjmwIOrIh6Aj9cZE6QkF+Ml0I9iz3s93PhsA/4GFIhuDWx2lIhuDWx2m7n5+MgYDPcnFetvsZCKI1EERrIIjWQBCtgSBaA0G0/y0EVckQVCVDUJUMQVUoyE+GIegaRekaRenanrGDdZx+AwQBIVZs5053AAAAAElFTkSuQmCCCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA8QMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADk0lEQVRoQ+2XzWsTQRjGq/Qk1YOgFz0q/h1SvCjoTaQgXgQPHjx58OIteBAEL8W/waKNRasgxhYrpiqFVrFNUpPmu9m0SZuPpo1JXud5ZdPpdpOdWSiozAMPk93Mk9n3N7Ozm4FUKkW6DoVC2g4EAto+9DROhzWM/n4yDGF7e1vZxWKRi9LR4uIiF1Wr1ZQdDAb5InV080vRV8ZAMBAMBJaBIGQgCBkIQgaCkIEgZCAIGQhCXQgoTNXZbJYhoDBVh8NhhoDCVD06Osrv9bhIVZ97nfaVGVhaWiJdA4KuAUHXfv4M+ckwBB3l83kuSlWxWIxXA4pyW/a9jNWAi9QRZtZP5sAhFAqFfx9Cq9WiTCZD5XKZj1UgrO+06crMKj35WeFjFQjpcoUuTWfp8Y8iH6tAcI6jAsEt0xcCAORyOd4HAALygoBBRsIWDYiLuTxT4HNeEADg6kyOMxensnzOC4LbOF4QemV6Quh0OlwwvscTBECgfhCa7Q7d+GzxZjM8lafVxp9MPwjlSo1GPuY4c/5dhuKlCp/vB6HXOP0g9Mt0IeAdAMXW63U+LpVKFIlEKB6P09bWFp+DZAjzGzt0YVocWw0SY9DDyAYdeZags5Np+lBscB9IhjCb36DhUIYmkyWqVGsUWLA4c+ZVkt6mS104MgTVcWQIOpkuBGxg+Ly8vEyWZVE0GuWdvdHYDUAyhNtza0z29MsU3Z1fp2PjK3RyIkmf1rb5e1syhFuzec6cmlihO19X6ejzBJ14sULv0+UuACcE1XFkCDqZPbcDCsTs4xwA2KtClvN2uD5boMGxBN9nx4NJepPfXTW2nLfDNbH8B8fE8xmZ8QQFE7srwLbzdlAZR4YAqWb2QGi32/xWiFWA2wH7glNOCPVfbbr/vURDYkYfRTep0dqfcUKwNqt0b65AQ2J5Pvhm0VqlugcA7ISgMo4Tgmpm38aIwpvNpisAyAkBwo/Hqk3efNzktjGi8AVrkzdG+bxtt43RaxwnBEglsw+Cl9wgeMkNgpfdIHjJDYKXuhBQmKrxtAAEFKbqv/4PFB6LugYEXQOCrlEQZlbV2AD9ZBiCjmwIOrIh6Aj9cZE6QkF+Ml0I9iz3s93PhsA/4GFIhuDWx2lIhuDWx2m7n5+MgYDPcnFetvsZCKI1EERrIIjWQBCtgSBaA0G0/y0EVckQVCVDUJUMQVUoyE+GIegaRekaRenanrGDdZx+AwQBIVZs5053AAAAAElFTkSuQmCCCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + Office2013RadioButtonGlyphInfo + + -1 + 0, 170, 222 + Solid + 0, 170, 222 + White + 135, 135, 135 + None + Transparent + 0 + 0, 170, 222 + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA9QMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADl0lEQVRoQ+2XzWsTQRjGq/Qk1YOgFz0q/h1SvCjoTaQgXgQPHjx58OIteBAEL8W/waKNRasgxhYrpiqFVrFNUpPmu9m0SZuPpo1JXud5ZdPpdpOdWSiozAMPk93Mk9n3N7Ozm4FUKkW6DoVC2g4EAto+9DROhzWM/n4yDGF7e1vZxWKRi9LR4uIiF1Wr1ZQdDAb5InV080vRV8ZAMBAMBJaBIGQgCBkIQgaCkIEgZCAIGQhCXQgoTNXZbJYhoDBVh8NhhoDCVD06Osrv9bhIVZ97nfaVGVhaWiJdA4KuAUHXfv4M+ckwBB3l83kuSlWxWIxXA4pyW/a9jNWAi9QRZtZP5sAhFAqFfx9Cq9WiTCZD5XKZj1UgrO+06crMKj35WeFjFQjpcoUuTWfp8Y8iH6tAcI6jAsEt0xcCAORyOd4HAALygoBBRsIWDYiLuTxT4HNeEADg6kyOMxensnzOC4LbOF4QemV6Quh0OlwwvscTBECgfhCa7Q7d+GzxZjM8lafVxp9MPwjlSo1GPuY4c/5dhuKlCp/vB6HXOP0g9Mt0IeAdAMXW63U+LpVKFIlEKB6P09bWFp+DZAjzGzt0YVocWw0SY9DDyAYdeZags5Np+lBscB9IhjCb36DhUIYmkyWqVGsUWLA4c+ZVkt6mS104MgTVcWQIOpkuBGxg+Ly8vEyWZVE0GuWdvdHYDUAyhNtza0z29MsU3Z1fp2PjK3RyIkmf1rb5e1syhFuzec6cmlihO19X6ejzBJ14sULv0+UuACcE1XFkCDqZPbcDCsTs4xwA2KtClvN2uD5boMGxBN9nx4NJepPfXTW2nLfDNbH8B8fE8xmZ8QQFE7srwLbzdlAZR4YAqWb2QGi32/xWiFWA2wH7glNOCPVfbbr/vURDYkYfRTep0dqfcUKwNqt0b65AQ2J5Pvhm0VqlugcA7ISgMo4Tgmpm38aIwpvNpisAyAkBwo/Hqk3efNzktjGi8AVrkzdG+bxtt43RaxwnBEglsw+Cl9wgeMkNgpfdIHjJDYKXuhBQmKrxtAAEFKbqv/4PFB6LugYEXQOCrlEQZlbV6O8nwxB0ZEPQEVYDitIR+uMidYSngJ9MF4I9y/1s97Mh8A94GJIhuPVxGpIhuPVx2u7nJ2Mg4LNcnJftfgaCaA0E0RoIojUQRGsgiNZAEO1/C0FVMgRVyRBUJUNQFQryk2EIugYEFKZq+w+Uru0ZO1jH6Tc1kyfofk37EgAAAABJRU5ErkJgggsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2zXFsx4kTZ/GWw/2d+GbevFz7Oe7IXzqy/XLPu/f871kTEg+y2azs7u7K4uLitayvr0s6nS6uuInz83OZm5uTvr4+6e3tVRkbG5NkMimXl5fFVc/j+PhYuru7pa6uTmpra1UaGxtle3u7pM7maU6+/DcmrzStyUuNV/JWeFfC++dScKtUrKMkFAoFicfjanAsFlOjLy4u5OzsTJ9vbW1JJBJRkizy+bxsbm6qwXyyHlgip6amlET7HGQyGRkdHZWmpibVOzk5UaMhcnZ2Vtra2pREnluksgX5ZeFQ3g5H5NfFIzWM8ycyBfljNSUfPYnKt2Nx2T7NXykY3FZHSUgkEnpwa7xfTk9PJRqN6k3lcjlVxPClpSU1wAXIgFTIwHgwPj6uHoMnuADpw8PD0t7ernsCjPjOHNga4kfsIi8/zh8aw/Yken5l1G11Qhx2Y2NDN3URYAVjd3Z21M35zk2WIsCCW15YWFDyuN3m5uaSBFjgleFwWCYnJ9WId3oisnX27JZdyJt9vh6JyW9PU1XphPCA/f19p+F+wQAMIgdAXCVAZ3p6WnMAoVAq5r0gJDs6OjSefzZuXSg+L4fxZEY++SdalU6IuC0VBn7BXQkD4jbICyzwNG6VJBjkBRbs09raKi+bRLaefpaHyiF+UZD3H+9VpaMkuAx2CYbjCT09PcXXBAP3xnNqamoq8gJA0u3q6pIX/l4rmfn9yJiFnw/FqtK5tSdQKfAEflcCEinhQBn0Zv1yIJFSKShpO2dXiTgIR6YifGiyfjU6ITI41cFvsEswglxAUtzb2yu+qjxIuIQDfQBJshKQfAkHavrDjcpCaOE4K+89jlSlE8ILcHFu2WW4VyiTJC0OSV339g2lAMmrq6u6R2dnZ0W5ZGRkRAYHB7Wp+WxgXxImdoPwkyl5P0wnq9LRPoFGCHEZbgVvwSC+E9uE0crKir7MBdbgLRgE0fwml/T39xdX3AT5A29paGiQg4MDje1vRuPyYPKguOImcsbWP9dP5M3uXZlPZavSURK4UW4KSaVS6sLcGN5BCFBC19bW9LcFZBDr8/PzcnR0pO/ACHIA+lQRGh/eZ8G7aIQolxDE+0iCvAujKaH19fXPhdq2ie+PTRn7ypS+wcSFyeh5TWjE81wqo+XwjUc7MmT+ZnFbnevZgcPj5hBB3POJIXwnBDioHyQw1s3MzGjcUwXoECcmJjQE8AA/IIg19AHEPVWAJNjS0iIDAwNKhh90db+bpubT/qiWtC+G9uUD0+292xuR7407c5t+3EbnmgQAEYQF7TDujthushTwmDszQHED3Dyfdj7AVXF12mVc1JsI79wAheFk/lLZHoNJjNyUJQjD78wAhVEYxCe3ws0Tz9zi8vKyJkVI4G8Q5R+gssavHm6cyOsdWxIy3dq91k2TmROSNKyj4xqgyumUGqDK6ZQaoCrVCZEDbDKCAG8+sEIocDhcm9DwDlB/mU1ebV7XTazQut4fjkna1CLXABWk4xqggnRcA1SlOiGMtmFgPcAveARr8AjbNtsweK39imW/3GvdkNWTrOr5B6ggHcLCP0AF6bgGqEp1dHaw8BvvFeKaW8RzvAOUaxMrtKV4kH+Acq21gg5k+wco11or6LgGKNdaK14dJcEmO27cbzxivQWDiG/vAAWrrk1ww6eGbd7tH6CCdFwDVJCOa4CqVCdEbJMLAEnQRQIhwO1wOL57B6gHUwfyotnYvxFNSSKT1yzvH6CCdFwDVJCOHYaq0QlxSOo6RiIYZz0CD8Bo2y5TJvnHq3eAItPeH45fsw7LbPIkfpUzXANUkI5rgArScQ1Qlepon2CnQ4DLYxy3jkAMscwMgNcQBvyGJDtApXOXsprOKbO42YHZnDUQWmqAcumwd7kByqXjH4aq0VESMNp2hdyUNZxDQYSdIO/8AMVhDg8PlQxclyrAJ8YQApDhB89Y8/8eoET+A46Kvwl1DPddAAAAAElFTkSuQmCCCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + + RectangularSolid + None + TopOnBorder + BottomToTop + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA6gMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADjElEQVRoQ+2YT2sTQRjGq/Qk1YOgFz0qfg4pXhT0JlIQL4IHD548ePFWPAiCNz+DRVuLVkGMLVaaqhRaxTZJTZr/zaZJ2vxp0pjkdZ5Xsp1sN9mZBaHC/OCB7nbezr6/nZ1NOpRIJEg3gUBAO+Pj49o58jxKRzWC8X5qWEKj0VBOPp/npnRYXV3lpqrVqnIwHhepw+2veV81RoKRYCQwRoLASBAYCQIjQWAkCIwEgZEgsCWgMdWk02mWgMZUEwwGuSnd4HM9LlI1F94mfdUMra2tkW4gQTduTXrFz5chPzUsQYdsNstNqRKJRHg1oCm3Zd8vGI+L1AF31k/NP5eQy+X+fwmtVotSqRSVSiU+VpFQ2GvTtflNevarzMcqEpKlMl2ZS9PTn3k+VpHgnEdFglvNQAkQkMlkeB+ACOAlAZOMBS0aEhdzdT7H57wkQMD1+QzXXJ5N8zkvCW7zeEnoV9NXQqfT4Ybxe7xBIAQMktBsd+jWF4s3m9HZLG3W/9YMklAqV2nsc4ZrLn5IUbRY5vODJPSbZ5CEQTW2BHwGQLO1Wo2Pi8UihUIhikajtLu7y+eALGF5e48uzYljq05iDnoc2qZjL2J0fiZJn/J1HgNkCYvZbRoNpGgmXqRyRTS7YnHNuTdxep8s2nJkCarzyBJ0amwJ2MDw8/r6OlmWReFwmHf2en2/AMgS7i5tsdmzrxN0f7lAJyY36PR0nBa2Gvz7LrKEO4tZrjkzvUH3vm3S8ZcxOvVqgz4mS7YApwTVeWQJOjU9jwMaxN3HOQjorgoZ5+NwczFHwxMxfs5OTsXpXXZ/1XRxPg43xPIfnhDvZ9RMxmgqtr8CupElAJV5ZAlAtaZHQrvd5k+FWAV4HLAvOHFKqP1u08MfRRoRd/RJeIfqrYM1TgnWToUeLOVoRCzPR98t2ipXegQgTgkq8zglqNYc2BjReLPZdBUAnBIA/nik0uTNxw23jRGNr1g7vDHK57txSgBe8zglAJWaAxK8cJPghZsEr7hJ8MJNghe2BDSmGrwtIAGNqebQf4HCa1E3kKAbtya9goZwZ1WD8X5qWIIOhUKBm9IBqwFN6YDxuEgdcGf91NgS5DvdL0CWgFePV4AswW2MM0CW4DbGGSBLcBvjDDASBEaCwEgQGAkCI0FgJAiMBIGRIOiRoIosQRVZgiqyBFVkCarYEtCYavCPV0hAY6o53F+gkvQHK6ctxANB/y4AAAAASUVORK5CYIILAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2zXFsx4kTZ/GWw/2d+GbevFz7Oe7IXzqy/XLPu/f871kTEg+y2azs7u7K4uLitayvr0s6nS6uuInz83OZm5uTvr4+6e3tVRkbG5NkMimXl5fFVc/j+PhYuru7pa6uTmpra1UaGxtle3u7pM7maU6+/DcmrzStyUuNV/JWeFfC++dScKtUrKMkFAoFicfjanAsFlOjLy4u5OzsTJ9vbW1JJBJRkizy+bxsbm6qwXyyHlgip6amlET7HGQyGRkdHZWmpibVOzk5UaMhcnZ2Vtra2pREnluksgX5ZeFQ3g5H5NfFIzWM8ycyBfljNSUfPYnKt2Nx2T7NXykY3FZHSUgkEnpwa7xfTk9PJRqN6k3lcjlVxPClpSU1wAXIgFTIwHgwPj6uHoMnuADpw8PD0t7ernsCjPjOHNga4kfsIi8/zh8aw/Yken5l1G11Qhx2Y2NDN3URYAVjd3Z21M35zk2WIsCCW15YWFDyuN3m5uaSBFjgleFwWCYnJ9WId3oisnX27JZdyJt9vh6JyW9PU1XphPCA/f19p+F+wQAMIgdAXCVAZ3p6WnMAoVAq5r0gJDs6OjSefzZuXSg+L4fxZEY++SdalU6IuC0VBn7BXQkD4jbICyzwNG6VJBjkBRbs09raKi+bRLaefpaHyiF+UZD3H+9VpaMkuAx2CYbjCT09PcXXBAP3xnNqamoq8gJA0u3q6pIX/l4rmfn9yJiFnw/FqtK5tSdQKfAEflcCEinhQBn0Zv1yIJFSKShpO2dXiTgIR6YifGiyfjU6ITI41cFvsEswglxAUtzb2yu+qjxIuIQDfQBJshKQfAkHavrDjcpCaOE4K+89jlSlE8ILcHFu2WW4VyiTJC0OSV339g2lAMmrq6u6R2dnZ0W5ZGRkRAYHB7Wp+WxgXxImdoPwkyl5P0wnq9LRPoFGCHEZbgVvwSC+E9uE0crKir7MBdbgLRgE0fwml/T39xdX3AT5A29paGiQg4MDje1vRuPyYPKguOImcsbWP9dP5M3uXZlPZavSURK4UW4KSaVS6sLcGN5BCFBC19bW9LcFZBDr8/PzcnR0pO/ACHIA+lQRGh/eZ8G7aIQolxDE+0iCvAujKaH19fXPhdq2ie+PTRn7ypS+wcSFyeh5TWjE81wqo+XwjUc7MmT+ZnFbnevZgcPj5hBB3POJIXwnBDioHyQw1s3MzGjcUwXoECcmJjQE8AA/IIg19AHEPVWAJNjS0iIDAwNKhh90db+bpubT/qiWtC+G9uUD0+292xuR7407c5t+3EbnmgQAEYQF7TDujthushTwmDszQHED3Dyfdj7AVXF12mVc1JsI79wAheFk/lLZHoNJjNyUJQjD78wAhVEYxCe3ws0Tz9zi8vKyJkVI4G8Q5R+gssavHm6cyOsdWxIy3dq91k2TmROSNKyj4xqgyumUGqDK6ZQaoCrVCZEDbDKCAG8+sEIocDhcm9DwDlB/mU1ebV7XTazQut4fjkna1CLXABWk4xqggnRcA1SlOiGMtmFgPcAveARr8AjbNtsweK39imW/3GvdkNWTrOr5B6ggHcLCP0AF6bgGqEp1dHaw8BvvFeKaW8RzvAOUaxMrtKV4kH+Acq21gg5k+wco11or6LgGKNdaK14dJcEmO27cbzxivQWDiG/vAAWrrk1ww6eGbd7tH6CCdFwDVJCOa4CqVCdEbJMLAEnQRQIhwO1wOL57B6gHUwfyotnYvxFNSSKT1yzvH6CCdFwDVJCOHYaq0QlxSOo6RiIYZz0CD8Bo2y5TJvnHq3eAItPeH45fsw7LbPIkfpUzXANUkI5rgArScQ1Qlepon2CnQ4DLYxy3jkAMscwMgNcQBvyGJDtApXOXsprOKbO42YHZnDUQWmqAcumwd7kByqXjH4aq0VESMNp2hdyUNZxDQYSdIO/8AMVhDg8PlQxclyrAJ8YQApDhB89Y8/8eoET+A46Kvwl1DPddAAAAAElFTkSuQmCCCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + + White + + + + + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA+wMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADnUlEQVRoQ+2XT2sTQRjGq/Qk1YOgFz0qfg4pXhT0JlIQL4IHD548ePEWPAiCl+JnsGhj0SqIscWKqUqhVWyT1KT532zapE3TJo1JXud5ZdPJdpOdWSiozAMPyW7mycz725nZ3YFUKkW6DoVC2g4EAto+9DROhzWM9n4yDKFeryu7WCxyUTpaXFzkoqrVqrKDwSAPUkc3vxR9ZQwEA8FAYBkIQgaCkIEgZCAIGQhCBoKQgSDUgYDCVJ3NZhkCClN1OBxmCChM1aOjo/xcj0Gq+tzrtK/MwNLSEukaEHQNCLr28zLkJ8MQdJTP57koVcViMZ4NKMpt2vcyZgMGqSNcWT+ZA4dQKBT+fQjNZpMymQyVy2U+VoGwvtuiKzOr9ORnhY9VIKTLFbo0naXHP4p8rALB2Y8KBLdMXwgAkMvleB8ACMgLAjoZCVs0IAZzeabA57wgAMDVmRxnLk5l+ZwXBLd+vCD0yvSE0G63uWD8jjsIgED9IDRabbrx2eLNZngqT6u1P5l+EMqVKo18zHHm/LsMxUsVPt8PQq9++kHol+lAwDMAit3e3ubjUqlEkUiE4vE47ezs8DlIhjC/sUsXpsWxVSPRBz2MbNCRZwk6O5mmD8Uat4FkCLP5DRoOZWgyWaLKVpUCCxZnzrxK0tt0qQNHhqDajwxBJ9OBgA0M35eXl8myLIpGo7yz12p7AUiGcHtujcmefpmiu/PrdGx8hU5OJOnTWp1/tyVDuDWb58ypiRW683WVjj5P0IkXK/Q+Xe4AcEJQ7UeGoJPpWg4oEFcf5wDAnhWynMvh+myBBscSvM6OB5P0Jr83a2w5l8M1Mf0Hx8T9GZnxBAUTezPAtnM5qPQjQ4BUM10QWq0WPxViFmA5YF9wyglh+1eL7n8v0ZC4oo+im1Rr7s84IVibW3RvrkBDYno++GbRWmWrCwDshKDSjxOCambfxojCG42GKwDICQHCn8e2Grz5uMltY0ThC9Ymb4zyedtuG6NXP04IkEpmHwQvuUHwkhsEL7tB8JIbBC91IKAwVeNuAQgoTNV//QsUbou6BgRdA4KuURCurI79ZBiCjmwIOsJsQFE6wmzAAHVkF6WjLgj2Ve5nu50NAbceL0MyBLc2TkMyBLc2TkMyBLc2TkMGgpCBIPTPQOCBethu5ydjIOC7XJyX7XYGgvg0EMSngSA+/1sIqpIhqEqGoCoZgqpkCKrqQNA1IKAwVft9gbKLOljH6TcHdzOr6BQ8HAAAAABJRU5ErkJgggsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAArQMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADT0lEQVRoQ+2ZzWsTURTFq3Ql1YWgG10q/h1S3CjoTqQgbgQXLly5cOMuuBAEN8W/waKNRasgxooVU5VCq9gmqUnzOc2knbT5aNKY5PrOlUyn00nmvQFB5R040HmZ0zf3N+/dmbRDmUyGVB2JRJQdCoWUfeBxkg4qGOcHyTCEZrMp7VKpxEWpaGlpiYuq1WrSDofDfJEquv65FCijIWgIGgJLQxDSEIQ0BCENQUhDENIQhDQEIRsCCpN1Pp9nCChM1tFolCGgMFmPj4/zez0uUtZnXmYDZYaWl5dJ1YCgakBQdZAvQ0EyDEFFhmFwUbJKJBK8GlCU17LvZ6wGXKSKcGeDZP44hGKx+O9DaLfblMvlqFwu87EMhI2dDl2aXaNHPyp8LAMhW67QhXd5evi9xMcyENzzyEDwygyEAACFQoH7AEBAfhAwyVjUpCFxMRdnizzmBwEALs8WOHN+Js9jfhC85vGD0C/TF0K32+WC8TmeIAACDYLQ6nTp2ieTm83ojEFrjd+ZQRDKlRqNfShw5uybHCWtCo8PgtBvnkEQBmVsCHgHQLH1ep2PLcuiWCxGyWSStre3eQxyQljY3KFz78Sx2SAxB92PbdKhJyk6PZ2l96UGnwM5IcwZmzQaydF02qJKtUahRZMzp16k6XXWsuE4IcjO44SgkrEhoIHh55WVFTJNk+LxOHf2RmM3ADkh3JxfZ7Inn2fo9sIGHZlcpeNTafq43uTPe3JCuDFncObE1Crd+rJGh5+m6NizVXqbLdsA3BBk53FCUMns2Q4oEHcfYwDQWxVOubfD1bkiDU+keJ8dDafplbG7anpyb4crYvkPT4jnMzKTKQqndldAz+7tIDOPEwIkm9kDodPp8FshVgG2A/qCW24I9Z8duvvNohFxRx/Et6jR3p9xQzC3qnRnvkgjYnne+2rSeqW6BwDshiAzjxuCbGZfY0ThrVbLEwDkhgDhlyeqLW4+XvJqjCh80dzixugc79mrMfrN44YAyWT2QfCTFwQ/eUHwsxcEP3lB8JMNAYXJGk8LQEBhsv7rv0DhsahqQFA1IKgaBeHOyhrnB8novyeIjIagIWgILA1BSEMQ0hCENAQhDUFIQxDSEIRsCChM1v/ff6Cy9AsSMSlLu0Av/QAAAABJRU5ErkJgggsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + Office2013RadioButtonGlyphInfo + + + + + + + + + 0, 170, 222 + Gray + Gray + Gray + + + + + + + + + Flat + True + + + + + Flat + True + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA8QMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADk0lEQVRoQ+2YTWsTURSGq3Ql1YWgG10q/g4pbhR0J1IQN4ILF65cuHEXXAiCm+JvsGhj0SqIscWKqUqhVWyT1KT5biZN0uajSWOS432PJL2ZTjL3DggK94EXOpM5uXOeuXNn0pFEIkG6CQQC2vH5fNo59DRKhzWC473UsIRGo6GcfD7PTemwurrKTVWrVeX4/X4+SR1ufsl7qjESjAQjgTESBEaCwEgQGAkCI0FgJAiMBEFPAhpTTTqdZgloTDXBYJAloDHVTE5O8ns9TlI1514nPdWMrK2tkW4gQTeQoBsvP4a81LAEHbLZLDelSiQS4dmAppym/aBgNuAkdcCV9VLz1yXkcrn/X0Kr1aJUKkWlUom3VSQU9tp0ZWGTnvws87aKhGSpTJfm0/T4R563VSTYx1GR4FQzVAIEZDIZXgcgArhJwCATQYtGxMlcXsjxPjcJEHB1IcM1F+fSvM9NgtM4bhIG1QyU0Ol0uGF8jicIhIBhEprtDt34bPFiMz6Xpc36n5phEkrlKk18zHDN+XcpihbLvH+YhEHjDJMwrKYnAe8AaLZWq/F2sVikUChE0WiUdnd3eR+QJSxv79GFebFt1UmMQQ9D23TkWYzOzibpQ77OxwBZwmJ2m8YDKZqNF6lcqZJvxeKaM6/i9DZZ7MmRJaiOI0vQqelJwAKGv9fX18myLAqHw7yy1+v7BUCWcHtpi82efpmgu8sFOja9QSdn4vRpq8Gfd5El3FrMcs2pmQ2683WTjj6P0YkXG/Q+WeoJsEtQHUeWoFPTdzugQVx97IOA7qyQsd8O1xdzNDoV4/vsuD9Ob7L7s6aL/Xa4Jqb/6JR4PqNmOkb+2P4M6MZ+O6iMI0sAqjV9EtrtNr8VYhbgdsC6YMcuofarTfe/F2lMXNFH4R2qtw7W2CVYOxW6t5SjMTE9H3yzaKtc6ROA2CWojGOXoFpzYGFE481m01EAsEsA+PJIpcmLjxNOCyMaX7F2eGGU93fjtDC6jWOXAFRqDkhww0mCG04S3OIkwQ0nCW70JKAx1eBpAQloTDX//A8oPBZ1Awm6gQTdoCFcWdXgeC81LEGHQqHATemA2YCmdMBswEnqgCvrpaYnQb7SgwJkCXj0uAXIEpyOsQfIEpyOsQfIEpyOsQcYCQIjQWAkCIwEgZEgMBIERoLASBD0SVBFlqCKLEEVWYIqsgRVehLQmGrwj1dIQGOq+bd/QCXpN3LrT59/MUO0AAAAAElFTkSuQmCCCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA8QMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADk0lEQVRoQ+2YTWsTURSGq3Ql1YWgG10q/g4pbhR0J1IQN4ILF65cuHEXXAiCm+JvsGhj0SqIscWKqUqhVWyT1KT5biZN0uajSWOS432PJL2ZTjL3DggK94EXOpM5uXOeuXNn0pFEIkG6CQQC2vH5fNo59DRKhzWC473UsIRGo6GcfD7PTemwurrKTVWrVeX4/X4+SR1ufsl7qjESjAQjgTESBEaCwEgQGAkCI0FgJAiMBEFPAhpTTTqdZgloTDXBYJAloDHVTE5O8ns9TlI1514nPdWMrK2tkW4gQTeQoBsvP4a81LAEHbLZLDelSiQS4dmAppym/aBgNuAkdcCV9VLz1yXkcrn/X0Kr1aJUKkWlUom3VSQU9tp0ZWGTnvws87aKhGSpTJfm0/T4R563VSTYx1GR4FQzVAIEZDIZXgcgArhJwCATQYtGxMlcXsjxPjcJEHB1IcM1F+fSvM9NgtM4bhIG1QyU0Ol0uGF8jicIhIBhEprtDt34bPFiMz6Xpc36n5phEkrlKk18zHDN+XcpihbLvH+YhEHjDJMwrKYnAe8AaLZWq/F2sVikUChE0WiUdnd3eR+QJSxv79GFebFt1UmMQQ9D23TkWYzOzibpQ77OxwBZwmJ2m8YDKZqNF6lcqZJvxeKaM6/i9DZZ7MmRJaiOI0vQqelJwAKGv9fX18myLAqHw7yy1+v7BUCWcHtpi82efpmgu8sFOja9QSdn4vRpq8Gfd5El3FrMcs2pmQ2683WTjj6P0YkXG/Q+WeoJsEtQHUeWoFPTdzugQVx97IOA7qyQsd8O1xdzNDoV4/vsuD9Ob7L7s6aL/Xa4Jqb/6JR4PqNmOkb+2P4M6MZ+O6iMI0sAqjV9EtrtNr8VYhbgdsC6YMcuofarTfe/F2lMXNFH4R2qtw7W2CVYOxW6t5SjMTE9H3yzaKtc6ROA2CWojGOXoFpzYGFE481m01EAsEsA+PJIpcmLjxNOCyMaX7F2eGGU93fjtDC6jWOXAFRqDkhww0mCG04S3OIkwQ0nCW70JKAx1eBpAQloTDX//A8oPBZ1Awm6gQTdoCFcWdXgeC81LEGHQqHATemA2YCmdMBswEnqgCvrpaYnQb7SgwJkCXj0uAXIEpyOsQfIEpyOsQfIEpyOsQcYCQIjQWAkCIwEgZEgMBIERoLASBD0SVBFlqCKLEEVWYIqsgRVehLQmGrwj1dIQGOq+bd/QCXpN3LrT59/MUO0AAAAAElFTkSuQmCCCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA7AMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADjklEQVRoQ+2XT2sTQRjGq/Qk1YOgFz0qfg4pXhT0JlIQL4IHD548ePEWPAiCl+JnsGhj0SqIscWKqUqhVWyT1KT532zapM2fJo1JXud5ZdPJdpOdiRQU5gcPdDfzdvb97exsMpRIJEg3gUBAOz6fTzuHnkbpsEYwfpAallCv15WTz+e5KR2Wl5e5qUqlohy/388XqcPNL/mBaowEI8FIYIwEgZEgMBIERoLASBAYCQIjQdCRgMZUk06nWQIaU00wGGQJaEw14+Pj/L0eF6mac6+TA9UMrayskG4gQTeQoJtBfgwNUsMSdMhms9yUKpFIhFcDmnJb9r2C1YCL1AF3dpCaA5eQy+X+fwnNZpNSqRQVi0U+VpGwuduiK3Pr9ORniY9VJCSLJbo0m6bHP/J8rCLBOY+KBLeavhIgIJPJ8D4AEcBLAiYZC1o0JC7m8lyOz3lJgICrcxmuuTiT5nNeEtzm8ZLQq6anhHa7zQ3jc7xBIAT0k9BotenGZ4s3m9GZLK3X/tT0k1AsVWjsY4Zrzr9LUbRQ4vP9JPSap5+EfjUdCfgOgGar1SofFwoFCoVCFI1GaWdnh88BWcLi1i5dmBXHVo3EHPQwtEVHnsXo7HSSPuRrPAbIEuazWzQaSNF0vEClcoV8SxbXnHkVp7fJQkeOLEF1HlmCTk1HAjYw/L26ukqWZVE4HOadvVbbKwCyhNsLG2z29MsE3V3cpGOTa3RyKk6fNur8uY0s4dZ8lmtOTa3Rna/rdPR5jE68WKP3yWJHgFOC6jyyBJ2arscBDeLu4xwE2KtCxvk4XJ/P0fBEjJ+z4/44vcnurRob5+NwTSz/4QnxfkbNZIz8sb0VYMf5OKjMI0sAqjVdElqtFn8rxCrA44B9wYlTQvVXi+5/L9CIuKOPwttUa+6vcUqwtst0byFHI2J5Pvhm0Uap3CUAcUpQmccpQbVm38aIxhuNhqsA4JQA8M8j5QZvPm64bYxofMna5o1RPm/HbWP0mscpAajU7JPghZsEL9wkeMVNghduErzoSEBjqsHbAhLQmGr++R9QeC3qBhJ0Awm6QUO4s6rB+EFqWIIOtgQdsBrQlA5YDbhIHWwBOnRJsO9yv9jjbAl49XgFyBLcxjgDZAluY5wBsgS3Mc4AI0FgJAiMBIGRIDASBEaCwEgQGAmCLgmqyBJUkSWoIktQRZagSkeCbiABjanmb35AHXyi9BvrVTNhLiUFpAAAAABJRU5ErkJgggsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAArQMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADT0lEQVRoQ+2ZzWsTURTFq3Ql1YWgG10q/h1S3CjoTqQgbgQXLly5cOMuuBAEN8W/waKNRasgxooVU5VCq9gmqUnzOc2knbT5aNKY5PrOlUyn00nmvQFB5R040HmZ0zf3N+/dmbRDmUyGVB2JRJQdCoWUfeBxkg4qGOcHyTCEZrMp7VKpxEWpaGlpiYuq1WrSDofDfJEquv65FCijIWgIGgJLQxDSEIQ0BCENQUhDENIQhDQEIRsCCpN1Pp9nCChM1tFolCGgMFmPj4/zez0uUtZnXmYDZYaWl5dJ1YCgakBQdZAvQ0EyDEFFhmFwUbJKJBK8GlCU17LvZ6wGXKSKcGeDZP44hGKx+O9DaLfblMvlqFwu87EMhI2dDl2aXaNHPyp8LAMhW67QhXd5evi9xMcyENzzyEDwygyEAACFQoH7AEBAfhAwyVjUpCFxMRdnizzmBwEALs8WOHN+Js9jfhC85vGD0C/TF0K32+WC8TmeIAACDYLQ6nTp2ieTm83ojEFrjd+ZQRDKlRqNfShw5uybHCWtCo8PgtBvnkEQBmVsCHgHQLH1ep2PLcuiWCxGyWSStre3eQxyQljY3KFz78Sx2SAxB92PbdKhJyk6PZ2l96UGnwM5IcwZmzQaydF02qJKtUahRZMzp16k6XXWsuE4IcjO44SgkrEhoIHh55WVFTJNk+LxOHf2RmM3ADkh3JxfZ7Inn2fo9sIGHZlcpeNTafq43uTPe3JCuDFncObE1Crd+rJGh5+m6NizVXqbLdsA3BBk53FCUMns2Q4oEHcfYwDQWxVOubfD1bkiDU+keJ8dDafplbG7anpyb4crYvkPT4jnMzKTKQqndldAz+7tIDOPEwIkm9kDodPp8FshVgG2A/qCW24I9Z8duvvNohFxRx/Et6jR3p9xQzC3qnRnvkgjYnne+2rSeqW6BwDshiAzjxuCbGZfY0ThrVbLEwDkhgDhlyeqLW4+XvJqjCh80dzixugc79mrMfrN44YAyWT2QfCTFwQ/eUHwsxcEP3lB8JMNAYXJGk8LQEBhsv7rv0DhsahqQFA1IKgaBeHOyhrnB8novyeIjIagIWgILA1BSEMQ0hCENAQhDUFIQxDSEIRsCChM1v/ff6Cy9AsSMSlLu0Av/QAAAABJRU5ErkJgggsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA/QMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADn0lEQVRoQ+2YT2sTQRjGq/Qk1YOgFz0qfg4pXhT0JlIQL4IHD548ePEWPAiCl+JnsGhj0SqIscWKqUqhVWyT1KT532yapM2fJo1JXud5Jel0u8nOrBQU5gcPdLfzdvb97exs0qFEIkG6CQQC2vH5fNo59DRKhzWC8V5qWEKj0VBOPp/npnRYXl7mpqrVqnL8fj9fpA43v+Q91RgJRoKRwBgJAiNBYCQIjASBkSAwEgRGgqAnAY2pJp1OswQ0pppgMMgS0JhqxsfH+XM9LlI1514nPdUMrayskG4gQTeQoBsvX4a81LAEHbLZLDelSiQS4dWAppyWfb9gNeAidcCd9VJz4BJyudz/L6HValEqlaJSqcTHKhIKO226MrdOT36W+VhFQrJUpkuzaXr8I8/HKhLs86hIcKoZKAECMpkM7wMQAdwkYJKxoEVD4mIuz+X4nJsECLg6l+GaizNpPucmwWkeNwn9avpK6HQ63DB+jzcIhIBBEprtDt34bPFmMzqTpfX6n5pBEkrlKo19zHDN+XcpihbLfH6QhH7zDJIwqKYnAZ8B0GytVuPjYrFIoVCIotEobW9v8zkgS1jc3KELs+LYqpOYgx6GNunIsxidnU7Sh3ydxwBZwnx2k0YDKZqOF6lcqZJvyeKaM6/i9DZZ7MmRJajOI0vQqelJwAaGn1dXV8myLAqHw7yz1+u7BUCWcHthg82efpmgu4sFOja5Rien4vRpo8G/7yJLuDWf5ZpTU2t05+s6HX0eoxMv1uh9stQTYJegOo8sQadmz+OABnH3cQ4CuqtCxv44XJ/P0fBEjJ+z4/44vcnurpou9sfhmlj+wxPi/YyayRj5Y7sroBv746AyjywBqNbskdBut/lTIVYBHgfsC3bsEmq/2nT/e5FGxB19FN6iemt/jV2CtVWhews5GhHL88E3izbKlT0CELsElXnsElRr9m2MaLzZbDoKAHYJAH88Umny5uOE08aIxpesLd4Y5fPdOG2MbvPYJQCVmn0S3HCS4IaTBLc4SXDDSYIbPQloTDV4W0ACGlPNP/8FCq9F3UCCbiBBN2gId1Y1GO+lhiXoUCgUuCkdsBrQlA5YDbhIHboCdNgjQb7T/QJkCXj1uAXIEpzG2ANkCU5j7AGyBKcx9gAjQWAkCIwEgZEgMBIERoLASBD88xJwgcBpjD0A473U9CSoIktQRZagiixBFVmCKj0JaEw1+McrJKAx1fzNF6iDT5R+AxOLNj+SFfOFAAAAAElFTkSuQmCCCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + 191, 191, 191 + White + 191, 191, 191 + Office2010 + 191, 191, 191 + + + + + Standard + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA8wMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADlUlEQVRoQ+2YTWsTURSGq3Ql1YWgG10q/g4pbhR0J1IQN4ILF65cuHEXXAiCm+JvsGhj0SqIsWLFVKXQKrZJatJ8N5MmafPRpDHJ8b5Hkt5MJ5l7BxSF+8ALncmc3DnP3Lkz6UgikSDdBAIB7fh8Pu0ceBylgxrB8V5qWEKj0VBOPp/npnRYWVnhpqrVqnL8fj+fpA7XP+c91RgJRoKRwBgJAiNBYCQIjASBkSAwEgRGgqAnAY2pJp1OswQ0pppgMMgS0JhqJicn+b0eJ6maMy+TnmpGVldXSTeQoBtI0I2XH0NealiCDtlslptSJRKJ8GxAU07TflAwG3CSOuDKeqn54xJyudz/L6HValEqlaJSqcTbKhIKu226NL9Bj36UeVtFQrJUpgvv0vTwe563VSTYx1GR4FQzVAIEZDIZXgcgArhJwCATQYtGxMlcnM/xPjcJEHB5PsM15+fSvM9NgtM4bhIG1QyU0Ol0uGF8jicIhIBhEprtDl37ZPFiMz6XpY3675phEkrlKk18yHDN2TcpihbLvH+YhEHjDJMwrKYnAe8AaLZWq/F2sVikUChE0WiUdnZ2eB+QJSxt7dK5d2LbqpMYg+6HtujQkxidnk3S+3ydjwGyhIXsFo0HUjQbL1K5UiXfssU1p17E6XWy2JMjS1AdR5agU9OTgAUMf6+trZFlWRQOh3llr9f3CoAs4ebiJps9+TxBt5cKdGR6nY7PxOnjZoM/7yJLuLGQ5ZoTM+t068sGHX4ao2PP1ultstQTYJegOo4sQaem73ZAg7j62AcB3VkhY78dri7kaHQqxvfZUX+cXmX3Zk0X++1wRUz/0SnxfEbNdIz8sb0Z0I39dlAZR5YAVGv6JLTbbX4rxCzA7YB1wY5dQu1nm+5+K9KYuKIPwttUb+2vsUuwtit0ZzFHY2J63vtq0Wa50icAsUtQGccuQbVm38KIxpvNpqMAYJcA8OWRSpMXHyecFkY0vmxt88Io7+/GaWF0G8cuAajU7JPghpMEN5wkuMVJghtOEtzoSUBjqsHTAhLQmGr++R9QeCzqBhJ0Awm6QUO4sqrB8V5qWIIOhUKBm9KhK0EHzAacpA64sl5qehLkKz0oQJaAR49bgCzB6Rh7gCzB6Rh7gCzB6Rh7gJEgMBIERoLASBAYCQIjQWAkCIwEQZ8EVWQJqsgSVJElqCJLUKUnAY2pBv94RVO6gQQ0ppq/9wMqSb8AWg1JD6G7pzMAAAAASUVORK5CYIILAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + False + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgIAAAAJAwAAAA8DAAAA2wAAAAKJUE5HDQoaCgAAAA1JSERSAAAACgAAAAoIBgAAAI0yz70AAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M1cbXjNgAAAFVJREFUKFNj+P//Pxi3trZeAGIBGB8dwxlARf+B+AEQGyArgGE4A6oQhD8AcQCyIhDGphCGC4hVCMILqKqwASaHSyHIMwnIikAYXSFIEcHgwRPg/xkAphkSTK5IMV8AAAAASUVORK5CYIILAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgIAAAAJAwAAAA8DAAAA6AAAAAKJUE5HDQoaCgAAAA1JSERSAAAACgAAAAoIBgAAAI0yz70AAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M1cbXjNgAAAGJJREFUKFNj+P//P1EYqyA2zMCw6t4FIP5PAF8AKRQA4g9Iguj4ARALQIxddc8AiLEpBokZgNXA3bDqXgKSAhgOgMvDGFDFDUiKClDkkDlggVX3FoAwhji6AC6MVRAT/2cAAJhQETR6tnZYAAAAAElFTkSuQmCCCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + Never + None + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SRC/MESWin/Test/Test.sln b/SRC/MESWin/Test/Test.sln new file mode 100644 index 0000000..dbab07c --- /dev/null +++ b/SRC/MESWin/Test/Test.sln @@ -0,0 +1,22 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 14 +VisualStudioVersion = 14.0.25420.1 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Test", "Test.vbproj", "{C4A48E3F-38E4-4E88-A47D-FA5510686E57}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x86 = Debug|x86 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {C4A48E3F-38E4-4E88-A47D-FA5510686E57}.Debug|x86.ActiveCfg = Debug|x86 + {C4A48E3F-38E4-4E88-A47D-FA5510686E57}.Debug|x86.Build.0 = Debug|x86 + {C4A48E3F-38E4-4E88-A47D-FA5510686E57}.Release|x86.ActiveCfg = Release|x86 + {C4A48E3F-38E4-4E88-A47D-FA5510686E57}.Release|x86.Build.0 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/SRC/MESWin/Test/Test.vbproj b/SRC/MESWin/Test/Test.vbproj new file mode 100644 index 0000000..dc4d40c --- /dev/null +++ b/SRC/MESWin/Test/Test.vbproj @@ -0,0 +1,195 @@ + + + + + Debug + AnyCPU + {C4A48E3F-38E4-4E88-A47D-FA5510686E57} + WinExe + Test + Test + 512 + WindowsFormsWithCustomSubMain + v4.6.2 + + + + + + + + + + + + On + + + Binary + + + Off + + + On + + + Sub Main + + + true + true + true + ..\..\MESClient\ + Test.xml + 0 + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + full + x86 + MinimumRecommendedRules.ruleset + false + + + true + bin\x86\Release\ + Test.xml + true + 0 + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + pdbonly + x86 + MinimumRecommendedRules.ruleset + false + + + true + + + iMES.snk + + + + False + C:\Program Files (x86)\Infragistics\2019.1\Windows Forms\CLR4.0\Bin\Infragistics4.Shared.v19.1.dll + + + False + C:\Program Files (x86)\Infragistics\2019.1\Windows Forms\CLR4.0\Bin\Infragistics4.Win.UltraWinDock.v19.1.dll + + + False + C:\Program Files (x86)\Infragistics\2019.1\Windows Forms\CLR4.0\Bin\Infragistics4.Win.UltraWinExplorerBar.v19.1.dll + + + False + C:\Program Files (x86)\Infragistics\2019.1\Windows Forms\CLR4.0\Bin\Infragistics4.Win.UltraWinToolbars.v19.1.dll + + + False + C:\Program Files (x86)\Infragistics\2019.1\Windows Forms\CLR4.0\Bin\Infragistics4.Win.v19.1.dll + + + ..\..\MESClient\COM_ChkPassword.dll + + + ..\..\MESClient\COM_Kit.dll + + + ..\..\MES_C_DLL\iMESException.dll + + + ..\..\MES_C_DLL\iMESExceptionManager.dll + + + ..\..\MES_C_DLL\iMESMainMenu.dll + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Form + + + + + True + Application.myapp + + + True + True + Resources.resx + + + True + Settings.settings + True + + + + + MDI_Panel.vb + + + + VbMyResourcesResXFileCodeGenerator + My.Resources + Designer + Resources.Designer.vb + + + + + + + MyApplicationCodeGenerator + Application.Designer.vb + + + SettingsSingleFileGenerator + My + Settings.Designer.vb + + + + + + + + + + + + \ No newline at end of file diff --git a/SRC/MESWin/Test/app.config b/SRC/MESWin/Test/app.config new file mode 100644 index 0000000..48769a1 --- /dev/null +++ b/SRC/MESWin/Test/app.config @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SRC/MESWin/Test/iMES.snk b/SRC/MESWin/Test/iMES.snk new file mode 100644 index 0000000..4206cdc Binary files /dev/null and b/SRC/MESWin/Test/iMES.snk differ diff --git a/SRC/MESWin/Test/modTest.vb b/SRC/MESWin/Test/modTest.vb new file mode 100644 index 0000000..c16b586 --- /dev/null +++ b/SRC/MESWin/Test/modTest.vb @@ -0,0 +1,183 @@ +Imports System.Deployment.Application +Imports System.IO +Imports System.Reflection +Imports iMESExceptionManager + +Module modTest + + Public Const defInteger As Integer = -999 '宣告整數使用的常數,用以辨識參數是否有傳入Function中。 + Public Const defString As String = "Null" '宣告字串使用的常數,用以辨識參數是否有傳入Function中。 + Public Const defDateTime As Date = #12/31/1900# '宣告日期使用的常數,用以辨識參數是否有傳入Function中。 + Public Const defSingle As Single = -999 '宣告單精準數使用的常數,用以辨識參數是否有傳入Function中。 + Public Const defDouble As Double = -999 '宣告雙精準數使用的常數,用以辨識參數是否有傳入Function中。 + Public Const strAddTagLabel As String = "extrabase" 'Add by py for Combine Addition XML doc + Public Const strAddTagName As String = "ExtraBase" 'Add by py for Combine Addition XML doc + Public Const defWinErrCode As String = "0000-899999" + Public Const defNullDate As Date = #12/31/1910# '宣告日期使用的常數,用以辨識參數是否要變更為Null。 + Public Const defNullInteger As Integer = -9999 '宣告數值使用的常數,用以辨識參數是否要變更為Null。 + + Sub Main() + Dim WinFormInfo As System.Windows.Forms.SystemInformation + + '***************************************************************************************************************** + + Dim ArgumentStr() As String = Split(Microsoft.VisualBasic.Command()) '取得傳給此執行檔的參數(應用程式路徑,UserID,Password) + Dim i As Integer + Dim App_Path As String = "" + + 'Modify By Peter 2005/06/21 Add /WSH + For i = LBound(ArgumentStr) To UBound(ArgumentStr) + If InStr(UCase(ArgumentStr(i)), "/DIR:") > 0 Then + App_Path = Mid(Trim(ArgumentStr(i)), 6, Trim(ArgumentStr(i)).Length) + ElseIf InStr(UCase(ArgumentStr(i)), "/UID:") > 0 Then + gUserNo = Mid(Trim(ArgumentStr(i)), 6, Trim(ArgumentStr(i)).Length) + ElseIf InStr(UCase(ArgumentStr(i)), "/UNA:") > 0 Then + gUserName = Mid(Trim(ArgumentStr(i)), 6, Trim(ArgumentStr(i)).Length) + ElseIf InStr(UCase(ArgumentStr(i)), "/LVL:") > 0 Then + gUserLevel = Mid(Trim(ArgumentStr(i)), 6, Trim(ArgumentStr(i)).Length) + ElseIf InStr(UCase(ArgumentStr(i)), "/LAN:") > 0 Then + gLanguageMode = Mid(Trim(ArgumentStr(i)), 6, Trim(ArgumentStr(i)).Length) + ElseIf InStr(UCase(ArgumentStr(i)), "/WSH:") > 0 Then + gMESWebServiceHost = Mid(Trim(ArgumentStr(i)), 6, Trim(ArgumentStr(i)).Length) + ElseIf InStr(UCase(ArgumentStr(i)), "/CSH:") > 0 Then + gCUSWebServiceHost = Mid(Trim(ArgumentStr(i)), 6, Trim(ArgumentStr(i)).Length) + ElseIf InStr(UCase(ArgumentStr(i)), "/ENV:") > 0 Then + gSettingMode = Mid(Trim(ArgumentStr(i)), 6, Trim(ArgumentStr(i)).Length) + ElseIf InStr(UCase(ArgumentStr(i)), "/SSH:") > 0 Then + gSFCWebServiceHost = Mid(Trim(ArgumentStr(i)), 6, Trim(ArgumentStr(i)).Length) + ElseIf InStr(UCase(ArgumentStr(i)), "/ESH:") > 0 Then + gERPWebServiceHost = Mid(Trim(ArgumentStr(i)), 6, Trim(ArgumentStr(i)).Length) + ElseIf InStr(UCase(ArgumentStr(i)), "/SSL:") > 0 Then + gEnableSSL = IIf(Mid(Trim(ArgumentStr(i)), 6, Trim(ArgumentStr(i)).Length).ToUpper = "TRUE", True, False) + End If + Next + + '***************************************************************************************************************** + If App_Path = "" Then + gAppPath = Application.StartupPath + Else + gAppPath = App_Path + End If + + If gUserNo = "" And gUserName = "" Then + + Using obj As New frmCOMChkPassword + obj.ShowDialog() + End Using + + Else + gReturnKeyValue = gUserNo + End If + + '用來做為是否可以進入系統的判斷 + If gReturnKeyValue <> "" Then + '取得電腦名稱 + gComputerName = WinFormInfo.ComputerName + + iMESExceptionManager.ExceptionManager.LanguageMode = gLanguageMode + + ' 2014/12/26 YF, Coding時套用Pro5 Style + Infragistics.Win.AppStyling.StyleManager.Load(New MemoryStream(Global.Test.My.Resources.Resources.iMES)) + gEnableStyle = True + + '進入之系統 + Dim fMain As New MDI_Panel + fMain.ShowDialog() + + End If + + End Sub + + Public Function LoadAssembly(ByVal pFileName As String) As Assembly + + Dim mainAssembly As System.Reflection.Assembly + Dim myfieldinfo() As System.Reflection.FieldInfo + Dim strAppBase As String = AppDomain.CurrentDomain.BaseDirectory + Dim strFilePath As String + Dim strNamespace As String + + Try + + '判斷是否使用ClickOnce + If ApplicationDeployment.IsNetworkDeployed Then + 'ClickOnce架構下將strAppBase改指回Smart Client + Dim tempUri As System.Uri = ApplicationDeployment.CurrentDeployment.UpdateLocation + strAppBase = tempUri.ToString.Replace("/ClickOnce/MESSeries.application", "") + End If + + strFilePath = strAppBase & "/" & pFileName + + '檢查檔案是否存在 + If (Not funCheckFileExist(strFilePath)) Then + Throw New iMESException.MESException("0000-202115", strFilePath) + End If + + mainAssembly = Assembly.LoadFrom(strFilePath) + + 'strNamespace = mainAssembly.GetExportedTypes(0).Namespace + + '設定值予Module Public變數 + 'myfieldinfo = mainAssembly.GetType(strNamespace & ".modWIN").GetFields() + + 'For i As Integer = 0 To myfieldinfo.Length - 1 + ' If myfieldinfo(i).Name.ToUpper = "gUserNo".ToUpper Then + ' myfieldinfo(i).SetValue(myfieldinfo(i), gUserNo) + ' ElseIf myfieldinfo(i).Name.ToUpper = "gUserName".ToUpper Then + ' myfieldinfo(i).SetValue(myfieldinfo(i), gUserName) + ' ElseIf myfieldinfo(i).Name.ToUpper = "gComputerName".ToUpper Then + ' myfieldinfo(i).SetValue(myfieldinfo(i), gComputerName) + ' ElseIf myfieldinfo(i).Name.ToUpper = "gUserLevel".ToUpper Then + ' myfieldinfo(i).SetValue(myfieldinfo(i), gUserLevel) + ' ElseIf myfieldinfo(i).Name.ToUpper = "gLanguageMode".ToUpper Then + ' myfieldinfo(i).SetValue(myfieldinfo(i), gLanguageMode) + ' ElseIf myfieldinfo(i).Name.ToUpper = "gAppPath".ToUpper Then + ' myfieldinfo(i).SetValue(myfieldinfo(i), gAppPath) + ' ElseIf myfieldinfo(i).Name.ToUpper = "gMESWebServiceHost".ToUpper Then + ' myfieldinfo(i).SetValue(myfieldinfo(i), gMESWebServiceHost) + ' ElseIf myfieldinfo(i).Name.ToUpper = "gCUSWebServiceHost".ToUpper Then + ' myfieldinfo(i).SetValue(myfieldinfo(i), gCUSWebServiceHost) + ' ElseIf myfieldinfo(i).Name.ToUpper = "gSFCWebServiceHost".ToUpper Then + ' myfieldinfo(i).SetValue(myfieldinfo(i), gSFCWebServiceHost) + ' ElseIf myfieldinfo(i).Name.ToUpper = "gERPWebServiceHost".ToUpper Then + ' myfieldinfo(i).SetValue(myfieldinfo(i), gERPWebServiceHost) + ' ElseIf myfieldinfo(i).Name.ToUpper = "gSettingMode".ToUpper Then + ' myfieldinfo(i).SetValue(myfieldinfo(i), gSettingMode) + ' ElseIf myfieldinfo(i).Name.ToUpper = "gEnterpriseNo".ToUpper Then + ' myfieldinfo(i).SetValue(myfieldinfo(i), gEnterpriseNo) + ' ElseIf myfieldinfo(i).Name.ToUpper = "gEnableSSL".ToUpper Then + ' myfieldinfo(i).SetValue(myfieldinfo(i), gEnableSSL) + ' ElseIf myfieldinfo(i).Name.ToUpper = "gConfigFile".ToUpper Then + ' myfieldinfo(i).SetValue(myfieldinfo(i), gConfigFile) + ' ElseIf myfieldinfo(i).Name.ToUpper = "gEnableStyle".ToUpper Then + ' myfieldinfo(i).SetValue(myfieldinfo(i), True) + ' ElseIf myfieldinfo(i).Name.ToUpper = "gSYSmode".ToUpper Then + ' myfieldinfo(i).SetValue(myfieldinfo(i), gSYSmode) + ' End If + 'Next + + Catch ex As Exception + mainAssembly = Nothing + ExceptionManager.iMESShowDialog(defWinErrCode, "Load Assembly Fail!" & vbCrLf & ex.Message, ex.StackTrace) + End Try + + Return mainAssembly + + End Function + + '檢查檔案是否存在 + Private Function funCheckFileExist(ByVal strFilePath As String) As Boolean + + 'Network架構下 + If ApplicationDeployment.IsNetworkDeployed OrElse + Application.ExecutablePath.ToLower.StartsWith("http") Then + '暫不檢查 + ElseIf IO.File.Exists(strFilePath) = False Then + '檔案架構下 + Return False + End If + + Return True + + End Function + +End Module diff --git a/SRC/MESWin/shared file/DirectionDown.png b/SRC/MESWin/shared file/DirectionDown.png new file mode 100644 index 0000000..8f89533 Binary files /dev/null and b/SRC/MESWin/shared file/DirectionDown.png differ diff --git a/SRC/MESWin/shared file/DirectionLeft.png b/SRC/MESWin/shared file/DirectionLeft.png new file mode 100644 index 0000000..80ea854 Binary files /dev/null and b/SRC/MESWin/shared file/DirectionLeft.png differ diff --git a/SRC/MESWin/shared file/DirectionRight.png b/SRC/MESWin/shared file/DirectionRight.png new file mode 100644 index 0000000..cc26c41 Binary files /dev/null and b/SRC/MESWin/shared file/DirectionRight.png differ diff --git a/SRC/MESWin/shared file/DirectionUp.png b/SRC/MESWin/shared file/DirectionUp.png new file mode 100644 index 0000000..1f2c2ab Binary files /dev/null and b/SRC/MESWin/shared file/DirectionUp.png differ diff --git a/SRC/MESWin/shared file/Export16x16.ico b/SRC/MESWin/shared file/Export16x16.ico new file mode 100644 index 0000000..07fe93e Binary files /dev/null and b/SRC/MESWin/shared file/Export16x16.ico differ diff --git a/SRC/MESWin/shared file/MakeVersion.targets b/SRC/MESWin/shared file/MakeVersion.targets new file mode 100644 index 0000000..f07a58c --- /dev/null +++ b/SRC/MESWin/shared file/MakeVersion.targets @@ -0,0 +1,16 @@ + + + + + + + $([System.DateTime]::Now.ToString("yy").Substring(1, 1)) + $([System.DateTime]::Now.ToString("MM")) + $([System.DateTime]::Now.ToString("dd")) + + <Assembly: Reflection.AssemblyFileVersion("6.0.5.$(Year)$(Month)$(Date)")> + + + + + \ No newline at end of file diff --git a/SRC/MESWin/shared file/MakeVersion_CS.targets b/SRC/MESWin/shared file/MakeVersion_CS.targets new file mode 100644 index 0000000..c5267d8 --- /dev/null +++ b/SRC/MESWin/shared file/MakeVersion_CS.targets @@ -0,0 +1,16 @@ + + + + + + + $([System.DateTime]::Now.ToString("yy").Substring(1, 1)) + $([System.DateTime]::Now.ToString("MM")) + $([System.DateTime]::Now.ToString("dd")) + + [assembly: System.Reflection.AssemblyFileVersion("6.0.5.$(Year)$(Month)$(Date)")] + + + + + \ No newline at end of file diff --git a/SRC/MESWin/shared file/Save16x16.ico b/SRC/MESWin/shared file/Save16x16.ico new file mode 100644 index 0000000..90af81e Binary files /dev/null and b/SRC/MESWin/shared file/Save16x16.ico differ diff --git a/SRC/MESWin/shared file/arERF_General.resx b/SRC/MESWin/shared file/arERF_General.resx new file mode 100644 index 0000000..f7c09a6 --- /dev/null +++ b/SRC/MESWin/shared file/arERF_General.resx @@ -0,0 +1,411 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + #,##0.0000 + + + + + /9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAICAgICAgICAgIDAgICBAUEAgIEBQYFBQUFBQYHBgYGBgYG + BwcICAkICAcKCgsLCgoODg4ODg4ODg4ODg4ODg7/2wBDAQMDAwYFBgsHBwsODAoMDhEQEBAQEREODg4O + Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg7/wAARCAA+ANEDAREAAhEBAxEB/8QA + HwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIh + MUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVW + V1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXG + x8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQF + BgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAV + YnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE + hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq + 8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD9/KACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgA + oAKACgAoAKACgAoAKACgAoAxdf1mx8N6HrXiHUmKadoNrNeX7qMkRQRmRyB34WtcNh3WqRpx+KTSXq3Z + GGJxCo05VJbRTb9Ernwl8Ov23ZPGPxI0nwpq3gyLS9D8T3qWOjXsUzPPFJO4jg85du1txIBxjbnPOK/S + 828Ofq2ElWjUvKEeaSa0aSu7dvLe5+a5V4ifWcWqMqdozlZO+qbdlfv57WP0Hr8vP1E8Z+IXxs8HfD+Q + aXK8uv8Aiebi28MWI8yclum/HCfjz6A18tnnFuFy98jvOr0hHV/Pt+fkfWZBwZi8yXtFaFJbzlpH5d/y + 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 + 5pDFoA//2Q== + + + + + AAEAAAD/////AQAAAAAAAAAEAQAAABZTeXN0ZW0uSU8uTWVtb3J5U3RyZWFtCgAAAAdfYnVmZmVyB19v + cmlnaW4JX3Bvc2l0aW9uB19sZW5ndGgJX2NhcGFjaXR5C19leHBhbmRhYmxlCV93cml0YWJsZQpfZXhw + b3NhYmxlB19pc09wZW4dTWFyc2hhbEJ5UmVmT2JqZWN0K19faWRlbnRpdHkHAAAAAAAAAAACAggICAgB + AQEBCQIAAAAAAAAAAAAAAMAeAADAHgAAAQEBAQoPAgAAAMAeAAACALseAAD/2P/gABBKRklGAAEBAQBg + AGAAAP/bAEMAAgICAgICAgICAgMCAgIEBQQCAgQFBgUFBQUFBgcGBgYGBgYHBwgICQgIBwoKCwsKCg4O + Dg4ODg4ODg4ODg4ODv/bAEMBAwMDBgUGCwcHCw4MCgwOERAQEBAREQ4ODg4ODg4ODg4ODg4ODg4ODg4O + Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODv/AABEIAD4A0QMBEQACEQEDEQH/xAAfAAABBQEBAQEBAQAAAAAA + AAAAAQIDBAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgj + QrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2 + d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj + 5OXm5+jp6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIE + BAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYn + KCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqi + o6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEA + AhEDEQA/AP38oAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAC + 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 + + + + + + + + + + True + + + font-family: Arial; font-style: normal; font-variant: inherit; font-weight: normal; font-size: 10pt; font-size-adjust: inherit; font-stretch: inherit; color: rgb(0,0,0); background-repeat: inherit; background-attachment: inherit; opacity: inherit; word-spacing: inherit; letter-spacing: inherit; text-decoration: none; vertical-align: inherit; text-transform: inherit; text-align: inherit; text-indent: inherit; unicode-bidi: inherit; line-height: inherit; white-space: inherit; ddo-char-set: 0; + + \ No newline at end of file diff --git a/SRC/MESWin/shared file/arERF_General.vb b/SRC/MESWin/shared file/arERF_General.vb new file mode 100644 index 0000000..11bede1 --- /dev/null +++ b/SRC/MESWin/shared file/arERF_General.vb @@ -0,0 +1,1313 @@ +Imports GrapeCity.ActiveReports.Document +Imports GrapeCity.ActiveReports.Document.Section +Imports GrapeCity.ActiveReports.SectionReportModel +Imports GrapeCity.ActiveReports.Controls +Imports GrapeCity.ActiveReports +Imports System + + + +Public Class arERF_General + + Inherits GrapeCity.ActiveReports.SectionReport + + Public Sub New() + MyBase.New() + InitializeComponent() + End Sub + + '//Public Variables + Public ERFNo, LotNo, CustomerNo, OPNo, ProductNo, RuleNo, MClassNo, HoldDescription, Creator As String + Public CreateDate As DateTime + +#Region "ActiveReports Designer generated code" + Private WithEvents PageHeader As GrapeCity.ActiveReports.SectionReportModel.PageHeader = Nothing + Private WithEvents GroupHeader1 As GrapeCity.ActiveReports.SectionReportModel.GroupHeader = Nothing + Private WithEvents Detail As GrapeCity.ActiveReports.SectionReportModel.Detail = Nothing + Private WithEvents GroupFooter1 As GrapeCity.ActiveReports.SectionReportModel.GroupFooter = Nothing + Private WithEvents PageFooter As GrapeCity.ActiveReports.SectionReportModel.PageFooter = Nothing + Private Picture1 As GrapeCity.ActiveReports.SectionReportModel.Picture = Nothing + Private Shape1 As GrapeCity.ActiveReports.SectionReportModel.Shape = Nothing + Private lblERFReport As GrapeCity.ActiveReports.SectionReportModel.Label = Nothing + Private txtDate As GrapeCity.ActiveReports.SectionReportModel.TextBox = Nothing + Private lblPrintDate As GrapeCity.ActiveReports.SectionReportModel.Label = Nothing + Private lblERFNo As GrapeCity.ActiveReports.SectionReportModel.Label = Nothing + Private txtERFNo As GrapeCity.ActiveReports.SectionReportModel.Label = Nothing + Private Line2 As GrapeCity.ActiveReports.SectionReportModel.Line = Nothing + Private Line5 As GrapeCity.ActiveReports.SectionReportModel.Line = Nothing + Private lblCustomerNo As GrapeCity.ActiveReports.SectionReportModel.Label = Nothing + Private lblLotNo As GrapeCity.ActiveReports.SectionReportModel.Label = Nothing + Private lblProductNo As GrapeCity.ActiveReports.SectionReportModel.Label = Nothing + Private txtLotNo As GrapeCity.ActiveReports.SectionReportModel.Label = Nothing + Private txtCustomerNo As GrapeCity.ActiveReports.SectionReportModel.Label = Nothing + Private txtProductNo As GrapeCity.ActiveReports.SectionReportModel.Label = Nothing + Private Barcode1 As GrapeCity.ActiveReports.SectionReportModel.Barcode = Nothing + Private lblOPNo As GrapeCity.ActiveReports.SectionReportModel.Label = Nothing + Private txtOPNo As GrapeCity.ActiveReports.SectionReportModel.Label = Nothing + Private lblRuleNo As GrapeCity.ActiveReports.SectionReportModel.Label = Nothing + Private txtRuleNo As GrapeCity.ActiveReports.SectionReportModel.Label = Nothing + Private lblMClassNo As GrapeCity.ActiveReports.SectionReportModel.Label = Nothing + Private txtMClassNo As GrapeCity.ActiveReports.SectionReportModel.Label = Nothing + Private lblHoldDescription As GrapeCity.ActiveReports.SectionReportModel.Label = Nothing + Private lblCreator As GrapeCity.ActiveReports.SectionReportModel.Label = Nothing + Private txtCreator As GrapeCity.ActiveReports.SectionReportModel.Label = Nothing + Private lblCreateDate As GrapeCity.ActiveReports.SectionReportModel.Label = Nothing + Private Line27 As GrapeCity.ActiveReports.SectionReportModel.Line = Nothing + Private Line28 As GrapeCity.ActiveReports.SectionReportModel.Line = Nothing + Private Line29 As GrapeCity.ActiveReports.SectionReportModel.Line = Nothing + Private Line30 As GrapeCity.ActiveReports.SectionReportModel.Line = Nothing + Private Line31 As GrapeCity.ActiveReports.SectionReportModel.Line = Nothing + Private Line32 As GrapeCity.ActiveReports.SectionReportModel.Line = Nothing + Private txtCreateDate As GrapeCity.ActiveReports.SectionReportModel.TextBox = Nothing + Private txtHoldDescription As GrapeCity.ActiveReports.SectionReportModel.TextBox = Nothing + Private lblHoldItemNo As GrapeCity.ActiveReports.SectionReportModel.Label = Nothing + Private lblQty As GrapeCity.ActiveReports.SectionReportModel.Label = Nothing + Private lblHoldDisposition As GrapeCity.ActiveReports.SectionReportModel.Label = Nothing + Private Line33 As GrapeCity.ActiveReports.SectionReportModel.Line = Nothing + Private Line34 As GrapeCity.ActiveReports.SectionReportModel.Line = Nothing + Private Line35 As GrapeCity.ActiveReports.SectionReportModel.Line = Nothing + Private txtHoldItemNo As GrapeCity.ActiveReports.SectionReportModel.TextBox = Nothing + Private txtQty As GrapeCity.ActiveReports.SectionReportModel.TextBox = Nothing + Private txtHoldDisposition As GrapeCity.ActiveReports.SectionReportModel.TextBox = Nothing + Private Line36 As GrapeCity.ActiveReports.SectionReportModel.Line = Nothing + Friend WithEvents Line1 As GrapeCity.ActiveReports.SectionReportModel.Line + Friend WithEvents Label1 As GrapeCity.ActiveReports.SectionReportModel.Label + Friend WithEvents Label2 As GrapeCity.ActiveReports.SectionReportModel.Label + Friend WithEvents Label3 As GrapeCity.ActiveReports.SectionReportModel.Label + Friend WithEvents Label4 As GrapeCity.ActiveReports.SectionReportModel.Label + Friend WithEvents Label5 As GrapeCity.ActiveReports.SectionReportModel.Label + Private Line37 As GrapeCity.ActiveReports.SectionReportModel.Line = Nothing + Private Sub InitializeComponent() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(arERF_General)) + Me.Detail = New GrapeCity.ActiveReports.SectionReportModel.Detail + Me.txtHoldDisposition = New GrapeCity.ActiveReports.SectionReportModel.TextBox + Me.txtHoldItemNo = New GrapeCity.ActiveReports.SectionReportModel.TextBox + Me.txtQty = New GrapeCity.ActiveReports.SectionReportModel.TextBox + Me.Line36 = New GrapeCity.ActiveReports.SectionReportModel.Line + Me.Line37 = New GrapeCity.ActiveReports.SectionReportModel.Line + Me.Line1 = New GrapeCity.ActiveReports.SectionReportModel.Line + Me.PageHeader = New GrapeCity.ActiveReports.SectionReportModel.PageHeader + Me.Picture1 = New GrapeCity.ActiveReports.SectionReportModel.Picture + Me.Shape1 = New GrapeCity.ActiveReports.SectionReportModel.Shape + Me.Line29 = New GrapeCity.ActiveReports.SectionReportModel.Line + Me.txtCreateDate = New GrapeCity.ActiveReports.SectionReportModel.TextBox + Me.lblERFReport = New GrapeCity.ActiveReports.SectionReportModel.Label + Me.txtDate = New GrapeCity.ActiveReports.SectionReportModel.TextBox + Me.lblPrintDate = New GrapeCity.ActiveReports.SectionReportModel.Label + Me.lblERFNo = New GrapeCity.ActiveReports.SectionReportModel.Label + Me.txtERFNo = New GrapeCity.ActiveReports.SectionReportModel.Label + Me.Line2 = New GrapeCity.ActiveReports.SectionReportModel.Line + Me.Line5 = New GrapeCity.ActiveReports.SectionReportModel.Line + Me.lblCustomerNo = New GrapeCity.ActiveReports.SectionReportModel.Label + Me.lblLotNo = New GrapeCity.ActiveReports.SectionReportModel.Label + Me.lblProductNo = New GrapeCity.ActiveReports.SectionReportModel.Label + Me.txtLotNo = New GrapeCity.ActiveReports.SectionReportModel.Label + Me.txtCustomerNo = New GrapeCity.ActiveReports.SectionReportModel.Label + Me.txtProductNo = New GrapeCity.ActiveReports.SectionReportModel.Label + Me.Barcode1 = New GrapeCity.ActiveReports.SectionReportModel.Barcode + Me.lblOPNo = New GrapeCity.ActiveReports.SectionReportModel.Label + Me.txtOPNo = New GrapeCity.ActiveReports.SectionReportModel.Label + Me.lblRuleNo = New GrapeCity.ActiveReports.SectionReportModel.Label + Me.txtRuleNo = New GrapeCity.ActiveReports.SectionReportModel.Label + Me.lblMClassNo = New GrapeCity.ActiveReports.SectionReportModel.Label + Me.txtMClassNo = New GrapeCity.ActiveReports.SectionReportModel.Label + Me.lblHoldDescription = New GrapeCity.ActiveReports.SectionReportModel.Label + Me.lblCreator = New GrapeCity.ActiveReports.SectionReportModel.Label + Me.txtCreator = New GrapeCity.ActiveReports.SectionReportModel.Label + Me.lblCreateDate = New GrapeCity.ActiveReports.SectionReportModel.Label + Me.Line27 = New GrapeCity.ActiveReports.SectionReportModel.Line + Me.Line28 = New GrapeCity.ActiveReports.SectionReportModel.Line + Me.Line30 = New GrapeCity.ActiveReports.SectionReportModel.Line + Me.Line31 = New GrapeCity.ActiveReports.SectionReportModel.Line + Me.Line32 = New GrapeCity.ActiveReports.SectionReportModel.Line + Me.txtHoldDescription = New GrapeCity.ActiveReports.SectionReportModel.TextBox + Me.Label1 = New GrapeCity.ActiveReports.SectionReportModel.Label + Me.Label2 = New GrapeCity.ActiveReports.SectionReportModel.Label + Me.Label3 = New GrapeCity.ActiveReports.SectionReportModel.Label + Me.Label4 = New GrapeCity.ActiveReports.SectionReportModel.Label + Me.Label5 = New GrapeCity.ActiveReports.SectionReportModel.Label + Me.PageFooter = New GrapeCity.ActiveReports.SectionReportModel.PageFooter + Me.GroupHeader1 = New GrapeCity.ActiveReports.SectionReportModel.GroupHeader + Me.lblHoldItemNo = New GrapeCity.ActiveReports.SectionReportModel.Label + Me.lblQty = New GrapeCity.ActiveReports.SectionReportModel.Label + Me.lblHoldDisposition = New GrapeCity.ActiveReports.SectionReportModel.Label + Me.Line33 = New GrapeCity.ActiveReports.SectionReportModel.Line + Me.Line34 = New GrapeCity.ActiveReports.SectionReportModel.Line + Me.Line35 = New GrapeCity.ActiveReports.SectionReportModel.Line + Me.GroupFooter1 = New GrapeCity.ActiveReports.SectionReportModel.GroupFooter + CType(Me.txtHoldDisposition, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.txtHoldItemNo, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.txtQty, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.Picture1, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.txtCreateDate, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.lblERFReport, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.txtDate, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.lblPrintDate, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.lblERFNo, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.txtERFNo, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.lblCustomerNo, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.lblLotNo, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.lblProductNo, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.txtLotNo, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.txtCustomerNo, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.txtProductNo, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.lblOPNo, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.txtOPNo, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.lblRuleNo, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.txtRuleNo, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.lblMClassNo, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.txtMClassNo, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.lblHoldDescription, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.lblCreator, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.txtCreator, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.lblCreateDate, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.txtHoldDescription, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.Label1, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.Label2, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.Label3, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.Label4, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.Label5, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.lblHoldItemNo, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.lblQty, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.lblHoldDisposition, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me, System.ComponentModel.ISupportInitialize).BeginInit() + ' + 'Detail + ' + Me.Detail.ColumnSpacing = 0.0! + Me.Detail.Controls.AddRange(New GrapeCity.ActiveReports.SectionReportModel.ARControl() {Me.txtHoldDisposition, Me.txtHoldItemNo, Me.txtQty, Me.Line36, Me.Line37, Me.Line1}) + Me.Detail.Height = 0.3333333! + Me.Detail.KeepTogether = True + Me.Detail.Name = "Detail" + ' + 'txtHoldDisposition + ' + Me.txtHoldDisposition.Border.BottomColor = System.Drawing.Color.Black + Me.txtHoldDisposition.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtHoldDisposition.Border.LeftColor = System.Drawing.Color.Black + Me.txtHoldDisposition.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtHoldDisposition.Border.RightColor = System.Drawing.Color.Black + Me.txtHoldDisposition.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtHoldDisposition.Border.TopColor = System.Drawing.Color.Black + Me.txtHoldDisposition.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtHoldDisposition.DataField = "HoldDisposition" + Me.txtHoldDisposition.Height = 0.1968504! + Me.txtHoldDisposition.Left = 2.386811! + Me.txtHoldDisposition.Name = "txtHoldDisposition" + Me.txtHoldDisposition.Style = "ddo-char-set: 136; font-size: 9.75pt; font-family: 新細明體; " + Me.txtHoldDisposition.Text = Nothing + Me.txtHoldDisposition.Top = 0.0492126! + Me.txtHoldDisposition.Width = 5.364173! + ' + 'txtHoldItemNo + ' + Me.txtHoldItemNo.Border.BottomColor = System.Drawing.Color.Black + Me.txtHoldItemNo.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtHoldItemNo.Border.LeftColor = System.Drawing.Color.Black + Me.txtHoldItemNo.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtHoldItemNo.Border.RightColor = System.Drawing.Color.Black + Me.txtHoldItemNo.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtHoldItemNo.Border.TopColor = System.Drawing.Color.Black + Me.txtHoldItemNo.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtHoldItemNo.DataField = "HoldItemNo" + Me.txtHoldItemNo.Height = 0.1968504! + Me.txtHoldItemNo.Left = 0.1476378! + Me.txtHoldItemNo.Name = "txtHoldItemNo" + Me.txtHoldItemNo.Style = "font-size: 9.75pt; font-family: 新細明體; " + Me.txtHoldItemNo.Text = Nothing + Me.txtHoldItemNo.Top = 0.0492126! + Me.txtHoldItemNo.Width = 1.353346! + ' + 'txtQty + ' + Me.txtQty.Border.BottomColor = System.Drawing.Color.Black + Me.txtQty.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtQty.Border.LeftColor = System.Drawing.Color.Black + Me.txtQty.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtQty.Border.RightColor = System.Drawing.Color.Black + Me.txtQty.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtQty.Border.TopColor = System.Drawing.Color.Black + Me.txtQty.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtQty.DataField = "Qty" + Me.txtQty.Height = 0.2! + Me.txtQty.Left = 1.572917! + Me.txtQty.Name = "txtQty" + Me.txtQty.OutputFormat = resources.GetString("txtQty.OutputFormat") + Me.txtQty.Style = "font-size: 9.75pt; font-family: 新細明體; " + Me.txtQty.Text = Nothing + Me.txtQty.Top = 0.05298557! + Me.txtQty.Width = 0.75! + ' + 'Line36 + ' + Me.Line36.AnchorBottom = True + Me.Line36.Border.BottomColor = System.Drawing.Color.Black + Me.Line36.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line36.Border.LeftColor = System.Drawing.Color.Black + Me.Line36.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line36.Border.RightColor = System.Drawing.Color.Black + Me.Line36.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line36.Border.TopColor = System.Drawing.Color.Black + Me.Line36.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line36.Height = 0.31! + Me.Line36.Left = 0.0625! + Me.Line36.LineWeight = 1.0! + Me.Line36.Name = "Line36" + Me.Line36.Top = 0.0! + Me.Line36.Width = 0.0003187731! + Me.Line36.X1 = 0.0625! + Me.Line36.X2 = 0.06281877! + Me.Line36.Y1 = 0.0! + Me.Line36.Y2 = 0.31! + ' + 'Line37 + ' + Me.Line37.AnchorBottom = True + Me.Line37.Border.BottomColor = System.Drawing.Color.Black + Me.Line37.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line37.Border.LeftColor = System.Drawing.Color.Black + Me.Line37.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line37.Border.RightColor = System.Drawing.Color.Black + Me.Line37.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line37.Border.TopColor = System.Drawing.Color.Black + Me.Line37.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line37.Height = 0.31! + Me.Line37.Left = 7.8125! + Me.Line37.LineWeight = 1.0! + Me.Line37.Name = "Line37" + Me.Line37.Top = 0.0! + Me.Line37.Width = 0.0003190041! + Me.Line37.X1 = 7.8125! + Me.Line37.X2 = 7.812819! + Me.Line37.Y1 = 0.0! + Me.Line37.Y2 = 0.31! + ' + 'Line1 + ' + Me.Line1.Border.BottomColor = System.Drawing.Color.Black + Me.Line1.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line1.Border.LeftColor = System.Drawing.Color.Black + Me.Line1.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line1.Border.RightColor = System.Drawing.Color.Black + Me.Line1.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line1.Border.TopColor = System.Drawing.Color.Black + Me.Line1.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line1.Height = 0.0004101098! + Me.Line1.Left = 0.05856299! + Me.Line1.LineWeight = 1.0! + Me.Line1.Name = "Line1" + Me.Line1.Top = 0.3198819! + Me.Line1.Width = 7.756398! + Me.Line1.X1 = 0.05856299! + Me.Line1.X2 = 7.814961! + Me.Line1.Y1 = 0.3198819! + Me.Line1.Y2 = 0.320292! + ' + 'PageHeader + ' + Me.PageHeader.CanShrink = True + Me.PageHeader.Controls.AddRange(New GrapeCity.ActiveReports.SectionReportModel.ARControl() {Me.Picture1, Me.Shape1, Me.Line29, Me.txtCreateDate, Me.lblERFReport, Me.txtDate, Me.lblPrintDate, Me.lblERFNo, Me.txtERFNo, Me.Line2, Me.Line5, Me.lblCustomerNo, Me.lblLotNo, Me.lblProductNo, Me.txtLotNo, Me.txtCustomerNo, Me.txtProductNo, Me.Barcode1, Me.lblOPNo, Me.txtOPNo, Me.lblRuleNo, Me.txtRuleNo, Me.lblMClassNo, Me.txtMClassNo, Me.lblHoldDescription, Me.lblCreator, Me.txtCreator, Me.lblCreateDate, Me.Line27, Me.Line28, Me.Line30, Me.Line31, Me.Line32, Me.txtHoldDescription, Me.Label1, Me.Label2, Me.Label3, Me.Label4, Me.Label5}) + Me.PageHeader.Height = 2.760417! + Me.PageHeader.Name = "PageHeader" + ' + 'Picture1 + ' + Me.Picture1.Border.BottomColor = System.Drawing.Color.Black + Me.Picture1.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Picture1.Border.LeftColor = System.Drawing.Color.Black + Me.Picture1.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Picture1.Border.RightColor = System.Drawing.Color.Black + Me.Picture1.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Picture1.Border.TopColor = System.Drawing.Color.Black + Me.Picture1.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Picture1.Height = 0.5! + Me.Picture1.Image = CType(resources.GetObject("Picture1.Image"), System.Drawing.Image) + Me.Picture1.ImageData = CType(resources.GetObject("Picture1.ImageData"), System.IO.Stream) + Me.Picture1.Left = 0.0! + Me.Picture1.LineColor = System.Drawing.Color.FromArgb(CType(CType(255, Byte), Integer), CType(CType(255, Byte), Integer), CType(CType(255, Byte), Integer)) + Me.Picture1.LineWeight = 0.0! + Me.Picture1.Name = "Picture1" + Me.Picture1.SizeMode = GrapeCity.ActiveReports.SectionReportModel.SizeModes.Zoom + Me.Picture1.Top = 0.0! + Me.Picture1.Width = 1.6875! + ' + 'Shape1 + ' + Me.Shape1.Border.BottomColor = System.Drawing.Color.Black + Me.Shape1.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Shape1.Border.LeftColor = System.Drawing.Color.Black + Me.Shape1.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Shape1.Border.RightColor = System.Drawing.Color.Black + Me.Shape1.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Shape1.Border.TopColor = System.Drawing.Color.Black + Me.Shape1.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Shape1.Height = 2.25! + Me.Shape1.Left = 0.0625! + Me.Shape1.Name = "Shape1" + Me.Shape1.RoundingRadius = New GrapeCity.ActiveReports.Controls.CornersRadius(9.999999!) + Me.Shape1.Top = 0.5! + Me.Shape1.Width = 7.75! + ' + 'Line29 + ' + Me.Line29.Border.BottomColor = System.Drawing.Color.Black + Me.Line29.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line29.Border.LeftColor = System.Drawing.Color.Black + Me.Line29.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line29.Border.RightColor = System.Drawing.Color.Black + Me.Line29.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line29.Border.TopColor = System.Drawing.Color.Black + Me.Line29.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line29.Height = 0.0001250505! + Me.Line29.Left = 0.0625! + Me.Line29.LineWeight = 1.0! + Me.Line29.Name = "Line29" + Me.Line29.Top = 1.6875! + Me.Line29.Width = 7.75! + Me.Line29.X1 = 7.8125! + Me.Line29.X2 = 0.0625! + Me.Line29.Y1 = 1.6875! + Me.Line29.Y2 = 1.687625! + ' + 'txtCreateDate + ' + Me.txtCreateDate.Border.BottomColor = System.Drawing.Color.Black + Me.txtCreateDate.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtCreateDate.Border.LeftColor = System.Drawing.Color.Black + Me.txtCreateDate.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtCreateDate.Border.RightColor = System.Drawing.Color.Black + Me.txtCreateDate.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtCreateDate.Border.TopColor = System.Drawing.Color.Black + Me.txtCreateDate.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtCreateDate.Height = 0.2! + Me.txtCreateDate.Left = 6.484375! + Me.txtCreateDate.Name = "txtCreateDate" + Me.txtCreateDate.OutputFormat = resources.GetString("txtCreateDate.OutputFormat") + Me.txtCreateDate.Style = "ddo-char-set: 136; font-size: 9.75pt; font-family: 新細明體; " + Me.txtCreateDate.Text = Nothing + Me.txtCreateDate.Top = 1.453125! + Me.txtCreateDate.Width = 1.328125! + ' + 'lblERFReport + ' + Me.lblERFReport.Border.BottomColor = System.Drawing.Color.Black + Me.lblERFReport.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblERFReport.Border.LeftColor = System.Drawing.Color.Black + Me.lblERFReport.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblERFReport.Border.RightColor = System.Drawing.Color.Black + Me.lblERFReport.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblERFReport.Border.TopColor = System.Drawing.Color.Black + Me.lblERFReport.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblERFReport.Height = 0.4429134! + Me.lblERFReport.HyperLink = "" + Me.lblERFReport.Left = 3.198819! + Me.lblERFReport.Name = "lblERFReport" + Me.lblERFReport.Style = "text-decoration: none; ddo-char-set: 0; font-weight: bold; font-style: normal; fo" & _ + "nt-size: 24pt; font-family: Times New Roman; " + Me.lblERFReport.Text = "ERF Report" + Me.lblERFReport.Top = 0.0! + Me.lblERFReport.Width = 2.26378! + ' + 'txtDate + ' + Me.txtDate.Border.BottomColor = System.Drawing.Color.Black + Me.txtDate.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtDate.Border.LeftColor = System.Drawing.Color.Black + Me.txtDate.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtDate.Border.RightColor = System.Drawing.Color.Black + Me.txtDate.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtDate.Border.TopColor = System.Drawing.Color.Black + Me.txtDate.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtDate.Height = 0.2! + Me.txtDate.Left = 6.5! + Me.txtDate.Name = "txtDate" + Me.txtDate.Style = "font-size: 9.75pt; font-family: Times New Roman; " + Me.txtDate.Text = Nothing + Me.txtDate.Top = 0.25! + Me.txtDate.Width = 1.25! + ' + 'lblPrintDate + ' + Me.lblPrintDate.Border.BottomColor = System.Drawing.Color.Black + Me.lblPrintDate.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblPrintDate.Border.LeftColor = System.Drawing.Color.Black + Me.lblPrintDate.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblPrintDate.Border.RightColor = System.Drawing.Color.Black + Me.lblPrintDate.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblPrintDate.Border.TopColor = System.Drawing.Color.Black + Me.lblPrintDate.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblPrintDate.Height = 0.2! + Me.lblPrintDate.HyperLink = "" + Me.lblPrintDate.Left = 5.75! + Me.lblPrintDate.Name = "lblPrintDate" + Me.lblPrintDate.Style = "font-size: 9.75pt; font-family: Times New Roman; " + Me.lblPrintDate.Text = "Print Date" + Me.lblPrintDate.Top = 0.25! + Me.lblPrintDate.Width = 0.75! + ' + 'lblERFNo + ' + Me.lblERFNo.Border.BottomColor = System.Drawing.Color.Black + Me.lblERFNo.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblERFNo.Border.LeftColor = System.Drawing.Color.Black + Me.lblERFNo.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblERFNo.Border.RightColor = System.Drawing.Color.Black + Me.lblERFNo.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblERFNo.Border.TopColor = System.Drawing.Color.Black + Me.lblERFNo.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblERFNo.Height = 0.2! + Me.lblERFNo.HyperLink = "" + Me.lblERFNo.Left = 0.125! + Me.lblERFNo.Name = "lblERFNo" + Me.lblERFNo.Style = "font-size: 9.75pt; font-family: Times New Roman; " + Me.lblERFNo.Text = "ERF No" + Me.lblERFNo.Top = 0.5625! + Me.lblERFNo.Width = 0.875! + ' + 'txtERFNo + ' + Me.txtERFNo.Border.BottomColor = System.Drawing.Color.Black + Me.txtERFNo.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtERFNo.Border.LeftColor = System.Drawing.Color.Black + Me.txtERFNo.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtERFNo.Border.RightColor = System.Drawing.Color.Black + Me.txtERFNo.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtERFNo.Border.TopColor = System.Drawing.Color.Black + Me.txtERFNo.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtERFNo.Height = 0.2! + Me.txtERFNo.HyperLink = "" + Me.txtERFNo.Left = 1.0625! + Me.txtERFNo.Name = "txtERFNo" + Me.txtERFNo.Style = "ddo-char-set: 136; font-size: 9.75pt; font-family: 新細明體; " + Me.txtERFNo.Text = "" + Me.txtERFNo.Top = 0.5625! + Me.txtERFNo.Width = 1.6875! + ' + 'Line2 + ' + Me.Line2.Border.BottomColor = System.Drawing.Color.Black + Me.Line2.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line2.Border.LeftColor = System.Drawing.Color.Black + Me.Line2.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line2.Border.RightColor = System.Drawing.Color.Black + Me.Line2.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line2.Border.TopColor = System.Drawing.Color.Black + Me.Line2.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line2.Height = 0.91! + Me.Line2.Left = 2.866! + Me.Line2.LineWeight = 1.0! + Me.Line2.Name = "Line2" + Me.Line2.Top = 0.5! + Me.Line2.Width = 0.0003190041! + Me.Line2.X1 = 2.866319! + Me.Line2.X2 = 2.866! + Me.Line2.Y1 = 0.5! + Me.Line2.Y2 = 1.41! + ' + 'Line5 + ' + Me.Line5.Border.BottomColor = System.Drawing.Color.Black + Me.Line5.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line5.Border.LeftColor = System.Drawing.Color.Black + Me.Line5.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line5.Border.RightColor = System.Drawing.Color.Black + Me.Line5.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line5.Border.TopColor = System.Drawing.Color.Black + Me.Line5.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line5.Height = 0.0! + Me.Line5.Left = 0.0625! + Me.Line5.LineWeight = 1.0! + Me.Line5.Name = "Line5" + Me.Line5.Top = 0.8125! + Me.Line5.Width = 5.54! + Me.Line5.X1 = 5.6025! + Me.Line5.X2 = 0.0625! + Me.Line5.Y1 = 0.8125! + Me.Line5.Y2 = 0.8125! + ' + 'lblCustomerNo + ' + Me.lblCustomerNo.Border.BottomColor = System.Drawing.Color.Black + Me.lblCustomerNo.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblCustomerNo.Border.LeftColor = System.Drawing.Color.Black + Me.lblCustomerNo.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblCustomerNo.Border.RightColor = System.Drawing.Color.Black + Me.lblCustomerNo.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblCustomerNo.Border.TopColor = System.Drawing.Color.Black + Me.lblCustomerNo.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblCustomerNo.Height = 0.2! + Me.lblCustomerNo.HyperLink = "" + Me.lblCustomerNo.Left = 0.125! + Me.lblCustomerNo.Name = "lblCustomerNo" + Me.lblCustomerNo.Style = "font-size: 9.75pt; font-family: Times New Roman; " + Me.lblCustomerNo.Text = "Customer No" + Me.lblCustomerNo.Top = 0.859375! + Me.lblCustomerNo.Width = 0.875! + ' + 'lblLotNo + ' + Me.lblLotNo.Border.BottomColor = System.Drawing.Color.Black + Me.lblLotNo.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblLotNo.Border.LeftColor = System.Drawing.Color.Black + Me.lblLotNo.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblLotNo.Border.RightColor = System.Drawing.Color.Black + Me.lblLotNo.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblLotNo.Border.TopColor = System.Drawing.Color.Black + Me.lblLotNo.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblLotNo.Height = 0.2! + Me.lblLotNo.HyperLink = "" + Me.lblLotNo.Left = 2.9375! + Me.lblLotNo.Name = "lblLotNo" + Me.lblLotNo.Style = "font-size: 9.75pt; font-family: Times New Roman; " + Me.lblLotNo.Text = "Lot No" + Me.lblLotNo.Top = 0.5625! + Me.lblLotNo.Width = 0.75! + ' + 'lblProductNo + ' + Me.lblProductNo.Border.BottomColor = System.Drawing.Color.Black + Me.lblProductNo.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblProductNo.Border.LeftColor = System.Drawing.Color.Black + Me.lblProductNo.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblProductNo.Border.RightColor = System.Drawing.Color.Black + Me.lblProductNo.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblProductNo.Border.TopColor = System.Drawing.Color.Black + Me.lblProductNo.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblProductNo.Height = 0.2! + Me.lblProductNo.HyperLink = "" + Me.lblProductNo.Left = 2.9375! + Me.lblProductNo.Name = "lblProductNo" + Me.lblProductNo.Style = "font-size: 9.75pt; font-family: Times New Roman; " + Me.lblProductNo.Text = "Product No" + Me.lblProductNo.Top = 0.859375! + Me.lblProductNo.Width = 0.75! + ' + 'txtLotNo + ' + Me.txtLotNo.Border.BottomColor = System.Drawing.Color.Black + Me.txtLotNo.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtLotNo.Border.LeftColor = System.Drawing.Color.Black + Me.txtLotNo.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtLotNo.Border.RightColor = System.Drawing.Color.Black + Me.txtLotNo.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtLotNo.Border.TopColor = System.Drawing.Color.Black + Me.txtLotNo.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtLotNo.Height = 0.1875! + Me.txtLotNo.HyperLink = "" + Me.txtLotNo.Left = 3.75! + Me.txtLotNo.Name = "txtLotNo" + Me.txtLotNo.Style = "ddo-char-set: 136; font-size: 9.75pt; font-family: 新細明體; " + Me.txtLotNo.Text = "" + Me.txtLotNo.Top = 0.5625! + Me.txtLotNo.Width = 1.8125! + ' + 'txtCustomerNo + ' + Me.txtCustomerNo.Border.BottomColor = System.Drawing.Color.Black + Me.txtCustomerNo.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtCustomerNo.Border.LeftColor = System.Drawing.Color.Black + Me.txtCustomerNo.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtCustomerNo.Border.RightColor = System.Drawing.Color.Black + Me.txtCustomerNo.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtCustomerNo.Border.TopColor = System.Drawing.Color.Black + Me.txtCustomerNo.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtCustomerNo.Height = 0.2! + Me.txtCustomerNo.HyperLink = "" + Me.txtCustomerNo.Left = 1.0625! + Me.txtCustomerNo.Name = "txtCustomerNo" + Me.txtCustomerNo.Style = "ddo-char-set: 136; font-size: 9.75pt; font-family: 新細明體; " + Me.txtCustomerNo.Text = "" + Me.txtCustomerNo.Top = 0.875! + Me.txtCustomerNo.Width = 1.6875! + ' + 'txtProductNo + ' + Me.txtProductNo.Border.BottomColor = System.Drawing.Color.Black + Me.txtProductNo.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtProductNo.Border.LeftColor = System.Drawing.Color.Black + Me.txtProductNo.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtProductNo.Border.RightColor = System.Drawing.Color.Black + Me.txtProductNo.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtProductNo.Border.TopColor = System.Drawing.Color.Black + Me.txtProductNo.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtProductNo.Height = 0.1875! + Me.txtProductNo.HyperLink = "" + Me.txtProductNo.Left = 3.75! + Me.txtProductNo.Name = "txtProductNo" + Me.txtProductNo.Style = "ddo-char-set: 136; font-size: 9.75pt; font-family: 新細明體; " + Me.txtProductNo.Text = "" + Me.txtProductNo.Top = 0.859375! + Me.txtProductNo.Width = 1.8125! + ' + 'Barcode1 + ' + Me.Barcode1.Border.BottomColor = System.Drawing.Color.Black + Me.Barcode1.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Barcode1.Border.LeftColor = System.Drawing.Color.Black + Me.Barcode1.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Barcode1.Border.RightColor = System.Drawing.Color.Black + Me.Barcode1.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Barcode1.Border.TopColor = System.Drawing.Color.Black + Me.Barcode1.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Barcode1.CaptionPosition = GrapeCity.ActiveReports.SectionReportModel.BarCodeCaptionPosition.Below + Me.Barcode1.Font = New System.Drawing.Font("Courier New", 8.0!) + Me.Barcode1.Height = 0.4375! + Me.Barcode1.Left = 5.6875! + Me.Barcode1.Name = "Barcode1" + Me.Barcode1.Text = "Barcode1" + Me.Barcode1.Top = 0.59375! + Me.Barcode1.Width = 2.0625! + ' + 'lblOPNo + ' + Me.lblOPNo.Border.BottomColor = System.Drawing.Color.Black + Me.lblOPNo.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblOPNo.Border.LeftColor = System.Drawing.Color.Black + Me.lblOPNo.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblOPNo.Border.RightColor = System.Drawing.Color.Black + Me.lblOPNo.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblOPNo.Border.TopColor = System.Drawing.Color.Black + Me.lblOPNo.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblOPNo.Height = 0.2! + Me.lblOPNo.HyperLink = "" + Me.lblOPNo.Left = 2.9375! + Me.lblOPNo.Name = "lblOPNo" + Me.lblOPNo.Style = "font-size: 9.75pt; font-family: Times New Roman; " + Me.lblOPNo.Text = "OP No" + Me.lblOPNo.Top = 1.1875! + Me.lblOPNo.Width = 0.75! + ' + 'txtOPNo + ' + Me.txtOPNo.Border.BottomColor = System.Drawing.Color.Black + Me.txtOPNo.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtOPNo.Border.LeftColor = System.Drawing.Color.Black + Me.txtOPNo.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtOPNo.Border.RightColor = System.Drawing.Color.Black + Me.txtOPNo.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtOPNo.Border.TopColor = System.Drawing.Color.Black + Me.txtOPNo.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtOPNo.Height = 0.1875! + Me.txtOPNo.HyperLink = "" + Me.txtOPNo.Left = 3.75! + Me.txtOPNo.Name = "txtOPNo" + Me.txtOPNo.Style = "ddo-char-set: 136; font-size: 9.75pt; font-family: 新細明體; " + Me.txtOPNo.Text = "" + Me.txtOPNo.Top = 1.1875! + Me.txtOPNo.Width = 1.8125! + ' + 'lblRuleNo + ' + Me.lblRuleNo.Border.BottomColor = System.Drawing.Color.Black + Me.lblRuleNo.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblRuleNo.Border.LeftColor = System.Drawing.Color.Black + Me.lblRuleNo.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblRuleNo.Border.RightColor = System.Drawing.Color.Black + Me.lblRuleNo.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblRuleNo.Border.TopColor = System.Drawing.Color.Black + Me.lblRuleNo.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblRuleNo.Height = 0.2! + Me.lblRuleNo.HyperLink = "" + Me.lblRuleNo.Left = 0.125! + Me.lblRuleNo.Name = "lblRuleNo" + Me.lblRuleNo.Style = "font-size: 9.75pt; font-family: Times New Roman; " + Me.lblRuleNo.Text = "Rule No" + Me.lblRuleNo.Top = 1.453125! + Me.lblRuleNo.Width = 0.75! + ' + 'txtRuleNo + ' + Me.txtRuleNo.Border.BottomColor = System.Drawing.Color.Black + Me.txtRuleNo.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtRuleNo.Border.LeftColor = System.Drawing.Color.Black + Me.txtRuleNo.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtRuleNo.Border.RightColor = System.Drawing.Color.Black + Me.txtRuleNo.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtRuleNo.Border.TopColor = System.Drawing.Color.Black + Me.txtRuleNo.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtRuleNo.Height = 0.2! + Me.txtRuleNo.HyperLink = "" + Me.txtRuleNo.Left = 1.0625! + Me.txtRuleNo.Name = "txtRuleNo" + Me.txtRuleNo.Style = "ddo-char-set: 136; font-size: 9.75pt; font-family: 新細明體; " + Me.txtRuleNo.Text = "" + Me.txtRuleNo.Top = 1.453125! + Me.txtRuleNo.Width = 1.6875! + ' + 'lblMClassNo + ' + Me.lblMClassNo.Border.BottomColor = System.Drawing.Color.Black + Me.lblMClassNo.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblMClassNo.Border.LeftColor = System.Drawing.Color.Black + Me.lblMClassNo.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblMClassNo.Border.RightColor = System.Drawing.Color.Black + Me.lblMClassNo.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblMClassNo.Border.TopColor = System.Drawing.Color.Black + Me.lblMClassNo.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblMClassNo.Height = 0.2! + Me.lblMClassNo.HyperLink = "" + Me.lblMClassNo.Left = 0.125! + Me.lblMClassNo.Name = "lblMClassNo" + Me.lblMClassNo.Style = "font-size: 9.75pt; font-family: Times New Roman; " + Me.lblMClassNo.Text = "MClass No" + Me.lblMClassNo.Top = 1.15625! + Me.lblMClassNo.Width = 0.75! + ' + 'txtMClassNo + ' + Me.txtMClassNo.Border.BottomColor = System.Drawing.Color.Black + Me.txtMClassNo.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtMClassNo.Border.LeftColor = System.Drawing.Color.Black + Me.txtMClassNo.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtMClassNo.Border.RightColor = System.Drawing.Color.Black + Me.txtMClassNo.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtMClassNo.Border.TopColor = System.Drawing.Color.Black + Me.txtMClassNo.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtMClassNo.Height = 0.2! + Me.txtMClassNo.HyperLink = "" + Me.txtMClassNo.Left = 1.0625! + Me.txtMClassNo.Name = "txtMClassNo" + Me.txtMClassNo.Style = "ddo-char-set: 136; font-size: 9.75pt; font-family: 新細明體; " + Me.txtMClassNo.Text = "" + Me.txtMClassNo.Top = 1.15625! + Me.txtMClassNo.Width = 1.6875! + ' + 'lblHoldDescription + ' + Me.lblHoldDescription.Border.BottomColor = System.Drawing.Color.Black + Me.lblHoldDescription.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblHoldDescription.Border.LeftColor = System.Drawing.Color.Black + Me.lblHoldDescription.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblHoldDescription.Border.RightColor = System.Drawing.Color.Black + Me.lblHoldDescription.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblHoldDescription.Border.TopColor = System.Drawing.Color.Black + Me.lblHoldDescription.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblHoldDescription.Height = 0.2! + Me.lblHoldDescription.HyperLink = "" + Me.lblHoldDescription.Left = 0.1230315! + Me.lblHoldDescription.Name = "lblHoldDescription" + Me.lblHoldDescription.Style = "font-size: 9.75pt; font-family: Times New Roman; " + Me.lblHoldDescription.Text = "Hold Description" + Me.lblHoldDescription.Top = 1.747047! + Me.lblHoldDescription.Width = 1.125! + ' + 'lblCreator + ' + Me.lblCreator.Border.BottomColor = System.Drawing.Color.Black + Me.lblCreator.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblCreator.Border.LeftColor = System.Drawing.Color.Black + Me.lblCreator.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblCreator.Border.RightColor = System.Drawing.Color.Black + Me.lblCreator.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblCreator.Border.TopColor = System.Drawing.Color.Black + Me.lblCreator.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblCreator.Height = 0.2! + Me.lblCreator.HyperLink = "" + Me.lblCreator.Left = 5.65625! + Me.lblCreator.Name = "lblCreator" + Me.lblCreator.Style = "font-size: 9.75pt; font-family: Times New Roman; " + Me.lblCreator.Text = "Creator" + Me.lblCreator.Top = 1.1875! + Me.lblCreator.Width = 0.8125! + ' + 'txtCreator + ' + Me.txtCreator.Border.BottomColor = System.Drawing.Color.Black + Me.txtCreator.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtCreator.Border.LeftColor = System.Drawing.Color.Black + Me.txtCreator.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtCreator.Border.RightColor = System.Drawing.Color.Black + Me.txtCreator.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtCreator.Border.TopColor = System.Drawing.Color.Black + Me.txtCreator.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtCreator.Height = 0.1875! + Me.txtCreator.HyperLink = "" + Me.txtCreator.Left = 6.484375! + Me.txtCreator.Name = "txtCreator" + Me.txtCreator.Style = "ddo-char-set: 136; font-size: 9.75pt; font-family: 新細明體; " + Me.txtCreator.Text = "" + Me.txtCreator.Top = 1.1875! + Me.txtCreator.Width = 1.3125! + ' + 'lblCreateDate + ' + Me.lblCreateDate.Border.BottomColor = System.Drawing.Color.Black + Me.lblCreateDate.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblCreateDate.Border.LeftColor = System.Drawing.Color.Black + Me.lblCreateDate.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblCreateDate.Border.RightColor = System.Drawing.Color.Black + Me.lblCreateDate.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblCreateDate.Border.TopColor = System.Drawing.Color.Black + Me.lblCreateDate.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblCreateDate.Height = 0.2! + Me.lblCreateDate.HyperLink = "" + Me.lblCreateDate.Left = 5.65625! + Me.lblCreateDate.Name = "lblCreateDate" + Me.lblCreateDate.Style = "font-size: 9.75pt; font-family: Times New Roman; " + Me.lblCreateDate.Text = "Create Date" + Me.lblCreateDate.Top = 1.453125! + Me.lblCreateDate.Width = 0.8125! + ' + 'Line27 + ' + Me.Line27.Border.BottomColor = System.Drawing.Color.Black + Me.Line27.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line27.Border.LeftColor = System.Drawing.Color.Black + Me.Line27.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line27.Border.RightColor = System.Drawing.Color.Black + Me.Line27.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line27.Border.TopColor = System.Drawing.Color.Black + Me.Line27.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line27.Height = 0.0001250505! + Me.Line27.Left = 0.0625! + Me.Line27.LineWeight = 1.0! + Me.Line27.Name = "Line27" + Me.Line27.Top = 1.124875! + Me.Line27.Width = 7.75! + Me.Line27.X1 = 7.8125! + Me.Line27.X2 = 0.0625! + Me.Line27.Y1 = 1.125! + Me.Line27.Y2 = 1.124875! + ' + 'Line28 + ' + Me.Line28.Border.BottomColor = System.Drawing.Color.Black + Me.Line28.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line28.Border.LeftColor = System.Drawing.Color.Black + Me.Line28.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line28.Border.RightColor = System.Drawing.Color.Black + Me.Line28.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line28.Border.TopColor = System.Drawing.Color.Black + Me.Line28.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line28.Height = 0.0001250505! + Me.Line28.Left = 0.0625! + Me.Line28.LineWeight = 1.0! + Me.Line28.Name = "Line28" + Me.Line28.Top = 1.40625! + Me.Line28.Width = 7.75! + Me.Line28.X1 = 7.8125! + Me.Line28.X2 = 0.0625! + Me.Line28.Y1 = 1.40625! + Me.Line28.Y2 = 1.406375! + ' + 'Line30 + ' + Me.Line30.Border.BottomColor = System.Drawing.Color.Black + Me.Line30.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line30.Border.LeftColor = System.Drawing.Color.Black + Me.Line30.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line30.Border.RightColor = System.Drawing.Color.Black + Me.Line30.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line30.Border.TopColor = System.Drawing.Color.Black + Me.Line30.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line30.Height = 1.180556! + Me.Line30.Left = 5.600695! + Me.Line30.LineWeight = 1.0! + Me.Line30.Name = "Line30" + Me.Line30.Top = 0.5069444! + Me.Line30.Width = 0.0003180504! + Me.Line30.X1 = 5.600695! + Me.Line30.X2 = 5.601013! + Me.Line30.Y1 = 0.5069444! + Me.Line30.Y2 = 1.6875! + ' + 'Line31 + ' + Me.Line31.Border.BottomColor = System.Drawing.Color.Black + Me.Line31.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line31.Border.LeftColor = System.Drawing.Color.Black + Me.Line31.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line31.Border.RightColor = System.Drawing.Color.Black + Me.Line31.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line31.Border.TopColor = System.Drawing.Color.Black + Me.Line31.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line31.Height = 0.91! + Me.Line31.Left = 3.71875! + Me.Line31.LineWeight = 1.0! + Me.Line31.Name = "Line31" + Me.Line31.Top = 0.5! + Me.Line31.Width = 0.0003190041! + Me.Line31.X1 = 3.71875! + Me.Line31.X2 = 3.719069! + Me.Line31.Y1 = 0.5! + Me.Line31.Y2 = 1.41! + ' + 'Line32 + ' + Me.Line32.Border.BottomColor = System.Drawing.Color.Black + Me.Line32.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line32.Border.LeftColor = System.Drawing.Color.Black + Me.Line32.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line32.Border.RightColor = System.Drawing.Color.Black + Me.Line32.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line32.Border.TopColor = System.Drawing.Color.Black + Me.Line32.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line32.Height = 1.180556! + Me.Line32.Left = 1.03125! + Me.Line32.LineWeight = 1.0! + Me.Line32.Name = "Line32" + Me.Line32.Top = 0.5069444! + Me.Line32.Width = 0.0003190041! + Me.Line32.X1 = 1.03125! + Me.Line32.X2 = 1.031569! + Me.Line32.Y1 = 0.5069444! + Me.Line32.Y2 = 1.6875! + ' + 'txtHoldDescription + ' + Me.txtHoldDescription.Border.BottomColor = System.Drawing.Color.Black + Me.txtHoldDescription.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtHoldDescription.Border.LeftColor = System.Drawing.Color.Black + Me.txtHoldDescription.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtHoldDescription.Border.RightColor = System.Drawing.Color.Black + Me.txtHoldDescription.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtHoldDescription.Border.TopColor = System.Drawing.Color.Black + Me.txtHoldDescription.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtHoldDescription.CanGrow = False + Me.txtHoldDescription.Height = 0.9375! + Me.txtHoldDescription.Left = 1.304134! + Me.txtHoldDescription.Name = "txtHoldDescription" + Me.txtHoldDescription.OutputFormat = resources.GetString("txtHoldDescription.OutputFormat") + Me.txtHoldDescription.Style = "ddo-char-set: 136; font-size: 9.75pt; font-family: 新細明體; " + Me.txtHoldDescription.Text = Nothing + Me.txtHoldDescription.Top = 1.747047! + Me.txtHoldDescription.Width = 6.4375! + ' + 'Label1 + ' + Me.Label1.Border.BottomColor = System.Drawing.Color.Black + Me.Label1.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Label1.Border.LeftColor = System.Drawing.Color.Black + Me.Label1.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Label1.Border.RightColor = System.Drawing.Color.Black + Me.Label1.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Label1.Border.TopColor = System.Drawing.Color.Black + Me.Label1.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Label1.Height = 0.2! + Me.Label1.HyperLink = "" + Me.Label1.Left = 1.058071! + Me.Label1.Name = "Label1" + Me.Label1.Style = "font-size: 9.75pt; font-family: 新細明體; " + Me.Label1.Text = "" + Me.Label1.Top = 0.5659449! + Me.Label1.Width = 1.6875! + ' + 'Label2 + ' + Me.Label2.Border.BottomColor = System.Drawing.Color.Black + Me.Label2.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Label2.Border.LeftColor = System.Drawing.Color.Black + Me.Label2.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Label2.Border.RightColor = System.Drawing.Color.Black + Me.Label2.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Label2.Border.TopColor = System.Drawing.Color.Black + Me.Label2.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Label2.Height = 0.2! + Me.Label2.HyperLink = "" + Me.Label2.Left = 1.058071! + Me.Label2.Name = "Label2" + Me.Label2.Style = "font-size: 9.75pt; font-family: Times New Roman; " + Me.Label2.Text = "" + Me.Label2.Top = 0.8858268! + Me.Label2.Width = 1.6875! + ' + 'Label3 + ' + Me.Label3.Border.BottomColor = System.Drawing.Color.Black + Me.Label3.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Label3.Border.LeftColor = System.Drawing.Color.Black + Me.Label3.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Label3.Border.RightColor = System.Drawing.Color.Black + Me.Label3.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Label3.Border.TopColor = System.Drawing.Color.Black + Me.Label3.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Label3.Height = 0.2! + Me.Label3.HyperLink = "" + Me.Label3.Left = 1.058071! + Me.Label3.Name = "Label3" + Me.Label3.Style = "font-size: 9.75pt; font-family: Times New Roman; " + Me.Label3.Text = "" + Me.Label3.Top = 1.156496! + Me.Label3.Width = 1.6875! + ' + 'Label4 + ' + Me.Label4.Border.BottomColor = System.Drawing.Color.Black + Me.Label4.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Label4.Border.LeftColor = System.Drawing.Color.Black + Me.Label4.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Label4.Border.RightColor = System.Drawing.Color.Black + Me.Label4.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Label4.Border.TopColor = System.Drawing.Color.Black + Me.Label4.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Label4.Height = 0.2! + Me.Label4.HyperLink = "" + Me.Label4.Left = 1.058071! + Me.Label4.Name = "Label4" + Me.Label4.Style = "font-size: 9.75pt; font-family: Times New Roman; " + Me.Label4.Text = "" + Me.Label4.Top = 1.451772! + Me.Label4.Width = 1.6875! + ' + 'Label5 + ' + Me.Label5.Border.BottomColor = System.Drawing.Color.Black + Me.Label5.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Label5.Border.LeftColor = System.Drawing.Color.Black + Me.Label5.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Label5.Border.RightColor = System.Drawing.Color.Black + Me.Label5.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Label5.Border.TopColor = System.Drawing.Color.Black + Me.Label5.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Label5.Height = 0.1875! + Me.Label5.HyperLink = "" + Me.Label5.Left = 3.740157! + Me.Label5.Name = "Label5" + Me.Label5.Style = "font-size: 9.75pt; font-family: Times New Roman; " + Me.Label5.Text = "" + Me.Label5.Top = 1.181102! + Me.Label5.Width = 1.8125! + ' + 'PageFooter + ' + Me.PageFooter.Height = 0.1451389! + Me.PageFooter.Name = "PageFooter" + Me.PageFooter.Visible = False + ' + 'GroupHeader1 + ' + Me.GroupHeader1.Controls.AddRange(New GrapeCity.ActiveReports.SectionReportModel.ARControl() {Me.lblHoldItemNo, Me.lblQty, Me.lblHoldDisposition, Me.Line33, Me.Line34, Me.Line35}) + Me.GroupHeader1.Height = 0.21875! + Me.GroupHeader1.Name = "GroupHeader1" + ' + 'lblHoldItemNo + ' + Me.lblHoldItemNo.Border.BottomColor = System.Drawing.Color.Black + Me.lblHoldItemNo.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblHoldItemNo.Border.LeftColor = System.Drawing.Color.Black + Me.lblHoldItemNo.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblHoldItemNo.Border.RightColor = System.Drawing.Color.Black + Me.lblHoldItemNo.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblHoldItemNo.Border.TopColor = System.Drawing.Color.Black + Me.lblHoldItemNo.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblHoldItemNo.Height = 0.2! + Me.lblHoldItemNo.HyperLink = "" + Me.lblHoldItemNo.Left = 0.0625! + Me.lblHoldItemNo.Name = "lblHoldItemNo" + Me.lblHoldItemNo.Style = "color: White; text-align: center; background-color: Blue; " + Me.lblHoldItemNo.Text = "HoldItem No" + Me.lblHoldItemNo.Top = 0.0! + Me.lblHoldItemNo.Width = 1.5! + ' + 'lblQty + ' + Me.lblQty.Border.BottomColor = System.Drawing.Color.Black + Me.lblQty.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblQty.Border.LeftColor = System.Drawing.Color.Black + Me.lblQty.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblQty.Border.RightColor = System.Drawing.Color.Black + Me.lblQty.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblQty.Border.TopColor = System.Drawing.Color.Black + Me.lblQty.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblQty.Height = 0.2! + Me.lblQty.HyperLink = "" + Me.lblQty.Left = 1.5625! + Me.lblQty.Name = "lblQty" + Me.lblQty.Style = "color: White; text-align: center; background-color: Blue; font-size: 9.75pt; " + Me.lblQty.Text = "Qty" + Me.lblQty.Top = 0.0! + Me.lblQty.Width = 0.75! + ' + 'lblHoldDisposition + ' + Me.lblHoldDisposition.Border.BottomColor = System.Drawing.Color.Black + Me.lblHoldDisposition.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblHoldDisposition.Border.LeftColor = System.Drawing.Color.Black + Me.lblHoldDisposition.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblHoldDisposition.Border.RightColor = System.Drawing.Color.Black + Me.lblHoldDisposition.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblHoldDisposition.Border.TopColor = System.Drawing.Color.Black + Me.lblHoldDisposition.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblHoldDisposition.Height = 0.2! + Me.lblHoldDisposition.HyperLink = "" + Me.lblHoldDisposition.Left = 2.3125! + Me.lblHoldDisposition.Name = "lblHoldDisposition" + Me.lblHoldDisposition.Style = "color: White; text-align: center; background-color: Blue; font-size: 9.75pt; " + Me.lblHoldDisposition.Text = "Hold Disposition" + Me.lblHoldDisposition.Top = 0.0! + Me.lblHoldDisposition.Width = 5.5! + ' + 'Line33 + ' + Me.Line33.Border.BottomColor = System.Drawing.Color.Black + Me.Line33.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line33.Border.LeftColor = System.Drawing.Color.Black + Me.Line33.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line33.Border.RightColor = System.Drawing.Color.Black + Me.Line33.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line33.Border.TopColor = System.Drawing.Color.Black + Me.Line33.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line33.Height = 0.0! + Me.Line33.Left = 0.0625! + Me.Line33.LineWeight = 1.0! + Me.Line33.Name = "Line33" + Me.Line33.Top = 0.203125! + Me.Line33.Width = 7.75! + Me.Line33.X1 = 0.0625! + Me.Line33.X2 = 7.8125! + Me.Line33.Y1 = 0.203125! + Me.Line33.Y2 = 0.203125! + ' + 'Line34 + ' + Me.Line34.Border.BottomColor = System.Drawing.Color.Black + Me.Line34.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line34.Border.LeftColor = System.Drawing.Color.Black + Me.Line34.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line34.Border.RightColor = System.Drawing.Color.Black + Me.Line34.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line34.Border.TopColor = System.Drawing.Color.Black + Me.Line34.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line34.Height = 0.2! + Me.Line34.Left = 0.0625! + Me.Line34.LineWeight = 1.0! + Me.Line34.Name = "Line34" + Me.Line34.Top = 0.0! + Me.Line34.Width = 0.0003187731! + Me.Line34.X1 = 0.0625! + Me.Line34.X2 = 0.06281877! + Me.Line34.Y1 = 0.0! + Me.Line34.Y2 = 0.2! + ' + 'Line35 + ' + Me.Line35.Border.BottomColor = System.Drawing.Color.Black + Me.Line35.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line35.Border.LeftColor = System.Drawing.Color.Black + Me.Line35.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line35.Border.RightColor = System.Drawing.Color.Black + Me.Line35.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line35.Border.TopColor = System.Drawing.Color.Black + Me.Line35.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line35.Height = 0.2! + Me.Line35.Left = 7.812181! + Me.Line35.LineWeight = 1.0! + Me.Line35.Name = "Line35" + Me.Line35.Top = 0.0! + Me.Line35.Width = 0.0003190041! + Me.Line35.X1 = 7.812181! + Me.Line35.X2 = 7.8125! + Me.Line35.Y1 = 0.0! + Me.Line35.Y2 = 0.2! + ' + 'GroupFooter1 + ' + Me.GroupFooter1.Height = 0.01041667! + Me.GroupFooter1.Name = "GroupFooter1" + ' + 'arERF_General + ' + Me.MasterReport = False + Me.PageSettings.Margins.Left = 0.0! + Me.PageSettings.Margins.Right = 0.0! + Me.PageSettings.PaperHeight = 11.69! + Me.PageSettings.PaperWidth = 8.27! + Me.PrintWidth = 7.885417! + Me.Sections.Add(Me.PageHeader) + Me.Sections.Add(Me.GroupHeader1) + Me.Sections.Add(Me.Detail) + Me.Sections.Add(Me.GroupFooter1) + Me.Sections.Add(Me.PageFooter) + Me.StyleSheet.Add(New DDCssLib.StyleSheetRule(resources.GetString("$this.StyleSheet"), "Normal")) + Me.StyleSheet.Add(New DDCssLib.StyleSheetRule("font-family: inherit; font-style: inherit; font-variant: inherit; font-weight: bo" & _ + "ld; font-size: 16pt; font-size-adjust: inherit; font-stretch: inherit; ", "Heading1", "Normal")) + Me.StyleSheet.Add(New DDCssLib.StyleSheetRule("font-family: Times New Roman; font-style: italic; font-variant: inherit; font-wei" & _ + "ght: bold; font-size: 14pt; font-size-adjust: inherit; font-stretch: inherit; ", "Heading2", "Normal")) + Me.StyleSheet.Add(New DDCssLib.StyleSheetRule("font-family: inherit; font-style: inherit; font-variant: inherit; font-weight: bo" & _ + "ld; font-size: 13pt; font-size-adjust: inherit; font-stretch: inherit; ", "Heading3", "Normal")) + CType(Me.txtHoldDisposition, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.txtHoldItemNo, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.txtQty, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.Picture1, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.txtCreateDate, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.lblERFReport, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.txtDate, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.lblPrintDate, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.lblERFNo, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.txtERFNo, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.lblCustomerNo, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.lblLotNo, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.lblProductNo, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.txtLotNo, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.txtCustomerNo, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.txtProductNo, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.lblOPNo, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.txtOPNo, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.lblRuleNo, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.txtRuleNo, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.lblMClassNo, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.txtMClassNo, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.lblHoldDescription, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.lblCreator, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.txtCreator, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.lblCreateDate, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.txtHoldDescription, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.Label1, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.Label2, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.Label3, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.Label4, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.Label5, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.lblHoldItemNo, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.lblQty, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.lblHoldDisposition, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me, System.ComponentModel.ISupportInitialize).EndInit() + + End Sub + +#End Region + + Private Sub arERF_General_ReportStart(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.ReportStart + 'steve,100401,在end user電腦上沒設定任何一台印表機時,Active report預設page size設成A4會有錯誤,預設Page size改成default時,在條碼機的特殊格式大小也會有錯,故加入下列指令 + Me.Document.Printer.PrinterName = "" + + Me.txtDate.Text = Now.ToShortDateString + Me.txtERFNo.Text = ERFNo + Me.Barcode1.Text = ERFNo + Me.txtLotNo.Text = LotNo + Me.txtCustomerNo.Text = CustomerNo + Me.txtOPNo.Text = OPNo + Me.txtProductNo.Text = ProductNo + Me.txtRuleNo.Text = RuleNo + Me.txtMClassNo.Text = MClassNo + Me.txtHoldDescription.Text = HoldDescription + Me.txtCreator.Text = Creator + Me.txtCreateDate.Text = Format(CreateDate, "yyyy/MM/dd HH:mm") + + Me.PageSettings.Margins.Left = 0.2 + Me.PageSettings.Margins.Top = 0.3 + Me.PageSettings.Margins.Bottom = 0.2 + Me.PageSettings.Orientation = PageOrientation.Landscape + Me.PageSettings.Orientation = PageOrientation.Portrait + + End Sub + + Private Sub Detail_Format(ByVal sender As Object, ByVal e As System.EventArgs) Handles Detail.Format + + 'If Me.intRow Mod 5 = 0 Then + ' Me.Detail.BackColor = Color.LightGray + 'Else + ' Me.Detail.BackColor = Color.White + 'End If + + 'Me.intRow = Me.intRow + 1 + + End Sub + + + + + + Private Sub PageHeader_Format(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PageHeader.Format + + End Sub +End Class diff --git a/SRC/MESWin/shared file/iMES.isl b/SRC/MESWin/shared file/iMES.isl new file mode 100644 index 0000000..0679a67 --- /dev/null +++ b/SRC/MESWin/shared file/iMES.isl @@ -0,0 +1,4303 @@ + + + + 2015-02-05T03:06:30 + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA3gMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADgElEQVRoQ+2XzWsTQRjGq/Qk1YOgFz3qHyLFi4LeRAri0YMHTx68eCseBMFL8W+waGPRIoixYkUrUmgVaZKaNJ/bbNpNm48mjUle531lttPpZGcm0IvMAw+Tncy7s89vZ2eTkVwuB7aOx+PWnpyctPax52k4bmEcP0wNQWi328auVCoUykYcQqPRMDaOx4u0EQ9mIxzvIDgIDgLJQWByEJgcBCYHgclBYHIQmBwEphACBjN1sVikULbGULbmoY7aI6urq2BrVUidVSF1tv0zNIzpDxSGspHneRTKRhyCatkPMo7Hi7QRD2YjHO8gmEDodrtQKBSgWq3SsQmErb0eXF/YgGe/a3RsAiFfrcHVj0V4+qtCxyYQ5HlMIKhqIiEggFKpRPsAgkDpIOAkE199GGEnv7ZQpj4dBARwY6FENVfmi9Sng6CaRwdhUM1ACP1+nwLj9/gGQSCoKAidXh9uf/Npsxmf92Cj9a8mCkK11oCJzyWqufS+AOmgRv1REAbNEwUhqiaEgL8BMGyz2aTjIAggkUhAOp2G3d1d6kOJEJa39+DyR3bst4DNAY8T23DiRQYuzuXhU6VFY1AihEVvG8bjBZjLBlCrs7ArPtVceJOFd/kghCNCMJ1HhGBTE0Iol8t019fW1sD3fUgmk5BKpaDV2i9AiRDuLm0S2fOvc3B/eQtOzazD2dksfNls0/dcIoQ7ix7VnJtdh3vfN+DkywycebUOH/LVEIAMwXQeEYJNzYHHAQPi3cc+BMBXhSj5cbi1WIbR6Qw9Z6djWXjr7a8aLhEC+iZb/qPTbHKsmclALLO/ArhFCCiTeUQIKNOaAxB6vR79KsRVgI8D7guyZAjNPz14+DOAMXZHnyR3oNU9XCND8Hfq8GCpDGNseT764cNmrX4AAFqGYDKPDMG05tDGiME7nY4SAEqGgMKTp+od2nxUkiGgMfiKv0Mbo9jPLUNA6eaRIaBMag5B0EkFQScVBJ1VEHRSQdAphIDBTI1vCwxlawxlax7qqE3/Im2tCqmzKqTOuLurLnqQcfwwNQTBRhyCjTgEG8ViMbpIG+FbYJiaEAK/y1Hm4zgEOoHGKBGCaoxslAhBNUY2HzdMjYOAn8VwOvNxDgJrHQTWOgisdRBY6yCw1kFg7X8LwVQiBFOJEEwlQjAVBhqmhiDYGkPZGiFgMFNPTU2Fd+xonYa/RnTXOFz4kRIAAAAASUVORK5CYIILAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + + + + 249, 249, 249 + MiddleCenter + + + + + White + Segoe UI, 9pt + 75, 75, 75 + MiddleLeft + MiddleLeft + + + + + White + Segoe UI, 8.25pt + 75, 75, 75 + + + + + White + Segoe UI, 9pt + 75, 75, 75 + + + + + 75, 75, 75 + White + 0, 170, 222 + White + Silver + Left + Long + False + False + + + + + White + Segoe UI, 9pt + 75, 75, 75 + + + + + White + Flat + Segoe UI, 9pt + 75, 75, 75 + + + + + White + None + Microsoft Sans Serif, 12pt + 0, 170, 222 + MiddleCenter + + + + + 0, 170, 222 + White + None + Gainsboro + Flat + Segoe UI, 9.75pt, style=Bold + MiddleCenter + AlwaysUnderline + 133, 133, 133 + MiddleCenter + 179, 230, 245 + + + + + White + FixedSingle + Segoe UI, 9pt + 75, 75, 75 + + + + + True + White + FixedSingle + Segoe UI, 9pt + 75, 75, 75 + Nonclickable + LargeIcon + + + + + White + 75, 75, 75 + True + True + 0, 170, 222 + White + 191, 191, 191 + + + + + White + None + Segoe UI, 8.25pt + 75, 75, 75 + + + + + White + None + + + + + White + White + 75, 75, 75 + Segoe UI, 9pt + White + White + True + White + True + White + 75, 75, 75 + + + + + White + Segoe UI, 9pt + 75, 75, 75 + MiddleCenter + MiddleLeft + + + + + White + None + 75, 75, 75 + + + + + White + None + 75, 75, 75 + + + + + 133, 133, 133 + None + + + + + Segoe UI, 9pt + True + + + + + White + FixedSingle + Segoe UI, 9pt + 75, 75, 75 + Left + + + + + White + + + + + White + None + False + Segoe UI, 9pt + 75, 75, 75 + False + False + True + 25 + False + True + True + + + + + White + Segoe UI, 8.25pt + 75, 75, 75 + + + + + + True + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA7QMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADj0lEQVRoQ+2YzWsTQRiHq/Qk1YOgFz0q/h1SvCjoTaQgXgQPHjx58OKteBAEL8W/waKNRasgxhYrpiqFVrFNUpPmu9k0SZuPJo1JXuf3ym4n2012JuBtHvgddjNvZt9nZycfI8lkknQTDAa1Mzk5qZ0jz2N0VCMYP0wNS2g2m8opFArclA5ra2vcVK1WU04gEOCL1OH2t8JQNUaCkWAkMEaCwEgQGAkCI0FgJAiMBIGRIHAkoDHVZDIZloDGVBMKhVgCGlPN1NQUf6/HRarmwtvUUDUj6+vrpBtI0A0k6GaYH0PD1LAEHXK5HDelgy3Ba9n3C8bjInWwG9MB440EFQntdpvS6TSVy2U+VpFQ3O/QtcUteva7wscqElLlCl1ZyNDTXwU+VpHgnkdFglfNQAkQkM1meR+ACOAnAZNMhCwaEW9+dTHP5/wkQMD1xSzXXJ7P8Dk/CV7z+EnoV9NXQrfb5YbxOj5BIAQMktDqdOnWV4s3m/H5HG01/tUMklCu1Gjic5ZrLn5IU6xU4fODJPSbZ5CEQTWOBHwHQLP1ep2PS6UShcNhisVitLe3x+eALGFlZ58uLYhjq0FiDnoc3qFjL+J0fi5FnwoNHgNkCUu5HRoPpmkuUaJKVTS7anHNuTcJep8qOXJkCarzyBJ0ahwJ+Xye7/rGxgZZlkWRSISi0Sg1GgcFQJZwd3mbzZ59naT7K0U6MbNJp2cT9GW7ya/byBLuLOW45szsJt37vkXHX8bp1KtN+pgqOwLcElTnkSXo1PQ8DmgQdx/nIMBeFTLux+HmUp5Gp+P8nJ0MJOhd7mDV2MgSkBti+Y9Oi8lRMxOnQPxgBdiRJQCVeWQJQLWmR0Kn0+FvhVgFeBywL7hxS6j/6dDDnyUaE3f0SWSXGu3DNW4J1m6VHiznaUwsz0c/LNquVHsEIG4JKvO4JajWHNoY0Xir1fIUANwSAN48Wm3x5uOFWwKCxletXd4Y5fN23BKA3zxuCUCl5pAEP7wk+OElwS9eEvzwkuCHIwGNqQafFmhKN2hKN3ZT/zv8K1I3Xk36xatJv2B397rofsH4YWpYgg7FYpGb0sGWoAPG4yJ1sBvTAeMdCfKd7hcgS8BHj1+ALMFrjDtAluA1xh0gS/Aa4w4wEgRGgsBIEBgJAiNBYCQIjASBkSDokaCKLEEVWYIqsgRVZAmqOBLQmGrwxyua0g2a0o3d1P9NjP4C33z6NGMDUeMAAAAASUVORK5CYIILAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAAvQMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADX0lEQVRoQ+2Xz2sTQRTHq/Qk1YOgFz3qHyLFi4LeRAri0YMHTx68eCseBMGbf4NFW4sWQYwtVrRFCq0iTVKT5kezzabdtPnRpDHJc97IbCfTyc68gEVhPvA97HReZt9nZyfN0OrqKlATi8XIGR8fJ+fY8xQcJwTnD1LDJTSbTesICRSEhFqtZh2cjzdJQTRGAec7CU6Ck8BxEhhOAsNJYDgJDCeB4SQwnARGKIEabIoabIoa0dTfzj8tgfpjCDNIDZdAQUigICTotn2/4Hy8QQqiKQpOAsNKQrvdhnw+D+VymV/bSNje78D1+U149rPCr20k5MoVuDq3AU9/lPi1jQR1HRsJuppICSigUCjwxlEEYpKAi4x98WGIffi1+SIfM0lAATfmC7zmyuwGHzNJ0K1jktCvpq+EbrcLnufxprPZLBeCRElodbpwe9Hnh9PorAebjT81URLKlRqMfSrwmkvv85AKKnw8SkK/daIkRNWEEvB/AGy2Xq/z6yAIIB6PQyqVgr29PT6GyBKWd/bh8pwHMb8BbA14HN+BEy/ScHEmBx9LDT4HkSUseDswGsvDTCaASpU1u+LzmgtvMvAuF4RyZAm268gSKDWhhGKxyBtcW1sD3/chkUhAMpmERuOgAJEl3F3a4mbPv87C/eVtODW5DmenM/B5q8n/LpAl3FnweM256XW493UTTr5Mw5lX6/AhVw4FqBJs15ElUGp6Xgfc/vj0cQwFiF0hI0tAbi0UYXgizd+z01MZeOsd7BqBLAFzk23/4Qm2ONZMpmEqfbADRGQJiM06sgTEtqZHQqfTgVKpxHcBvg54LqioEuq/OvDwewAj7Ik+SexCo324RpXg71bhwVIRRtj2fPTNh61KtUcARpVgs44qwbbm0MGIjbdaLa0ARJWA4Icnqy1++OhQJWCw8RV/lx+M8riIKgExraNKQGxqDkkwoZNgQifBFJ0EEzoJJkIJ1GBT1GBT1ODBJhqzzSA1Q/i1SI2uSVN0TZpypBIoCAkUhAQKOB9vkIJoikKPBPGUoyLmCQn41WMKIkvQzVGDyBJ0c9QgsgTdHDWIk8BwEhhOAsNJYDgJDCeB4SQw/hsJ/EYNEfMGqQkl2CJLsEWWYIsswRZZgi2hBGqwKWqwKWqO5rdDCn4DepjAZpDd1xAAAAAASUVORK5CYIILAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA8QMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADk0lEQVRoQ+2YTWsTURSGq3Ql1YWgG10q/g4pbhR0J1IQN4ILF65cuHEXXAiCm+JvsGhj0SqIscWKqUqhVWyT1KT5biZN0uajSWOS432PJL2ZTjL3DggK94EXOpM5uXOeuXNn0pFEIkG6CQQC2vH5fNo59DRKhzWC473UsIRGo6GcfD7PTemwurrKTVWrVeX4/X4+SR1ufsl7qjESjAQjgTESBEaCwEgQGAkCI0FgJAiMBEFPAhpTTTqdZgloTDXBYJAloDHVTE5O8ns9TlI1514nPdWMrK2tkW4gQTeQoBsvP4a81LAEHbLZLDelSiQS4dmAppym/aBgNuAkdcCV9VLz1yXkcrn/X0Kr1aJUKkWlUom3VSQU9tp0ZWGTnvws87aKhGSpTJfm0/T4R563VSTYx1GR4FQzVAIEZDIZXgcgArhJwCATQYtGxMlcXsjxPjcJEHB1IcM1F+fSvM9NgtM4bhIG1QyU0Ol0uGF8jicIhIBhEprtDt34bPFiMz6Xpc36n5phEkrlKk18zHDN+XcpihbLvH+YhEHjDJMwrKYnAe8AaLZWq/F2sVikUChE0WiUdnd3eR+QJSxv79GFebFt1UmMQQ9D23TkWYzOzibpQ77OxwBZwmJ2m8YDKZqNF6lcqZJvxeKaM6/i9DZZ7MmRJaiOI0vQqelJwAKGv9fX18myLAqHw7yy1+v7BUCWcHtpi82efpmgu8sFOja9QSdn4vRpq8Gfd5El3FrMcs2pmQ2683WTjj6P0YkXG/Q+WeoJsEtQHUeWoFPTdzugQVx97IOA7qyQsd8O1xdzNDoV4/vsuD9Ob7L7s6aL/Xa4Jqb/6JR4PqNmOkb+2P4M6MZ+O6iMI0sAqjV9EtrtNr8VYhbgdsC6YMcuofarTfe/F2lMXNFH4R2qtw7W2CVYOxW6t5SjMTE9H3yzaKtc6ROA2CWojGOXoFpzYGFE481m01EAsEsA+PJIpcmLjxNOCyMaX7F2eGGU93fjtDC6jWOXAFRqDkhww0mCG04S3OIkwQ0nCW70JKAx1eBpAQloTDX//A8oPBZ1Awm6gQTdoCFcWdXgeC81LEGHQqHATemA2YCmdMBswEnqgCvrpaYnQb7SgwJkCXj0uAXIEpyOsQfIEpyOsQfIEpyOsQcYCQIjQWAkCIwEgZEgMBIERoLASBD0SVBFlqCKLEEVWYIqsgRVehLQmGrwj1dIQGOq+bd/QCXpN3LrT59/MUO0AAAAAElFTkSuQmCCCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAASAIAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAAB6klEQVRoQ+2ZQUsCQRTHLTpFdOjQqWv0QaJr3YPo0q1z126ego7SZygqiahOS5GQFQRCICVlrqCuumFlmaa93hvMJtlwZmFDdt8P/gd33+C+3+7MOhgCFxiGoZ1wOKyd/8K1BB2SyaRoqlqtKicajbZHew9LQFgCwhIQloCwBIQlICwBYQkIS0BYAuJaAjWmmng8LiRQY6qJRCLtb/Me1xJ00894Ph1SqZR4GvoZzyVYlhVMCXa9BXOxAmzcPYvPgZNAAubjRQht3sNszBLHAiWh0fqExYsiDKCA6eM8FGpNcdzXEhKVOsyc5MEo1gD7h7WbCgxvp2HyIAunpZqoIXwtYfmqLO76xL4JKwkbRncfYHwvA2fld3H+G99Ph4VzC4a20mINGItm4Cj/1j7zg+8lvH60YPX6EUZ20rB++wS1Js6LLgKxMFLjqZeGWBidCISEXvhWAjWmGtpA9TMh0zRBNyRBN7SL1A29eQY1QvVuxggJOti2LZrSgZ4GakoH2k7TReqwdFlyNaYjQb7Tf4WQJdBrsVcIWYJTTXcIWYJTTXcIWYJTTXcIloCwBIQlICwBYQkIS0BYAsISkF8SVJElqCJLUEWWoIosQZWOBGpMNblcTkigxlTj9h8o+l1PF6maqcOsizFZ+AIGcQg8msEiNgAAAABJRU5ErkJgggsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA+QMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADm0lEQVRoQ+2YzWsTQRjGq/Qk1YOgFz0q/h1SvCjoTaQgXgQPHjx58OIteBAEL8W/waKNRasgxhYrpiqFVrFNUpPmu9k0SZuPJo1JXud5Jel0u8nOrAgq88AD2ck+mX1/87G7GUokEqTrQCCgbZ/Pp+0Dj6N0UMM430uGITQaDWXn83kuSkfLy8tcVLVaVbbf7+eL1NH1T3lPGQPBQDAQWAaCkIEgZCAIGQhCBoKQgSBkIAj1IKAwVafTaYaAwlQdDAYZAgpT9fj4OD/X4yJVfeZl0lNmaGVlhXQNCLoGBF17eRnykmEIOspms1yUqiKRCM8GFOU07fsZswEXqSOMrJfMH4eQy+X+fQitVotSqRSVSiU+VoFQ2GnTpbl1evS9zMcqEJKlMl2YTdPDb3k+VoFg70cFglNmIAQAyGQyvA8ABOQGAZ2MBS0aEhdzcS7HbW4QAODyXIYz52fS3OYGwakfNwj9Mn0hdDodLhjf4w4CINAgCM12h659tHizGZ3J0nr9V2YQhFK5SmPvM5w5+yZF0WKZ2wdB6NfPIAiDMj0IeAZAsbVajY+LxSKFQiGKRqO0vb3NbZAMYXFzh87NimOrTqIPuh/apENPYnR6Oknv8nU+B5IhzGc3aTSQoul4kcqVKvmWLM6cehGn18liD44MQbUfGYJOpgcBGxg+r66ukmVZFA6HeWev13cDkAzh5sIGkz35PEG3Fwt0ZHKNjk/F6cNGg7/vSoZwYz7LmRNTa3Tr8zodfhqjY8/W6G2y1ANgh6DajwxBJ7NnOaBAjD7aAKA7K2TZl8PV+RwNT8R4nR31x+lVdnfWdGVfDlfE9B+eEPdnZCZj5I/tzoCu7ctBpR8ZAqSa2QOh3W7zUyFmAZYD9gW77BBqP9p092uRRsSIPghvUb21P2OHYG1V6M5CjkbE9Lz3xaKNcmUPANgOQaUfOwTVzL6NEYU3m01HAJAdAoQfj1SavPk4yWljROFL1hZvjHJ7104bo1s/dgiQSmYfBDc5QXCTEwQ3O0FwkxMEN/UgoDBV424BCChM1X/9CxRui7oGBF0Dgq5REEZW1dgAvWQYgo4KhQIXpSPMBhSlI8wGXKSOUJCXTA+CPNL9DMkQ+AdcDMkQnM6xG5IhOJ1jd/c8LxkDAZ+7xdkLdjJkIAgZCEIGgpCBIGQgCBkIQv81BFXJEFQlQ1CVDEFVKMhLhiGgMFXjj1dAQGGq/p0XqO6oqVo/E6WfdBY2E/BzX6AAAAAASUVORK5CYIILAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA6wMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADjUlEQVRoQ+2XT2sTQRjGq/Qk1YOgFz0qfg4pXhT0JlIQL4IHD548ePEWPAiCl+JnsGhj0SqIscWKqUqhVWyT1KT532zapM2fJo1JXud5ZdPpdpOdWRAU5gcPdDfzdvb97exsMpRKpUg3oVBIO4FAQDuHnsbpsEYw3k8NS2g2m8opFovclA7Ly8vcVK1WU04wGOSL1OHml6KvGiPBSDASGCNBYCQIjASBkSAwEgRGgsBIEPQkoDHVZLNZloDGVBMOh1kCGlPN+Pg4f6/HRarm3Ou0r5qhlZUV0g0k6AYSdOPnx5CfGpagQz6f56ZUicVivBrQlNuy7xesBlykDrizfmr+uoRCofD/S2i325TJZKhcLvOxioTN3Q5dmVunJz8rfKwiIV2u0KXZLD3+UeRjFQnOeVQkuNUMlAABuVyO9wGIAF4SMMlY2KIhcTGX5wp8zksCBFydy3HNxZksn/OS4DaPl4R+NX0ldLtdbhif4w0CIWCQhFanSzc+W7zZjM7kab3xp2aQhHKlRmMfc1xz/l2G4qUKnx8kod88gyQMqulJwHcANFuv1/m4VCpRJBKheDxOOzs7fA7IEha3dunCrDi2GiTmoIeRLTryLEFnp9P0odjgMUCWMJ/fotFQhqaTJapUaxRYsrjmzKskvU2XenJkCarzyBJ0anoSsIHh79XVVbIsi6LRKO/sjcZeAZAl3F7YYLOnX6bo7uImHZtco5NTSfq00eTPbWQJt+bzXHNqao3ufF2no88TdOLFGr1Pl3sCnBJU55El6NTsexzQIO4+zkGAvSpknI/D9fkCDU8k+Dk7HkzSm/zeqrFxPg7XxPIfnhDvZ9RMJiiY2FsBdpyPg8o8sgSgWrNPQqfT4W+FWAV4HLAvOHFKqP/q0P3vJRoRd/RRdJsa7YM1TgnWdpXuLRRoRCzPB98s2qhU9wlAnBJU5nFKUK05sDGi8Var5SoAOCUA/PNYtcWbjxtuGyMaX7K2eWOUz9tx2xi95nFKACo1ByR44SbBCzcJXnGT4IWbBC96EtCYavC2gAQ0ppp//gcUXou6gQTdQIJu0BDurGow3k8NS9DBlqADVgOa0gGrARepA+6sn5qeBPsuD4o9zpaAV49XgCzBbYwzQJbgNsYZIEtwG+MMMBIERoLASBAYCQIjQWAkCIwEgZEg2CdBFVmCKrIEVWQJqsgSVOlJ0A0koDHV/Ns/oNL0G0NuTL0rh9nUAAAAAElFTkSuQmCCCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA+QMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADm0lEQVRoQ+2YzWsTQRjGq/Qk1YOgFz0q/h1SvCjoTaQgXgQPHjx58OIteBAEL8W/waKNRasgxhYrpiqFVrFNUpPmu9k0SZuPJo1JXud5Jel0u8nOrAgq88AD2ck+mX1/87G7GUokEqTrQCCgbZ/Pp+0Dj6N0UMM430uGITQaDWXn83kuSkfLy8tcVLVaVbbf7+eL1NH1T3lPGQPBQDAQWAaCkIEgZCAIGQhCBoKQgSBkIAj1IKAwVafTaYaAwlQdDAYZAgpT9fj4OD/X4yJVfeZl0lNmaGVlhXQNCLoGBF17eRnykmEIOspms1yUqiKRCM8GFOU07fsZswEXqSOMrJfMH4eQy+X+fQitVotSqRSVSiU+VoFQ2GnTpbl1evS9zMcqEJKlMl2YTdPDb3k+VoFg70cFglNmIAQAyGQyvA8ABOQGAZ2MBS0aEhdzcS7HbW4QAODyXIYz52fS3OYGwakfNwj9Mn0hdDodLhjf4w4CINAgCM12h659tHizGZ3J0nr9V2YQhFK5SmPvM5w5+yZF0WKZ2wdB6NfPIAiDMj0IeAZAsbVajY+LxSKFQiGKRqO0vb3NbZAMYXFzh87NimOrTqIPuh/apENPYnR6Oknv8nU+B5IhzGc3aTSQoul4kcqVKvmWLM6cehGn18liD44MQbUfGYJOpgcBGxg+r66ukmVZFA6HeWev13cDkAzh5sIGkz35PEG3Fwt0ZHKNjk/F6cNGg7/vSoZwYz7LmRNTa3Tr8zodfhqjY8/W6G2y1ANgh6DajwxBJ7NnOaBAjD7aAKA7K2TZl8PV+RwNT8R4nR31x+lVdnfWdGVfDlfE9B+eEPdnZCZj5I/tzoCu7ctBpR8ZAqSa2QOh3W7zUyFmAZYD9gW77BBqP9p092uRRsSIPghvUb21P2OHYG1V6M5CjkbE9Lz3xaKNcmUPANgOQaUfOwTVzL6NEYU3m01HAJAdAoQfj1SavPk4yWljROFL1hZvjHJ7104bo1s/dgiQSmYfBDc5QXCTEwQ3O0FwkxMEN/UgoDBV424BCChM1X/9CxRui7oGBF0Dgq5REEZW1dgAvWQYgo4KhQIXpSPMBhSlI8wGXKSOUJCXTA+CPNL9DMkQ+AdcDMkQnM6xG5IhOJ1jd/c8LxkDAZ+7xdkLdjJkIAgZCEIGgpCBIGQgCBkIQv81BFXJEFQlQ1CVDEFVKMhLhiGgMFXjj1dAQGGq/p0XqO6oqVo/E6WfdBY2E/BzX6AAAAAASUVORK5CYIILAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2zXFsx4kTZ/GWw/2d+GbevFz7Oe7IXzqy/XLPu/f871kTEg+y2azs7u7K4uLitayvr0s6nS6uuInz83OZm5uTvr4+6e3tVRkbG5NkMimXl5fFVc/j+PhYuru7pa6uTmpra1UaGxtle3u7pM7maU6+/DcmrzStyUuNV/JWeFfC++dScKtUrKMkFAoFicfjanAsFlOjLy4u5OzsTJ9vbW1JJBJRkizy+bxsbm6qwXyyHlgip6amlET7HGQyGRkdHZWmpibVOzk5UaMhcnZ2Vtra2pREnluksgX5ZeFQ3g5H5NfFIzWM8ycyBfljNSUfPYnKt2Nx2T7NXykY3FZHSUgkEnpwa7xfTk9PJRqN6k3lcjlVxPClpSU1wAXIgFTIwHgwPj6uHoMnuADpw8PD0t7ernsCjPjOHNga4kfsIi8/zh8aw/Yken5l1G11Qhx2Y2NDN3URYAVjd3Z21M35zk2WIsCCW15YWFDyuN3m5uaSBFjgleFwWCYnJ9WId3oisnX27JZdyJt9vh6JyW9PU1XphPCA/f19p+F+wQAMIgdAXCVAZ3p6WnMAoVAq5r0gJDs6OjSefzZuXSg+L4fxZEY++SdalU6IuC0VBn7BXQkD4jbICyzwNG6VJBjkBRbs09raKi+bRLaefpaHyiF+UZD3H+9VpaMkuAx2CYbjCT09PcXXBAP3xnNqamoq8gJA0u3q6pIX/l4rmfn9yJiFnw/FqtK5tSdQKfAEflcCEinhQBn0Zv1yIJFSKShpO2dXiTgIR6YifGiyfjU6ITI41cFvsEswglxAUtzb2yu+qjxIuIQDfQBJshKQfAkHavrDjcpCaOE4K+89jlSlE8ILcHFu2WW4VyiTJC0OSV339g2lAMmrq6u6R2dnZ0W5ZGRkRAYHB7Wp+WxgXxImdoPwkyl5P0wnq9LRPoFGCHEZbgVvwSC+E9uE0crKir7MBdbgLRgE0fwml/T39xdX3AT5A29paGiQg4MDje1vRuPyYPKguOImcsbWP9dP5M3uXZlPZavSURK4UW4KSaVS6sLcGN5BCFBC19bW9LcFZBDr8/PzcnR0pO/ACHIA+lQRGh/eZ8G7aIQolxDE+0iCvAujKaH19fXPhdq2ie+PTRn7ypS+wcSFyeh5TWjE81wqo+XwjUc7MmT+ZnFbnevZgcPj5hBB3POJIXwnBDioHyQw1s3MzGjcUwXoECcmJjQE8AA/IIg19AHEPVWAJNjS0iIDAwNKhh90db+bpubT/qiWtC+G9uUD0+292xuR7407c5t+3EbnmgQAEYQF7TDujthushTwmDszQHED3Dyfdj7AVXF12mVc1JsI79wAheFk/lLZHoNJjNyUJQjD78wAhVEYxCe3ws0Tz9zi8vKyJkVI4G8Q5R+gssavHm6cyOsdWxIy3dq91k2TmROSNKyj4xqgyumUGqDK6ZQaoCrVCZEDbDKCAG8+sEIocDhcm9DwDlB/mU1ebV7XTazQut4fjkna1CLXABWk4xqggnRcA1SlOiGMtmFgPcAveARr8AjbNtsweK39imW/3GvdkNWTrOr5B6ggHcLCP0AF6bgGqEp1dHaw8BvvFeKaW8RzvAOUaxMrtKV4kH+Acq21gg5k+wco11or6LgGKNdaK14dJcEmO27cbzxivQWDiG/vAAWrrk1ww6eGbd7tH6CCdFwDVJCOa4CqVCdEbJMLAEnQRQIhwO1wOL57B6gHUwfyotnYvxFNSSKT1yzvH6CCdFwDVJCOHYaq0QlxSOo6RiIYZz0CD8Bo2y5TJvnHq3eAItPeH45fsw7LbPIkfpUzXANUkI5rgArScQ1Qlepon2CnQ4DLYxy3jkAMscwMgNcQBvyGJDtApXOXsprOKbO42YHZnDUQWmqAcumwd7kByqXjH4aq0VESMNp2hdyUNZxDQYSdIO/8AMVhDg8PlQxclyrAJ8YQApDhB89Y8/8eoET+A46Kvwl1DPddAAAAAElFTkSuQmCCCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + + + + VisualStudio2008Vista + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAArQMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADT0lEQVRoQ+2ZzWsTURTFq3Ql1YWgG10q/h1S3CjoTqQgbgQXLly5cOMuuBAEN8W/waKNRasgxooVU5VCq9gmqUnzOc2knbT5aNKY5PrOlUyn00nmvQFB5R040HmZ0zf3N+/dmbRDmUyGVB2JRJQdCoWUfeBxkg4qGOcHyTCEZrMp7VKpxEWpaGlpiYuq1WrSDofDfJEquv65FCijIWgIGgJLQxDSEIQ0BCENQUhDENIQhDQEIRsCCpN1Pp9nCChM1tFolCGgMFmPj4/zez0uUtZnXmYDZYaWl5dJ1YCgakBQdZAvQ0EyDEFFhmFwUbJKJBK8GlCU17LvZ6wGXKSKcGeDZP44hGKx+O9DaLfblMvlqFwu87EMhI2dDl2aXaNHPyp8LAMhW67QhXd5evi9xMcyENzzyEDwygyEAACFQoH7AEBAfhAwyVjUpCFxMRdnizzmBwEALs8WOHN+Js9jfhC85vGD0C/TF0K32+WC8TmeIAACDYLQ6nTp2ieTm83ojEFrjd+ZQRDKlRqNfShw5uybHCWtCo8PgtBvnkEQBmVsCHgHQLH1ep2PLcuiWCxGyWSStre3eQxyQljY3KFz78Sx2SAxB92PbdKhJyk6PZ2l96UGnwM5IcwZmzQaydF02qJKtUahRZMzp16k6XXWsuE4IcjO44SgkrEhoIHh55WVFTJNk+LxOHf2RmM3ADkh3JxfZ7Inn2fo9sIGHZlcpeNTafq43uTPe3JCuDFncObE1Crd+rJGh5+m6NizVXqbLdsA3BBk53FCUMns2Q4oEHcfYwDQWxVOubfD1bkiDU+keJ8dDafplbG7anpyb4crYvkPT4jnMzKTKQqndldAz+7tIDOPEwIkm9kDodPp8FshVgG2A/qCW24I9Z8duvvNohFxRx/Et6jR3p9xQzC3qnRnvkgjYnne+2rSeqW6BwDshiAzjxuCbGZfY0ThrVbLEwDkhgDhlyeqLW4+XvJqjCh80dzixugc79mrMfrN44YAyWT2QfCTFwQ/eUHwsxcEP3lB8JMNAYXJGk8LQEBhsv7rv0DhsahqQFA1IKgaBeHOyhrnB8novyeIjIagIWgILA1BSEMQ0hCENAQhDUFIQxDSEIRsCChM1v/ff6Cy9AsSMSlLu0Av/QAAAABJRU5ErkJgggsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA+gMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADnElEQVRoQ+2YTWsTURSGq3Ql1YWgG10q/g4pbhR0J1IQN4ILF65cuHEXXAiCm+JvsGhj0SqItcWKqUqhVWyT1KT5biZN0uajaWOS432PTHo7nWTuHSio3AdeyEzm5M555s6dJAPJZJJ0MzU1pZ1AIKCdQ09jdFgjON5PDUvY3t5WTqFQ4KZ0WFpa4qZqtZpygsEgn6QON78UfNUYCUaCkcAYCQIjQWAkCIwEgZEgMBIERoKgKwGNqSaTybAENKaaUCjEEtCYakZHR/l7PU5SNedep3zVDCwvL5NuIEE3kKAbPz+G/NSwBB1yuRw3pUo0GuXZgKbcpn2vYDbgJHXAlfVTc+AS8vn8vy+h1WpROp2mcrnM2yoSijttujK7Rk9+VnhbRUKqXKFLMxl6/KPA2yoSnOOoSHCr6SsBArLZLK8DEAG8JGCQkZBFA+JkLs/meZ+XBAi4OpvlmovTGd7nJcFtHC8JvWp6Suh0Otww3scTBEJAPwnNdodufLZ4sRmeztFa409NPwnlSo1GPma55vy7NMVKFd7fT0KvcfpJ6FfTlYDvAGi2Xq/zdqlUonA4TLFYjLa2tngfkCUsbOzQhRmxbTVIjEEPwxt05Fmczk6m6EOhwccAWcJcboOGp9I0mShRpVqjwKLFNWdeJehtqtSVI0tQHUeWoFPTlYAFDK9XVlbIsiyKRCK8sjcauwVAlnB7fp3Nnn6ZpLsLRTo2vkonJxL0aX2b37eRJdyay3HNqYlVuvN1jY4+j9OJF6v0PlXuCnBKUB1HlqBTs+d2QIO4+tgHAfaskHHeDtfn8jQ4Fuf77HgwQW9yu7PGxnk7XBPTf3BMPJ9RMx6nYHx3Bthx3g4q48gSgGrNHgntdpu/FWIW4HbAuuDEKaH+q033v5doSFzRR5FNarT21zglWJtVujefpyExPR98s2i9Ut0jAHFKUBnHKUG1Zt/CiMabzaarAOCUAPDh0WqTFx833BZGNL5obfLCKO+347Yweo3jlABUavZJ8MJNghduErziJsELNwledCWgMdXgaQEJaEw1f/0PKDwWdQMJuoEE3aAhXFnVYAH0U8MSdCgWi9yUDpgNaEoHzAacpA5oyE9NV4J8pXsFyBL4AzwCZAluxzgDZAluxzhjH+enxkjAa7s5Z8NuAUaCwEgQGAkCI0FgJAiMBMF/LUEVWYIqsgRVIME+UVXk5lTpSkBjqsEfr5CAxlTj9weU3dTBJka/AW4uNg3p+taQAAAAAElFTkSuQmCCCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + + + Far + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgIAAAAJAwAAAA8DAAAA7AAAAAKJUE5HDQoaCgAAAA1JSERSAAAAFAAAABQIBgAAAI2JHQ0AAAAEZ0FNQQAAsY8L/GEFAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAH5JREFUOE+tzMEJwDAQA0G3kP47SFMp5WKbEwizryiPwWY5NKrqVxgTGBMYExgTGBMY3XU/Na1XZubbBaPrQY3u/3njMDofangnGF0PanT/6U4wOh9qM/PtgtH1oEb3/7xxGJ0PNbwTjK4HNbr/dCcYExgTGBMYExgTGL+r8QL1YYgBA3bF7AAAAABJRU5ErkJgggsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgIAAAAJAwAAAA8DAAAA4AAAAAKJUE5HDQoaCgAAAA1JSERSAAAAFAAAABQIBgAAAI2JHQ0AAAAEZ0FNQQAAsY8L/GEFAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAHJJREFUOE+tzMEJgEAQBMFLwfwzMClDWc/HQCP9cnwULM2wa2Z+pbGhsaGxobGhsaGRjvOKyW270Eh4FroLjcRHud8b0kh4Fjv79qGR+Ci37UIj4VnoLjQSH+V+b0gj4Vns7NuHxobGhsaGxobGhsbvZt1vy4gBqcW4UgAAAABJRU5ErkJgggsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + TopOnBorder + BottomToTop + + + + + HighlightEntireItem + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA9QMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADl0lEQVRoQ+2XzWsTQRjGq/Qk1YOgFz0q/h1SvCjoTaQgXgQPHjx58OIteBAEL8W/waKNRasgxhYrpiqFVrFNUpPmu9m0SZuPpo1JXud5ZdPpdpOdWSiozAMPm53Mk9n3tzOzm4FUKkW6DoVC2g4EAto+9DROhzWM/n4yDGF7e1vZxWKRi9LR4uIiF1Wr1ZQdDAb5InV080vRV8ZAMBAMBJaBIGQgCBkIQgaCkIEgZCAIGQhCXQgoTNXZbJYhoDBVh8NhhoDCVD06Osrv9bhIVZ97nfaVGVhaWiJdA4KuAUHXfv4M+ckwBB3l83kuSlWxWIxnA4pym/a9jNmAi9QR7qyfzIFDKBQK/z6EVqtFmUyGyuUyn6tAWN9p05WZVXrys8LnKhDS5Qpdms7S4x9FPleB4BxHBYJbpi8EAMjlcrwPAATkBQGDjIQtGhAXc3mmwG1eEADg6kyOMxenstzmBcFtHC8IvTI9IXQ6HS4Y3+MJAiBQPwjNdodufLZ4sxmeytNq40+mH4RypUYjH3OcOf8uQ/FShdv7Qeg1Tj8I/TJdCHgHQLH1ep3PS6USRSIRisfjtLW1xW2QDGF+Y4cuTItzq0FiDHoY2aAjzxJ0djJNH4oN7gPJEGbzGzQcytBkskSVao0CCxZnzrxK0tt0qQtHhqA6jgxBJ9OFgA0Mn5eXl8myLIpGo7yzNxq7AUiGcHtujcmefpmiu/PrdGx8hU5OJOnT2jZ/b0uGcGs2z5lTEyt05+sqHX2eoBMvVuh9utwF4ISgOo4MQSezZzmgQNx9tAGAPStkOZfD9dkCDY4leJ0dDybpTX531thyLodrYvoPjonnMzLjCQomdmeAbedyUBlHhgCpZvZAaLfb/FaIWYDlgH3BKSeE+q823f9eoiFxRx9FN6nR2p9xQrA2q3RvrkBDYno++GbRWqW6BwDshKAyjhOCambfxojCm82mKwDICQHCj8eqTd583OS2MaLwBWuTN0a53bbbxug1jhMCpJLZB8FLbhC85AbBy24QvOQGwUtdCChM1XhaAAIKU/Vf/wcKj0VdA4KuAUHXKAh3VtXYAP1kGIKObAg6wmxAUTrCbMBF6ggF+cl0Idh3uZ/tfjYE/gEPQzIEtz5OQzIEtz5O2/38ZAwEfJaL87Ldz0AQRwNBHA0EcTQQxNFAEEcDQRz/WwiqkiGoSoagKhmCqlCQnwxD0DUgoDBV+/0DZd+xg3WcfgND/TMv156b9wAAAABJRU5ErkJgggsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA+AMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADmklEQVRoQ+2YzWsTQRjGq/Qk1YOgFz0q/h1SvCjoTaQgXgQPHjx58OIteBAEL8W/waKNRasgxhYrpiqFVrFNUpPmu9k0SZuPJo1JXud5Jel0u8nOLBRU5oEHspN9Mvv+5mN3M5RIJEjXgUBA2z6fT9uHnkbpsIZxvpcMQ2g0GsrO5/NclI6Wl5e5qGq1qmy/388XqaObX/KeMgaCgWAgsAwEIQNByEAQMhCEDAQhA0HIQBDqQUBhqk6n0wwBhak6GAwyBBSm6vHxcX6ux0Wq+tzrpKfM0MrKCukaEHQNCLr28jLkJcMQdJTNZrkoVUUiEZ4NKMpp2vczZgMuUkcYWS+ZA4eQy+X+fQitVotSqRSVSiU+VoFQ2GnTlbl1evKzzMcqEJKlMl2aTdPjH3k+VoFg70cFglNmIAQAyGQyvA8ABOQGAZ2MBS0aEhdzeS7HbW4QAODqXIYzF2fS3OYGwakfNwj9Mn0hdDodLhjf4w4CINAgCM12h258tnizGZ3J0nr9T2YQhFK5SmMfM5w5/y5F0WKZ2wdB6NfPIAiDMj0IeAZAsbVajY+LxSKFQiGKRqO0vb3NbZAMYXFzhy7MimOrTqIPehjapCPPYnR2Okkf8nU+B5IhzGc3aTSQoul4kcqVKvmWLM6ceRWnt8liD44MQbUfGYJOpgcBGxg+r66ukmVZFA6HeWev13cDkAzh9sIGkz39MkF3Fwt0bHKNTk7F6dNGg7/vSoZwaz7LmVNTa3Tn6zodfR6jEy/W6H2y1ANgh6DajwxBJ7NnOaBAjD7aAKA7K2TZl8P1+RwNT8R4nR33x+lNdnfWdGVfDtfE9B+eEPdnZCZj5I/tzoCu7ctBpR8ZAqSa2QOh3W7zUyFmAZYD9gW77BBqv9p0/3uRRsSIPgpvUb21P2OHYG1V6N5CjkbE9HzwzaKNcmUPANgOQaUfOwTVzL6NEYU3m01HAJAdAoQfj1SavPk4yWljROFL1hZvjHJ7104bo1s/dgiQSmYfBDc5QXCTEwQ3O0FwkxMEN/UgoDBV424BCChM1X/9CxRui7oGBF0Dgq5REEZW1dgAvWQYgo4KhQIXpSPMBhSlI8wGXKSOUJCXTA+CPNL9DMkQ+AdcDMkQnM6xG5IhOJ1jd/c8LxkDAZ+7xdkLdjJkIAgZCEIGgpCBIGQgCBkIQv81BFXJEFQlQ1CVDEFVKMhLhiGgMFXjj1dAQGGq9voC1R2xg3WUfgNzejYRjgB1CAAAAABJRU5ErkJgggsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA8QMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADk0lEQVRoQ+2XzWsTQRjGq/Qk1YOgFz0q/h1SvCjoTaQgXgQPHjx58OIteBAEL8W/waKNRasgxhYrpiqFVrFNUpPmu9m0SZuPpo1JXud5ZdPpdpOdWSiozAMPk93Mk9n3N7Ozm4FUKkW6DoVC2g4EAto+9DROhzWM/n4yDGF7e1vZxWKRi9LR4uIiF1Wr1ZQdDAb5InV080vRV8ZAMBAMBJaBIGQgCBkIQgaCkIEgZCAIGQhCXQgoTNXZbJYhoDBVh8NhhoDCVD06Osrv9bhIVZ97nfaVGVhaWiJdA4KuAUHXfv4M+ckwBB3l83kuSlWxWIxXA4pyW/a9jNWAi9QRZtZP5sAhFAqFfx9Cq9WiTCZD5XKZj1UgrO+06crMKj35WeFjFQjpcoUuTWfp8Y8iH6tAcI6jAsEt0xcCAORyOd4HAALygoBBRsIWDYiLuTxT4HNeEADg6kyOMxensnzOC4LbOF4QemV6Quh0OlwwvscTBECgfhCa7Q7d+GzxZjM8lafVxp9MPwjlSo1GPuY4c/5dhuKlCp/vB6HXOP0g9Mt0IeAdAMXW63U+LpVKFIlEKB6P09bWFp+DZAjzGzt0YVocWw0SY9DDyAYdeZags5Np+lBscB9IhjCb36DhUIYmkyWqVGsUWLA4c+ZVkt6mS104MgTVcWQIOpkuBGxg+Ly8vEyWZVE0GuWdvdHYDUAyhNtza0z29MsU3Z1fp2PjK3RyIkmf1rb5e1syhFuzec6cmlihO19X6ejzBJ14sULv0+UuACcE1XFkCDqZPbcDCsTs4xwA2KtClvN2uD5boMGxBN9nx4NJepPfXTW2nLfDNbH8B8fE8xmZ8QQFE7srwLbzdlAZR4YAqWb2QGi32/xWiFWA2wH7glNOCPVfbbr/vURDYkYfRTep0dqfcUKwNqt0b65AQ2J5Pvhm0VqlugcA7ISgMo4Tgmpm38aIwpvNpisAyAkBwo/Hqk3efNzktjGi8AVrkzdG+bxtt43RaxwnBEglsw+Cl9wgeMkNgpfdIHjJDYKXuhBQmKrxtAAEFKbqv/4PFB6LugYEXQOCrlEQZlbV2AD9ZBiCjmwIOrIh6Aj9cZE6QkF+Ml0I9iz3s93PhsA/4GFIhuDWx2lIhuDWx2m7n5+MgYDPcnFetvsZCKI1EERrIIjWQBCtgSBaA0G0/y0EVckQVCVDUJUMQVUoyE+GIegaRekaRenanrGDdZx+AwQBIVZs5053AAAAAElFTkSuQmCCCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA8QMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADk0lEQVRoQ+2XzWsTQRjGq/Qk1YOgFz0q/h1SvCjoTaQgXgQPHjx58OIteBAEL8W/waKNRasgxhYrpiqFVrFNUpPmu9m0SZuPpo1JXud5ZdPpdpOdWSiozAMPk93Mk9n3N7Ozm4FUKkW6DoVC2g4EAto+9DROhzWM/n4yDGF7e1vZxWKRi9LR4uIiF1Wr1ZQdDAb5InV080vRV8ZAMBAMBJaBIGQgCBkIQgaCkIEgZCAIGQhCXQgoTNXZbJYhoDBVh8NhhoDCVD06Osrv9bhIVZ97nfaVGVhaWiJdA4KuAUHXfv4M+ckwBB3l83kuSlWxWIxXA4pyW/a9jNWAi9QRZtZP5sAhFAqFfx9Cq9WiTCZD5XKZj1UgrO+06crMKj35WeFjFQjpcoUuTWfp8Y8iH6tAcI6jAsEt0xcCAORyOd4HAALygoBBRsIWDYiLuTxT4HNeEADg6kyOMxensnzOC4LbOF4QemV6Quh0OlwwvscTBECgfhCa7Q7d+GzxZjM8lafVxp9MPwjlSo1GPuY4c/5dhuKlCp/vB6HXOP0g9Mt0IeAdAMXW63U+LpVKFIlEKB6P09bWFp+DZAjzGzt0YVocWw0SY9DDyAYdeZags5Np+lBscB9IhjCb36DhUIYmkyWqVGsUWLA4c+ZVkt6mS104MgTVcWQIOpkuBGxg+Ly8vEyWZVE0GuWdvdHYDUAyhNtza0z29MsU3Z1fp2PjK3RyIkmf1rb5e1syhFuzec6cmlihO19X6ejzBJ14sULv0+UuACcE1XFkCDqZPbcDCsTs4xwA2KtClvN2uD5boMGxBN9nx4NJepPfXTW2nLfDNbH8B8fE8xmZ8QQFE7srwLbzdlAZR4YAqWb2QGi32/xWiFWA2wH7glNOCPVfbbr/vURDYkYfRTep0dqfcUKwNqt0b65AQ2J5Pvhm0VqlugcA7ISgMo4Tgmpm38aIwpvNpisAyAkBwo/Hqk3efNzktjGi8AVrkzdG+bxtt43RaxwnBEglsw+Cl9wgeMkNgpfdIHjJDYKXuhBQmKrxtAAEFKbqv/4PFB6LugYEXQOCrlEQZlbV2AD9ZBiCjmwIOrIh6Aj9cZE6QkF+Ml0I9iz3s93PhsA/4GFIhuDWx2lIhuDWx2m7n5+MgYDPcnFetvsZCKI1EERrIIjWQBCtgSBaA0G0/y0EVckQVCVDUJUMQVUoyE+GIegaRekaRenanrGDdZx+AwQBIVZs5053AAAAAElFTkSuQmCCCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + Office2013RadioButtonGlyphInfo + + -1 + 0, 170, 222 + Solid + 0, 170, 222 + White + 135, 135, 135 + None + Transparent + 0 + 0, 170, 222 + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA9QMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADl0lEQVRoQ+2XzWsTQRjGq/Qk1YOgFz0q/h1SvCjoTaQgXgQPHjx58OIteBAEL8W/waKNRasgxhYrpiqFVrFNUpPmu9m0SZuPpo1JXud5ZdPpdpOdWSiozAMPk93Mk9n3N7Ozm4FUKkW6DoVC2g4EAto+9DROhzWM/n4yDGF7e1vZxWKRi9LR4uIiF1Wr1ZQdDAb5InV080vRV8ZAMBAMBJaBIGQgCBkIQgaCkIEgZCAIGQhCXQgoTNXZbJYhoDBVh8NhhoDCVD06Osrv9bhIVZ97nfaVGVhaWiJdA4KuAUHXfv4M+ckwBB3l83kuSlWxWIxXA4pyW/a9jNWAi9QRZtZP5sAhFAqFfx9Cq9WiTCZD5XKZj1UgrO+06crMKj35WeFjFQjpcoUuTWfp8Y8iH6tAcI6jAsEt0xcCAORyOd4HAALygoBBRsIWDYiLuTxT4HNeEADg6kyOMxensnzOC4LbOF4QemV6Quh0OlwwvscTBECgfhCa7Q7d+GzxZjM8lafVxp9MPwjlSo1GPuY4c/5dhuKlCp/vB6HXOP0g9Mt0IeAdAMXW63U+LpVKFIlEKB6P09bWFp+DZAjzGzt0YVocWw0SY9DDyAYdeZags5Np+lBscB9IhjCb36DhUIYmkyWqVGsUWLA4c+ZVkt6mS104MgTVcWQIOpkuBGxg+Ly8vEyWZVE0GuWdvdHYDUAyhNtza0z29MsU3Z1fp2PjK3RyIkmf1rb5e1syhFuzec6cmlihO19X6ejzBJ14sULv0+UuACcE1XFkCDqZPbcDCsTs4xwA2KtClvN2uD5boMGxBN9nx4NJepPfXTW2nLfDNbH8B8fE8xmZ8QQFE7srwLbzdlAZR4YAqWb2QGi32/xWiFWA2wH7glNOCPVfbbr/vURDYkYfRTep0dqfcUKwNqt0b65AQ2J5Pvhm0VqlugcA7ISgMo4Tgmpm38aIwpvNpisAyAkBwo/Hqk3efNzktjGi8AVrkzdG+bxtt43RaxwnBEglsw+Cl9wgeMkNgpfdIHjJDYKXuhBQmKrxtAAEFKbqv/4PFB6LugYEXQOCrlEQZlbV6O8nwxB0ZEPQEVYDitIR+uMidYSngJ9MF4I9y/1s97Mh8A94GJIhuPVxGpIhuPVx2u7nJ2Mg4LNcnJftfgaCaA0E0RoIojUQRGsgiNZAEO1/C0FVMgRVyRBUJUNQFQryk2EIugYEFKZq+w+Uru0ZO1jH6Tc1kyfofk37EgAAAABJRU5ErkJgggsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + + RectangularSolid + None + TopOnBorder + BottomToTop + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA6gMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADjElEQVRoQ+2YT2sTQRjGq/Qk1YOgFz0qfg4pXhT0JlIQL4IHD548ePFWPAiCNz+DRVuLVkGMLVaaqhRaxTZJTZr/zaZJ2vxp0pjkdZ5Xsp1sN9mZBaHC/OCB7nbezr6/nZ1NOpRIJEg3gUBAO+Pj49o58jxKRzWC8X5qWEKj0VBOPp/npnRYXV3lpqrVqnIwHhepw+2veV81RoKRYCQwRoLASBAYCQIjQWAkCIwEgZEgsCWgMdWk02mWgMZUEwwGuSnd4HM9LlI1F94mfdUMra2tkW4gQTduTXrFz5chPzUsQYdsNstNqRKJRHg1oCm3Zd8vGI+L1AF31k/NP5eQy+X+fwmtVotSqRSVSiU+VpFQ2GvTtflNevarzMcqEpKlMl2ZS9PTn3k+VpHgnEdFglvNQAkQkMlkeB+ACOAlAZOMBS0aEhdzdT7H57wkQMD1+QzXXJ5N8zkvCW7zeEnoV9NXQqfT4Ybxe7xBIAQMktBsd+jWF4s3m9HZLG3W/9YMklAqV2nsc4ZrLn5IUbRY5vODJPSbZ5CEQTW2BHwGQLO1Wo2Pi8UihUIhikajtLu7y+eALGF5e48uzYljq05iDnoc2qZjL2J0fiZJn/J1HgNkCYvZbRoNpGgmXqRyRTS7YnHNuTdxep8s2nJkCarzyBJ0amwJ2MDw8/r6OlmWReFwmHf2en2/AMgS7i5tsdmzrxN0f7lAJyY36PR0nBa2Gvz7LrKEO4tZrjkzvUH3vm3S8ZcxOvVqgz4mS7YApwTVeWQJOjU9jwMaxN3HOQjorgoZ5+NwczFHwxMxfs5OTsXpXXZ/1XRxPg43xPIfnhDvZ9RMxmgqtr8CupElAJV5ZAlAtaZHQrvd5k+FWAV4HLAvOHFKqP1u08MfRRoRd/RJeIfqrYM1TgnWToUeLOVoRCzPR98t2ipXegQgTgkq8zglqNYc2BjReLPZdBUAnBIA/nik0uTNxw23jRGNr1g7vDHK57txSgBe8zglAJWaAxK8cJPghZsEr7hJ8MJNghe2BDSmGrwtIAGNqebQf4HCa1E3kKAbtya9goZwZ1WD8X5qWIIOhUKBm9IBqwFN6YDxuEgdcGf91NgS5DvdL0CWgFePV4AswW2MM0CW4DbGGSBLcBvjDDASBEaCwEgQGAkCI0FgJAiMBIGRIOiRoIosQRVZgiqyBFVkCarYEtCYavCPV0hAY6o53F+gkvQHK6ctxANB/y4AAAAASUVORK5CYIILAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + + White + + + + + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA+wMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADnUlEQVRoQ+2XT2sTQRjGq/Qk1YOgFz0qfg4pXhT0JlIQL4IHD548ePEWPAiCl+JnsGhj0SqIscWKqUqhVWyT1KT532zapE3TJo1JXud5ZdPJdpOdWSiozAMPyW7mycz725nZ3YFUKkW6DoVC2g4EAto+9DROhzWM9n4yDKFeryu7WCxyUTpaXFzkoqrVqrKDwSAPUkc3vxR9ZQwEA8FAYBkIQgaCkIEgZCAIGQhCBoKQgSDUgYDCVJ3NZhkCClN1OBxmCChM1aOjo/xcj0Gq+tzrtK/MwNLSEukaEHQNCLr28zLkJ8MQdJTP57koVcViMZ4NKMpt2vcyZgMGqSNcWT+ZA4dQKBT+fQjNZpMymQyVy2U+VoGwvtuiKzOr9ORnhY9VIKTLFbo0naXHP4p8rALB2Y8KBLdMXwgAkMvleB8ACMgLAjoZCVs0IAZzeabA57wgAMDVmRxnLk5l+ZwXBLd+vCD0yvSE0G63uWD8jjsIgED9IDRabbrx2eLNZngqT6u1P5l+EMqVKo18zHHm/LsMxUsVPt8PQq9++kHol+lAwDMAit3e3ubjUqlEkUiE4vE47ezs8DlIhjC/sUsXpsWxVSPRBz2MbNCRZwk6O5mmD8Uat4FkCLP5DRoOZWgyWaLKVpUCCxZnzrxK0tt0qQNHhqDajwxBJ9OBgA0M35eXl8myLIpGo7yz12p7AUiGcHtujcmefpmiu/PrdGx8hU5OJOnTWp1/tyVDuDWb58ypiRW683WVjj5P0IkXK/Q+Xe4AcEJQ7UeGoJPpWg4oEFcf5wDAnhWynMvh+myBBscSvM6OB5P0Jr83a2w5l8M1Mf0Hx8T9GZnxBAUTezPAtnM5qPQjQ4BUM10QWq0WPxViFmA5YF9wyglh+1eL7n8v0ZC4oo+im1Rr7s84IVibW3RvrkBDYno++GbRWmWrCwDshKDSjxOCambfxojCG42GKwDICQHCn8e2Grz5uMltY0ThC9Ymb4zyedtuG6NXP04IkEpmHwQvuUHwkhsEL7tB8JIbBC91IKAwVeNuAQgoTNV//QsUbou6BgRdA4KuURCurI79ZBiCjmwIOsJsQFE6wmzAAHVkF6WjLgj2Ve5nu50NAbceL0MyBLc2TkMyBLc2TkMyBLc2TkMGgpCBIPTPQOCBethu5ydjIOC7XJyX7XYGgvg0EMSngSA+/1sIqpIhqEqGoCoZgqpkCKrqQNA1IKAwVft9gbKLOljH6TcHdzOr6BQ8HAAAAABJRU5ErkJgggsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAArQMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADT0lEQVRoQ+2ZzWsTURTFq3Ql1YWgG10q/h1S3CjoTqQgbgQXLly5cOMuuBAEN8W/waKNRasgxooVU5VCq9gmqUnzOc2knbT5aNKY5PrOlUyn00nmvQFB5R040HmZ0zf3N+/dmbRDmUyGVB2JRJQdCoWUfeBxkg4qGOcHyTCEZrMp7VKpxEWpaGlpiYuq1WrSDofDfJEquv65FCijIWgIGgJLQxDSEIQ0BCENQUhDENIQhDQEIRsCCpN1Pp9nCChM1tFolCGgMFmPj4/zez0uUtZnXmYDZYaWl5dJ1YCgakBQdZAvQ0EyDEFFhmFwUbJKJBK8GlCU17LvZ6wGXKSKcGeDZP44hGKx+O9DaLfblMvlqFwu87EMhI2dDl2aXaNHPyp8LAMhW67QhXd5evi9xMcyENzzyEDwygyEAACFQoH7AEBAfhAwyVjUpCFxMRdnizzmBwEALs8WOHN+Js9jfhC85vGD0C/TF0K32+WC8TmeIAACDYLQ6nTp2ieTm83ojEFrjd+ZQRDKlRqNfShw5uybHCWtCo8PgtBvnkEQBmVsCHgHQLH1ep2PLcuiWCxGyWSStre3eQxyQljY3KFz78Sx2SAxB92PbdKhJyk6PZ2l96UGnwM5IcwZmzQaydF02qJKtUahRZMzp16k6XXWsuE4IcjO44SgkrEhoIHh55WVFTJNk+LxOHf2RmM3ADkh3JxfZ7Inn2fo9sIGHZlcpeNTafq43uTPe3JCuDFncObE1Crd+rJGh5+m6NizVXqbLdsA3BBk53FCUMns2Q4oEHcfYwDQWxVOubfD1bkiDU+keJ8dDafplbG7anpyb4crYvkPT4jnMzKTKQqndldAz+7tIDOPEwIkm9kDodPp8FshVgG2A/qCW24I9Z8duvvNohFxRx/Et6jR3p9xQzC3qnRnvkgjYnne+2rSeqW6BwDshiAzjxuCbGZfY0ThrVbLEwDkhgDhlyeqLW4+XvJqjCh80dzixugc79mrMfrN44YAyWT2QfCTFwQ/eUHwsxcEP3lB8JMNAYXJGk8LQEBhsv7rv0DhsahqQFA1IKgaBeHOyhrnB8novyeIjIagIWgILA1BSEMQ0hCENAQhDUFIQxDSEIRsCChM1v/ff6Cy9AsSMSlLu0Av/QAAAABJRU5ErkJgggsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + Office2013RadioButtonGlyphInfo + + + + + + + + + 0, 170, 222 + Gray + Gray + Gray + + + + + + + + + Flat + True + + + + + Flat + True + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA8QMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADk0lEQVRoQ+2YTWsTURSGq3Ql1YWgG10q/g4pbhR0J1IQN4ILF65cuHEXXAiCm+JvsGhj0SqIscWKqUqhVWyT1KT5biZN0uajSWOS432PJL2ZTjL3DggK94EXOpM5uXOeuXNn0pFEIkG6CQQC2vH5fNo59DRKhzWC473UsIRGo6GcfD7PTemwurrKTVWrVeX4/X4+SR1ufsl7qjESjAQjgTESBEaCwEgQGAkCI0FgJAiMBEFPAhpTTTqdZgloTDXBYJAloDHVTE5O8ns9TlI1514nPdWMrK2tkW4gQTeQoBsvP4a81LAEHbLZLDelSiQS4dmAppym/aBgNuAkdcCV9VLz1yXkcrn/X0Kr1aJUKkWlUom3VSQU9tp0ZWGTnvws87aKhGSpTJfm0/T4R563VSTYx1GR4FQzVAIEZDIZXgcgArhJwCATQYtGxMlcXsjxPjcJEHB1IcM1F+fSvM9NgtM4bhIG1QyU0Ol0uGF8jicIhIBhEprtDt34bPFiMz6Xpc36n5phEkrlKk18zHDN+XcpihbLvH+YhEHjDJMwrKYnAe8AaLZWq/F2sVikUChE0WiUdnd3eR+QJSxv79GFebFt1UmMQQ9D23TkWYzOzibpQ77OxwBZwmJ2m8YDKZqNF6lcqZJvxeKaM6/i9DZZ7MmRJaiOI0vQqelJwAKGv9fX18myLAqHw7yy1+v7BUCWcHtpi82efpmgu8sFOja9QSdn4vRpq8Gfd5El3FrMcs2pmQ2683WTjj6P0YkXG/Q+WeoJsEtQHUeWoFPTdzugQVx97IOA7qyQsd8O1xdzNDoV4/vsuD9Ob7L7s6aL/Xa4Jqb/6JR4PqNmOkb+2P4M6MZ+O6iMI0sAqjV9EtrtNr8VYhbgdsC6YMcuofarTfe/F2lMXNFH4R2qtw7W2CVYOxW6t5SjMTE9H3yzaKtc6ROA2CWojGOXoFpzYGFE481m01EAsEsA+PJIpcmLjxNOCyMaX7F2eGGU93fjtDC6jWOXAFRqDkhww0mCG04S3OIkwQ0nCW70JKAx1eBpAQloTDX//A8oPBZ1Awm6gQTdoCFcWdXgeC81LEGHQqHATemA2YCmdMBswEnqgCvrpaYnQb7SgwJkCXj0uAXIEpyOsQfIEpyOsQfIEpyOsQcYCQIjQWAkCIwEgZEgMBIERoLASBD0SVBFlqCKLEEVWYIqsgRVehLQmGrwj1dIQGOq+bd/QCXpN3LrT59/MUO0AAAAAElFTkSuQmCCCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA8QMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADk0lEQVRoQ+2YTWsTURSGq3Ql1YWgG10q/g4pbhR0J1IQN4ILF65cuHEXXAiCm+JvsGhj0SqIscWKqUqhVWyT1KT5biZN0uajSWOS432PJL2ZTjL3DggK94EXOpM5uXOeuXNn0pFEIkG6CQQC2vH5fNo59DRKhzWC473UsIRGo6GcfD7PTemwurrKTVWrVeX4/X4+SR1ufsl7qjESjAQjgTESBEaCwEgQGAkCI0FgJAiMBEFPAhpTTTqdZgloTDXBYJAloDHVTE5O8ns9TlI1514nPdWMrK2tkW4gQTeQoBsvP4a81LAEHbLZLDelSiQS4dmAppym/aBgNuAkdcCV9VLz1yXkcrn/X0Kr1aJUKkWlUom3VSQU9tp0ZWGTnvws87aKhGSpTJfm0/T4R563VSTYx1GR4FQzVAIEZDIZXgcgArhJwCATQYtGxMlcXsjxPjcJEHB1IcM1F+fSvM9NgtM4bhIG1QyU0Ol0uGF8jicIhIBhEprtDt34bPFiMz6Xpc36n5phEkrlKk18zHDN+XcpihbLvH+YhEHjDJMwrKYnAe8AaLZWq/F2sVikUChE0WiUdnd3eR+QJSxv79GFebFt1UmMQQ9D23TkWYzOzibpQ77OxwBZwmJ2m8YDKZqNF6lcqZJvxeKaM6/i9DZZ7MmRJaiOI0vQqelJwAKGv9fX18myLAqHw7yy1+v7BUCWcHtpi82efpmgu8sFOja9QSdn4vRpq8Gfd5El3FrMcs2pmQ2683WTjj6P0YkXG/Q+WeoJsEtQHUeWoFPTdzugQVx97IOA7qyQsd8O1xdzNDoV4/vsuD9Ob7L7s6aL/Xa4Jqb/6JR4PqNmOkb+2P4M6MZ+O6iMI0sAqjV9EtrtNr8VYhbgdsC6YMcuofarTfe/F2lMXNFH4R2qtw7W2CVYOxW6t5SjMTE9H3yzaKtc6ROA2CWojGOXoFpzYGFE481m01EAsEsA+PJIpcmLjxNOCyMaX7F2eGGU93fjtDC6jWOXAFRqDkhww0mCG04S3OIkwQ0nCW70JKAx1eBpAQloTDX//A8oPBZ1Awm6gQTdoCFcWdXgeC81LEGHQqHATemA2YCmdMBswEnqgCvrpaYnQb7SgwJkCXj0uAXIEpyOsQfIEpyOsQfIEpyOsQcYCQIjQWAkCIwEgZEgMBIERoLASBD0SVBFlqCKLEEVWYIqsgRVehLQmGrwj1dIQGOq+bd/QCXpN3LrT59/MUO0AAAAAElFTkSuQmCCCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA7AMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADjklEQVRoQ+2XT2sTQRjGq/Qk1YOgFz0qfg4pXhT0JlIQL4IHD548ePEWPAiCl+JnsGhj0SqIscWKqUqhVWyT1KT532zapM2fJo1JXud5ZdPJdpOdiRQU5gcPdDfzdvb97exsMpRIJEg3gUBAOz6fTzuHnkbpsEYwfpAallCv15WTz+e5KR2Wl5e5qUqlohy/388XqcPNL/mBaowEI8FIYIwEgZEgMBIERoLASBAYCQIjQdCRgMZUk06nWQIaU00wGGQJaEw14+Pj/L0eF6mac6+TA9UMrayskG4gQTeQoJtBfgwNUsMSdMhms9yUKpFIhFcDmnJb9r2C1YCL1AF3dpCaA5eQy+X+fwnNZpNSqRQVi0U+VpGwuduiK3Pr9ORniY9VJCSLJbo0m6bHP/J8rCLBOY+KBLeavhIgIJPJ8D4AEcBLAiYZC1o0JC7m8lyOz3lJgICrcxmuuTiT5nNeEtzm8ZLQq6anhHa7zQ3jc7xBIAT0k9BotenGZ4s3m9GZLK3X/tT0k1AsVWjsY4Zrzr9LUbRQ4vP9JPSap5+EfjUdCfgOgGar1SofFwoFCoVCFI1GaWdnh88BWcLi1i5dmBXHVo3EHPQwtEVHnsXo7HSSPuRrPAbIEuazWzQaSNF0vEClcoV8SxbXnHkVp7fJQkeOLEF1HlmCTk1HAjYw/L26ukqWZVE4HOadvVbbKwCyhNsLG2z29MsE3V3cpGOTa3RyKk6fNur8uY0s4dZ8lmtOTa3Rna/rdPR5jE68WKP3yWJHgFOC6jyyBJ2arscBDeLu4xwE2KtCxvk4XJ/P0fBEjJ+z4/44vcnurRob5+NwTSz/4QnxfkbNZIz8sb0VYMf5OKjMI0sAqjVdElqtFn8rxCrA44B9wYlTQvVXi+5/L9CIuKOPwttUa+6vcUqwtst0byFHI2J5Pvhm0Uap3CUAcUpQmccpQbVm38aIxhuNhqsA4JQA8M8j5QZvPm64bYxofMna5o1RPm/HbWP0mscpAajU7JPghZsEL9wkeMVNghduErzoSEBjqsHbAhLQmGr++R9QeC3qBhJ0Awm6QUO4s6rB+EFqWIIOtgQdsBrQlA5YDbhIHWwBOnRJsO9yv9jjbAl49XgFyBLcxjgDZAluY5wBsgS3Mc4AI0FgJAiMBIGRIDASBEaCwEgQGAmCLgmqyBJUkSWoIktQRZagSkeCbiABjanmb35AHXyi9BvrVTNhLiUFpAAAAABJRU5ErkJgggsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAArQMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADT0lEQVRoQ+2ZzWsTURTFq3Ql1YWgG10q/h1S3CjoTqQgbgQXLly5cOMuuBAEN8W/waKNRasgxooVU5VCq9gmqUnzOc2knbT5aNKY5PrOlUyn00nmvQFB5R040HmZ0zf3N+/dmbRDmUyGVB2JRJQdCoWUfeBxkg4qGOcHyTCEZrMp7VKpxEWpaGlpiYuq1WrSDofDfJEquv65FCijIWgIGgJLQxDSEIQ0BCENQUhDENIQhDQEIRsCCpN1Pp9nCChM1tFolCGgMFmPj4/zez0uUtZnXmYDZYaWl5dJ1YCgakBQdZAvQ0EyDEFFhmFwUbJKJBK8GlCU17LvZ6wGXKSKcGeDZP44hGKx+O9DaLfblMvlqFwu87EMhI2dDl2aXaNHPyp8LAMhW67QhXd5evi9xMcyENzzyEDwygyEAACFQoH7AEBAfhAwyVjUpCFxMRdnizzmBwEALs8WOHN+Js9jfhC85vGD0C/TF0K32+WC8TmeIAACDYLQ6nTp2ieTm83ojEFrjd+ZQRDKlRqNfShw5uybHCWtCo8PgtBvnkEQBmVsCHgHQLH1ep2PLcuiWCxGyWSStre3eQxyQljY3KFz78Sx2SAxB92PbdKhJyk6PZ2l96UGnwM5IcwZmzQaydF02qJKtUahRZMzp16k6XXWsuE4IcjO44SgkrEhoIHh55WVFTJNk+LxOHf2RmM3ADkh3JxfZ7Inn2fo9sIGHZlcpeNTafq43uTPe3JCuDFncObE1Crd+rJGh5+m6NizVXqbLdsA3BBk53FCUMns2Q4oEHcfYwDQWxVOubfD1bkiDU+keJ8dDafplbG7anpyb4crYvkPT4jnMzKTKQqndldAz+7tIDOPEwIkm9kDodPp8FshVgG2A/qCW24I9Z8duvvNohFxRx/Et6jR3p9xQzC3qnRnvkgjYnne+2rSeqW6BwDshiAzjxuCbGZfY0ThrVbLEwDkhgDhlyeqLW4+XvJqjCh80dzixugc79mrMfrN44YAyWT2QfCTFwQ/eUHwsxcEP3lB8JMNAYXJGk8LQEBhsv7rv0DhsahqQFA1IKgaBeHOyhrnB8novyeIjIagIWgILA1BSEMQ0hCENAQhDUFIQxDSEIRsCChM1v/ff6Cy9AsSMSlLu0Av/QAAAABJRU5ErkJgggsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2zXFsx4kTZ/GWw/2d+GbevFz7Oe7IXzqy/XLPu/f871kTEg+y2azs7u7K4uLitayvr0s6nS6uuInz83OZm5uTvr4+6e3tVRkbG5NkMimXl5fFVc/j+PhYuru7pa6uTmpra1UaGxtle3u7pM7maU6+/DcmrzStyUuNV/JWeFfC++dScKtUrKMkFAoFicfjanAsFlOjLy4u5OzsTJ9vbW1JJBJRkizy+bxsbm6qwXyyHlgip6amlET7HGQyGRkdHZWmpibVOzk5UaMhcnZ2Vtra2pREnluksgX5ZeFQ3g5H5NfFIzWM8ycyBfljNSUfPYnKt2Nx2T7NXykY3FZHSUgkEnpwa7xfTk9PJRqN6k3lcjlVxPClpSU1wAXIgFTIwHgwPj6uHoMnuADpw8PD0t7ernsCjPjOHNga4kfsIi8/zh8aw/Yken5l1G11Qhx2Y2NDN3URYAVjd3Z21M35zk2WIsCCW15YWFDyuN3m5uaSBFjgleFwWCYnJ9WId3oisnX27JZdyJt9vh6JyW9PU1XphPCA/f19p+F+wQAMIgdAXCVAZ3p6WnMAoVAq5r0gJDs6OjSefzZuXSg+L4fxZEY++SdalU6IuC0VBn7BXQkD4jbICyzwNG6VJBjkBRbs09raKi+bRLaefpaHyiF+UZD3H+9VpaMkuAx2CYbjCT09PcXXBAP3xnNqamoq8gJA0u3q6pIX/l4rmfn9yJiFnw/FqtK5tSdQKfAEflcCEinhQBn0Zv1yIJFSKShpO2dXiTgIR6YifGiyfjU6ITI41cFvsEswglxAUtzb2yu+qjxIuIQDfQBJshKQfAkHavrDjcpCaOE4K+89jlSlE8ILcHFu2WW4VyiTJC0OSV339g2lAMmrq6u6R2dnZ0W5ZGRkRAYHB7Wp+WxgXxImdoPwkyl5P0wnq9LRPoFGCHEZbgVvwSC+E9uE0crKir7MBdbgLRgE0fwml/T39xdX3AT5A29paGiQg4MDje1vRuPyYPKguOImcsbWP9dP5M3uXZlPZavSURK4UW4KSaVS6sLcGN5BCFBC19bW9LcFZBDr8/PzcnR0pO/ACHIA+lQRGh/eZ8G7aIQolxDE+0iCvAujKaH19fXPhdq2ie+PTRn7ypS+wcSFyeh5TWjE81wqo+XwjUc7MmT+ZnFbnevZgcPj5hBB3POJIXwnBDioHyQw1s3MzGjcUwXoECcmJjQE8AA/IIg19AHEPVWAJNjS0iIDAwNKhh90db+bpubT/qiWtC+G9uUD0+292xuR7407c5t+3EbnmgQAEYQF7TDujthushTwmDszQHED3Dyfdj7AVXF12mVc1JsI79wAheFk/lLZHoNJjNyUJQjD78wAhVEYxCe3ws0Tz9zi8vKyJkVI4G8Q5R+gssavHm6cyOsdWxIy3dq91k2TmROSNKyj4xqgyumUGqDK6ZQaoCrVCZEDbDKCAG8+sEIocDhcm9DwDlB/mU1ebV7XTazQut4fjkna1CLXABWk4xqggnRcA1SlOiGMtmFgPcAveARr8AjbNtsweK39imW/3GvdkNWTrOr5B6ggHcLCP0AF6bgGqEp1dHaw8BvvFeKaW8RzvAOUaxMrtKV4kH+Acq21gg5k+wco11or6LgGKNdaK14dJcEmO27cbzxivQWDiG/vAAWrrk1ww6eGbd7tH6CCdFwDVJCOa4CqVCdEbJMLAEnQRQIhwO1wOL57B6gHUwfyotnYvxFNSSKT1yzvH6CCdFwDVJCOHYaq0QlxSOo6RiIYZz0CD8Bo2y5TJvnHq3eAItPeH45fsw7LbPIkfpUzXANUkI5rgArScQ1Qlepon2CnQ4DLYxy3jkAMscwMgNcQBvyGJDtApXOXsprOKbO42YHZnDUQWmqAcumwd7kByqXjH4aq0VESMNp2hdyUNZxDQYSdIO/8AMVhDg8PlQxclyrAJ8YQApDhB89Y8/8eoET+A46Kvwl1DPddAAAAAElFTkSuQmCCCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA/QMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADn0lEQVRoQ+2YT2sTQRjGq/Qk1YOgFz0qfg4pXhT0JlIQL4IHD548ePEWPAiCl+JnsGhj0SqIscWKqUqhVWyT1KT532yapM2fJo1JXud5Jel0u8nOrBQU5gcPdLfzdvb97exs0qFEIkG6CQQC2vH5fNo59DRKhzWC8V5qWEKj0VBOPp/npnRYXl7mpqrVqnL8fj9fpA43v+Q91RgJRoKRwBgJAiNBYCQIjASBkSAwEgRGgqAnAY2pJp1OswQ0pppgMMgS0JhqxsfH+XM9LlI1514nPdUMrayskG4gQTeQoBsvX4a81LAEHbLZLDelSiQS4dWAppyWfb9gNeAidcCd9VJz4BJyudz/L6HValEqlaJSqcTHKhIKO226MrdOT36W+VhFQrJUpkuzaXr8I8/HKhLs86hIcKoZKAECMpkM7wMQAdwkYJKxoEVD4mIuz+X4nJsECLg6l+GaizNpPucmwWkeNwn9avpK6HQ63DB+jzcIhIBBEprtDt34bPFmMzqTpfX6n5pBEkrlKo19zHDN+XcpihbLfH6QhH7zDJIwqKYnAZ8B0GytVuPjYrFIoVCIotEobW9v8zkgS1jc3KELs+LYqpOYgx6GNunIsxidnU7Sh3ydxwBZwnx2k0YDKZqOF6lcqZJvyeKaM6/i9DZZ7MmRJajOI0vQqelJwAaGn1dXV8myLAqHw7yz1+u7BUCWcHthg82efpmgu4sFOja5Rien4vRpo8G/7yJLuDWf5ZpTU2t05+s6HX0eoxMv1uh9stQTYJegOo8sQadmz+OABnH3cQ4CuqtCxv44XJ/P0fBEjJ+z4/44vcnurpou9sfhmlj+wxPi/YyayRj5Y7sroBv746AyjywBqNbskdBut/lTIVYBHgfsC3bsEmq/2nT/e5FGxB19FN6iemt/jV2CtVWhews5GhHL88E3izbKlT0CELsElXnsElRr9m2MaLzZbDoKAHYJAH88Umny5uOE08aIxpesLd4Y5fPdOG2MbvPYJQCVmn0S3HCS4IaTBLc4SXDDSYIbPQloTDV4W0ACGlPNP/8FCq9F3UCCbiBBN2gId1Y1GO+lhiXoUCgUuCkdsBrQlA5YDbhIHboCdNgjQb7T/QJkCXj1uAXIEpzG2ANkCU5j7AGyBKcx9gAjQWAkCIwEgZEgMBIERoLASBD88xJwgcBpjD0A473U9CSoIktQRZagiixBFVmCKj0JaEw1+McrJKAx1fzNF6iDT5R+AxOLNj+SFfOFAAAAAElFTkSuQmCCCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + 191, 191, 191 + White + 191, 191, 191 + Office2010 + 191, 191, 191 + + + + + Standard + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA8wMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADlUlEQVRoQ+2YTWsTURSGq3Ql1YWgG10q/g4pbhR0J1IQN4ILF65cuHEXXAiCm+JvsGhj0SqIsWLFVKXQKrZJatJ8N5MmafPRpDHJ8b5Hkt5MJ5l7BxSF+8ALncmc3DnP3Lkz6UgikSDdBAIB7fh8Pu0ceBylgxrB8V5qWEKj0VBOPp/npnRYWVnhpqrVqnL8fj+fpA7XP+c91RgJRoKRwBgJAiNBYCQIjASBkSAwEgRGgqAnAY2pJp1OswQ0pppgMMgS0JhqJicn+b0eJ6maMy+TnmpGVldXSTeQoBtI0I2XH0NealiCDtlslptSJRKJ8GxAU07TflAwG3CSOuDKeqn54xJyudz/L6HValEqlaJSqcTbKhIKu226NL9Bj36UeVtFQrJUpgvv0vTwe563VSTYx1GR4FQzVAIEZDIZXgcgArhJwCATQYtGxMlcnM/xPjcJEHB5PsM15+fSvM9NgtM4bhIG1QyU0Ol0uGF8jicIhIBhEprtDl37ZPFiMz6XpY3675phEkrlKk18yHDN2TcpihbLvH+YhEHjDJMwrKYnAe8AaLZWq/F2sVikUChE0WiUdnZ2eB+QJSxt7dK5d2LbqpMYg+6HtujQkxidnk3S+3ydjwGyhIXsFo0HUjQbL1K5UiXfssU1p17E6XWy2JMjS1AdR5agU9OTgAUMf6+trZFlWRQOh3llr9f3CoAs4ebiJps9+TxBt5cKdGR6nY7PxOnjZoM/7yJLuLGQ5ZoTM+t068sGHX4ao2PP1ultstQTYJegOo4sQaem73ZAg7j62AcB3VkhY78dri7kaHQqxvfZUX+cXmX3Zk0X++1wRUz/0SnxfEbNdIz8sb0Z0I39dlAZR5YAVGv6JLTbbX4rxCzA7YB1wY5dQu1nm+5+K9KYuKIPwttUb+2vsUuwtit0ZzFHY2J63vtq0Wa50icAsUtQGccuQbVm38KIxpvNpqMAYJcA8OWRSpMXHyecFkY0vmxt88Io7+/GaWF0G8cuAajU7JPghpMEN5wkuMVJghtOEtzoSUBjqsHTAhLQmGr++R9QeCzqBhJ0Awm6QUO4sqrB8V5qWIIOhUKBm9KhK0EHzAacpA64sl5qehLkKz0oQJaAR49bgCzB6Rh7gCzB6Rh7gCzB6Rh7gJEgMBIERoLASBAYCQIjQWAkCIwEQZ8EVWQJqsgSVJElqCJLUKUnAY2pBv94RVO6gQQ0ppq/9wMqSb8AWg1JD6G7pzMAAAAASUVORK5CYIILAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + False + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgIAAAAJAwAAAA8DAAAA2wAAAAKJUE5HDQoaCgAAAA1JSERSAAAACgAAAAoIBgAAAI0yz70AAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M1cbXjNgAAAFVJREFUKFNj+P//Pxi3trZeAGIBGB8dwxlARf+B+AEQGyArgGE4A6oQhD8AcQCyIhDGphCGC4hVCMILqKqwASaHSyHIMwnIikAYXSFIEcHgwRPg/xkAphkSTK5IMV8AAAAASUVORK5CYIILAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgIAAAAJAwAAAA8DAAAA6AAAAAKJUE5HDQoaCgAAAA1JSERSAAAACgAAAAoIBgAAAI0yz70AAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M1cbXjNgAAAGJJREFUKFNj+P//P1EYqyA2zMCw6t4FIP5PAF8AKRQA4g9Iguj4ARALQIxddc8AiLEpBokZgNXA3bDqXgKSAhgOgMvDGFDFDUiKClDkkDlggVX3FoAwhji6AC6MVRAT/2cAAJhQETR6tnZYAAAAAElFTkSuQmCCCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + Never + None + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SRC/MESWin/shared file/iMES.pfx b/SRC/MESWin/shared file/iMES.pfx new file mode 100644 index 0000000..bf28015 Binary files /dev/null and b/SRC/MESWin/shared file/iMES.pfx differ diff --git a/SRC/MESWin/shared file/iMES.snk b/SRC/MESWin/shared file/iMES.snk new file mode 100644 index 0000000..4206cdc Binary files /dev/null and b/SRC/MESWin/shared file/iMES.snk differ diff --git a/SRC/MESWin/shared file/modConstant.vb b/SRC/MESWin/shared file/modConstant.vb new file mode 100644 index 0000000..b445f5e --- /dev/null +++ b/SRC/MESWin/shared file/modConstant.vb @@ -0,0 +1,22 @@ +Module modConstant + + Public Const defInteger As Integer = -999 '宣告整數使用的常數,用以辨識參數是否有傳入Function中。 + Public Const defString As String = "Null" '宣告字串使用的常數,用以辨識參數是否有傳入Function中。 + Public Const defDateTime As Date = #12/31/1900# '宣告日期使用的常數,用以辨識參數是否有傳入Function中。 + Public Const defSingle As Single = -999 '宣告單精準數使用的常數,用以辨識參數是否有傳入Function中。 + Public Const defDouble As Double = -999 '宣告雙精準數使用的常數,用以辨識參數是否有傳入Function中。 + Public Const strAddTagLabel As String = "extrabase" 'Add by py for Combine Addition XML doc + Public Const strAddTagName As String = "ExtraBase" 'Add by py for Combine Addition XML doc + Public Const defWinErrCode As String = "0000-899999" + Public Const defNullDate As Date = #12/31/1910# '宣告日期使用的常數,用以辨識參數是否要變更為Null。 + Public Const defNullInteger As Integer = -9999 '宣告數值使用的常數,用以辨識參數是否要變更為Null。 +End Module + +'2020/01/15 Shih Kai,供前端InvokeSrv_Module時使用,用以辨識是否存入EventLog (1,2,3 >存入) +Public Enum _enuInvokeType + _Load = 0 + _Add = 1 + _Edit = 2 + _Delete = 3 + _Get = 4 +End Enum diff --git a/SRC/MESWin/shared file/modQCSetting.vb b/SRC/MESWin/shared file/modQCSetting.vb new file mode 100644 index 0000000..87e1b4e --- /dev/null +++ b/SRC/MESWin/shared file/modQCSetting.vb @@ -0,0 +1,61 @@ +Module modQCSetting + + Public Function LoadQCObjectInfo(ByVal pQCObjectType As String, + ByRef pRefTableName As String, + ByRef pData As DataSet, + Optional ByVal pQCObjectNo As String = defString, + Optional ByRef pFindColumnNo As String = "", + Optional ByRef pFindColumnName As String = "", + Optional ByVal pLikeSymbo As String = "", + Optional ByVal pQCObjectFrom As String = defString, + Optional ByVal pQCObjectTo As String = defString, + Optional ByVal pAdditional As String = "") As Boolean + + Dim strMethod As String + Dim strNode As String + Dim strConditionName As String = "QCObjectType" + Dim strConditionValue As String = pQCObjectType + + pQCObjectNo = pQCObjectNo & pLikeSymbo + + Select Case pQCObjectType + Case 0 + pFindColumnNo = "QCCategory" + pFindColumnName = "QCCategoryName" + + Case 1 + pFindColumnNo = "ProductNo" + pFindColumnName = "ProductName" + + Case 2 + pFindColumnNo = "QCCategory" + pFindColumnName = "QCCategoryName" + + Case 3 + pFindColumnNo = "MaterialNo" + pFindColumnName = "MaterialName" + + End Select + + If pQCObjectNo <> defString Then + strConditionName = strConditionName & ",QCObjectNo" + strConditionValue = strConditionValue & "," & pQCObjectNo + End If + + If pQCObjectFrom <> defString Then + strConditionName = strConditionName & ",QCObjectNoFrom" + strConditionValue = strConditionValue & "," & pQCObjectFrom + End If + + If pQCObjectTo <> defString Then + strConditionName = strConditionName & ",QCObjectNoTo" + strConditionValue = strConditionValue & "," & pQCObjectTo + End If + + LoadQCObjectInfo = COM_Utility.clsUtility.InvokeLoadFunction(gComputerName, gUserNo, "wsQC.LoadQCObjectRefInfo", "loadqcobjectrefinfo", + Split(strConditionName, ","), Split(strConditionValue, ","), + pRefTableName, pData,, pAdditional) + + End Function + +End Module diff --git a/SRC/MEStc_ABC/MEStc_ABC.csproj b/SRC/MEStc_ABC/MEStc_ABC.csproj new file mode 100644 index 0000000..3afb26e --- /dev/null +++ b/SRC/MEStc_ABC/MEStc_ABC.csproj @@ -0,0 +1,129 @@ + + + + Debug + AnyCPU + + + + + {8CC8664F-C718-0888-187B-600F20E362E0} + Library + MEStc_ABC + MEStc_ABC + 512 + Windows + v4.6.2 + SAK + SAK + SAK + SAK + + $(DefaultItemExcludes);$(ProjectDir)**\*.vb + + + true + full + true + true + ..\MES_S_DLL\ + ..\MES_S_DLL\MEStc_ABC.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + 0 + false + + + pdbonly + false + true + true + bin\Release\ + bin\Release\ + + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + 0 + false + + + On + + + Binary + + + Off + + + On + + + + + False + ..\MES_S_DLL\data_access_service.dll + False + + + False + ..\MES_S_DLL\iMESAppSetting.dll + False + + + False + ..\MES_S_DLL\iMESComSubroutine.dll + False + + + False + ..\MES_S_DLL\iMESComXML.dll + False + + + False + ..\MES_S_DLL\iMESConst.dll + False + + + ..\..\MESSeries_2016\MES_S_DLL\iMESException.dll + False + + + False + ..\MES_S_DLL\iMESLog.dll + False + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SRC/MEStc_ABC/MEStc_ABC.csproj.vspscc b/SRC/MEStc_ABC/MEStc_ABC.csproj.vspscc new file mode 100644 index 0000000..b6d3289 --- /dev/null +++ b/SRC/MEStc_ABC/MEStc_ABC.csproj.vspscc @@ -0,0 +1,10 @@ +"" +{ +"FILE_VERSION" = "9237" +"ENLISTMENT_CHOICE" = "NEVER" +"PROJECT_FILE_RELATIVE_PATH" = "" +"NUMBER_OF_EXCLUDED_FILES" = "0" +"ORIGINAL_PROJECT_FILE_PATH" = "" +"NUMBER_OF_NESTED_PROJECTS" = "0" +"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROVIDER" +} diff --git a/SRC/MEStc_ABC/MEStc_ABC.sln b/SRC/MEStc_ABC/MEStc_ABC.sln new file mode 100644 index 0000000..9db77c8 --- /dev/null +++ b/SRC/MEStc_ABC/MEStc_ABC.sln @@ -0,0 +1,30 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 14 +VisualStudioVersion = 14.0.25420.1 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MEStc_ABC", "MEStc_ABC.csproj", "{8CC8664F-C718-0888-187B-600F20E362E0}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {8CC8664F-C718-0888-187B-600F20E362E0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8CC8664F-C718-0888-187B-600F20E362E0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8CC8664F-C718-0888-187B-600F20E362E0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8CC8664F-C718-0888-187B-600F20E362E0}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(TeamFoundationVersionControl) = preSolution + SccNumberOfProjects = 2 + SccEnterpriseProvider = {4CA58AB2-18FA-4F8D-95D4-32DDF27D184C} + SccTeamFoundationServer = http://tfs.imestech.com:8080/tfs/messeries6 + SccLocalPath0 = . + SccProjectUniqueName1 = MEStc_ABC.csproj + SccLocalPath1 = . + EndGlobalSection +EndGlobal diff --git a/SRC/MEStc_ABC/Properties/AssemblyInfo.cs b/SRC/MEStc_ABC/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..e2bf75b --- /dev/null +++ b/SRC/MEStc_ABC/Properties/AssemblyInfo.cs @@ -0,0 +1,32 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 組件的一般資訊是由下列的屬性集控制。 +// 變更這些屬性的值即可修改組件的相關 +// 資訊。 +[assembly: AssemblyTitle("MEStc_ABC.Properties")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("iMES Technology Inc.")] +[assembly: AssemblyProduct("MESSeries 6")] +[assembly: AssemblyCopyright("Copyright iMES Technology Inc.")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// 將 ComVisible 設定為 false 會使得這個組件中的類型 +// 對 COM 元件而言為不可見。如果您需要從 COM 存取這個組件中 +// 的類型,請在該類型上將 ComVisible 屬性設定為 true。 +[assembly: ComVisible(false)] + +// 下列 GUID 為專案公開 (Expose) 至 COM 時所要使用的 typelib ID +[assembly: Guid("00eb00ee-1246-48cf-a0bf-f5203de255f1")] + +// 組件的版本資訊由下列四個值所組成: +// +// 主要版本 +// 次要版本 +// 組建編號 +// 修訂編號 +// +[assembly: AssemblyVersion("6.0.0.0")] diff --git a/SRC/MEStc_ABC/tcWIP/clsLot.cs b/SRC/MEStc_ABC/tcWIP/clsLot.cs new file mode 100644 index 0000000..22d0c0a --- /dev/null +++ b/SRC/MEStc_ABC/tcWIP/clsLot.cs @@ -0,0 +1,337 @@ +using System; +using System.Data; +using System.Data.Common; +using Microsoft.VisualBasic; +using static iMESCore.Base.iMESComSubroutine; +using static iMESCore.Base.iMESComXML; +using static iMESCore.Base.iMESConst; +using static iMESCore.DataBase.iMESSql; +using iMESCore.Settings; + +namespace MEStc_ABC +{ + + + public class clsLot : IDisposable + { + /*不使用modXX,不再使用OleDb + * 資料庫相關(建立連線/讀取資料/異動資料),使用data_access_service.dll + * 設定檔相關,使用iMESAppSetting + * Xml相關,使用iMESComXML.dll + * 常數相關,使用iMESConst.dll + * 簡易副程式,使用iMESComSubroutine.dll + */ + + + private AppSettings objSetting = new AppSettings(); + private string strConnectionString; // Connection string + private string strDataBaseType; // DataBase Type:oracle, mysql, access + private string strMQType; // MessageQueue Type:TIBCO, MQSeries, MSMQ + private bool disposed = false; // To detect redundant calls + private string strSQL = ""; + + #region --- Initial Object --- + + public clsLot() + { + // Get database type + strDataBaseType = objSetting.GetDataBaseType(); + // Get connection string + strConnectionString = objSetting.GetConnectionString(strDataBaseType); + // Get Message Queue Type + strMQType = objSetting.GetMQType(); + } + + #endregion + + #region --- Property --- + + // //Property-------------------------------------------------------------------------------------------------------------------------------- + public string ConnectionString + { + get + { + return strConnectionString; + } + } + + public string DataBaseType + { + get + { + return strDataBaseType; + } + } + + public string MQType + { + get + { + return strMQType; + } + } + + // 2003/03/22,sammi. + // 因TC可能呼叫KC,在整個Function中,必須要使用同一個Reverse物件,如此在產生AddReverseUpdateContent的資料時,ReverseOrder才不會重覆. + // 若KC再往下呼叫UD,則必須將Reverse物件傳遞予UD. + //public object ReverseObj + //{ + // get + // { + // //return objReverse; + // // ReverseObj = objReverse + // } + //} + + + #endregion + + #region IDisposable Support + private bool disposedValue; // 偵測多餘的呼叫 + + // IDisposable + protected virtual void Dispose(bool disposing) + { + if (!disposedValue) + { + if (disposing) + { + // TODO: 處置 Managed 狀態 (Managed 物件)。 + } + + // TODO: 釋放 Unmanaged 資源 (Unmanaged 物件) 並覆寫下面的 Finalize()。 + // TODO: 將大型欄位設定為 null。 + } + disposedValue = true; + } + + // TODO: 只有當上面的 Dispose(ByVal disposing As Boolean) 有可釋放 Unmanaged 資源的程式碼時,才覆寫 Finalize()。 + // Protected Overrides Sub Finalize() + // ' 請勿變更此程式碼。在上面的 Dispose(ByVal disposing As Boolean) 中輸入清除程式碼。 + // Dispose(False) + // MyBase.Finalize() + // End Sub + + // 由 Visual Basic 新增此程式碼以正確實作可處置的模式。 + public void Dispose() + { + // 請勿變更此程式碼。在以上的 Dispose 置入清除程式碼 (ByVal 視為布林值處置)。 + Dispose(true); + GC.SuppressFinalize(this); + } + #endregion + + + public string LoadOPType(string OPType = defString, int IssueState = defInteger, string AdditionalXml = "") + { + string LoadOPTypeRet = null; + // 此 Function 將資料以XML方式取出 + // 傳入值: 索引值 + // 傳回值: XML(成功), fail(失敗) + + + DataSet dsOP = null; + + try + { + + dsOP = ShowOPType(OPType, IssueState, AdditionalXml); + + // //Combine return value + LoadOPTypeRet = CombineXMLReturnValue("loadoptype", "OPType", "DataSet", FormatXMLSchema(dsOP.GetXmlSchema()), dsOP.GetXml(), ""); + } + + catch (Exception e1) + { + LoadOPTypeRet = "fail"; + throw; + } // New Exception("kcOP.LoadOPType: " & e1.Message) + + finally + { + if (dsOP != null) + { + dsOP.Dispose(); + } + } + + return LoadOPTypeRet; + + } + + public DataSet ShowOPType(string OPType = defString, int IssueState = defInteger, string AdditionalXml = "") + { + DataSet ShowOPTypeRet = null; + + // 此 Function 將資料以 Dataset 方式取出 + // 傳入值: 索引值 + // 傳回值: Dataset(成功), Nothing(失敗) + + + DataSet dsOP = null; + IDbConnection cnnTemp = null; + + try + { + // //Create connection + cnnTemp = CreateConnection(strConnectionString); + + strSQL = "Select * From tblOPType Where OPType Is Not Null"; + if (OPType != defString) + { + strSQL = strSQL + " And OPType = '" + OPType + "'"; + } + if (IssueState != defInteger) + { + strSQL = strSQL + " And IssueState = " + IssueState; + } + + if (!string.IsNullOrEmpty(AdditionalXml)) + { + // 加上additional的condition + strSQL = strSQL + SeparateAddXML_Condition(AdditionalXml); + } + + // //Select data + dsOP = new DataSet(); + ExecuteSQLQuery_Adapter(strSQL, dsOP, "OPType", cnnTemp); + + // //Return data + ShowOPTypeRet = dsOP; + } + + catch (Exception e1) + { + ShowOPTypeRet = null; + throw; + } + + finally + { + CloseConnection(cnnTemp); + if (dsOP != null) + { + dsOP.Dispose(); + } + } + + return ShowOPTypeRet; + } + + public DataRow GetOPType(string OPType = defString, int IssueState = defInteger, string AdditionalXml = "") + { + DataRow GetOPTypeRet = null; + // 此 Function 將資料以XML方式取出 + // 傳入值: 索引值 + // 傳回值: XML(成功), fail(失敗) + + + DataSet dsOP = null; + + try + { + + dsOP = ShowOPType(OPType, IssueState, AdditionalXml); + + // //Return data + if (dsOP.Tables[0].Rows.Count > 0) + { + GetOPTypeRet = dsOP.Tables[0].Rows[0]; + } + else + { + GetOPTypeRet = dsOP.Tables[0].NewRow(); + } + } + + catch (Exception e1) + { + GetOPTypeRet = null; + throw; + } // New Exception("kcOP.LoadOPType: " & e1.Message) + + finally + { + if (dsOP != null) + { + dsOP.Dispose(); + } + } + + return GetOPTypeRet; + + } + + public string BR_CheckIn(long LotStamp, string LotNo, string LinkName, DataTable dtAttrib, DataTable dtEquipment, string UserNo, string ShiftNo, + string LotRecord = defString, DateTime CheckInTime = default(DateTime), string RuleNo = "", DataTable dtLoginState = null, DataTable dtAccessory = null, + DataTable dtMTLLot = null, string LanguageMode = defString) + { + string BR_CheckInRet = default(string); + // 此 Function 將更新CheckIn Data + // 傳入值: LotNo,dtAttrib,dtEquipment + // 傳回值: success(成功), fail(失敗) + + IDbConnection cnnTemp = null; + DbDataReader drTemp; + var CollectionSQL = new Collection(); + var CollectionSQL_Rows = new Collection(); + string strSQL = ""; + + string LotSerial, OPNo, BRNo, SerialNo, LogGroupSerial, BaseLotNo, CurQTY; + int PhaseNo; + DateTime datEventTime; + long lngLotStamp; + + try + { + // //Create connection + cnnTemp = CreateConnection(strConnectionString); + + // 1.取出Temp LotState的資料 + strSQL = "Select A.LotSerial,A.OPNo,A.SerialNo,B.BRNo,B.LogGroupSerial,B.LotStamp,B.BaseLotNo,B.CurQTY,B.PhaseNo " + + " From tblWIPTemp_LotState A, tblWIPLotState B " + " Where A.LotNo ='" + LotNo + "'" + " And A.LotNo = B.LotNo "; + // cmmTemp = New OleDb.OleDbCommand(strSQL, cnnTemp) + drTemp = ExecuteSQLQuery_Reader(strSQL, cnnTemp); + if (drTemp.Read()) + { + LotSerial = drTemp["LotSerial"].ToString(); + OPNo = drTemp["OPNo"].ToString(); + SerialNo = drTemp["SerialNo"].ToString(); + BRNo = drTemp["BRNo"].ToString(); + LogGroupSerial = drTemp["LogGroupSerial"].ToString(); + lngLotStamp = Convert.ToInt64(drTemp["LotStamp"]); + BaseLotNo = drTemp["BaseLotNo"].ToString(); + CurQTY = drTemp["CurQTY"].ToString(); + PhaseNo = Convert.ToInt32(drTemp["PhaseNo"]); // 2020/11/20 Steven Mantis: 0082084: [PAD]eRunCard_調整 BR 生產記錄 + } + else + { + throw new iMESException.MESException("0000-202003", "[%LotNo%] : " + LotNo); + } + drTemp.Close(); + + + // 呼叫執行SQL指令 + ExecuteSQLNoneQuery_ChkRowCount(strDataBaseType, strConnectionString, CollectionSQL, CollectionSQL_Rows); + + // //Return success + BR_CheckInRet = "success"; + } + + catch (Exception e1) + { + BR_CheckInRet = "fail"; + throw; + } + finally + { + CloseConnection(cnnTemp); + + } + return BR_CheckInRet; + + } + + + } +} \ No newline at end of file diff --git a/SRC/MESud/UserDefine_Customer.sln b/SRC/MESud/UserDefine_Customer.sln new file mode 100644 index 0000000..651f835 --- /dev/null +++ b/SRC/MESud/UserDefine_Customer.sln @@ -0,0 +1,49 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 14 +VisualStudioVersion = 14.0.25420.1 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "udSYS_Customer", "udSYS_Customer\udSYS_Customer.csproj", "{73D29D85-D190-04AF-0922-F34F21CAC888}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "udScriptFunction_Customer", "udScriptFunction_Customer\udScriptFunction_Customer.csproj", "{F31A762E-F2F8-00E6-10BA-01E73BC174FA}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "udUnitTransferFunction_Customer", "udUnitTransferFunction_Customer\udUnitTransferFunction_Customer.csproj", "{BFE0BB52-2A20-0BA7-1FE1-00305141A790}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {73D29D85-D190-04AF-0922-F34F21CAC888}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {73D29D85-D190-04AF-0922-F34F21CAC888}.Debug|Any CPU.Build.0 = Debug|Any CPU + {73D29D85-D190-04AF-0922-F34F21CAC888}.Release|Any CPU.ActiveCfg = Release|Any CPU + {73D29D85-D190-04AF-0922-F34F21CAC888}.Release|Any CPU.Build.0 = Release|Any CPU + {F31A762E-F2F8-00E6-10BA-01E73BC174FA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F31A762E-F2F8-00E6-10BA-01E73BC174FA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F31A762E-F2F8-00E6-10BA-01E73BC174FA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F31A762E-F2F8-00E6-10BA-01E73BC174FA}.Release|Any CPU.Build.0 = Release|Any CPU + {BFE0BB52-2A20-0BA7-1FE1-00305141A790}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BFE0BB52-2A20-0BA7-1FE1-00305141A790}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BFE0BB52-2A20-0BA7-1FE1-00305141A790}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BFE0BB52-2A20-0BA7-1FE1-00305141A790}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(TeamFoundationVersionControl) = preSolution + SccNumberOfProjects = 4 + SccEnterpriseProvider = {4CA58AB2-18FA-4F8D-95D4-32DDF27D184C} + SccTeamFoundationServer = http://tfs.imestech.com:8080/tfs/messeries6 + SccLocalPath0 = . + SccProjectUniqueName1 = udSYS_Customer\\udSYS_Customer.vbproj + SccProjectName1 = udSYS_Customer + SccLocalPath1 = udSYS_Customer + SccProjectUniqueName2 = udScriptFunction_Customer\\udScriptFunction_Customer.vbproj + SccProjectName2 = udScriptFunction_Customer + SccLocalPath2 = udScriptFunction_Customer + SccProjectUniqueName3 = udUnitTransferFunction_Customer\\udUnitTransferFunction_Customer.vbproj + SccProjectName3 = udUnitTransferFunction_Customer + SccLocalPath3 = udUnitTransferFunction_Customer + EndGlobalSection +EndGlobal diff --git a/SRC/MESud/udSYS_Customer/Properties/AssemblyInfo.cs b/SRC/MESud/udSYS_Customer/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..aa5755f --- /dev/null +++ b/SRC/MESud/udSYS_Customer/Properties/AssemblyInfo.cs @@ -0,0 +1,32 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 組件的一般資訊是由下列的屬性集控制。 +// 變更這些屬性的值即可修改組件的相關 +// 資訊。 +[assembly: AssemblyTitle("udSYS")] +[assembly: AssemblyDescription("udSYS for MESSeries")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("iMES Technology Inc.")] +[assembly: AssemblyProduct("MESSeries 6")] +[assembly: AssemblyCopyright("Copyright iMES Technology Inc.")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// 將 ComVisible 設定為 false 會使得這個組件中的類型 +// 對 COM 元件而言為不可見。如果您需要從 COM 存取這個組件中 +// 的類型,請在該類型上將 ComVisible 屬性設定為 true。 +[assembly: ComVisible(false)] + +// 下列 GUID 為專案公開 (Expose) 至 COM 時所要使用的 typelib ID +[assembly: Guid("eac22f8c-c9cb-4a0e-b9fa-9a35789e48ef")] + +// 組件的版本資訊由下列四個值所組成: +// +// 主要版本 +// 次要版本 +// 組建編號 +// 修訂編號 +// +[assembly: AssemblyVersion("6.0.0.0")] diff --git a/SRC/MESud/udSYS_Customer/Resources.Designer.cs b/SRC/MESud/udSYS_Customer/Resources.Designer.cs new file mode 100644 index 0000000..1bbfb01 --- /dev/null +++ b/SRC/MESud/udSYS_Customer/Resources.Designer.cs @@ -0,0 +1,70 @@ +// ------------------------------------------------------------------------------ +// +// 這段程式碼是由工具產生的。 +// 執行階段版本:4.0.30319.42000 +// +// 對這個檔案所做的變更可能會造成錯誤的行為,而且如果重新產生程式碼, +// 變更將會遺失。 +// +// ------------------------------------------------------------------------------ + + +using System.Diagnostics; +using Microsoft.VisualBasic; + +namespace udSYS_Customer.My.Resources +{ + + // 這個類別是自動產生的,是利用 StronglyTypedResourceBuilder + // 類別透過 ResGen 或 Visual Studio 這類工具。 + // 若要加入或移除成員,請編輯您的 .ResX 檔,然後重新執行 ResGen + // (利用 /str 選項),或重建您的 VS 專案。 + /// + /// 用於查詢當地語系化字串等的強類型資源類別。 + /// + [System.CodeDom.Compiler.GeneratedCode("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [DebuggerNonUserCode()] + [System.Runtime.CompilerServices.CompilerGenerated()] + [HideModuleName()] + internal static class Resources + { + + private static System.Resources.ResourceManager resourceMan; + + private static System.Globalization.CultureInfo resourceCulture; + + /// + /// 傳回這個類別使用的快取的 ResourceManager 執行個體。 + /// + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Advanced)] + internal static System.Resources.ResourceManager ResourceManager + { + get + { + if (ReferenceEquals(resourceMan, null)) + { + var temp = new System.Resources.ResourceManager("udSYS_Customer.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// 覆寫目前執行緒的 CurrentUICulture 屬性,對象是所有 + /// 使用這個強類型資源類別的資源查閱。 + /// + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Advanced)] + internal static System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} \ No newline at end of file diff --git a/SRC/MESud/udSYS_Customer/Resources.resx b/SRC/MESud/udSYS_Customer/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/SRC/MESud/udSYS_Customer/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/SRC/MESud/udSYS_Customer/clsSerialNoFunction.cs b/SRC/MESud/udSYS_Customer/clsSerialNoFunction.cs new file mode 100644 index 0000000..2aca53c --- /dev/null +++ b/SRC/MESud/udSYS_Customer/clsSerialNoFunction.cs @@ -0,0 +1,174 @@ +using System; +using System.Data; +using static iMESCore.DataBase.iMESSql; +using iMESCore.Settings; +using iMESException; +using Microsoft.VisualBasic; +using Microsoft.VisualBasic.CompilerServices; + +namespace udSYS_Customer +{ + + public class clsSerialNoFunction : IDisposable + { + + private AppSettings objSetting = new AppSettings(); + + private IDbConnection cnnTemp; + private IDbCommand cmmTemp; + private string strConnectionString; // Connection string + private string strDataBaseType; // DataBase Type:oracle, mysql, access + private string strMQType; // MessageQueue Type:TIBCO, MQSeries, MSMQ + private string strSQLAddField; + private string strSQLAddValue; + private string strSQL; + + #region IDisposable Support + private bool disposedValue; // 偵測多餘的呼叫 + + // //Initial Object---------------------------------- + public clsSerialNoFunction() + { + // //Get database type + strDataBaseType = objSetting.GetDataBaseType(); + // //Get connection string + strConnectionString = objSetting.GetConnectionString(strDataBaseType); + // //Get Message Queue Type + strMQType = objSetting.GetMQType(); + } + + // IDisposable + protected virtual void Dispose(bool disposing) + { + if (!disposedValue) + { + if (disposing) + { + // TODO: 處置 Managed 狀態 (Managed 物件)。 + } + + // 釋放 Unmanaged 資源 (Unmanaged 物件) 並覆寫下方的 Finalize()。 + if (objSetting != null) + objSetting = null; + // 將大型欄位設為 null。 + } + disposedValue = true; + } + + // 只有當上方的 Dispose(disposing As Boolean) 具有要釋放 Unmanaged 資源的程式碼時,才覆寫 Finalize()。 + ~clsSerialNoFunction() + { + // 請勿變更這個程式碼。請將清除程式碼放在上方的 Dispose(disposing As Boolean) 中。 + Dispose(false); + } + + // Visual Basic 加入這個程式碼的目的,在於能正確地實作可處置的模式。 + public void Dispose() + { + // 請勿變更這個程式碼。請將清除程式碼放在上方的 Dispose(disposing As Boolean) 中。 + Dispose(true); + // 覆寫上列 Finalize() 時,取消下行的註解狀態。 + GC.SuppressFinalize(this); + } + #endregion + + #region --- Property --- + + public string ConnectionString + { + get + { + return strConnectionString; + } + } + + public string DataBaseType + { + get + { + return strDataBaseType; + } + } + + public string MQType + { + get + { + return strMQType; + } + } + + #endregion + + // 2018/04/10 OwenLiu, Mantis:0045761, 增加客製 SerialNoFunction 支援機制 + // colParameters 變更為下述格式(FunctionName 及 . 可省略) + // [FunctionName][.] + // FunctionName 必須以 funC_ 作為名稱的前綴字串,才可以正常運作 + + // 前端(WinForm)呼叫範例(新開發的功能,儘量以 <.> 方式加入,以避免同樣的Key 對不同的ScriptFunction + // 有不同的值,造成執行階段引發的錯誤編碼結果 + // ----------------------------------------------------------------------------------------------------------- + // Dim strAddition As String = "" + // Dim aryAdditionKey() As String = {"FabCode", "funC_GetSample.FabCode"} + // Dim aryAdditionVal() As String = {"F1_", "F2_"} + // If Not aryAdditionKey Is Nothing AndAlso Not aryAdditionKey.Length.Equals(0) Then + // For i As Integer = LBound(aryAdditionKey) To UBound(aryAdditionKey) + // strAddition += CombineAddXML_Add(aryAdditionKey(i), "String", CInput(aryAdditionVal(i))) + // Next i + // strParameter += CombineXMLAdditional(strAddition) + // End If + // ----------------------------------------------------------------------------------------------------------- + + + public string funC_GetSample(Collection colParameters) + { + + IDbConnection cnnTemp = null; + string strResult = string.Empty; + string strFunctionName = System.Reflection.MethodBase.GetCurrentMethod().Name; + string strParameterKey = string.Empty; + + string FabCode = string.Empty; + + try + { + // 建立連線 + cnnTemp = CreateConnection_None(strConnectionString, strDataBaseType); + + // 取出參數 + strParameterKey = "FabCode"; + if (colParameters.Contains(strFunctionName + "." + strParameterKey)) + { + // 有只針對此Function傳入的Parameter + FabCode = Conversions.ToString(colParameters[strFunctionName + "." + strParameterKey]); + } + else if (colParameters.Contains(strParameterKey)) + { + // 泛用的Parameter + FabCode = Conversions.ToString(colParameters[strParameterKey]); + } + else + { + // 找不到傳入的Parameter + throw new MESException("0000-200002", "[%Parameter%] [%not found%]: [%" + strParameterKey + "%]"); + } + + strResult = FabCode; + } + + catch (Exception ex) + { + throw; + } + finally + { + // 關閉連線 + CloseConnection(cnnTemp); + } + + return strResult; + + } + + } +} \ No newline at end of file diff --git a/SRC/MESud/udSYS_Customer/udSYS_Customer.csproj b/SRC/MESud/udSYS_Customer/udSYS_Customer.csproj new file mode 100644 index 0000000..26067ae --- /dev/null +++ b/SRC/MESud/udSYS_Customer/udSYS_Customer.csproj @@ -0,0 +1,136 @@ + + + + Debug + AnyCPU + + + + + {73D29D85-D190-04AF-0922-F34F21CAC888} + Library + udSYS_Customer + udSYS_Customer + 512 + Windows + v4.6.2 + SAK + SAK + SAK + SAK + + $(DefaultItemExcludes);$(ProjectDir)**\*.vb + + + true + full + true + true + ..\..\MES_S_DLL\ + ..\..\MES_S_DLL\udSYS_Customer.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + 0 + false + + + pdbonly + false + true + true + ..\..\MES_S_DLL\ + ..\..\MES_S_DLL\udSYS_Customer.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + 0 + false + + + On + + + Binary + + + Off + + + On + + + + + False + ..\..\MES_S_DLL\data_access_service.dll + False + + + False + ..\..\MES_S_DLL\iMESAppSetting.dll + False + + + False + ..\..\MES_S_DLL\iMESComSubroutine.dll + False + + + False + ..\..\MES_S_DLL\iMESComXML.dll + False + + + False + ..\..\MES_S_DLL\iMESConst.dll + False + + + False + ..\..\MES_S_DLL\iMESException.dll + False + + + False + ..\..\MES_S_DLL\iMESLog.dll + False + + + + + + + + + + + + + + + + + + + + + True + True + Resources.resx + + + + + ResXFileCodeGenerator + Resources.Designer.cs + udSYS_Customer.My.Resources + Designer + + + + + + \ No newline at end of file diff --git a/SRC/MESud/udScriptFunction_Customer/AssemblyInfo.cs b/SRC/MESud/udScriptFunction_Customer/AssemblyInfo.cs new file mode 100644 index 0000000..3f9b2a4 --- /dev/null +++ b/SRC/MESud/udScriptFunction_Customer/AssemblyInfo.cs @@ -0,0 +1,30 @@ +using System; +using System.Reflection; +using System.Runtime.InteropServices; + +// 一般的組件資訊是由下列這組屬性所控制。 +// 變更這些屬性的值即可修改組件的相關資訊。 +// 檢閱組件屬性的值 + +[assembly: AssemblyTitle("udScriptFunction")] +[assembly: AssemblyDescription("udScriptFunction for MESSeries")] +[assembly: AssemblyCompany("iMES Technology Inc.")] +[assembly: AssemblyProduct("MESSeries 6")] +[assembly: AssemblyCopyright("Copyright © iMES Technology Inc.")] +[assembly: AssemblyTrademark("")] +[assembly: ComVisible(false)] + +// 下列 GUID 為專案公開 (Expose) 至 COM 時所要使用的 typelib ID +[assembly: Guid("532A640D-1ACE-4133-BC62-0662C5F3D7BB")] + +// 組件的版本資訊由下列四個值所組成: +// +// 主要版本 +// 次要版本 +// 組建編號 +// 修訂 +// +// 您可以自行指定所有的值,也可以依照以下的方式,使用 '*' 將修訂和組建編號 +// 指定為預設值: + +[assembly: AssemblyVersion("6.0.0.0")] diff --git a/SRC/MESud/udScriptFunction_Customer/clsScriptFunction.cs b/SRC/MESud/udScriptFunction_Customer/clsScriptFunction.cs new file mode 100644 index 0000000..a0f5957 --- /dev/null +++ b/SRC/MESud/udScriptFunction_Customer/clsScriptFunction.cs @@ -0,0 +1,225 @@ +using System; +using System.Data; +using static iMESCore.Base.iMESConst; +using static iMESCore.DataBase.iMESSql; +using iMESCore.Settings; +using Microsoft.VisualBasic.CompilerServices; +using System.Data.Common; + +namespace udScriptFunction_Customer +{ + + public class clsScriptFunction : IDisposable + { + + // 2007/04/03,sammi.整合modUD. + private AppSettings objSetting = new AppSettings(); + + private IDbConnection cnnTemp; + private string strConnectionString; // Connection string + private string strDataBaseType; // DataBase Type:oracle, mysql, access + private string strMQType; // MessageQueue Type:TIBCO, MQSeries, MSMQ + private int intGetMethod = 1; // 0.Simulation, 1.Production + + private DataTable dtLotAttrib = null; + private DataTable dtCompAttrib = null; + private string strLotNo; + private string strOPNo; + private string strComponentNo; + + private string strENGNo; + private string strENGVersion; + private string strRecipeNo; + private string strRecipeVersion; + private string strPropertyNo; + + + + #region --- Property --- + public string ConnectionString + { + get + { + return strConnectionString; + } + } + + public string DataBaseType + { + get + { + return strDataBaseType; + } + } + + public string MQType + { + get + { + return strMQType; + } + } + + // 當intGetMethod 為 0 時 Function 本身必須自行 Return Value,當 1 時可依實際需求取得實際值 + public int GetMethod + { + get + { + return intGetMethod; + } + set + { + intGetMethod = value; + } + } + + // 部分之Function 需要提供LotNo的屬性 + public string LotNo + { + set + { + strLotNo = value; + } + } + // 部分之Function 需要提供OPNo的屬性 + public string OPNo + { + set + { + strOPNo = value; + } + } + // 部分之Function 需要提供OPNo的屬性 + public string ComponentNo + { + set + { + strComponentNo = value; + } + } + // 部分之Function 需要提供ComponentAttrib + public DataTable ComponentAttrib + { + set + { + dtCompAttrib = value; + } + } + + // 部分之Function 需要提供ComponentAttrib + public DataTable LotAttrib + { + set + { + dtLotAttrib = value; + } + } + #endregion + + // //Initial Object-------------------------------------------------------------------------------------------------------------------------------- + public clsScriptFunction() + { + // //Get database type + strDataBaseType = objSetting.GetDataBaseType(); + // //Get connection string + strConnectionString = objSetting.GetConnectionString(strDataBaseType); + // //Get Message Queue Type + strMQType = objSetting.GetMQType(); + } + + #region IDisposable Support + private bool disposedValue; // 偵測多餘的呼叫 + + // IDisposable + protected virtual void Dispose(bool disposing) + { + if (!disposedValue) + { + if (disposing) + { + // TODO: 處置 Managed 狀態 (Managed 物件)。 + } + + // 釋放 Unmanaged 資源 (Unmanaged 物件) 並覆寫下方的 Finalize()。 + if (objSetting != null) + objSetting = null; + // 將大型欄位設為 null。 + } + disposedValue = true; + } + + // TODO: 只有當上方的 Dispose(disposing As Boolean) 具有要釋放 Unmanaged 資源的程式碼時,才覆寫 Finalize()。 + // Protected Overrides Sub Finalize() + // ' 請勿變更這個程式碼。請將清除程式碼放在上方的 Dispose(disposing As Boolean) 中。 + // Dispose(False) + // MyBase.Finalize() + // End Sub + + // Visual Basic 加入這個程式碼的目的,在於能正確地實作可處置的模式。 + public void Dispose() + { + // 請勿變更這個程式碼。請將清除程式碼放在上方的 Dispose(disposing As Boolean) 中。 + Dispose(true); + // TODO: 覆寫上列 Finalize() 時,取消下行的註解狀態。 + // GC.SuppressFinalize(Me) + } + #endregion + + // 2018/05/22 OwenLiu, Mantis:0047207 Script Function同時支援標準迭代與個案客製 + // FunctionName 必須以 funSCC_ 作為名稱的前綴字串,才可以正常運作 + //public int funSCC_GetAPPreviousDate() + //{ + + // int intResult = defInteger; + // string strFunctionName = System.Reflection.MethodBase.GetCurrentMethod().Name; + // string strSQL = string.Empty; + // var datServerTime = DateTime.Now; + + // try + // { + // // Simulation + // if (intGetMethod == 0) + // { + // intResult = 1; + // return intResult; + // } + + // // Production + // // Create Connection + // cnnTemp = CreateConnection_None(strConnectionString, strDataBaseType); + // if (strDataBaseType.ToLower() == "oracle") + // { + // strSQL = "SELECT sysdate AS ServerTime FROM dual"; + // } + // else + // { + // strSQL = "SELECT getdate() AS ServerTime"; + // } + + + // using (DbDataReader drTemp = ExecuteSQLQuery_Reader(strSQL, cnnTemp)) + // { + // if (drTemp.Read()) + // { + // datServerTime = Conversions.ToDate(drTemp["ServerTime"]); + // intResult = Conversions.ToInteger(datServerTime.AddDays(-1).ToString("yyyyMMdd")); + // } + // drTemp.Close(); + // } + // } + + // catch (Exception ex) + // { + // throw; + // } + // finally + // { + // CloseConnection(cnnTemp); + // } + + // return intResult; + + //} + + } +} \ No newline at end of file diff --git a/SRC/MESud/udScriptFunction_Customer/udScriptFunction_Customer.csproj b/SRC/MESud/udScriptFunction_Customer/udScriptFunction_Customer.csproj new file mode 100644 index 0000000..8e85594 --- /dev/null +++ b/SRC/MESud/udScriptFunction_Customer/udScriptFunction_Customer.csproj @@ -0,0 +1,157 @@ + + + + Local + 8.0.50727 + 2.0 + {F31A762E-F2F8-00E6-10BA-01E73BC174FA} + SAK + SAK + SAK + SAK + Debug + AnyCPU + + + + + udScriptFunction_Customer + + + None + JScript + Grid + IE50 + false + Library + Binary + On + Off + udScriptFunction_Customer + + + + + Windows + + + v4.6.2 + 2.0 + + $(DefaultItemExcludes);$(ProjectDir)**\*.vb + + + ..\..\MES_S_DLL\ + ..\..\MES_S_DLL\udScriptFunction_Customer.xml + 285212672 + + + + + true + true + true + false + false + false + false + 0 + 42016,42017,42018,42019,42032,42353,42354,42355 + full + false + + + ..\..\MES_S_DLL\ + ..\..\MES_S_DLL\udScriptFunction_Customer.xml + 285212672 + + + + + false + true + false + true + false + false + false + 0 + 42016,42017,42018,42019,42032,42353,42354,42355 + none + false + + + + + False + ..\..\MES_S_DLL\data_access_service.dll + False + + + False + ..\..\MES_S_DLL\iMESAppSetting.dll + False + + + False + ..\..\MES_S_DLL\iMESComSubroutine.dll + False + + + False + ..\..\MES_S_DLL\iMESComXML.dll + False + + + False + ..\..\MES_S_DLL\iMESConst.dll + False + + + iMESException + ..\..\MES_S_DLL\iMESException.dll + False + + + False + ..\..\MES_S_DLL\iMESLog.dll + False + + + System + + + + System.Data + + + System.XML + + + + + + + + + + + + Code + + + Code + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SRC/MESud/udUnitTransferFunction_Customer/AssemblyInfo.cs b/SRC/MESud/udUnitTransferFunction_Customer/AssemblyInfo.cs new file mode 100644 index 0000000..357b28d --- /dev/null +++ b/SRC/MESud/udUnitTransferFunction_Customer/AssemblyInfo.cs @@ -0,0 +1,30 @@ +using System; +using System.Reflection; +using System.Runtime.InteropServices; + +// 一般的組件資訊是由下列這組屬性所控制。 +// 變更這些屬性的值即可修改組件的相關資訊。 +// 檢閱組件屬性的值 + +[assembly: AssemblyTitle("udUnitTransferFunction")] +[assembly: AssemblyDescription("udUnitTransferFunction for MESSeries")] +[assembly: AssemblyCompany("iMES Technology Inc.")] +[assembly: AssemblyProduct("MESSeries 6")] +[assembly: AssemblyCopyright("Copyright © iMES Technology Inc.")] +[assembly: AssemblyTrademark("")] +[assembly: ComVisible(false)] + +// 下列 GUID 為專案公開 (Expose) 至 COM 時所要使用的 typelib ID +[assembly: Guid("D537C63D-671A-4B2C-840D-20D31715F5BE")] + +// 組件的版本資訊由下列四個值所組成: +// +// 主要版本 +// 次要版本 +// 組建編號 +// 修訂 +// +// 您可以自行指定所有的值,也可以依照以下的方式,使用 '*' 將修訂和組建編號 +// 指定為預設值: + +[assembly: AssemblyVersion("6.0.0.0")] diff --git a/SRC/MESud/udUnitTransferFunction_Customer/clsUnitTransferFunction.cs b/SRC/MESud/udUnitTransferFunction_Customer/clsUnitTransferFunction.cs new file mode 100644 index 0000000..c2f1371 --- /dev/null +++ b/SRC/MESud/udUnitTransferFunction_Customer/clsUnitTransferFunction.cs @@ -0,0 +1,124 @@ +using System; +using System.Data; +using System.Data.Common; +using static iMESCore.Base.iMESConst; +using static iMESCore.DataBase.iMESSql; +using iMESCore.Settings; +using Microsoft.VisualBasic; +using Microsoft.VisualBasic.CompilerServices; + +namespace udUnitTransferFunction_Customer +{ + public class clsUnitTransferFunction : IDisposable + { + + private AppSettings objSetting = new AppSettings(); + + private string strConnectionString; // Connection string + private string strDataBaseType; // DataBase Type:oracle, mysql, access + private string strMQType; // MessageQueue Type:TIBCO, MQSeries, MSMQ + private string strSQLAddField; + private string strSQLAddValue; + private string strSQL; + private int intGetMethod = 1; // 0.Simulation, 1.Production + + #region IDisposable Support + private bool disposedValue; // 偵測多餘的呼叫 + + // //Initial Object---------------------------------- + public clsUnitTransferFunction() + { + // //Get database type + strDataBaseType = objSetting.GetDataBaseType(); + // //Get connection string + strConnectionString = objSetting.GetConnectionString(strDataBaseType); + // //Get Message Queue Type + strMQType = objSetting.GetMQType(); + } + + // IDisposable + protected virtual void Dispose(bool disposing) + { + if (!disposedValue) + { + if (disposing) + { + // TODO: 處置 Managed 狀態 (Managed 物件)。 + } + + // TODO: 釋放 Unmanaged 資源 (Unmanaged 物件) 並覆寫下方的 Finalize()。 + if (objSetting != null) + objSetting = null; + // TODO: 將大型欄位設為 null。 + } + disposedValue = true; + } + + // TODO: 只有當上方的 Dispose(disposing As Boolean) 具有要釋放 Unmanaged 資源的程式碼時,才覆寫 Finalize()。 + ~clsUnitTransferFunction() + { + // 請勿變更這個程式碼。請將清除程式碼放在上方的 Dispose(disposing As Boolean) 中。 + Dispose(false); + } + + // Visual Basic 加入這個程式碼的目的,在於能正確地實作可處置的模式。 + public void Dispose() + { + // 請勿變更這個程式碼。請將清除程式碼放在上方的 Dispose(disposing As Boolean) 中。 + Dispose(true); + // TODO: 覆寫上列 Finalize() 時,取消下行的註解狀態。 + GC.SuppressFinalize(this); + } + #endregion + + // 2018/07/10 OwenLiu, Mantis:0048659 單位轉換函式增加 個案客製支援機制 + // FunctionName 必須以 funUTC_ 作為名稱的前綴字串,才可以正常運作 + //private decimal funUTC_Sample(Collection colParameters) + //{ + + // IDbConnection cnnTemp = null; + // string ProductNo, ProductVersion, ENGNo, ENGVersion; + // decimal decExecResult = defInteger; + // try + // { + // if (intGetMethod == 0) // Simulation + // { + // decExecResult = 1m; + // } + // else // Production + // { + // // 1.取出參數 + // ProductNo = Conversions.ToString(colParameters["ProductNo"]); + // ProductVersion = Conversions.ToString(colParameters["ProductVersion"]); + // ENGNo = Conversions.ToString(colParameters["ENGNo"]); + // ENGVersion = Conversions.ToString(colParameters["ENGVersion"]); + + // // //Create connection + // cnnTemp = CreateConnection_None(strConnectionString, strDataBaseType); + + // strSQL = "SELECT DefaultValue FROM tblPRDProductProperty" + " WHERE ProductNo = '" + ProductNo.ToUpper() + "'" + " AND ProductVersion = '" + ProductVersion.ToUpper() + "'" + " AND Upper(PropertyNo) = '" + "GrossDie".ToUpper() + "'"; + // using (DbDataReader drProperty = ExecuteSQLQuery_Reader(strSQL, cnnTemp)) + // { + // if (drProperty.Read()) + // { + // decExecResult = Conversions.ToDecimal(drProperty["DefaultValue"]); + // } + // drProperty.Close(); + // } + // } + // } + + // catch (Exception ex) + // { + // throw; + // } + // finally + // { + // CloseConnection(cnnTemp); + // } + + // return decExecResult; + + //} + } +} \ No newline at end of file diff --git a/SRC/MESud/udUnitTransferFunction_Customer/udUnitTransferFunction_Customer.csproj b/SRC/MESud/udUnitTransferFunction_Customer/udUnitTransferFunction_Customer.csproj new file mode 100644 index 0000000..2f71fd9 --- /dev/null +++ b/SRC/MESud/udUnitTransferFunction_Customer/udUnitTransferFunction_Customer.csproj @@ -0,0 +1,155 @@ + + + + Local + 8.0.50727 + 2.0 + {BFE0BB52-2A20-0BA7-1FE1-00305141A790} + SAK + SAK + SAK + SAK + Debug + AnyCPU + + + + + udUnitTransferFunction_Customer + + + None + JScript + Grid + IE50 + false + Library + Binary + On + Off + udUnitTransferFunction_Customer + + + + + Windows + + + v4.6.2 + 2.0 + + $(DefaultItemExcludes);$(ProjectDir)**\*.vb + + + ..\..\MES_S_DLL\ + ..\..\MES_S_DLL\udUnitTransferFunction_Customer.xml + 285212672 + + + + + true + true + true + false + false + false + false + 0 + 42016,42017,42018,42019,42032,42353,42354,42355 + full + false + + + ..\..\MES_S_DLL\ + ..\..\MES_S_DLL\udUnitTransferFunction_Customer.xml + 285212672 + + + + + false + true + true + false + false + false + false + 0 + 42016,42017,42018,42019,42032,42353,42354,42355 + pdbonly + false + + + + + False + ..\..\MES_S_DLL\data_access_service.dll + False + + + False + ..\..\MES_S_DLL\iMESAppSetting.dll + False + + + False + ..\..\MES_S_DLL\iMESComSubroutine.dll + False + + + False + ..\..\MES_S_DLL\iMESComXML.dll + False + + + False + ..\..\MES_S_DLL\iMESConst.dll + False + + + iMESException + ..\..\MES_S_DLL\iMESException.dll + False + + + False + ..\..\MES_S_DLL\iMESLog.dll + False + + + System + + + + System.Data + + + System.XML + + + + + + + + + + + + Code + + + Code + + + + + + + + + + + + \ No newline at end of file diff --git a/SRC/iMESCIOC/CDO/Tables/CDO_TABLE_SAMPLE.cs b/SRC/iMESCIOC/CDO/Tables/CDO_TABLE_SAMPLE.cs new file mode 100644 index 0000000..c13ed4b --- /dev/null +++ b/SRC/iMESCIOC/CDO/Tables/CDO_TABLE_SAMPLE.cs @@ -0,0 +1,38 @@ +using System; +using System.Data; +using System.Linq; +using System.Text; +using System.Collections.Generic; +using iMESCore.DataObject; +using iMESCore.Base.ProjectBase.Base; + +namespace iMESCIO.CDO.Tables +{ + + [CDO(TableName = "TABLE_SAMPLE")] + public class CDO_TABLE_SAMPLE : CDOBase + { + + [CDO(ColumnName = "PMITEMNO", DBType = SqlDbType.VarChar, PrimaryKey = true)] + public String PMITEMNO { get; set; } + + [CDO(ColumnName = "PMMODE", DBType = SqlDbType.VarChar)] + public String PMMODE { get; set; } + + [CDO(ColumnName = "DESCRIPTION", DBType = SqlDbType.VarChar)] + public String DESCRIPTION { get; set; } + + [CDO(ColumnName = "CREATOR", DBType = SqlDbType.VarChar)] + public String CREATOR { get; set; } + + [CDO(ColumnName = "CREATEDATE", DBType = SqlDbType.DateTime)] + public DateTime? CREATEDATE { get; set; } + + [CDO(ColumnName = "REVISER", DBType = SqlDbType.VarChar)] + public String REVISER { get; set; } + + [CDO(ColumnName = "REVISEDATE", DBType = SqlDbType.DateTime)] + public DateTime? REVISEDATE { get; set; } + + } +} diff --git a/SRC/iMESCIOC/iMES.snk b/SRC/iMESCIOC/iMES.snk new file mode 100644 index 0000000..4206cdc Binary files /dev/null and b/SRC/iMESCIOC/iMES.snk differ diff --git a/SRC/iMESCIOC/iMESCIOC.csproj b/SRC/iMESCIOC/iMESCIOC.csproj new file mode 100644 index 0000000..1077cdc --- /dev/null +++ b/SRC/iMESCIOC/iMESCIOC.csproj @@ -0,0 +1,84 @@ + + + + + Debug + AnyCPU + {3A1F68B3-EBE4-4A86-9334-F66EC3DCE0AD} + Library + Properties + iMESCIOC + iMESCIOC + v4.6.2 + 512 + + + + true + full + false + ..\MES_S_DLL\ + DEBUG;TRACE + prompt + 4 + false + + + pdbonly + true + ..\..\bin\MES_S_DLL\ + TRACE + prompt + 4 + false + + + true + + + iMES.snk + + + + ..\MES_S_DLL\iMESCIO.dll + + + ..\MES_S_DLL\iMESDataObject.dll + + + ..\MES_S_DLL\iMESProjectBase.dll + + + ..\MES_S_DLL\Newtonsoft.Json.dll + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SRC/iMESCIOC/iMESCIOC.sln b/SRC/iMESCIOC/iMESCIOC.sln new file mode 100644 index 0000000..6f6679b --- /dev/null +++ b/SRC/iMESCIOC/iMESCIOC.sln @@ -0,0 +1,22 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 14 +VisualStudioVersion = 14.0.23107.0 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "iMESCIOC", "iMESCIOC.csproj", "{3A1F68B3-EBE4-4A86-9334-F66EC3DCE0AD}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {3A1F68B3-EBE4-4A86-9334-F66EC3DCE0AD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3A1F68B3-EBE4-4A86-9334-F66EC3DCE0AD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3A1F68B3-EBE4-4A86-9334-F66EC3DCE0AD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3A1F68B3-EBE4-4A86-9334-F66EC3DCE0AD}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/SRC/wsABC/My Project/Application.Designer.cs b/SRC/wsABC/My Project/Application.Designer.cs new file mode 100644 index 0000000..299bbe3 --- /dev/null +++ b/SRC/wsABC/My Project/Application.Designer.cs @@ -0,0 +1,11 @@ +// ------------------------------------------------------------------------------ +// +// 這段程式碼是由工具產生的。 +// 執行階段版本:4.0.30319.42000 +// +// 對這個檔案所做的變更可能會造成錯誤的行為,而且如果重新產生程式碼, +// 變更將會遺失。 +// +// ------------------------------------------------------------------------------ + + diff --git a/SRC/wsABC/My Project/Application.myapp b/SRC/wsABC/My Project/Application.myapp new file mode 100644 index 0000000..758895d --- /dev/null +++ b/SRC/wsABC/My Project/Application.myapp @@ -0,0 +1,10 @@ + + + false + false + 0 + true + 0 + 1 + true + diff --git a/SRC/wsABC/My Project/Settings.Designer.cs b/SRC/wsABC/My Project/Settings.Designer.cs new file mode 100644 index 0000000..47aea5e --- /dev/null +++ b/SRC/wsABC/My Project/Settings.Designer.cs @@ -0,0 +1,88 @@ +// ------------------------------------------------------------------------------ +// +// 這段程式碼是由工具產生的。 +// 執行階段版本:4.0.30319.42000 +// +// 對這個檔案所做的變更可能會造成錯誤的行為,而且如果重新產生程式碼, +// 變更將會遺失。 +// +// ------------------------------------------------------------------------------ + +using System.Diagnostics; +using Microsoft.VisualBasic; + + +namespace wsABC.My +{ + + [System.Runtime.CompilerServices.CompilerGenerated()] + [System.CodeDom.Compiler.GeneratedCode("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")] + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Advanced)] + internal sealed partial class MySettings : System.Configuration.ApplicationSettingsBase + { + + private static MySettings defaultInstance = (MySettings)Synchronized(new MySettings()); + + #region My.Settings 自動儲存功能 + /* TODO ERROR: Skipped IfDirectiveTrivia + #If _MyType = "WindowsForms" Then + *//* TODO ERROR: Skipped DisabledTextTrivia + Private Shared addedHandler As Boolean + + Private Shared addedHandlerLockObject As New Object + + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub + *//* TODO ERROR: Skipped EndIfDirectiveTrivia + #End If + */ + #endregion + + public static MySettings Default + { + get + { + + /* TODO ERROR: Skipped IfDirectiveTrivia + #If _MyType = "WindowsForms" Then + *//* TODO ERROR: Skipped DisabledTextTrivia + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If + *//* TODO ERROR: Skipped EndIfDirectiveTrivia + #End If + */ + return defaultInstance; + } + } + } +} + +namespace wsABC.My +{ + + [HideModuleName()] + [DebuggerNonUserCode()] + [System.Runtime.CompilerServices.CompilerGenerated()] + internal static class MySettingsProperty + { + + [System.ComponentModel.Design.HelpKeyword("My.Settings")] + internal static MySettings Settings + { + get + { + return MySettings.Default; + } + } + } +} \ No newline at end of file diff --git a/SRC/wsABC/My Project/Settings.settings b/SRC/wsABC/My Project/Settings.settings new file mode 100644 index 0000000..85b890b --- /dev/null +++ b/SRC/wsABC/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/SRC/wsABC/Properties/AssemblyInfo.cs b/SRC/wsABC/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..7ead6a6 --- /dev/null +++ b/SRC/wsABC/Properties/AssemblyInfo.cs @@ -0,0 +1,32 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 組件的一般資訊是由下列的屬性集控制。 +// 變更這些屬性的值即可修改組件的相關 +// 資訊。 +[assembly: AssemblyTitle("wsABC.Properties")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("iMES Technology Inc.")] +[assembly: AssemblyProduct("MESSeries 6")] +[assembly: AssemblyCopyright("Copyright iMES Technology Inc.")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// 將 ComVisible 設定為 false 會使得這個組件中的類型 +// 對 COM 元件而言為不可見。如果您需要從 COM 存取這個組件中 +// 的類型,請在該類型上將 ComVisible 屬性設定為 true。 +[assembly: ComVisible(false)] + +// 下列 GUID 為專案公開 (Expose) 至 COM 時所要使用的 typelib ID +[assembly: Guid("ad05cadf-ff22-498b-a29e-df915118873d")] + +// 組件的版本資訊由下列四個值所組成: +// +// 主要版本 +// 次要版本 +// 組建編號 +// 修訂編號 +// +[assembly: AssemblyVersion("6.0.0.0")] diff --git a/SRC/wsABC/Properties/BuildIncrementVersionInfo.cs b/SRC/wsABC/Properties/BuildIncrementVersionInfo.cs new file mode 100644 index 0000000..8f1deae --- /dev/null +++ b/SRC/wsABC/Properties/BuildIncrementVersionInfo.cs @@ -0,0 +1 @@ +[assembly: System.Reflection.AssemblyFileVersion("6.0.5.30818")] diff --git a/SRC/wsABC/Resources.Designer.cs b/SRC/wsABC/Resources.Designer.cs new file mode 100644 index 0000000..303e10b --- /dev/null +++ b/SRC/wsABC/Resources.Designer.cs @@ -0,0 +1,70 @@ +// ------------------------------------------------------------------------------ +// +// 這段程式碼是由工具產生的。 +// 執行階段版本:4.0.30319.42000 +// +// 對這個檔案所做的變更可能會造成錯誤的行為,而且如果重新產生程式碼, +// 變更將會遺失。 +// +// ------------------------------------------------------------------------------ + + +using System.Diagnostics; +using Microsoft.VisualBasic; + +namespace wsABC.My.Resources +{ + + // 這個類別是自動產生的,是利用 StronglyTypedResourceBuilder + // 類別透過 ResGen 或 Visual Studio 這類工具。 + // 若要加入或移除成員,請編輯您的 .ResX 檔,然後重新執行 ResGen + // (利用 /str 選項),或重建您的 VS 專案。 + /// + /// 用於查詢當地語系化字串等的強類型資源類別。 + /// + [System.CodeDom.Compiler.GeneratedCode("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [DebuggerNonUserCode()] + [System.Runtime.CompilerServices.CompilerGenerated()] + [HideModuleName()] + internal static class Resources + { + + private static System.Resources.ResourceManager resourceMan; + + private static System.Globalization.CultureInfo resourceCulture; + + /// + /// 傳回這個類別使用的快取的 ResourceManager 執行個體。 + /// + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Advanced)] + internal static System.Resources.ResourceManager ResourceManager + { + get + { + if (ReferenceEquals(resourceMan, null)) + { + var temp = new System.Resources.ResourceManager("wsABC.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// 覆寫目前執行緒的 CurrentUICulture 屬性,對象是所有 + /// 使用這個強類型資源類別的資源查閱。 + /// + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Advanced)] + internal static System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} \ No newline at end of file diff --git a/SRC/wsABC/Resources.resx b/SRC/wsABC/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/SRC/wsABC/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/SRC/wsABC/wsABC.csproj b/SRC/wsABC/wsABC.csproj new file mode 100644 index 0000000..abf9c5e --- /dev/null +++ b/SRC/wsABC/wsABC.csproj @@ -0,0 +1,171 @@ + + + + + Debug + AnyCPU + {881686CE-A940-0485-2766-D411835B2FBB} + Library + wsABC + wsABC + 512 + Windows + v4.6.2 + + SAK + SAK + SAK + SAK + $(DefaultItemExcludes);$(ProjectDir)**\*.vb + + + true + full + true + true + ..\MES_S_DLL\ + ..\MES_S_DLL\wsABC.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + 0 + false + + + pdbonly + false + true + true + ..\..\MES_S_DLL\ + ..\..\MES_S_DLL\ + + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + 0 + false + + + On + + + Binary + + + Off + + + On + + + + + False + ..\MES_S_DLL\iMESAppSetting.dll + False + + + False + ..\MES_S_DLL\iMESComSubroutine.dll + False + + + False + ..\MES_S_DLL\iMESComXML.dll + False + + + False + ..\MES_S_DLL\iMESConst.dll + False + + + ..\MES_S_DLL\iMESException.dll + False + + + False + ..\MES_S_DLL\iMESSCI.dll + False + + + ..\MES_S_DLL\kcSYS.dll + False + False + + + False + ..\MES_S_DLL\Newtonsoft.Json.dll + False + + + + + + + + + + + + + + + False + + + + + + + + + + + + + + + + True + Application.myapp + + + + True + True + Resources.resx + + + True + Settings.settings + True + + + + + + ResXFileCodeGenerator + Resources.Designer.cs + wsABC.My.Resources + Designer + + + + + MyApplicationCodeGenerator + Application.Designer.cs + + + SettingsSingleFileGenerator + wsABC.My + Settings.Designer.cs + + + + + + + \ No newline at end of file diff --git a/SRC/wsABC/wsABC.csproj.vspscc b/SRC/wsABC/wsABC.csproj.vspscc new file mode 100644 index 0000000..b6d3289 --- /dev/null +++ b/SRC/wsABC/wsABC.csproj.vspscc @@ -0,0 +1,10 @@ +"" +{ +"FILE_VERSION" = "9237" +"ENLISTMENT_CHOICE" = "NEVER" +"PROJECT_FILE_RELATIVE_PATH" = "" +"NUMBER_OF_EXCLUDED_FILES" = "0" +"ORIGINAL_PROJECT_FILE_PATH" = "" +"NUMBER_OF_NESTED_PROJECTS" = "0" +"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROVIDER" +} diff --git a/SRC/wsABC/wsABC.sln b/SRC/wsABC/wsABC.sln new file mode 100644 index 0000000..ba785d8 --- /dev/null +++ b/SRC/wsABC/wsABC.sln @@ -0,0 +1,30 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 14 +VisualStudioVersion = 14.0.25420.1 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "wsABC", "wsABC.csproj", "{881686CE-A940-0485-2766-D411835B2FBB}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {881686CE-A940-0485-2766-D411835B2FBB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {881686CE-A940-0485-2766-D411835B2FBB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {881686CE-A940-0485-2766-D411835B2FBB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {881686CE-A940-0485-2766-D411835B2FBB}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(TeamFoundationVersionControl) = preSolution + SccNumberOfProjects = 2 + SccEnterpriseProvider = {4CA58AB2-18FA-4F8D-95D4-32DDF27D184C} + SccTeamFoundationServer = http://tfs.imestech.com:8080/tfs/messeries6 + SccLocalPath0 = . + SccProjectUniqueName1 = wsABC.vbproj + SccLocalPath1 = . + EndGlobalSection +EndGlobal diff --git a/SRC/wsABC/wsWIP/wsWIP.cs b/SRC/wsABC/wsWIP/wsWIP.cs new file mode 100644 index 0000000..039a1e6 --- /dev/null +++ b/SRC/wsABC/wsWIP/wsWIP.cs @@ -0,0 +1,131 @@ +using System; +using Microsoft.VisualBasic; +using static iMESCore.Base.iMESComSubroutine; +using static iMESCore.Base.iMESComXML; +using static iMESCore.Base.iMESConst; +using iMESCore.Settings; + +namespace wsABC +{ + + public class wsWIP + { + + private iMESCore.Settings.AppSettings objSetting = new iMESCore.Settings.AppSettings(); + private System.Xml.XmlDocument xmlDoc = new System.Xml.XmlDocument(); // 用以讀取Xml字串 + private DateTime ArriveTime; // 送達時間 + private string strIdentity; // Identity XML字串 + private string strReturnValue; // ReturnValue XML字串 + private string strException; // Exception XML字串 + private string strResult; // Result XML字串 + private string strMessage; // Message XML字串 + private string strServiceName = "wsWIP_ABC"; // ServiceName + private string strResourceDir = "Resources"; + + private kcSYS.clsSYSUserLog objSYS = new kcSYS.clsSYSUserLog(); // 宣告Sys的物件 + + public wsWIP() + { + try + { + strResourceDir = System.IO.Path.Combine("wsUpdateResource", objSetting["ResourceDir"].ToString()); + } + catch (Exception) + { } + } + + public string HelloWorld(string InXml) + { + return "HelloWorld"; + } + + + //public string LoadOPMaterialState(string InXml) + //{ + // string LoadOPMaterialStateRet = null; + + // // 先給預設值,以判斷是否有傳入該參數 + // string OPNo = defString; + // string MaterialNo = defString; + // string MaterialLotNo = defString; + // string UnitNo = defString; + // string MaterialType = defString; + + // ArriveTime = DateTime.Now; + + // try + // { + // // 讀取InXml字串 + // xmlDoc.LoadXml(InXml); + // // 組Identity字串 + // strIdentity = CombineXMLIdentity(Environment.MachineName, GetXMLCurUserNo(xmlDoc), ArriveTime.ToString(defDateTimeFormat)); + + // // 判斷是否有傳入OPNo,若有,表示要依OPNo查詢 + // if (xmlDoc.DocumentElement.GetElementsByTagName("opno").Count > 0) + // { + // if (xmlDoc.GetElementsByTagName("opno").Item(0).SelectNodes("value").Count > 0) + // { + // OPNo = xmlDoc.DocumentElement.GetElementsByTagName("opno").Item(0).SelectNodes("value").Item(0).InnerText; + // } + // } + // // 判斷是否有傳入MaterialNo,若有,表示要依MaterialNo查詢 + // if (xmlDoc.DocumentElement.GetElementsByTagName("materialno").Count > 0) + // { + // if (xmlDoc.GetElementsByTagName("materialno").Item(0).SelectNodes("value").Count > 0) + // { + // MaterialNo = xmlDoc.DocumentElement.GetElementsByTagName("materialno").Item(0).SelectNodes("value").Item(0).InnerText; + // } + // } + // // 判斷是否有傳入MaterialLotNo,若有,表示要依MaterialLotNo查詢 + // if (xmlDoc.DocumentElement.GetElementsByTagName("materiallotno").Count > 0) + // { + // if (xmlDoc.GetElementsByTagName("materiallotno").Item(0).SelectNodes("value").Count > 0) + // { + // MaterialLotNo = xmlDoc.DocumentElement.GetElementsByTagName("materiallotno").Item(0).SelectNodes("value").Item(0).InnerText; + // } + // } + // if (xmlDoc.DocumentElement.GetElementsByTagName("unitno").Count > 0) + // { + // if (xmlDoc.GetElementsByTagName("unitno").Item(0).SelectNodes("value").Count > 0) + // { + // UnitNo = xmlDoc.DocumentElement.GetElementsByTagName("unitno").Item(0).SelectNodes("value").Item(0).InnerText; + // } + // } + // if (xmlDoc.DocumentElement.GetElementsByTagName("materialtype").Count > 0) + // { + // if (xmlDoc.GetElementsByTagName("materialtype").Item(0).SelectNodes("value").Count > 0) + // { + // MaterialType = xmlDoc.DocumentElement.GetElementsByTagName("materialtype").Item(0).SelectNodes("value").Item(0).InnerText; + // } + // } + + // // 呼叫Dll執行 + // //strReturnValue = objWIP.LoadOPMaterialState(OPNo, MaterialNo, MaterialLotNo, UnitNo, MaterialType); + // strException = ""; + // strResult = "success"; + // } + + // catch (iMESException.MESException ex) + // { + // strReturnValue = ""; + // strException = CombineXMLException(ex.ErrorCode.ToString(), TranslateMsg(ex.Message, GetXMLLanguageMode(xmlDoc), strResourceDir), "Load OP Material State Fail!!", ex.StackTrace); + // strResult = "fail"; + // } + + // catch (Exception ex) + // { + // strReturnValue = ""; + // strException = CombineXMLException(defWSErrCode, ex.Message, "Load OP Material State Fail!!", ex.StackTrace); + // strResult = "fail"; + // } + + // finally + // { + // // 將各部份之XML字串組起來並傳出 + // LoadOPMaterialStateRet = CombineXMLResponse(strIdentity, strReturnValue, strException, strResult, ""); + // } + // return LoadOPMaterialStateRet; + + //} + } +} \ No newline at end of file