From 4e1228fd79d2f2f770a4fb98f8766ad6f1dae700 Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Tue, 29 Apr 2014 12:41:49 +0200 Subject: [PATCH] =?UTF-8?q?Vers=200.6.56=20Update=20modalit=C3=A0=20sync?= =?UTF-8?q?=20DB=20con=20testing=20e=20riallineamento=20produzione=20c2p.s?= =?UTF-8?q?teamware.net?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- C2P/C2P.csproj | 18 +- ...P.RemoteWS.updateLemmaResponse.datasource} | 4 +- C2P/Service References/RemoteWS/Reference.cs | 210 +++++++++--------- C2P/Service References/RemoteWS/WS_data.wsdl | 96 ++++---- C2P/Services/WS_data.asmx.cs | 25 +-- C2P/WebUserControls/mod_SyncVoc.ascx | 41 +++- C2P/WebUserControls/mod_SyncVoc.ascx.cs | 64 +++++- .../mod_SyncVoc.ascx.designer.cs | 36 +++ C2P/bin/C2P.dll | Bin 343040 -> 344576 bytes C2P/bin/C2P_Data.dll | Bin 316928 -> 316928 bytes C2P/bin/SteamWare.dll | Bin 501248 -> 501248 bytes C2P_Data/bin/Release/C2P_Data.dll | Bin 291328 -> 291328 bytes C2P_Data/bin/Release/SteamWare.dll | Bin 460288 -> 460288 bytes 13 files changed, 310 insertions(+), 184 deletions(-) rename C2P/Service References/RemoteWS/{C2P.RemoteWS.testResponse.datasource => C2P.RemoteWS.updateLemmaResponse.datasource} (55%) diff --git a/C2P/C2P.csproj b/C2P/C2P.csproj index 841d5d4..7abdf48 100644 --- a/C2P/C2P.csproj +++ b/C2P/C2P.csproj @@ -295,19 +295,19 @@ Reference.svcmap - - Reference.svcmap - Reference.svcmap - - - - + + Reference.svcmap + + + + + WCF Proxy Generator Reference.cs - + @@ -387,7 +387,7 @@ Designer - + Web.config diff --git a/C2P/Service References/RemoteWS/C2P.RemoteWS.testResponse.datasource b/C2P/Service References/RemoteWS/C2P.RemoteWS.updateLemmaResponse.datasource similarity index 55% rename from C2P/Service References/RemoteWS/C2P.RemoteWS.testResponse.datasource rename to C2P/Service References/RemoteWS/C2P.RemoteWS.updateLemmaResponse.datasource index 69205b7..3e7c1b0 100644 --- a/C2P/Service References/RemoteWS/C2P.RemoteWS.testResponse.datasource +++ b/C2P/Service References/RemoteWS/C2P.RemoteWS.updateLemmaResponse.datasource @@ -5,6 +5,6 @@ Renaming the file extension or editing the content of this file may cause the file to be unrecognizable by the program. --> - - C2P.RemoteWS.testResponse, Service References.RemoteWS.Reference.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + + C2P.RemoteWS.updateLemmaResponse, Service References.RemoteWS.Reference.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null \ No newline at end of file diff --git a/C2P/Service References/RemoteWS/Reference.cs b/C2P/Service References/RemoteWS/Reference.cs index 46ad03d..82bb4c1 100644 --- a/C2P/Service References/RemoteWS/Reference.cs +++ b/C2P/Service References/RemoteWS/Reference.cs @@ -1,7 +1,7 @@ //------------------------------------------------------------------------------ // // This code was generated by a tool. -// Runtime Version:4.0.30319.34011 +// Runtime Version:4.0.30319.34014 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. @@ -24,13 +24,6 @@ namespace C2P.RemoteWS { [System.ServiceModel.ServiceContractAttribute(ConfigurationName="RemoteWS.WS_dataSoap")] public interface WS_dataSoap { - // CODEGEN: Generating message contract since element name prefixText from namespace http://tempuri.org/ is not marked nillable - [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/test", ReplyAction="*")] - C2P.RemoteWS.testResponse test(C2P.RemoteWS.testRequest request); - - [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/test", ReplyAction="*")] - System.Threading.Tasks.Task testAsync(C2P.RemoteWS.testRequest request); - // CODEGEN: Generating message contract since element name prefixText from namespace http://tempuri.org/ is not marked nillable [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/Clients", ReplyAction="*")] C2P.RemoteWS.ClientsResponse Clients(C2P.RemoteWS.ClientsRequest request); @@ -58,74 +51,13 @@ namespace C2P.RemoteWS { [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/Vocabolario", ReplyAction="*")] System.Threading.Tasks.Task VocabolarioAsync(C2P.RemoteWS.VocabolarioRequest request); - } - - [System.Diagnostics.DebuggerStepThroughAttribute()] - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] - [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] - [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] - public partial class testRequest { - [System.ServiceModel.MessageBodyMemberAttribute(Name="test", Namespace="http://tempuri.org/", Order=0)] - public C2P.RemoteWS.testRequestBody Body; + // CODEGEN: Generating message contract since element name lingua from namespace http://tempuri.org/ is not marked nillable + [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/updateLemma", ReplyAction="*")] + C2P.RemoteWS.updateLemmaResponse updateLemma(C2P.RemoteWS.updateLemmaRequest request); - public testRequest() { - } - - public testRequest(C2P.RemoteWS.testRequestBody Body) { - this.Body = Body; - } - } - - [System.Diagnostics.DebuggerStepThroughAttribute()] - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] - [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] - [System.Runtime.Serialization.DataContractAttribute(Namespace="http://tempuri.org/")] - public partial class testRequestBody { - - [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false, Order=0)] - public string prefixText; - - public testRequestBody() { - } - - public testRequestBody(string prefixText) { - this.prefixText = prefixText; - } - } - - [System.Diagnostics.DebuggerStepThroughAttribute()] - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] - [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] - [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] - public partial class testResponse { - - [System.ServiceModel.MessageBodyMemberAttribute(Name="testResponse", Namespace="http://tempuri.org/", Order=0)] - public C2P.RemoteWS.testResponseBody Body; - - public testResponse() { - } - - public testResponse(C2P.RemoteWS.testResponseBody Body) { - this.Body = Body; - } - } - - [System.Diagnostics.DebuggerStepThroughAttribute()] - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] - [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] - [System.Runtime.Serialization.DataContractAttribute(Namespace="http://tempuri.org/")] - public partial class testResponseBody { - - [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false, Order=0)] - public C2P.RemoteWS.ArrayOfString testResult; - - public testResponseBody() { - } - - public testResponseBody(C2P.RemoteWS.ArrayOfString testResult) { - this.testResult = testResult; - } + [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/updateLemma", ReplyAction="*")] + System.Threading.Tasks.Task updateLemmaAsync(C2P.RemoteWS.updateLemmaRequest request); } [System.Diagnostics.DebuggerStepThroughAttribute()] @@ -393,6 +325,82 @@ namespace C2P.RemoteWS { } } + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class updateLemmaRequest { + + [System.ServiceModel.MessageBodyMemberAttribute(Name="updateLemma", Namespace="http://tempuri.org/", Order=0)] + public C2P.RemoteWS.updateLemmaRequestBody Body; + + public updateLemmaRequest() { + } + + public updateLemmaRequest(C2P.RemoteWS.updateLemmaRequestBody Body) { + this.Body = Body; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.Runtime.Serialization.DataContractAttribute(Namespace="http://tempuri.org/")] + public partial class updateLemmaRequestBody { + + [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false, Order=0)] + public string lingua; + + [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false, Order=1)] + public string lemma; + + [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false, Order=2)] + public string traduzione; + + public updateLemmaRequestBody() { + } + + public updateLemmaRequestBody(string lingua, string lemma, string traduzione) { + this.lingua = lingua; + this.lemma = lemma; + this.traduzione = traduzione; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class updateLemmaResponse { + + [System.ServiceModel.MessageBodyMemberAttribute(Name="updateLemmaResponse", Namespace="http://tempuri.org/", Order=0)] + public C2P.RemoteWS.updateLemmaResponseBody Body; + + public updateLemmaResponse() { + } + + public updateLemmaResponse(C2P.RemoteWS.updateLemmaResponseBody Body) { + this.Body = Body; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.Runtime.Serialization.DataContractAttribute(Namespace="http://tempuri.org/")] + public partial class updateLemmaResponseBody { + + [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false, Order=0)] + public string updateLemmaResult; + + public updateLemmaResponseBody() { + } + + public updateLemmaResponseBody(string updateLemmaResult) { + this.updateLemmaResult = updateLemmaResult; + } + } + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] public interface WS_dataSoapChannel : C2P.RemoteWS.WS_dataSoap, System.ServiceModel.IClientChannel { } @@ -420,31 +428,6 @@ namespace C2P.RemoteWS { base(binding, remoteAddress) { } - [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] - C2P.RemoteWS.testResponse C2P.RemoteWS.WS_dataSoap.test(C2P.RemoteWS.testRequest request) { - return base.Channel.test(request); - } - - public C2P.RemoteWS.ArrayOfString test(string prefixText) { - C2P.RemoteWS.testRequest inValue = new C2P.RemoteWS.testRequest(); - inValue.Body = new C2P.RemoteWS.testRequestBody(); - inValue.Body.prefixText = prefixText; - C2P.RemoteWS.testResponse retVal = ((C2P.RemoteWS.WS_dataSoap)(this)).test(inValue); - return retVal.Body.testResult; - } - - [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] - System.Threading.Tasks.Task C2P.RemoteWS.WS_dataSoap.testAsync(C2P.RemoteWS.testRequest request) { - return base.Channel.testAsync(request); - } - - public System.Threading.Tasks.Task testAsync(string prefixText) { - C2P.RemoteWS.testRequest inValue = new C2P.RemoteWS.testRequest(); - inValue.Body = new C2P.RemoteWS.testRequestBody(); - inValue.Body.prefixText = prefixText; - return ((C2P.RemoteWS.WS_dataSoap)(this)).testAsync(inValue); - } - [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] C2P.RemoteWS.ClientsResponse C2P.RemoteWS.WS_dataSoap.Clients(C2P.RemoteWS.ClientsRequest request) { return base.Channel.Clients(request); @@ -542,5 +525,34 @@ namespace C2P.RemoteWS { inValue.Body = new C2P.RemoteWS.VocabolarioRequestBody(); return ((C2P.RemoteWS.WS_dataSoap)(this)).VocabolarioAsync(inValue); } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + C2P.RemoteWS.updateLemmaResponse C2P.RemoteWS.WS_dataSoap.updateLemma(C2P.RemoteWS.updateLemmaRequest request) { + return base.Channel.updateLemma(request); + } + + public string updateLemma(string lingua, string lemma, string traduzione) { + C2P.RemoteWS.updateLemmaRequest inValue = new C2P.RemoteWS.updateLemmaRequest(); + inValue.Body = new C2P.RemoteWS.updateLemmaRequestBody(); + inValue.Body.lingua = lingua; + inValue.Body.lemma = lemma; + inValue.Body.traduzione = traduzione; + C2P.RemoteWS.updateLemmaResponse retVal = ((C2P.RemoteWS.WS_dataSoap)(this)).updateLemma(inValue); + return retVal.Body.updateLemmaResult; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task C2P.RemoteWS.WS_dataSoap.updateLemmaAsync(C2P.RemoteWS.updateLemmaRequest request) { + return base.Channel.updateLemmaAsync(request); + } + + public System.Threading.Tasks.Task updateLemmaAsync(string lingua, string lemma, string traduzione) { + C2P.RemoteWS.updateLemmaRequest inValue = new C2P.RemoteWS.updateLemmaRequest(); + inValue.Body = new C2P.RemoteWS.updateLemmaRequestBody(); + inValue.Body.lingua = lingua; + inValue.Body.lemma = lemma; + inValue.Body.traduzione = traduzione; + return ((C2P.RemoteWS.WS_dataSoap)(this)).updateLemmaAsync(inValue); + } } } diff --git a/C2P/Service References/RemoteWS/WS_data.wsdl b/C2P/Service References/RemoteWS/WS_data.wsdl index b289a47..36bcd31 100644 --- a/C2P/Service References/RemoteWS/WS_data.wsdl +++ b/C2P/Service References/RemoteWS/WS_data.wsdl @@ -2,25 +2,6 @@ - - - - - - - - - - - - - - - - - - - @@ -35,6 +16,11 @@ + + + + + @@ -73,14 +59,24 @@ + + + + + + + + + + + + + + + + - - - - - - @@ -105,11 +101,13 @@ + + + + + + - - - - @@ -126,18 +124,13 @@ + + + + - - - - - - - - - @@ -174,18 +167,18 @@ + + + + + + + + + - - - - - - - - - @@ -222,6 +215,15 @@ + + + + + + + + + diff --git a/C2P/Services/WS_data.asmx.cs b/C2P/Services/WS_data.asmx.cs index 11aad0f..39b7e03 100644 --- a/C2P/Services/WS_data.asmx.cs +++ b/C2P/Services/WS_data.asmx.cs @@ -19,21 +19,6 @@ namespace C2P.Services [System.Web.Script.Services.ScriptService] public class WS_data : System.Web.Services.WebService { - - [WebMethod] - [ScriptMethod(ResponseFormat = ResponseFormat.Json)] - public string[] test(string prefixText) - { - //TODO: implement real search here! - // dummy implementation - List output = new List(); - for (int i = 0; i < 10; i++) - { - output.Add(string.Format("{0}{1}#{1}", prefixText, i)); - } - return output.ToArray(); - } - [WebMethod] [ScriptMethod(ResponseFormat = ResponseFormat.Json)] public string[] Clients(string prefixText) @@ -99,7 +84,15 @@ namespace C2P.Services } return suggerimenti.ToArray(); } - + + [WebMethod] + [ScriptMethod(ResponseFormat = ResponseFormat.Json)] + public string updateLemma(string lingua, string lemma, string traduzione) + { + string answ = ""; + selDataVoc.mgr.upsertLemma(lingua, lemma, traduzione); + return answ; + } } } diff --git a/C2P/WebUserControls/mod_SyncVoc.ascx b/C2P/WebUserControls/mod_SyncVoc.ascx index 4b1ece1..aabf698 100644 --- a/C2P/WebUserControls/mod_SyncVoc.ascx +++ b/C2P/WebUserControls/mod_SyncVoc.ascx @@ -1,4 +1,39 @@ <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="mod_SyncVoc.ascx.cs" Inherits="C2P.WebUserControls.mod_SyncVoc" %> - -
- + +
+
+
+

