diff --git a/MP-ADM/MP-ADM.csproj b/MP-ADM/MP-ADM.csproj
index ae0a1971..be9bea9f 100644
--- a/MP-ADM/MP-ADM.csproj
+++ b/MP-ADM/MP-ADM.csproj
@@ -121,11 +121,11 @@
..\packages\StackExchange.Redis.2.2.4\lib\net461\StackExchange.Redis.dll
True
-
- ..\packages\SteamWare.5.0.2103.754\lib\net462\SteamWare.dll
+
+ ..\packages\SteamWare.5.0.2104.757\lib\net462\SteamWare.dll
-
- ..\packages\SteamWare.Logger.5.0.2103.754\lib\net462\SteamWare.Logger.dll
+
+ ..\packages\SteamWare.Logger.5.0.2104.757\lib\net462\SteamWare.Logger.dll
..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll
@@ -472,8 +472,10 @@
+
+
@@ -592,6 +594,8 @@
+
+
diff --git a/MP-ADM/libzstd.dll b/MP-ADM/libzstd.dll
new file mode 100644
index 00000000..e669123c
Binary files /dev/null and b/MP-ADM/libzstd.dll differ
diff --git a/MP-ADM/mongocrypt.dll b/MP-ADM/mongocrypt.dll
new file mode 100644
index 00000000..39d7e016
Binary files /dev/null and b/MP-ADM/mongocrypt.dll differ
diff --git a/MP-ADM/packages.config b/MP-ADM/packages.config
index b215348e..8f2fedbc 100644
--- a/MP-ADM/packages.config
+++ b/MP-ADM/packages.config
@@ -43,8 +43,8 @@
-
-
+
+
diff --git a/MP-ADM/snappy32.dll b/MP-ADM/snappy32.dll
new file mode 100644
index 00000000..afc82ca4
Binary files /dev/null and b/MP-ADM/snappy32.dll differ
diff --git a/MP-ADM/snappy64.dll b/MP-ADM/snappy64.dll
new file mode 100644
index 00000000..36cd5fe7
Binary files /dev/null and b/MP-ADM/snappy64.dll differ
diff --git a/MP-IO/MP-IO.csproj b/MP-IO/MP-IO.csproj
index 9373964b..5cf5f6af 100644
--- a/MP-IO/MP-IO.csproj
+++ b/MP-IO/MP-IO.csproj
@@ -117,11 +117,11 @@
..\packages\StackExchange.Redis.2.2.4\lib\net461\StackExchange.Redis.dll
True
-
- ..\packages\SteamWare.5.0.2103.754\lib\net462\SteamWare.dll
+
+ ..\packages\SteamWare.5.0.2104.757\lib\net462\SteamWare.dll
-
- ..\packages\SteamWare.Logger.5.0.2103.754\lib\net462\SteamWare.Logger.dll
+
+ ..\packages\SteamWare.Logger.5.0.2104.757\lib\net462\SteamWare.Logger.dll
..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll
@@ -269,6 +269,8 @@
+
+
@@ -283,6 +285,8 @@
+
+
Designer
diff --git a/MP-IO/Web.config b/MP-IO/Web.config
index db996166..c393577b 100644
--- a/MP-IO/Web.config
+++ b/MP-IO/Web.config
@@ -1,4 +1,4 @@
-
+
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
+
-
+
-
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
+
-
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
+
-
-
-
-
+
+
+
+
-
-
+
+
-
+
-
-
-
-
+
+
+
+
-
+
-
-
-
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
-
+
-
+
-
-
+
+
-
-
+
+
-
+
-
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
+
+
+
+
-
+
-
-
+
+
-
+
-
+
diff --git a/MP-LAND/libzstd.dll b/MP-LAND/libzstd.dll
new file mode 100644
index 00000000..e669123c
Binary files /dev/null and b/MP-LAND/libzstd.dll differ
diff --git a/MP-LAND/mongocrypt.dll b/MP-LAND/mongocrypt.dll
new file mode 100644
index 00000000..39d7e016
Binary files /dev/null and b/MP-LAND/mongocrypt.dll differ
diff --git a/MP-LAND/packages.config b/MP-LAND/packages.config
index be81e049..0969dfb0 100644
--- a/MP-LAND/packages.config
+++ b/MP-LAND/packages.config
@@ -48,8 +48,8 @@
-
-
+
+
diff --git a/MP-LAND/snappy32.dll b/MP-LAND/snappy32.dll
new file mode 100644
index 00000000..afc82ca4
Binary files /dev/null and b/MP-LAND/snappy32.dll differ
diff --git a/MP-LAND/snappy64.dll b/MP-LAND/snappy64.dll
new file mode 100644
index 00000000..36cd5fe7
Binary files /dev/null and b/MP-LAND/snappy64.dll differ
diff --git a/MP-MAG/App_Readme/SteamWare_demo/example-app.config b/MP-MAG/App_Readme/SteamWare_demo/example-app.config
new file mode 100644
index 00000000..fb421650
--- /dev/null
+++ b/MP-MAG/App_Readme/SteamWare_demo/example-app.config
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MP-MAG/App_Readme/SteamWare_demo/example-config-table.txt b/MP-MAG/App_Readme/SteamWare_demo/example-config-table.txt
new file mode 100644
index 00000000..dd0ab8ef
--- /dev/null
+++ b/MP-MAG/App_Readme/SteamWare_demo/example-config-table.txt
@@ -0,0 +1,30 @@
+# chiave valore valoreStd note
+_adminEmail samuele@steamware.net,info@steamware.net samuele@steamware.net,info@steamware.net info@steamware.net
+_allowForceUser true true abilita login forzato
+_commonPages menu menu pagina comune
+_emailPwd drmfsls16 drmfsls16 drmfsls16
+_emailUser steamwarebot@gmail.com steamwarebot@gmail.com steamwarebot@gmail.com
+_enableSSL true true true
+_fromEmail webmaster@admodelling.org webmaster@admodelling.org email mittente eventuali msg
+_righeDataGrid 30 30 Num righe datagrid std
+_righeDataGridAnagr 20 20 Num righe datagrid anagrafiche
+_righeDataGridLong 30 30 Num righe datagrid long
+_righeDataGridMed 15 15 Num righe datagrid med
+_righeDataGridShort 10 10 Num righe datagrid short
+_smtpCli smtp.gmail.com smtp.gmail.com smtp.gmail.com
+_useAIMSmtp false false impiego client posta elettronica alternativo
+_useAuthSmtp true true true
+AuthCookieName admodellingAuth admodellingAuth Cookie applicativo
+autoConfCmd true true Conferma automatica comandi barcode
+baseUrl http://site_name http://iis02/site_name URL base del sito
+cacheValSec 60 60 Validità cache dati in gestore Barcode
+cookieDayExp 365 365 Periodo validità cookie
+cookieUsed admodellingAuth admodellingAuth,CTrack_CodOpr,CTrack_CodPost Elenco dei cookie impiegati
+enableCookie true true Abilitazione uso cookie
+enableLogOut true false Abilita button logout COMPLETO in alto a sx
+enablePlain true true Abilitazione decode plain
+maxAuth 1000 1000 num auth minimo per NON consumare tokens
+serializeSession true true Serializzazione valori in sessione (REDIS)
+SiteName iis02/site_name iis02/site_name Nome sito
+enableDumpDiag false false abilitazione dumb diagnostico x eccezioni di default
+doShrinkFolder true true Imposta compressione area LOGS
\ No newline at end of file
diff --git a/MP-MAG/Controllers/PrintQueueController.cs b/MP-MAG/Controllers/PrintQueueController.cs
index 810e31d5..9e6a29f9 100644
--- a/MP-MAG/Controllers/PrintQueueController.cs
+++ b/MP-MAG/Controllers/PrintQueueController.cs
@@ -3,7 +3,8 @@ using Newtonsoft.Json;
//using SteamWare.IO;
//using SteamWare.Reports;
-using SteamWare;
+//using SteamWare;
+using SteamWare.Reports;
using System;
using System.Collections.Generic;
using System.Data;
@@ -96,7 +97,7 @@ namespace MP_MAG.Controllers
///
///
///
- protected MagData.reportRichiesto reportByTemplate(string queueName)
+ protected MagData.reportRichiesto reportByQueue(string queueName)
{
MagData.reportRichiesto report = MagData.reportRichiesto.ND;
var qConf = MagDataLayerObj.queueConfRedis.Find(x => x.name == queueName);
@@ -113,6 +114,28 @@ namespace MP_MAG.Controllers
return report;
}
+ ///
+ /// Recupera report da conf TipoDoc
+ ///
+ ///
+ ///
+ protected MagData.reportRichiesto reportByTipoDoc(string name)
+ {
+ MagData.reportRichiesto report = MagData.reportRichiesto.ND;
+ var qConf = MagDataLayerObj.reportConfRedis.Find(x => x.name == name);
+ if (qConf != null)
+ {
+ // decodifico
+ try
+ {
+ report = (MagData.reportRichiesto)Enum.Parse(typeof(MagData.reportRichiesto), qConf.template.Replace(".rdlc", ""));
+ }
+ catch
+ { }
+ }
+ return report;
+ }
+
#endregion Protected Methods
#region Public Methods
@@ -126,7 +149,7 @@ namespace MP_MAG.Controllers
{
// restituisco...
int answ = 0;
- string redVal = memLayer.ML.getRSV(MagDataLayer.redQueueCount);
+ string redVal = SteamWare.memLayer.ML.getRSV(MagDataLayer.redQueueCount);
// cerco in redis se ci sia chiave..
if (!string.IsNullOrEmpty(redVal))
{
@@ -135,10 +158,10 @@ namespace MP_MAG.Controllers
}
else
{
- int ttlPrintCount = memLayer.ML.CRI("ttlPrintCount");
+ int ttlPrintCount = SteamWare.memLayer.ML.CRI("ttlPrintCount");
// recupero da dbe e salvo
answ = countWaitingDb;
- memLayer.ML.setRSV(MagDataLayer.redQueueCount, $"{answ}", ttlPrintCount);
+ SteamWare.memLayer.ML.setRSV(MagDataLayer.redQueueCount, $"{answ}", ttlPrintCount);
}
return answ;
}
@@ -159,13 +182,21 @@ namespace MP_MAG.Controllers
reportData currReport = new reportData();
Dictionary currRdsData;
// ciclo!
+ MagData.reportRichiesto tipoRep = MagData.reportRichiesto.ND;
foreach (var pjReq in tabPJQ)
{
- currRdsData = caricaDati(reportByTemplate(pjReq.prtName), pjReq.KeyParam);
+ // verifico SE HO un tipo report particolare...
+ tipoRep = reportByTipoDoc(pjReq.TipoReport);
+ if (tipoRep == MagData.reportRichiesto.ND)
+ {
+ tipoRep = reportByQueue(pjReq.prtName);
+ }
+ currRdsData = caricaDati(tipoRep, pjReq.KeyParam);
// in base alla coda --> recupero i dati
currReport = new reportData()
{
ticketNum = $"{pjReq.IdxPrintJob}",
+ template = $"{pjReq.TipoReport}",
rdsData = currRdsData
};
answ.Add(currReport);
@@ -205,7 +236,7 @@ namespace MP_MAG.Controllers
int.TryParse(printAnsw.ticketNum, out idxPJQ);
MagDataLayerObj.taPJQ.updateStato(idxPJQ, printAnsw.newStatus);
// resetto conteggio in redis...
- memLayer.ML.setRSV(MagDataLayer.redQueueCount, $"{countWaitingDb}", 30);
+ SteamWare.memLayer.ML.setRSV(MagDataLayer.redQueueCount, $"{countWaitingDb}", 30);
answ = "OK";
}
}
diff --git a/MP-MAG/Controllers/ReportConfController.cs b/MP-MAG/Controllers/ReportConfController.cs
new file mode 100644
index 00000000..572ae359
--- /dev/null
+++ b/MP-MAG/Controllers/ReportConfController.cs
@@ -0,0 +1,34 @@
+using SteamWare;
+using System.Collections.Generic;
+using System.Web.Http;
+
+namespace MP_MAG.Controllers
+{
+ public class ReportConfController : ApiController
+ {
+ #region Public Methods
+
+ ///
+ /// Restituisce un array JSon x le conf delle code di stampa
+ /// GET: api/PrintQueueConf
+ ///
+ /// lista oggetto Json in formato SteamwareSDK.queueConf
+ public List Get()
+ {
+ List answ = MagData.MagDataLayer.man.reportConfJson;
+ // se vuoto... creo!
+ if (answ.Count == 0)
+ {
+ SteamWare.Reports.reportConf currConf = new SteamWare.Reports.reportConf()
+ {
+ name = "none",
+ template = "none.rdlc"
+ };
+ answ.Add(currConf);
+ }
+ return answ;
+ }
+
+ #endregion Public Methods
+ }
+}
\ No newline at end of file
diff --git a/MP-MAG/MP-MAG.csproj b/MP-MAG/MP-MAG.csproj
index 746a3acc..f07fa9b7 100644
--- a/MP-MAG/MP-MAG.csproj
+++ b/MP-MAG/MP-MAG.csproj
@@ -129,14 +129,14 @@
..\packages\StackExchange.Redis.2.2.4\lib\net461\StackExchange.Redis.dll
-
- ..\packages\SteamWare.5.0.2103.754\lib\net462\SteamWare.dll
+
+ ..\packages\SteamWare.5.0.2104.757\lib\net462\SteamWare.dll
-
- ..\packages\SteamWare.Logger.5.0.2103.754\lib\net462\SteamWare.Logger.dll
+
+ ..\packages\SteamWare.Logger.5.0.2104.757\lib\net462\SteamWare.Logger.dll
-
- ..\packages\SteamWare.Reports.5.0.2103.754\lib\net462\SteamWare.Reports.dll
+
+ ..\packages\SteamWare.Reports.5.0.2104.757\lib\net462\SteamWare.Reports.dll
@@ -306,6 +306,7 @@
ASPXCodeBehind
+
@@ -770,6 +771,8 @@
+
+
Always
@@ -819,6 +822,9 @@
+
+ PreserveNewest
+
@@ -861,6 +867,8 @@
+
+
diff --git a/MP-MAG/Reports/reportConf.json b/MP-MAG/Reports/reportConf.json
new file mode 100644
index 00000000..1ad3ca0e
--- /dev/null
+++ b/MP-MAG/Reports/reportConf.json
@@ -0,0 +1,18 @@
+[
+ {
+ "name": "docFinito",
+ "template": "CartellinoFinitiOdette.rdlc"
+ },
+ {
+ "name": "docPackList",
+ "template": "ReportPackList.rdlc"
+ },
+ {
+ "name": "docPedana",
+ "template": "CartellinoPedane.rdlc"
+ },
+ {
+ "name": "docSemilavorato",
+ "template": "CartellinoSemilavorati.rdlc"
+ }
+]
\ No newline at end of file
diff --git a/MP-MAG/packages.config b/MP-MAG/packages.config
index 1c78b3e2..fa79e109 100644
--- a/MP-MAG/packages.config
+++ b/MP-MAG/packages.config
@@ -54,8 +54,9 @@
-
-
+
+
+
diff --git a/MP-MON/MP-MON.csproj b/MP-MON/MP-MON.csproj
index 1f881f60..aa19224e 100644
--- a/MP-MON/MP-MON.csproj
+++ b/MP-MON/MP-MON.csproj
@@ -121,11 +121,11 @@
..\packages\StackExchange.Redis.2.2.4\lib\net461\StackExchange.Redis.dll
True
-
- ..\packages\SteamWare.5.0.2103.754\lib\net462\SteamWare.dll
+
+ ..\packages\SteamWare.5.0.2104.757\lib\net462\SteamWare.dll
-
- ..\packages\SteamWare.Logger.5.0.2103.754\lib\net462\SteamWare.Logger.dll
+
+ ..\packages\SteamWare.Logger.5.0.2104.757\lib\net462\SteamWare.Logger.dll
@@ -390,6 +390,7 @@
+
MapoModel.edmx
@@ -399,6 +400,7 @@
+
@@ -533,6 +535,8 @@
+
+
Designer
diff --git a/MP-MON/Web.config b/MP-MON/Web.config
index 2fa0631d..c34708ea 100644
--- a/MP-MON/Web.config
+++ b/MP-MON/Web.config
@@ -1,4 +1,4 @@
-
+
-
+
-
-
-
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
+
+
-
+
cerco
+ if (tipoDoc != tipoDocumento.docND)
{
- try
+ //cerco in setup queueConf
+ var repConf = reportConfRedis.Find(a => a.name == $"{tipoDoc}");
+ if (repConf != null)
{
- tipoReport = (reportRichiesto)Enum.Parse(typeof(reportRichiesto), coda.template.Replace(".rdlc", ""));
+ try
+ {
+ tipoReport = (reportRichiesto)Enum.Parse(typeof(reportRichiesto), repConf.template.Replace(".rdlc", ""));
+ }
+ catch
+ { }
+ }
+ }
+ // se non trovato esplicitamente
+ if (tipoReport == reportRichiesto.ND)
+ {
+ //cerco in setup queueConf
+ var coda = queueConfRedis.Find(a => a.name == printQueue);
+ if (coda != null)
+ {
+ try
+ {
+ tipoReport = (reportRichiesto)Enum.Parse(typeof(reportRichiesto), coda.template.Replace(".rdlc", ""));
+ }
+ catch
+ { }
}
- catch
- { }
}
// ricerco!
switch (tipoReport)
@@ -407,7 +499,7 @@ namespace MagData
{
bool answ = false;
// controllo se esista UDC
- if (checkDoc(printQueue, keyParam))
+ if (checkDoc(printQueue, tipoDoc, keyParam))
{
answ = reportPrinter.obj.stampaReport(tipoDoc, keyParam, printQueue);
// svuoto code redis salvate..
diff --git a/MagData/packages.config b/MagData/packages.config
index 421d4a3b..8414a59a 100644
--- a/MagData/packages.config
+++ b/MagData/packages.config
@@ -17,8 +17,8 @@
-
-
+
+
diff --git a/MapoDb/MapoDb.csproj b/MapoDb/MapoDb.csproj
index 063134ba..3cdec425 100644
--- a/MapoDb/MapoDb.csproj
+++ b/MapoDb/MapoDb.csproj
@@ -130,11 +130,11 @@
..\packages\StackExchange.Redis.2.2.4\lib\net461\StackExchange.Redis.dll
-
- ..\packages\SteamWare.5.0.2103.754\lib\net462\SteamWare.dll
+
+ ..\packages\SteamWare.5.0.2104.757\lib\net462\SteamWare.dll
-
- ..\packages\SteamWare.Logger.5.0.2103.754\lib\net462\SteamWare.Logger.dll
+
+ ..\packages\SteamWare.Logger.5.0.2104.757\lib\net462\SteamWare.Logger.dll
@@ -423,6 +423,10 @@
+
+
+
+
diff --git a/MapoDb/libzstd.dll b/MapoDb/libzstd.dll
new file mode 100644
index 00000000..e669123c
Binary files /dev/null and b/MapoDb/libzstd.dll differ
diff --git a/MapoDb/mongocrypt.dll b/MapoDb/mongocrypt.dll
new file mode 100644
index 00000000..39d7e016
Binary files /dev/null and b/MapoDb/mongocrypt.dll differ
diff --git a/MapoDb/packages.config b/MapoDb/packages.config
index 4ca90e22..be29a508 100644
--- a/MapoDb/packages.config
+++ b/MapoDb/packages.config
@@ -21,8 +21,8 @@
-
-
+
+
diff --git a/MapoDb/snappy32.dll b/MapoDb/snappy32.dll
new file mode 100644
index 00000000..afc82ca4
Binary files /dev/null and b/MapoDb/snappy32.dll differ
diff --git a/MapoDb/snappy64.dll b/MapoDb/snappy64.dll
new file mode 100644
index 00000000..36cd5fe7
Binary files /dev/null and b/MapoDb/snappy64.dll differ