diff --git a/shangjian/.vs/BL/v17/.suo b/shangjian/.vs/BL/v17/.suo index da3ff3e..5883e8c 100644 Binary files a/shangjian/.vs/BL/v17/.suo and b/shangjian/.vs/BL/v17/.suo differ diff --git a/shangjian/AutoUpdate/bin/Debug/AutoUpdate.application b/shangjian/AutoUpdate/bin/Debug/AutoUpdate.application index 24d78c2..b36edf3 100644 --- a/shangjian/AutoUpdate/bin/Debug/AutoUpdate.application +++ b/shangjian/AutoUpdate/bin/Debug/AutoUpdate.application @@ -14,7 +14,7 @@ - u1K2cqbB56xwixKbhy0eKCftxfa07TGwWwtdOtL8PIs= + jmdpeV3d0u6iWdBPN4dhr2L2dVWme5oYZd5aPRm+oYU= diff --git a/shangjian/AutoUpdate/bin/Debug/AutoUpdate.exe b/shangjian/AutoUpdate/bin/Debug/AutoUpdate.exe index 7095052..865a66e 100644 Binary files a/shangjian/AutoUpdate/bin/Debug/AutoUpdate.exe and b/shangjian/AutoUpdate/bin/Debug/AutoUpdate.exe differ diff --git a/shangjian/AutoUpdate/bin/Debug/AutoUpdate.exe.manifest b/shangjian/AutoUpdate/bin/Debug/AutoUpdate.exe.manifest index 49d1b82..c792b76 100644 --- a/shangjian/AutoUpdate/bin/Debug/AutoUpdate.exe.manifest +++ b/shangjian/AutoUpdate/bin/Debug/AutoUpdate.exe.manifest @@ -49,7 +49,7 @@ - WAPtOpDlGQDOGkow6DsogCU4DmdHhdL4pDDQZXfblYE= + j5D+9oUALJ/4wUhf4EV2qXiJ/BGxp9B00XdfuYnCRnI= diff --git a/shangjian/AutoUpdate/bin/Debug/AutoUpdate.pdb b/shangjian/AutoUpdate/bin/Debug/AutoUpdate.pdb index a7f695d..7169c74 100644 Binary files a/shangjian/AutoUpdate/bin/Debug/AutoUpdate.pdb and b/shangjian/AutoUpdate/bin/Debug/AutoUpdate.pdb differ diff --git a/shangjian/AutoUpdate/bin/Debug/app.publish/AutoUpdate.exe b/shangjian/AutoUpdate/bin/Debug/app.publish/AutoUpdate.exe index 7095052..865a66e 100644 Binary files a/shangjian/AutoUpdate/bin/Debug/app.publish/AutoUpdate.exe and b/shangjian/AutoUpdate/bin/Debug/app.publish/AutoUpdate.exe differ diff --git a/shangjian/AutoUpdate/obj/x86/Debug/AutoUpdate.application b/shangjian/AutoUpdate/obj/x86/Debug/AutoUpdate.application index 24d78c2..b36edf3 100644 --- a/shangjian/AutoUpdate/obj/x86/Debug/AutoUpdate.application +++ b/shangjian/AutoUpdate/obj/x86/Debug/AutoUpdate.application @@ -14,7 +14,7 @@ - u1K2cqbB56xwixKbhy0eKCftxfa07TGwWwtdOtL8PIs= + jmdpeV3d0u6iWdBPN4dhr2L2dVWme5oYZd5aPRm+oYU= diff --git a/shangjian/AutoUpdate/obj/x86/Debug/AutoUpdate.csproj.AssemblyReference.cache b/shangjian/AutoUpdate/obj/x86/Debug/AutoUpdate.csproj.AssemblyReference.cache index 97c5d4d..ac05f57 100644 Binary files a/shangjian/AutoUpdate/obj/x86/Debug/AutoUpdate.csproj.AssemblyReference.cache and b/shangjian/AutoUpdate/obj/x86/Debug/AutoUpdate.csproj.AssemblyReference.cache differ diff --git a/shangjian/AutoUpdate/obj/x86/Debug/AutoUpdate.exe b/shangjian/AutoUpdate/obj/x86/Debug/AutoUpdate.exe index 7095052..865a66e 100644 Binary files a/shangjian/AutoUpdate/obj/x86/Debug/AutoUpdate.exe and b/shangjian/AutoUpdate/obj/x86/Debug/AutoUpdate.exe differ diff --git a/shangjian/AutoUpdate/obj/x86/Debug/AutoUpdate.exe.manifest b/shangjian/AutoUpdate/obj/x86/Debug/AutoUpdate.exe.manifest index 49d1b82..c792b76 100644 --- a/shangjian/AutoUpdate/obj/x86/Debug/AutoUpdate.exe.manifest +++ b/shangjian/AutoUpdate/obj/x86/Debug/AutoUpdate.exe.manifest @@ -49,7 +49,7 @@ - WAPtOpDlGQDOGkow6DsogCU4DmdHhdL4pDDQZXfblYE= + j5D+9oUALJ/4wUhf4EV2qXiJ/BGxp9B00XdfuYnCRnI= diff --git a/shangjian/AutoUpdate/obj/x86/Debug/AutoUpdate.pdb b/shangjian/AutoUpdate/obj/x86/Debug/AutoUpdate.pdb index a7f695d..7169c74 100644 Binary files a/shangjian/AutoUpdate/obj/x86/Debug/AutoUpdate.pdb and b/shangjian/AutoUpdate/obj/x86/Debug/AutoUpdate.pdb differ diff --git a/shangjian/CentralControl/bin/Debug/CentralControl.exe b/shangjian/CentralControl/bin/Debug/CentralControl.exe index e3b4e0c..ddb18ed 100644 Binary files a/shangjian/CentralControl/bin/Debug/CentralControl.exe and b/shangjian/CentralControl/bin/Debug/CentralControl.exe differ diff --git a/shangjian/CentralControl/bin/Debug/CentralControl.pdb b/shangjian/CentralControl/bin/Debug/CentralControl.pdb index 303470b..38197a5 100644 Binary files a/shangjian/CentralControl/bin/Debug/CentralControl.pdb and b/shangjian/CentralControl/bin/Debug/CentralControl.pdb differ diff --git a/shangjian/CentralControl/bin/Debug/CommonFunc.dll b/shangjian/CentralControl/bin/Debug/CommonFunc.dll index a1c3f68..b70636b 100644 Binary files a/shangjian/CentralControl/bin/Debug/CommonFunc.dll and b/shangjian/CentralControl/bin/Debug/CommonFunc.dll differ diff --git a/shangjian/CentralControl/bin/Debug/CommonFunc.pdb b/shangjian/CentralControl/bin/Debug/CommonFunc.pdb index 4cc3fea..d47b39b 100644 Binary files a/shangjian/CentralControl/bin/Debug/CommonFunc.pdb and b/shangjian/CentralControl/bin/Debug/CommonFunc.pdb differ diff --git a/shangjian/CentralControl/bin/Debug/XGL.Data.dll b/shangjian/CentralControl/bin/Debug/XGL.Data.dll index 1a09629..819d44a 100644 Binary files a/shangjian/CentralControl/bin/Debug/XGL.Data.dll and b/shangjian/CentralControl/bin/Debug/XGL.Data.dll differ diff --git a/shangjian/CentralControl/bin/Debug/XGL.Data.pdb b/shangjian/CentralControl/bin/Debug/XGL.Data.pdb index b18a7b7..0959ad7 100644 Binary files a/shangjian/CentralControl/bin/Debug/XGL.Data.pdb and b/shangjian/CentralControl/bin/Debug/XGL.Data.pdb differ diff --git a/shangjian/CentralControl/bin/Debug/XGL.Models.dll b/shangjian/CentralControl/bin/Debug/XGL.Models.dll index 9f6865a..d735f22 100644 Binary files a/shangjian/CentralControl/bin/Debug/XGL.Models.dll and b/shangjian/CentralControl/bin/Debug/XGL.Models.dll differ diff --git a/shangjian/CentralControl/bin/Debug/XGL.Models.pdb b/shangjian/CentralControl/bin/Debug/XGL.Models.pdb index 966febc..61227a4 100644 Binary files a/shangjian/CentralControl/bin/Debug/XGL.Models.pdb and b/shangjian/CentralControl/bin/Debug/XGL.Models.pdb differ diff --git a/shangjian/CentralControl/bin/Debug/XGL.Thrift.dll b/shangjian/CentralControl/bin/Debug/XGL.Thrift.dll index c4b3406..4084aad 100644 Binary files a/shangjian/CentralControl/bin/Debug/XGL.Thrift.dll and b/shangjian/CentralControl/bin/Debug/XGL.Thrift.dll differ diff --git a/shangjian/CentralControl/bin/Debug/XGL.Thrift.pdb b/shangjian/CentralControl/bin/Debug/XGL.Thrift.pdb index 733af8f..a9e9227 100644 Binary files a/shangjian/CentralControl/bin/Debug/XGL.Thrift.pdb and b/shangjian/CentralControl/bin/Debug/XGL.Thrift.pdb differ diff --git a/shangjian/CentralControl/obj/Debug/CentralControl.csproj.AssemblyReference.cache b/shangjian/CentralControl/obj/Debug/CentralControl.csproj.AssemblyReference.cache index ab18f37..d4cbf1a 100644 Binary files a/shangjian/CentralControl/obj/Debug/CentralControl.csproj.AssemblyReference.cache and b/shangjian/CentralControl/obj/Debug/CentralControl.csproj.AssemblyReference.cache differ diff --git a/shangjian/CentralControl/obj/Debug/CentralControl.exe b/shangjian/CentralControl/obj/Debug/CentralControl.exe index e3b4e0c..ddb18ed 100644 Binary files a/shangjian/CentralControl/obj/Debug/CentralControl.exe and b/shangjian/CentralControl/obj/Debug/CentralControl.exe differ diff --git a/shangjian/CentralControl/obj/Debug/CentralControl.pdb b/shangjian/CentralControl/obj/Debug/CentralControl.pdb index 303470b..38197a5 100644 Binary files a/shangjian/CentralControl/obj/Debug/CentralControl.pdb and b/shangjian/CentralControl/obj/Debug/CentralControl.pdb differ diff --git a/shangjian/CommonFunc/bin/x86/Debug/CommonFunc.dll b/shangjian/CommonFunc/bin/x86/Debug/CommonFunc.dll index a1c3f68..b70636b 100644 Binary files a/shangjian/CommonFunc/bin/x86/Debug/CommonFunc.dll and b/shangjian/CommonFunc/bin/x86/Debug/CommonFunc.dll differ diff --git a/shangjian/CommonFunc/bin/x86/Debug/CommonFunc.pdb b/shangjian/CommonFunc/bin/x86/Debug/CommonFunc.pdb index 4cc3fea..d47b39b 100644 Binary files a/shangjian/CommonFunc/bin/x86/Debug/CommonFunc.pdb and b/shangjian/CommonFunc/bin/x86/Debug/CommonFunc.pdb differ diff --git a/shangjian/CommonFunc/bin/x86/Debug/XGL.Models.dll b/shangjian/CommonFunc/bin/x86/Debug/XGL.Models.dll index 9f6865a..d735f22 100644 Binary files a/shangjian/CommonFunc/bin/x86/Debug/XGL.Models.dll and b/shangjian/CommonFunc/bin/x86/Debug/XGL.Models.dll differ diff --git a/shangjian/CommonFunc/bin/x86/Debug/XGL.Models.pdb b/shangjian/CommonFunc/bin/x86/Debug/XGL.Models.pdb index 966febc..61227a4 100644 Binary files a/shangjian/CommonFunc/bin/x86/Debug/XGL.Models.pdb and b/shangjian/CommonFunc/bin/x86/Debug/XGL.Models.pdb differ diff --git a/shangjian/CommonFunc/obj/x86/Debug/CommonFunc.csproj.AssemblyReference.cache b/shangjian/CommonFunc/obj/x86/Debug/CommonFunc.csproj.AssemblyReference.cache index 0effda4..ee80c4b 100644 Binary files a/shangjian/CommonFunc/obj/x86/Debug/CommonFunc.csproj.AssemblyReference.cache and b/shangjian/CommonFunc/obj/x86/Debug/CommonFunc.csproj.AssemblyReference.cache differ diff --git a/shangjian/CommonFunc/obj/x86/Debug/CommonFunc.dll b/shangjian/CommonFunc/obj/x86/Debug/CommonFunc.dll index a1c3f68..b70636b 100644 Binary files a/shangjian/CommonFunc/obj/x86/Debug/CommonFunc.dll and b/shangjian/CommonFunc/obj/x86/Debug/CommonFunc.dll differ diff --git a/shangjian/CommonFunc/obj/x86/Debug/CommonFunc.pdb b/shangjian/CommonFunc/obj/x86/Debug/CommonFunc.pdb index 4cc3fea..d47b39b 100644 Binary files a/shangjian/CommonFunc/obj/x86/Debug/CommonFunc.pdb and b/shangjian/CommonFunc/obj/x86/Debug/CommonFunc.pdb differ diff --git a/shangjian/LanJuLib/bin/Debug/CommonFunc.dll b/shangjian/LanJuLib/bin/Debug/CommonFunc.dll index a1c3f68..b70636b 100644 Binary files a/shangjian/LanJuLib/bin/Debug/CommonFunc.dll and b/shangjian/LanJuLib/bin/Debug/CommonFunc.dll differ diff --git a/shangjian/LanJuLib/bin/Debug/CommonFunc.pdb b/shangjian/LanJuLib/bin/Debug/CommonFunc.pdb index 4cc3fea..d47b39b 100644 Binary files a/shangjian/LanJuLib/bin/Debug/CommonFunc.pdb and b/shangjian/LanJuLib/bin/Debug/CommonFunc.pdb differ diff --git a/shangjian/LanJuLib/bin/Debug/XGL.Models.dll b/shangjian/LanJuLib/bin/Debug/XGL.Models.dll index 9f6865a..d735f22 100644 Binary files a/shangjian/LanJuLib/bin/Debug/XGL.Models.dll and b/shangjian/LanJuLib/bin/Debug/XGL.Models.dll differ diff --git a/shangjian/LanJuLib/bin/Debug/XGL.Models.pdb b/shangjian/LanJuLib/bin/Debug/XGL.Models.pdb index 966febc..61227a4 100644 Binary files a/shangjian/LanJuLib/bin/Debug/XGL.Models.pdb and b/shangjian/LanJuLib/bin/Debug/XGL.Models.pdb differ diff --git a/shangjian/LanJuLib/obj/Debug/LanJuLib.csproj.AssemblyReference.cache b/shangjian/LanJuLib/obj/Debug/LanJuLib.csproj.AssemblyReference.cache index 42ce042..991e910 100644 Binary files a/shangjian/LanJuLib/obj/Debug/LanJuLib.csproj.AssemblyReference.cache and b/shangjian/LanJuLib/obj/Debug/LanJuLib.csproj.AssemblyReference.cache differ diff --git a/shangjian/XGL.Data/DBService/DBService.cs b/shangjian/XGL.Data/DBService/DBService.cs index 242b176..f522f5f 100644 --- a/shangjian/XGL.Data/DBService/DBService.cs +++ b/shangjian/XGL.Data/DBService/DBService.cs @@ -788,7 +788,22 @@ where workorder.workorder_id = '{workOrderNo}'"; - + /// + /// 获取日志 + /// + /// + public DataTable GetLogList(string datetime,string key) + { + //根据工单获取成型机 + string sql = $@"SELECT * FROM [dbo].[mes_interface_log] where CONVERT(VARCHAR(10), creter_time , 120)= CONVERT(VARCHAR(10), '{datetime}' , 120) and remark like '%{key}%' order by creter_time desc ; "; + + DataSet dtset = Utils.netClientDBHelper.getDataSet(sql); + if (dtset != null && dtset.Tables.Count > 0 && dtset.Tables[0].Rows.Count > 0) + { + return dtset.Tables[0]; + } + return null; + } @@ -1077,6 +1092,9 @@ where workorder.workorder_id = '{workOrderNo}'"; } return null; } + + + /// /// 获取库位内物料明细 /// diff --git a/shangjian/XGL.Data/bin/x86/Debug/CommonFunc.dll b/shangjian/XGL.Data/bin/x86/Debug/CommonFunc.dll index a1c3f68..b70636b 100644 Binary files a/shangjian/XGL.Data/bin/x86/Debug/CommonFunc.dll and b/shangjian/XGL.Data/bin/x86/Debug/CommonFunc.dll differ diff --git a/shangjian/XGL.Data/bin/x86/Debug/CommonFunc.pdb b/shangjian/XGL.Data/bin/x86/Debug/CommonFunc.pdb index 4cc3fea..d47b39b 100644 Binary files a/shangjian/XGL.Data/bin/x86/Debug/CommonFunc.pdb and b/shangjian/XGL.Data/bin/x86/Debug/CommonFunc.pdb differ diff --git a/shangjian/XGL.Data/bin/x86/Debug/XGL.Data.dll b/shangjian/XGL.Data/bin/x86/Debug/XGL.Data.dll index 1a09629..819d44a 100644 Binary files a/shangjian/XGL.Data/bin/x86/Debug/XGL.Data.dll and b/shangjian/XGL.Data/bin/x86/Debug/XGL.Data.dll differ diff --git a/shangjian/XGL.Data/bin/x86/Debug/XGL.Data.pdb b/shangjian/XGL.Data/bin/x86/Debug/XGL.Data.pdb index b18a7b7..0959ad7 100644 Binary files a/shangjian/XGL.Data/bin/x86/Debug/XGL.Data.pdb and b/shangjian/XGL.Data/bin/x86/Debug/XGL.Data.pdb differ diff --git a/shangjian/XGL.Data/bin/x86/Debug/XGL.Models.dll b/shangjian/XGL.Data/bin/x86/Debug/XGL.Models.dll index 9f6865a..d735f22 100644 Binary files a/shangjian/XGL.Data/bin/x86/Debug/XGL.Models.dll and b/shangjian/XGL.Data/bin/x86/Debug/XGL.Models.dll differ diff --git a/shangjian/XGL.Data/bin/x86/Debug/XGL.Models.pdb b/shangjian/XGL.Data/bin/x86/Debug/XGL.Models.pdb index 966febc..61227a4 100644 Binary files a/shangjian/XGL.Data/bin/x86/Debug/XGL.Models.pdb and b/shangjian/XGL.Data/bin/x86/Debug/XGL.Models.pdb differ diff --git a/shangjian/XGL.Data/obj/x86/Debug/XGL.Data.csproj.AssemblyReference.cache b/shangjian/XGL.Data/obj/x86/Debug/XGL.Data.csproj.AssemblyReference.cache index 838b0c5..468b117 100644 Binary files a/shangjian/XGL.Data/obj/x86/Debug/XGL.Data.csproj.AssemblyReference.cache and b/shangjian/XGL.Data/obj/x86/Debug/XGL.Data.csproj.AssemblyReference.cache differ diff --git a/shangjian/XGL.Data/obj/x86/Debug/XGL.Data.dll b/shangjian/XGL.Data/obj/x86/Debug/XGL.Data.dll index 1a09629..819d44a 100644 Binary files a/shangjian/XGL.Data/obj/x86/Debug/XGL.Data.dll and b/shangjian/XGL.Data/obj/x86/Debug/XGL.Data.dll differ diff --git a/shangjian/XGL.Data/obj/x86/Debug/XGL.Data.pdb b/shangjian/XGL.Data/obj/x86/Debug/XGL.Data.pdb index b18a7b7..0959ad7 100644 Binary files a/shangjian/XGL.Data/obj/x86/Debug/XGL.Data.pdb and b/shangjian/XGL.Data/obj/x86/Debug/XGL.Data.pdb differ diff --git a/shangjian/XGL.Model/bin/Debug/XGL.Models.dll b/shangjian/XGL.Model/bin/Debug/XGL.Models.dll index 9f6865a..d735f22 100644 Binary files a/shangjian/XGL.Model/bin/Debug/XGL.Models.dll and b/shangjian/XGL.Model/bin/Debug/XGL.Models.dll differ diff --git a/shangjian/XGL.Model/bin/Debug/XGL.Models.pdb b/shangjian/XGL.Model/bin/Debug/XGL.Models.pdb index 966febc..61227a4 100644 Binary files a/shangjian/XGL.Model/bin/Debug/XGL.Models.pdb and b/shangjian/XGL.Model/bin/Debug/XGL.Models.pdb differ diff --git a/shangjian/XGL.Model/obj/Debug/XGL.Models.dll b/shangjian/XGL.Model/obj/Debug/XGL.Models.dll index 9f6865a..d735f22 100644 Binary files a/shangjian/XGL.Model/obj/Debug/XGL.Models.dll and b/shangjian/XGL.Model/obj/Debug/XGL.Models.dll differ diff --git a/shangjian/XGL.Model/obj/Debug/XGL.Models.pdb b/shangjian/XGL.Model/obj/Debug/XGL.Models.pdb index 966febc..61227a4 100644 Binary files a/shangjian/XGL.Model/obj/Debug/XGL.Models.pdb and b/shangjian/XGL.Model/obj/Debug/XGL.Models.pdb differ diff --git a/shangjian/XGL.Thrift/bin/Debug/XGL.Thrift.dll b/shangjian/XGL.Thrift/bin/Debug/XGL.Thrift.dll index c4b3406..4084aad 100644 Binary files a/shangjian/XGL.Thrift/bin/Debug/XGL.Thrift.dll and b/shangjian/XGL.Thrift/bin/Debug/XGL.Thrift.dll differ diff --git a/shangjian/XGL.Thrift/bin/Debug/XGL.Thrift.pdb b/shangjian/XGL.Thrift/bin/Debug/XGL.Thrift.pdb index 733af8f..a9e9227 100644 Binary files a/shangjian/XGL.Thrift/bin/Debug/XGL.Thrift.pdb and b/shangjian/XGL.Thrift/bin/Debug/XGL.Thrift.pdb differ diff --git a/shangjian/XGL.Thrift/obj/Debug/XGL.Thrift.dll b/shangjian/XGL.Thrift/obj/Debug/XGL.Thrift.dll index c4b3406..4084aad 100644 Binary files a/shangjian/XGL.Thrift/obj/Debug/XGL.Thrift.dll and b/shangjian/XGL.Thrift/obj/Debug/XGL.Thrift.dll differ diff --git a/shangjian/XGL.Thrift/obj/Debug/XGL.Thrift.pdb b/shangjian/XGL.Thrift/obj/Debug/XGL.Thrift.pdb index 733af8f..a9e9227 100644 Binary files a/shangjian/XGL.Thrift/obj/Debug/XGL.Thrift.pdb and b/shangjian/XGL.Thrift/obj/Debug/XGL.Thrift.pdb differ diff --git a/shangjian/XGL/App.config b/shangjian/XGL/App.config index 1a26756..2a813b5 100644 --- a/shangjian/XGL/App.config +++ b/shangjian/XGL/App.config @@ -12,7 +12,7 @@ - + diff --git a/shangjian/XGL/FormItem/Main.xaml b/shangjian/XGL/FormItem/Main.xaml index eabd08d..1a192b3 100644 --- a/shangjian/XGL/FormItem/Main.xaml +++ b/shangjian/XGL/FormItem/Main.xaml @@ -560,7 +560,7 @@ HorizontalAlignment="Left" Content="20231001001" FontSize="20px" - Foreground="Black" VerticalContentAlignment="Center"/> + Foreground="Blue" FontStretch="Condensed" VerticalContentAlignment="Center"/> - + + + - + diff --git a/shangjian/XGL/Views/LanJu_Operator.xaml.cs b/shangjian/XGL/Views/LanJu_Operator.xaml.cs index c59080e..6c5d398 100644 --- a/shangjian/XGL/Views/LanJu_Operator.xaml.cs +++ b/shangjian/XGL/Views/LanJu_Operator.xaml.cs @@ -289,5 +289,11 @@ namespace XGL.Views ShouPeiWin shouPeiWin = new ShouPeiWin(selectedRow); shouPeiWin.ShowDialog(); } + + private void btnCheckLog_Click(object sender, RoutedEventArgs e) + { + ViewLogWin viewLogWin = new ViewLogWin(); + viewLogWin.ShowDialog(); + } } } diff --git a/shangjian/XGL/Views/LanJu_Prepare.xaml b/shangjian/XGL/Views/LanJu_Prepare.xaml index 530a54e..ada69d9 100644 --- a/shangjian/XGL/Views/LanJu_Prepare.xaml +++ b/shangjian/XGL/Views/LanJu_Prepare.xaml @@ -156,7 +156,7 @@ - + @@ -256,7 +256,7 @@ - + diff --git a/shangjian/XGL/Views/ViewLogWin.xaml b/shangjian/XGL/Views/ViewLogWin.xaml new file mode 100644 index 0000000..92a8d0a --- /dev/null +++ b/shangjian/XGL/Views/ViewLogWin.xaml @@ -0,0 +1,134 @@ + + + + + + + + + + + + + + + + + + + + + + +