Sync Db Vocabolario

+ +
+
+
+
Lemmi Locali
+
+ +
+
+
+
Lemmi Remoti
+
+ +
+
+
+
Update Locali
+
+ +
+
+
+
Insert Remoti
+
+ +
+
+
+
+ +
+
+
diff --git a/C2P/WebUserControls/mod_SyncVoc.ascx.cs b/C2P/WebUserControls/mod_SyncVoc.ascx.cs index 42f906e..d7a0321 100644 --- a/C2P/WebUserControls/mod_SyncVoc.ascx.cs +++ b/C2P/WebUserControls/mod_SyncVoc.ascx.cs @@ -10,9 +10,32 @@ namespace C2P.WebUserControls { public partial class mod_SyncVoc : System.Web.UI.UserControl { + /// + /// wrapper classe WS remota + /// + protected RemoteWS.WS_dataSoapClient clientWS = new RemoteWS.WS_dataSoapClient(); + /// + /// dati remoti + /// + protected List remoteData; + protected void Page_Load(object sender, EventArgs e) { + if (!Page.IsPostBack) + { + reloadData(); + } + } + private void reloadData() + { + DataWrap.DW.resetVocabolario(); + // carico dati locali... + lblNumLoc.Text = string.Format("{0} record", DataWrap.DW.dictVocabolario.Count); + + // carico dati remoti + remoteData = clientWS.Vocabolario(); + lblNumRem.Text = string.Format("{0} record", remoteData.Count); } /// /// (Ri)carico dati vocabolario remoto @@ -21,25 +44,50 @@ namespace C2P.WebUserControls /// protected void btnSync_Click(object sender, EventArgs e) { + reloadData(); + // inizio processo... DateTime inizio = DateTime.Now; - RemoteWS.WS_dataSoapClient client = new RemoteWS.WS_dataSoapClient(); - List risultati = client.Vocabolario(); // ciclo sui risultati... string[] termine; - int fatti = 0; - foreach (string risultato in risultati) + int updLoc = 0; + int insRem = 0; + // step 1: update da remoto a locale + foreach (string risultato in remoteData) { + // cerco termini splittando try { termine = risultato.Split('#'); - // cerco il termine nel nostro db e faccio upsert (always) - selDataVoc.mgr.upsertLemma(termine[0], termine[1], termine[2]); - fatti++; + // verifico se il termine sia cambiato... + if (DataWrap.DW.dictVocabolario[termine[0] + "#" + termine[1]] != termine[2] || DataWrap.DW.dictVocabolario[termine[0] + "#" + termine[1]] == null) + { + // faccio upsert + selDataVoc.mgr.upsertLemma(termine[0], termine[1], termine[2]); + updLoc++; + } } catch { } } + // step 2: caricamento termini NUOVI locali in db remoto... + string trovato = ""; + foreach (string key in DataWrap.DW.dictVocabolario.Keys) + { + // cerco la chiave nell'elenco... + trovato = remoteData.Find(x => x.StartsWith(key)); + // se non la trovo chiamo metodo di upsert! + if (trovato == "" || trovato == null) + { + termine = key.Split('#'); + clientWS.updateLemma(termine[0], termine[1], DataWrap.DW.dictVocabolario[key]); + insRem++; + } + } // mostro esito! - lblRes.Text = string.Format("Sync effettuato: {0} termini, {1} ms", fatti, DateTime.Now.Subtract(inizio).TotalMilliseconds); + lblUpdLoc.Text = string.Format("{0} termini aggiornati in locale", updLoc); + lblInsRem.Text = string.Format("{0} termini nuovi caricati in remoto", insRem); + lblRes.Text = string.Format("Sync effettuato: {0} ms", DateTime.Now.Subtract(inizio).TotalMilliseconds); + // ricarico dati locali e remoti + reloadData(); } } } \ No newline at end of file diff --git a/C2P/WebUserControls/mod_SyncVoc.ascx.designer.cs b/C2P/WebUserControls/mod_SyncVoc.ascx.designer.cs index 7b5eb1d..70ecd5e 100644 --- a/C2P/WebUserControls/mod_SyncVoc.ascx.designer.cs +++ b/C2P/WebUserControls/mod_SyncVoc.ascx.designer.cs @@ -21,6 +21,42 @@ namespace C2P.WebUserControls { /// protected global::System.Web.UI.WebControls.Button btnSync; + /// + /// lblNumLoc control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Label lblNumLoc; + + /// + /// lblNumRem control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Label lblNumRem; + + /// + /// lblUpdLoc control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Label lblUpdLoc; + + /// + /// lblInsRem control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Label lblInsRem; + /// /// lblRes control. /// diff --git a/C2P/bin/C2P.dll b/C2P/bin/C2P.dll index 25f08c8864c6d28d9c5f5c975ab030ac73ada550..c917bcf62b2b489d9d709d29dcab286aff5b55d3 100644 GIT binary patch delta 32070 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 delta 30808 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 SnCs$^M?v4;9UP;5tNtG`wa|S4 diff --git a/C2P/bin/C2P_Data.dll b/C2P/bin/C2P_Data.dll index d463d150de83b0f3be77fa1820d49ad40c0169b0..788955f5fab4e890a107cb04680fb55ec548c299 100644 GIT binary patch delta 64 zcmV-G0Kfl$tP_B&6Of4ke}RgHiUEa+0)>hLwTc8*g|9=F}i1S1H3s~Z>q delta 64 zcmV-G0Kfl$tP_B&6Of4kW`T-@iUEa+0)>hLwTc8*g|5VzgU1S1GOOc?Y4 diff --git a/C2P/bin/SteamWare.dll b/C2P/bin/SteamWare.dll index b81e13c901f778ee4332796e28962ab87297fcc9..8f9bdd184edc9d8e18f49b3da339d85da463cdf6 100644 GIT binary patch delta 73 zcmV-P0Ji^t%pQQu9*~Ive}RgHiUEa+0)>hLg^C1)iUoy=2DOR@T4fMhF9(ln9y3IS fFaL^y#$S}T^koMDI01i`_MHbR0U@^`o(JCtF%}#~ delta 73 zcmV-P0Ji^t%pQQu9*~IvW`T-@iUEa+0)>hLg^C1)iUoy=2DOR@T4fLD*y+Qrz~#njrx+}g#`+QquHi_Pe?K!{Y<{9