From 06f3246b6342b0f0910a01be82689d9aca5aa1aa Mon Sep 17 00:00:00 2001
From: George Hazan <george.hazan@gmail.com>
Date: Thu, 21 Nov 2013 14:03:28 +0000
Subject: now it's safe to forget about mmap_sa forever

git-svn-id: http://svn.miranda-ng.org/main/trunk@6954 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
---
 .../Dbx_mmap_SA/Cryptors/Athena/UAthena.pas        | 176 +++++++
 .../Dbx_mmap_SA/Cryptors/Athena/athena.cfg         |  38 ++
 .../Dbx_mmap_SA/Cryptors/Athena/athena.dof         | 136 ++++++
 .../Dbx_mmap_SA/Cryptors/Athena/athena.dpr         | 112 +++++
 .../Dbx_mmap_SA/Cryptors/Athena/athena.rc          |  28 ++
 .../Dbx_mmap_SA/Cryptors/Athena/athena.res         | Bin 0 -> 916 bytes
 .../Dbx_mmap_SA/Cryptors/Athena/make.bat           |  27 ++
 .../Cryptors/Athena/md5_mod256_unit.pas            |  64 +++
 .../Dbx_mmap_SA/Cryptors/Athena/md5_unit.pas       | 212 +++++++++
 .../Dbx_mmap_SA/Cryptors/RC4/rc4_10.vcxproj        | 159 +++++++
 .../Cryptors/RC4/rc4_10.vcxproj.filters            |  30 ++
 .../Dbx_mmap_SA/Cryptors/RC4/rc4_11.vcxproj        | 162 +++++++
 .../Cryptors/RC4/rc4_11.vcxproj.filters            |  30 ++
 .../Dbx_mmap_SA/Cryptors/RC4/rc4_12.vcxproj        | 178 +++++++
 .../Cryptors/RC4/rc4_12.vcxproj.filters            |  30 ++
 .../Dbx_mmap_SA/Cryptors/RC4/res/Version.rc        |  38 ++
 .../Dbx_mmap_SA/Cryptors/RC4/src/Version.h         |  11 +
 .../Dbx_mmap_SA/Cryptors/RC4/src/cryptor.cpp       | 133 ++++++
 .../Dbx_mmap_SA/db3x_mmap_sa_10.vcxproj            | 254 ++++++++++
 .../Dbx_mmap_SA/db3x_mmap_sa_10.vcxproj.filters    | 125 +++++
 .../Dbx_mmap_SA/db3x_mmap_sa_11.vcxproj            | 257 ++++++++++
 .../Dbx_mmap_SA/db3x_mmap_sa_11.vcxproj.filters    | 125 +++++
 .../Dbx_mmap_SA/db3x_mmap_sa_12.vcxproj            | 257 ++++++++++
 .../Dbx_mmap_SA/db3x_mmap_sa_12.vcxproj.filters    | 125 +++++
 plugins/!Deprecated/Dbx_mmap_SA/res/db3x_mmap.rc   | 275 +++++++++++
 plugins/!Deprecated/Dbx_mmap_SA/res/logo.ico       | Bin 0 -> 5430 bytes
 plugins/!Deprecated/Dbx_mmap_SA/res/pass.ico       | Bin 0 -> 1150 bytes
 plugins/!Deprecated/Dbx_mmap_SA/res/version.rc     |  38 ++
 .../!Deprecated/Dbx_mmap_SA/src/commonheaders.h    | 110 +++++
 plugins/!Deprecated/Dbx_mmap_SA/src/dbintf_sa.cpp  | 257 ++++++++++
 plugins/!Deprecated/Dbx_mmap_SA/src/dbintf_sa.h    |  76 +++
 plugins/!Deprecated/Dbx_mmap_SA/src/dialogs.cpp    | 526 +++++++++++++++++++++
 plugins/!Deprecated/Dbx_mmap_SA/src/init.cpp       | 152 ++++++
 plugins/!Deprecated/Dbx_mmap_SA/src/options.h      |  38 ++
 plugins/!Deprecated/Dbx_mmap_SA/src/resource.h     |  54 +++
 plugins/!Deprecated/Dbx_mmap_SA/src/security.cpp   | 358 ++++++++++++++
 plugins/!Deprecated/Dbx_mmap_SA/src/stdafx.cpp     |  18 +
 plugins/!Deprecated/Dbx_mmap_SA/src/version.h      |  14 +
 38 files changed, 4623 insertions(+)
 create mode 100644 plugins/!Deprecated/Dbx_mmap_SA/Cryptors/Athena/UAthena.pas
 create mode 100644 plugins/!Deprecated/Dbx_mmap_SA/Cryptors/Athena/athena.cfg
 create mode 100644 plugins/!Deprecated/Dbx_mmap_SA/Cryptors/Athena/athena.dof
 create mode 100644 plugins/!Deprecated/Dbx_mmap_SA/Cryptors/Athena/athena.dpr
 create mode 100644 plugins/!Deprecated/Dbx_mmap_SA/Cryptors/Athena/athena.rc
 create mode 100644 plugins/!Deprecated/Dbx_mmap_SA/Cryptors/Athena/athena.res
 create mode 100644 plugins/!Deprecated/Dbx_mmap_SA/Cryptors/Athena/make.bat
 create mode 100644 plugins/!Deprecated/Dbx_mmap_SA/Cryptors/Athena/md5_mod256_unit.pas
 create mode 100644 plugins/!Deprecated/Dbx_mmap_SA/Cryptors/Athena/md5_unit.pas
 create mode 100644 plugins/!Deprecated/Dbx_mmap_SA/Cryptors/RC4/rc4_10.vcxproj
 create mode 100644 plugins/!Deprecated/Dbx_mmap_SA/Cryptors/RC4/rc4_10.vcxproj.filters
 create mode 100644 plugins/!Deprecated/Dbx_mmap_SA/Cryptors/RC4/rc4_11.vcxproj
 create mode 100644 plugins/!Deprecated/Dbx_mmap_SA/Cryptors/RC4/rc4_11.vcxproj.filters
 create mode 100644 plugins/!Deprecated/Dbx_mmap_SA/Cryptors/RC4/rc4_12.vcxproj
 create mode 100644 plugins/!Deprecated/Dbx_mmap_SA/Cryptors/RC4/rc4_12.vcxproj.filters
 create mode 100644 plugins/!Deprecated/Dbx_mmap_SA/Cryptors/RC4/res/Version.rc
 create mode 100644 plugins/!Deprecated/Dbx_mmap_SA/Cryptors/RC4/src/Version.h
 create mode 100644 plugins/!Deprecated/Dbx_mmap_SA/Cryptors/RC4/src/cryptor.cpp
 create mode 100644 plugins/!Deprecated/Dbx_mmap_SA/db3x_mmap_sa_10.vcxproj
 create mode 100644 plugins/!Deprecated/Dbx_mmap_SA/db3x_mmap_sa_10.vcxproj.filters
 create mode 100644 plugins/!Deprecated/Dbx_mmap_SA/db3x_mmap_sa_11.vcxproj
 create mode 100644 plugins/!Deprecated/Dbx_mmap_SA/db3x_mmap_sa_11.vcxproj.filters
 create mode 100644 plugins/!Deprecated/Dbx_mmap_SA/db3x_mmap_sa_12.vcxproj
 create mode 100644 plugins/!Deprecated/Dbx_mmap_SA/db3x_mmap_sa_12.vcxproj.filters
 create mode 100644 plugins/!Deprecated/Dbx_mmap_SA/res/db3x_mmap.rc
 create mode 100644 plugins/!Deprecated/Dbx_mmap_SA/res/logo.ico
 create mode 100644 plugins/!Deprecated/Dbx_mmap_SA/res/pass.ico
 create mode 100644 plugins/!Deprecated/Dbx_mmap_SA/res/version.rc
 create mode 100644 plugins/!Deprecated/Dbx_mmap_SA/src/commonheaders.h
 create mode 100644 plugins/!Deprecated/Dbx_mmap_SA/src/dbintf_sa.cpp
 create mode 100644 plugins/!Deprecated/Dbx_mmap_SA/src/dbintf_sa.h
 create mode 100644 plugins/!Deprecated/Dbx_mmap_SA/src/dialogs.cpp
 create mode 100644 plugins/!Deprecated/Dbx_mmap_SA/src/init.cpp
 create mode 100644 plugins/!Deprecated/Dbx_mmap_SA/src/options.h
 create mode 100644 plugins/!Deprecated/Dbx_mmap_SA/src/resource.h
 create mode 100644 plugins/!Deprecated/Dbx_mmap_SA/src/security.cpp
 create mode 100644 plugins/!Deprecated/Dbx_mmap_SA/src/stdafx.cpp
 create mode 100644 plugins/!Deprecated/Dbx_mmap_SA/src/version.h

(limited to 'plugins/!Deprecated')

diff --git a/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/Athena/UAthena.pas b/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/Athena/UAthena.pas
new file mode 100644
index 0000000000..15a9674e0c
--- /dev/null
+++ b/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/Athena/UAthena.pas
@@ -0,0 +1,176 @@
+unit UAthena;
+{
+  Athena: cryptor module for Miranda SecuredMMAP Database driver
+  Copyright 2007-2008 Klyde
+
+  This program is free software; you can redistribute it and/or
+  modify it under the terms of the GNU General Public License
+  as published by the Free Software Foundation; either version 2
+  of the License, or (at your option) any later version.
+
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program; if not, write to the Free Software
+  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+}
+
+
+interface
+uses
+   md5_unit, windows;
+Type
+   Arr  = array of byte;
+   PArr = ^Arr;
+   
+   Function MD5_Mod(const s: AnsiString; block_count: byte): AnsiString;
+   Procedure MakeKey(key: PArr; len: word; const pwd: AnsiString);
+   Procedure EncryptData(key: PArr; data: PByte; size: LongWord);
+   Procedure DecryptData(key: PArr; data: PByte; size: LongWord);
+
+implementation
+//==============================================================================
+Function str_back(const s: AnsiString): AnsiString;
+Var
+   i: integer;
+Begin
+   result := '';
+   for i := Length(s) downto 1 do result := result + s[i];
+end;
+//==============================================================================
+Function MD5_Mod(const s: AnsiString; block_count: byte): AnsiString;
+Var
+   s1, s2, sb : AnsiString;
+   k          : word;
+Begin
+   sb := str_back(s);
+   s2 := '';
+   For k := 1 to block_count do
+   Begin
+      s1 := md5(s + sb);
+      s2 := str_back(s2 + md5(s1+sb+s2));
+   End;
+   result := s2;
+end;
+//==============================================================================
+Procedure MakeKey(key: PArr; len: word; const pwd: AnsiString);
+Var
+   s : AnsiString;
+   i : word;
+   dummy: integer;
+Begin
+   if len > 64 then Len := ((Len div 16) + 1)*16 else Len := 64;
+   SetLength(key^, Len);
+   s := MD5_mod(pwd, len div 16);
+   for i := 1 to length(s) div 2 do
+   begin
+     val('$' + copy(s, i*2 - 1, 2),key^[i-1],dummy);
+   end;
+end;
+//==============================================================================
+Procedure GetNENum(key: arr; var n1, n2: LongWord);
+Var
+   i: LongWord;
+Begin
+   n1 := 0;
+   n2 := 0;
+   for i := 0 to Length(key) - 1 do
+   Begin
+      n1 := n1 + key[i] + (i + 1)*(n1+1);
+      n2 := n2 + key[i] - (i + 1)*(n2+1);
+   end;
+   n1 := n1*2 + 1;
+   n2 := n2*2 + 3;
+end;
+
+//==============================================================================
+Procedure SimGamm(key: PArr; data: PByte; size: LongWord);
+Var
+   kg : Arr;
+   i, n1, n2 : LongWord;
+   lk, k1, k2 : word;
+Begin
+   lk := Length(key^);
+   SetLength(kg, lk);
+   for i := 0 to lk - 1 do kg[i] := key^[i];
+   GetNENum(kg, n1, n2);
+   For i := 1 to size - 1 do
+   Begin
+      if (i mod lk) = 0 then GetNENum(kg, n1, n2);
+      k1 := (i+n1+7)*n2 mod lk;
+      k2 := (i+n2+3)*n1 mod lk;
+
+      PByte(uint_ptr(data)+i)^ := PByte(uint_ptr(data)+i)^ xor kg[k1] xor kg[k2];
+
+      kg[k1] := kg[k1]*k1 + kg[k2] + i*k2;
+      kg[k2] := kg[k2]*k2 + kg[k1] + i*k1;
+   end;
+end;
+//==============================================================================
+Procedure Left(key: PArr; data: PByte; size: LongWord);
+Var
+   k : Arr;
+   i, n1, n2 : LongWord;
+   lk, k1, k2 : word;
+
+Begin
+   lk := Length(key^);
+
+   SetLength(k, lk);
+   for i := 0 to lk - 1 do k[i] := key^[i];
+   GetNENum(k, n1, n2);
+   //---------------------------------------------------------------------------
+   k1 := (n2 + lk)*n1 mod lk;
+   k2 := (n1 + lk)*n2 mod lk;
+   data^ := data^ xor k[k1] xor k[k2];
+
+   //---------------------------------------------------------------------------
+   For i := 1 to size - 1 do
+   Begin
+      k1 := (i+n1)*n2 mod lk;
+      k2 := (i+n2)*n1 mod lk;
+
+      PByte(uint_ptr(data)+i)^ := PByte(uint_ptr(data)+i)^ xor ((PByte(uint_ptr(data)+i-1)^ xor k[k1]) xor k[k2]);
+   end;
+end;
+//==============================================================================
+Procedure Right(key: PArr; data: PByte; size: LongWord);
+Var
+   k : Arr;
+   i, n1, n2 : LongWord;
+   lk, k1, k2 : word;
+Begin
+   lk := Length(key^);
+   SetLength(k, lk);
+   for i := 0 to lk - 1 do k[i] := key^[i];
+   GetNENum(k, n1, n2);
+   //---------------------------------------------------------------------------
+   For i := size - 1 downto 1 do
+   Begin
+      k1 := (i+n1)*n2 mod lk;
+      k2 := (i+n2)*n1 mod lk;
+      PByte(uint_ptr(data) + i)^ := PByte(uint_ptr(data)+i)^ xor ((PByte(uint_ptr(data) + i - 1)^ xor k[k1]) xor k[k2]);
+   end;
+   //---------------------------------------------------------------------------
+   k1 := (n2 + lk)*n1 mod lk;
+   k2 := (n1 + lk)*n2 mod lk;
+   data^ := data^ xor k[k1] xor k[k2];
+end;
+//==============================================================================
+Procedure EncryptData(key: PArr; data: PByte; size: LongWord);
+Begin
+   Left(key, data, size);
+   SimGamm(key, data, size);
+end;
+//==============================================================================
+Procedure DecryptData(key: PArr; data: PByte; size: LongWord);
+Begin
+   SimGamm(key, data, size);
+   Right(key, data, size);
+end;
+//==============================================================================
+end.
+
diff --git a/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/Athena/athena.cfg b/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/Athena/athena.cfg
new file mode 100644
index 0000000000..273efb4bc2
--- /dev/null
+++ b/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/Athena/athena.cfg
@@ -0,0 +1,38 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U-
+-$V+
+-$W-
+-$X+
+-$YD
+-$Z1
+-cg
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-LE"d:\program files\borland\delphi7\Projects\Bpl"
+-LN"d:\program files\borland\delphi7\Projects\Bpl"
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/Athena/athena.dof b/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/Athena/athena.dof
new file mode 100644
index 0000000000..d43219d29e
--- /dev/null
+++ b/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/Athena/athena.dof
@@ -0,0 +1,136 @@
+[FileVersion]
+Version=7.0
+[Compiler]
+A=8
+B=0
+C=1
+D=1
+E=0
+F=0
+G=1
+H=1
+I=1
+J=0
+K=0
+L=1
+M=0
+N=1
+O=1
+P=1
+Q=0
+R=0
+S=0
+T=0
+U=0
+V=1
+W=0
+X=1
+Y=1
+Z=1
+ShowHints=1
+ShowWarnings=1
+UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+NamespacePrefix=
+SymbolDeprecated=1
+SymbolLibrary=1
+SymbolPlatform=1
+UnitLibrary=1
+UnitPlatform=1
+UnitDeprecated=1
+HResultCompat=1
+HidingMember=1
+HiddenVirtual=1
+Garbage=1
+BoundsError=1
+ZeroNilCompat=1
+StringConstTruncated=1
+ForLoopVarVarPar=1
+TypedConstVarPar=1
+AsgToTypedConst=1
+CaseLabelRange=1
+ForVariable=1
+ConstructingAbstract=1
+ComparisonFalse=1
+ComparisonTrue=1
+ComparingSignedUnsigned=1
+CombiningSignedUnsigned=1
+UnsupportedConstruct=1
+FileOpen=1
+FileOpenUnitSrc=1
+BadGlobalSymbol=1
+DuplicateConstructorDestructor=1
+InvalidDirective=1
+PackageNoLink=1
+PackageThreadVar=1
+ImplicitImport=1
+HPPEMITIgnored=1
+NoRetVal=1
+UseBeforeDef=1
+ForLoopVarUndef=1
+UnitNameMismatch=1
+NoCFGFileFound=1
+MessageDirective=1
+ImplicitVariants=1
+UnicodeToLocale=1
+LocaleToUnicode=1
+ImagebaseMultiple=1
+SuspiciousTypecast=1
+PrivatePropAccessor=1
+UnsafeType=0
+UnsafeCode=0
+UnsafeCast=0
+[Linker]
+MapFile=0
+OutputObjs=0
+ConsoleApp=1
+DebugInfo=0
+RemoteSymbols=0
+MinStackSize=16384
+MaxStackSize=1048576
+ImageBase=4194304
+ExeDescription=
+[Directories]
+OutputDir=
+UnitOutputDir=
+PackageDLLOutputDir=
+PackageDCPOutputDir=
+SearchPath=
+Packages=
+Conditionals=
+DebugSourceDirs=
+UsePackages=0
+[Parameters]
+RunParams=
+HostApplication=
+Launcher=
+UseLauncher=0
+DebugCWD=
+[Language]
+ActiveLang=
+ProjectLang=
+RootDir=
+[Version Info]
+IncludeVerInfo=0
+AutoIncBuild=0
+MajorVer=1
+MinorVer=0
+Release=0
+Build=0
+Debug=0
+PreRelease=0
+Special=0
+Private=0
+DLL=0
+Locale=1049
+CodePage=1251
+[Version Info Keys]
+CompanyName=
+FileDescription=
+FileVersion=1.0.0.0
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=
+ProductVersion=1.0.0.0
+Comments=
diff --git a/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/Athena/athena.dpr b/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/Athena/athena.dpr
new file mode 100644
index 0000000000..4824b9b01f
--- /dev/null
+++ b/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/Athena/athena.dpr
@@ -0,0 +1,112 @@
+library athena;
+
+{
+  Athena: cryptor module for Miranda SecuredMMAP Database driver
+  Copyright 2007-2008 Klyde
+
+  This program is free software; you can redistribute it and/or
+  modify it under the terms of the GNU General Public License
+  as published by the Free Software Foundation; either version 2
+  of the License, or (at your option) any later version.
+
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program; if not, write to the Free Software
+  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+}
+
+uses
+  UAthena,
+  WIndows;
+
+{$R *.res}
+
+type
+  TGenerateKey = function(key: PAnsiChar): PArr; stdcall;
+  TFreeKey = procedure(key: PArr); stdcall;
+  TEncryptMem = procedure(data: PByte; size: LongWord; key: PArr); stdcall;
+
+  PCryptorInfo = ^TCryptorInfo;
+  TCryptorInfo = record
+    GenerateKey: TGenerateKey;
+    FreeKey: TFreeKey;
+
+    EncryptMem: TEncryptMem;
+    DecryptMem: TEncryptMem;
+
+    Name: PAnsiChar;
+    Info: PAnsiChar;
+    Author: PAnsiChar;
+    Site: PAnsiChar;
+    Email: PAnsiChar;
+
+    version: dword;
+
+    uid: word;
+  end;
+
+var
+  Info: TCryptorInfo;
+
+
+function PLUGIN_MAKE_VERSION(a,b,c,d: Cardinal): integer;
+begin
+  Result := (a shl 24) or (b shl 16) or (c shl 8) or d;
+end;
+
+function GenerateKey(pwd: PAnsiChar): PArr; stdcall;
+var
+  a: PArr;
+begin
+
+  new(a);
+  MakeKey(a, 512, pwd);
+  result := a;
+
+end;
+
+procedure FreeKey(key: PArr); stdcall;
+begin
+  FreeMem(key);
+end;
+
+procedure EncryptMem(data: PByte; size: LongWord; key: PArr); stdcall;
+begin
+  if size <= 0 then exit;
+  EncryptData(key, data, size);
+end;
+
+procedure DecryptMem(data: PByte; size: LongWord; key: PArr); stdcall;
+begin
+  if size <= 0 then exit;
+  DecryptData(key, data, size);
+end;
+
+function GetCryptor: PCryptorInfo; stdcall;
+begin
+  Info.Name := 'Athena';
+  Info.Author := 'Klyde';
+  Info.Site := 'http://cityopen.ru/forum/journal.php?user=151';
+  Info.Email := 'xxxmara@mail.ru';
+  Info.Info := 'Secure alghoritm developed in russian universities';
+
+  Info.version := PLUGIN_MAKE_VERSION(0,0,3,0);
+
+  Info.UID := $FEA8;
+
+  Info.GenerateKey := GenerateKey;
+  Info.FreeKey := FreeKey;
+  Info.EncryptMem := EncryptMem;
+  Info.DecryptMem := DecryptMem;
+
+  result := @Info;
+end;
+
+exports GetCryptor;
+
+begin
+end.
diff --git a/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/Athena/athena.rc b/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/Athena/athena.rc
new file mode 100644
index 0000000000..bc035ab02a
--- /dev/null
+++ b/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/Athena/athena.rc
@@ -0,0 +1,28 @@
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION 0,0,3,0
+ PRODUCTVERSION 0,0,3,0
+ FILEFLAGSMASK $3F
+ FILEOS 4
+ FILETYPE 2
+ FILESUBTYPE 0
+BEGIN
+  BLOCK "StringFileInfo"
+  BEGIN
+    BLOCK "000004b0"
+    BEGIN
+      VALUE "CompanyName",""
+      VALUE "Comments", "Secure alghoritm developed in russian universities"0
+      VALUE "FileDescription", "Secure alghoritm developed in russian universities"0
+      VALUE "FileVersion", "0, 0, 3, 0 "0
+      VALUE "InternalName", "Athena"0
+      VALUE "OriginalFilename", "Athena.dll"0
+      VALUE "ProductName", "Athena"0
+      VALUE "ProductVersion", "0, 0, 3, 0 "0
+      VALUE "SpecialBuild", ".04.2010 "0
+    END
+  END
+  BLOCK "VarFileInfo"
+  BEGIN
+      VALUE "Translation",0,1200
+  END
+END
\ No newline at end of file
diff --git a/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/Athena/athena.res b/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/Athena/athena.res
new file mode 100644
index 0000000000..908733f3de
Binary files /dev/null and b/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/Athena/athena.res differ
diff --git a/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/Athena/make.bat b/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/Athena/make.bat
new file mode 100644
index 0000000000..438629ae85
--- /dev/null
+++ b/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/Athena/make.bat
@@ -0,0 +1,27 @@
+@echo off
+set p1=%1
+set p2=%2
+if  "%p1%" == "" (echo "please specify target platform by adding 'fpc' or 'fpc64 parameter to command line!'"&&pause&&goto :EOF)
+if  "%p2%" == "" (echo "please specify target output directory by adding 10 for bin10 or 11 for bin11 or 12 for bin12 to command line!'"&&pause&&goto :EOF)
+if /i '%1' == 'fpc' (
+  set OUTDIR="..\..\..\..\bin%2\Release\Plugins\Cryptors"
+  set FPCBIN=fpc.exe
+) else if /i '%1' == 'fpc64' (
+  set OUTDIR="..\..\..\..\bin%2\Release64\Plugins\Cryptors"
+  set FPCBIN=ppcrossx64.exe
+)
+set PROJECT=Athena
+
+if not exist %OUTDIR% mkdir %OUTDIR%
+md tmp
+
+rem brcc32.exe %myopts% athena.rc     -fooathena.res
+
+%FPCBIN% @..\..\..\Utils.pas\fpc.cfg %PROJECT%.dpr %3 %4 %5 %6 %7 %8 %9
+if errorlevel 1 exit /b 1
+
+move .\tmp\%PROJECT%.dll %OUTDIR%
+move .\tmp\%PROJECT%.map .
+del /Q tmp\*
+rd tmp
+exit /b 0
diff --git a/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/Athena/md5_mod256_unit.pas b/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/Athena/md5_mod256_unit.pas
new file mode 100644
index 0000000000..53b2d996da
--- /dev/null
+++ b/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/Athena/md5_mod256_unit.pas
@@ -0,0 +1,64 @@
+unit md5_mod256_unit;
+interface
+
+Uses
+   MD5_Unit, sysutils, classes, windows;
+Const
+   MSize = 256;
+Type
+   tiAr = array [0..255] of integer;
+
+Function MD5_Mod(s: String): String;
+Function MD5_Matrix(s: string): tArr;
+Function str_back(s: String): String;
+
+implementation
+//==============================================================================
+Function str_back(s: String): String;
+Var
+   i: integer;
+Begin
+   result := '';
+   for i := Length(s) downto 1 do result := result + s[i];
+end;
+//==============================================================================
+Function MD5_Mod_back(s: String): String;
+Var
+   s1, s2 : String;
+   k      : word;
+Begin
+   s1 := str_back(s)+s;
+   s2 := md5(str_back(s)+str_back(md5(s))+
+             str_back(md5(s+s))+
+             str_back(md5(s+s+s))+
+             str_back(md5(s+s+s+s))+
+             str_back(md5(s+s+s+'asddsa'+s)));
+   For k:=1 to trunc(sqrt(MSize))-1 do
+   Begin
+      s1 := md5(s1 + s2 + md5(s1+s1+s2+s) + md5(s2+s2+s1+s) + s);
+      s2 := str_back(s2 + str_back(md5(s1+s2+md5(s))));
+   End;
+   result:=s2;
+end;
+//==============================================================================
+Function MD5_Mod(s: String): String;
+Var
+   s1, s2 : String;
+   k      : word;
+Begin
+   s1 := s + AnsiUpperCase(s) + AnsiLowerCase(s);
+   s2 := md5(s+md5(s)+md5(s+s)+md5(s+AnsiUpperCase(s)+s)+md5(s+AnsiLowerCase(s+s)+s)+md5(s+s+str_back(s+s+'qweewq')));
+   For k:=1 to trunc(sqrt(MSize))-1 do
+   Begin
+      s1 := md5(s1 + str_back(s2) + md5(s1+s1+s2+s) + str_back(md5(s2+s2+s1+s)) + s);
+      s2 := str_back(s2 + md5(s1+AnsiUpperCase(s2+md5(s))));
+   End;
+   result:=s2;
+end;
+//==============================================================================
+
+//==============================================================================
+end.
+
+
+
diff --git a/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/Athena/md5_unit.pas b/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/Athena/md5_unit.pas
new file mode 100644
index 0000000000..f9a130b729
--- /dev/null
+++ b/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/Athena/md5_unit.pas
@@ -0,0 +1,212 @@
+unit md5_unit;
+
+interface
+
+uses   Windows;
+Type
+   TMD5 = Array [0..15] of byte;
+
+function MD5(const s: AnsiString): AnsiString;
+function MD5_arr(const s: AnsiString): TMD5;
+
+implementation
+//==============================================================================
+const
+  HexDigitChr  : array [0..15] of AnsiChar = ('0','1','2','3','4','5','6','7',
+                                              '8','9','A','B','C','D','E','F');
+
+function Int2Hex(Value:dword;Digits:integer=0):AnsiString;
+var
+  i:cardinal;
+  buf:array [0..31] of AnsiChar;
+begin
+  if Digits<=0 then
+  begin
+    Digits:=0;
+    i:=Value;
+    repeat
+      i:=i shr 4;
+      inc(Digits);
+    until i=0;
+  end;
+  
+  buf[Digits]:=#0;
+  repeat
+    Dec(Digits);
+    buf[Digits]:=AnsiChar(HexDigitChr[Value and $F]);
+    Value:=Value shr 4;
+  until Digits=0;
+  result:=buf;
+end;
+//==============================================================================
+function MD5_arr(const s: AnsiString): TMD5;
+var
+   a : TMD5;
+   LenHi, LenLo: longword;
+   Index: DWord;
+   HashBuffer  : array[0..63] of byte;
+   CurrentHash : array[0..3] of DWord;
+
+   procedure Burn;
+   begin
+      LenHi:= 0; LenLo:= 0;
+      Index:= 0;
+      FillChar(HashBuffer,Sizeof(HashBuffer),0);
+      FillChar(CurrentHash,Sizeof(CurrentHash),0);
+   end;
+
+   procedure Init;
+   begin
+      Burn;
+      CurrentHash[0]:= $67452301;
+      CurrentHash[1]:= $efcdab89;
+      CurrentHash[2]:= $98badcfe;
+      CurrentHash[3]:= $10325476;
+   end;
+
+   function LRot32(a, b: longword): longword;
+   begin
+      Result:= (a shl b) or (a shr (32-b));
+   end;
+
+   procedure Compress;
+   var
+      Data : array[0..15] of dword;
+      A, B, C, D: dword;
+   begin
+      Move(HashBuffer,Data,Sizeof(Data));
+      A:= CurrentHash[0];
+      B:= CurrentHash[1];
+      C:= CurrentHash[2];
+      D:= CurrentHash[3];
+
+      A:= B + LRot32(A + (D xor (B and (C xor D))) + Data[ 0] + $d76aa478,7);
+      D:= A + LRot32(D + (C xor (A and (B xor C))) + Data[ 1] + $e8c7b756,12);
+      C:= D + LRot32(C + (B xor (D and (A xor B))) + Data[ 2] + $242070db,17);
+      B:= C + LRot32(B + (A xor (C and (D xor A))) + Data[ 3] + $c1bdceee,22);
+      A:= B + LRot32(A + (D xor (B and (C xor D))) + Data[ 4] + $f57c0faf,7);
+      D:= A + LRot32(D + (C xor (A and (B xor C))) + Data[ 5] + $4787c62a,12);
+      C:= D + LRot32(C + (B xor (D and (A xor B))) + Data[ 6] + $a8304613,17);
+      B:= C + LRot32(B + (A xor (C and (D xor A))) + Data[ 7] + $fd469501,22);
+      A:= B + LRot32(A + (D xor (B and (C xor D))) + Data[ 8] + $698098d8,7);
+      D:= A + LRot32(D + (C xor (A and (B xor C))) + Data[ 9] + $8b44f7af,12);
+      C:= D + LRot32(C + (B xor (D and (A xor B))) + Data[10] + $ffff5bb1,17);
+      B:= C + LRot32(B + (A xor (C and (D xor A))) + Data[11] + $895cd7be,22);
+      A:= B + LRot32(A + (D xor (B and (C xor D))) + Data[12] + $6b901122,7);
+      D:= A + LRot32(D + (C xor (A and (B xor C))) + Data[13] + $fd987193,12);
+      C:= D + LRot32(C + (B xor (D and (A xor B))) + Data[14] + $a679438e,17);
+      B:= C + LRot32(B + (A xor (C and (D xor A))) + Data[15] + $49b40821,22);
+    
+      A:= B + LRot32(A + (C xor (D and (B xor C))) + Data[ 1] + $f61e2562,5);
+      D:= A + LRot32(D + (B xor (C and (A xor B))) + Data[ 6] + $c040b340,9);
+      C:= D + LRot32(C + (A xor (B and (D xor A))) + Data[11] + $265e5a51,14);
+      B:= C + LRot32(B + (D xor (A and (C xor D))) + Data[ 0] + $e9b6c7aa,20);
+      A:= B + LRot32(A + (C xor (D and (B xor C))) + Data[ 5] + $d62f105d,5);
+      D:= A + LRot32(D + (B xor (C and (A xor B))) + Data[10] + $02441453,9);
+      C:= D + LRot32(C + (A xor (B and (D xor A))) + Data[15] + $d8a1e681,14);
+      B:= C + LRot32(B + (D xor (A and (C xor D))) + Data[ 4] + $e7d3fbc8,20);
+      A:= B + LRot32(A + (C xor (D and (B xor C))) + Data[ 9] + $21e1cde6,5);
+      D:= A + LRot32(D + (B xor (C and (A xor B))) + Data[14] + $c33707d6,9);
+      C:= D + LRot32(C + (A xor (B and (D xor A))) + Data[ 3] + $f4d50d87,14);
+      B:= C + LRot32(B + (D xor (A and (C xor D))) + Data[ 8] + $455a14ed,20);
+      A:= B + LRot32(A + (C xor (D and (B xor C))) + Data[13] + $a9e3e905,5);
+      D:= A + LRot32(D + (B xor (C and (A xor B))) + Data[ 2] + $fcefa3f8,9);
+      C:= D + LRot32(C + (A xor (B and (D xor A))) + Data[ 7] + $676f02d9,14);
+      B:= C + LRot32(B + (D xor (A and (C xor D))) + Data[12] + $8d2a4c8a,20);
+    
+      A:= B + LRot32(A + (B xor C xor D) + Data[ 5] + $fffa3942,4);
+      D:= A + LRot32(D + (A xor B xor C) + Data[ 8] + $8771f681,11);
+      C:= D + LRot32(C + (D xor A xor B) + Data[11] + $6d9d6122,16);
+      B:= C + LRot32(B + (C xor D xor A) + Data[14] + $fde5380c,23);
+      A:= B + LRot32(A + (B xor C xor D) + Data[ 1] + $a4beea44,4);
+      D:= A + LRot32(D + (A xor B xor C) + Data[ 4] + $4bdecfa9,11);
+      C:= D + LRot32(C + (D xor A xor B) + Data[ 7] + $f6bb4b60,16);
+      B:= C + LRot32(B + (C xor D xor A) + Data[10] + $bebfbc70,23);
+      A:= B + LRot32(A + (B xor C xor D) + Data[13] + $289b7ec6,4);
+      D:= A + LRot32(D + (A xor B xor C) + Data[ 0] + $eaa127fa,11);
+      C:= D + LRot32(C + (D xor A xor B) + Data[ 3] + $d4ef3085,16);
+      B:= C + LRot32(B + (C xor D xor A) + Data[ 6] + $04881d05,23);
+      A:= B + LRot32(A + (B xor C xor D) + Data[ 9] + $d9d4d039,4);
+      D:= A + LRot32(D + (A xor B xor C) + Data[12] + $e6db99e5,11);
+      C:= D + LRot32(C + (D xor A xor B) + Data[15] + $1fa27cf8,16);
+      B:= C + LRot32(B + (C xor D xor A) + Data[ 2] + $c4ac5665,23);
+    
+      A:= B + LRot32(A + (C xor (B or (not D))) + Data[ 0] + $f4292244,6);
+      D:= A + LRot32(D + (B xor (A or (not C))) + Data[ 7] + $432aff97,10);
+      C:= D + LRot32(C + (A xor (D or (not B))) + Data[14] + $ab9423a7,15);
+      B:= C + LRot32(B + (D xor (C or (not A))) + Data[ 5] + $fc93a039,21);
+      A:= B + LRot32(A + (C xor (B or (not D))) + Data[12] + $655b59c3,6);
+      D:= A + LRot32(D + (B xor (A or (not C))) + Data[ 3] + $8f0ccc92,10);
+      C:= D + LRot32(C + (A xor (D or (not B))) + Data[10] + $ffeff47d,15);
+      B:= C + LRot32(B + (D xor (C or (not A))) + Data[ 1] + $85845dd1,21);
+      A:= B + LRot32(A + (C xor (B or (not D))) + Data[ 8] + $6fa87e4f,6);
+      D:= A + LRot32(D + (B xor (A or (not C))) + Data[15] + $fe2ce6e0,10);
+      C:= D + LRot32(C + (A xor (D or (not B))) + Data[ 6] + $a3014314,15);
+      B:= C + LRot32(B + (D xor (C or (not A))) + Data[13] + $4e0811a1,21);
+      A:= B + LRot32(A + (C xor (B or (not D))) + Data[ 4] + $f7537e82,6);
+      D:= A + LRot32(D + (B xor (A or (not C))) + Data[11] + $bd3af235,10);
+      C:= D + LRot32(C + (A xor (D or (not B))) + Data[ 2] + $2ad7d2bb,15);
+      B:= C + LRot32(B + (D xor (C or (not A))) + Data[ 9] + $eb86d391,21);
+    
+      Inc(CurrentHash[0],A);
+      Inc(CurrentHash[1],B);
+      Inc(CurrentHash[2],C);
+      Inc(CurrentHash[3],D);
+      Index:= 0;
+      FillChar(HashBuffer,Sizeof(HashBuffer),0);
+   end;
+
+procedure Update(const Buffer; Size: longword);
+var
+   PBuf: ^byte;
+begin
+   Inc(LenHi,Size shr 29);
+   Inc(LenLo,Size*8);
+   if LenLo < (Size*8) then  Inc(LenHi);
+   PBuf:= @Buffer;
+   while Size> 0 do
+   begin
+      if (Sizeof(HashBuffer)-Index)<= DWord(Size) then
+      begin
+         Move(PBuf^,HashBuffer[Index],Sizeof(HashBuffer)-Index);
+         Dec(Size,Sizeof(HashBuffer)-Index);
+         Inc(PBuf,Sizeof(HashBuffer)-Index);
+         Compress;
+       end else
+       begin
+          Move(PBuf^,HashBuffer[Index],Size);
+          Inc(Index,Size);
+          Size:= 0;
+       end;
+   end;
+end;
+
+procedure Final(var Digest);
+begin
+   HashBuffer[Index] := $80;
+   if Index >= 56 then Compress;
+   PDWord(@HashBuffer[56])^ := LenLo;
+   PDWord(@HashBuffer[60])^ := LenHi;
+   Compress;
+   Move(CurrentHash, Digest, Sizeof(CurrentHash));
+   Burn;
+end;
+
+begin
+   Init;
+   Update(s[1], Length(s));
+   Final(a);
+   result := a;
+end;
+//==============================================================================
+function MD5(const s: AnsiString): AnsiString;
+var
+  a : TMD5;
+  i : integer;
+begin
+   a := MD5_arr(s);
+   result := '';
+   for i := 0 to 15 do result := result + Int2Hex(a[i], 2);
+end;
+
+end.
diff --git a/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/RC4/rc4_10.vcxproj b/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/RC4/rc4_10.vcxproj
new file mode 100644
index 0000000000..b4485696b0
--- /dev/null
+++ b/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/RC4/rc4_10.vcxproj
@@ -0,0 +1,159 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{E38B4212-53BC-49A7-B821-9A99DB4774C6}</ProjectGuid>
+    <ProjectName>RC4</ProjectName>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <CharacterSet>MultiByte</CharacterSet>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <CharacterSet>MultiByte</CharacterSet>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\Plugins\Cryptors\</OutDir>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\Plugins\Cryptors\</OutDir>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Configuration)64\Plugins\Cryptors\</OutDir>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Configuration)64\Plugins\Cryptors\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\Obj\$(ProjectName)\</IntDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\Obj\$(ProjectName)\</IntDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Configuration)64\Obj\$(ProjectName)\</IntDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Configuration)64\Obj\$(ProjectName)\</IntDir>
+    <IgnoreImportLibrary>true</IgnoreImportLibrary>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <ClCompile>
+      <Optimization>Full</Optimization>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <WarningLevel>Level3</WarningLevel>
+      <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
+      <ExceptionHandling>false</ExceptionHandling>
+    </ClCompile>
+    <Link>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <SubSystem>Windows</SubSystem>
+      <OptimizeReferences>true</OptimizeReferences>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <AdditionalLibraryDirectories>$(ProfileDir)..\..\..\..\bin10\lib</AdditionalLibraryDirectories>
+      <AdditionalOptions>/PDBALTPATH:%_PDB%</AdditionalOptions>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <WarningLevel>Level3</WarningLevel>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+      <ExceptionHandling>false</ExceptionHandling>
+    </ClCompile>
+    <Link>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <SubSystem>Windows</SubSystem>
+      <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <AdditionalLibraryDirectories>$(ProfileDir)..\..\..\..\bin10\lib</AdditionalLibraryDirectories>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <ClCompile>
+      <Optimization>Full</Optimization>
+      <PreprocessorDefinitions>NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <WarningLevel>Level3</WarningLevel>
+      <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
+      <ExceptionHandling>false</ExceptionHandling>
+    </ClCompile>
+    <Link>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <SubSystem>Windows</SubSystem>
+      <OptimizeReferences>true</OptimizeReferences>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <AdditionalLibraryDirectories>$(ProfileDir)..\..\..\..\bin10\lib</AdditionalLibraryDirectories>
+      <AdditionalOptions>/PDBALTPATH:%_PDB%</AdditionalOptions>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <PreprocessorDefinitions>_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <WarningLevel>Level3</WarningLevel>
+      <ExceptionHandling>false</ExceptionHandling>
+    </ClCompile>
+    <Link>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <SubSystem>Windows</SubSystem>
+      <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <AdditionalLibraryDirectories>$(ProfileDir)..\..\..\..\bin10\lib</AdditionalLibraryDirectories>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="src\cryptor.cpp" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="src\Version.h" />
+  </ItemGroup>
+  <ItemGroup>
+    <ResourceCompile Include="res\Version.rc" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/RC4/rc4_10.vcxproj.filters b/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/RC4/rc4_10.vcxproj.filters
new file mode 100644
index 0000000000..5842bc8c63
--- /dev/null
+++ b/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/RC4/rc4_10.vcxproj.filters
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup>
+    <Filter Include="Source Files">
+      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+    </Filter>
+    <Filter Include="Resource Files">
+      <UniqueIdentifier>{d9ef4bec-040d-4cca-8faa-698d1448fb23}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Header Files">
+      <UniqueIdentifier>{27e27fc6-b7a7-4c5c-a051-e9cad5b16d52}</UniqueIdentifier>
+    </Filter>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="src\cryptor.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="src\Version.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+  </ItemGroup>
+  <ItemGroup>
+    <ResourceCompile Include="res\Version.rc">
+      <Filter>Resource Files</Filter>
+    </ResourceCompile>
+  </ItemGroup>
+</Project>
\ No newline at end of file
diff --git a/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/RC4/rc4_11.vcxproj b/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/RC4/rc4_11.vcxproj
new file mode 100644
index 0000000000..5cdc8d3a47
--- /dev/null
+++ b/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/RC4/rc4_11.vcxproj
@@ -0,0 +1,162 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{E38B4212-53BC-49A7-B821-9A99DB4774C6}</ProjectGuid>
+    <ProjectName>RC4</ProjectName>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <CharacterSet>MultiByte</CharacterSet>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v110_xp</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <CharacterSet>MultiByte</CharacterSet>
+    <PlatformToolset>v110_xp</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <CharacterSet>MultiByte</CharacterSet>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v110_xp</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <CharacterSet>MultiByte</CharacterSet>
+    <PlatformToolset>v110_xp</PlatformToolset>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\Plugins\Cryptors\</OutDir>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\Plugins\Cryptors\</OutDir>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Configuration)64\Plugins\Cryptors\</OutDir>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Configuration)64\Plugins\Cryptors\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\Obj\$(ProjectName)\</IntDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\Obj\$(ProjectName)\</IntDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Configuration)64\Obj\$(ProjectName)\</IntDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Configuration)64\Obj\$(ProjectName)\</IntDir>
+    <IgnoreImportLibrary>true</IgnoreImportLibrary>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <ClCompile>
+      <Optimization>Full</Optimization>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <WarningLevel>Level3</WarningLevel>
+      <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
+      <ExceptionHandling>false</ExceptionHandling>
+    </ClCompile>
+    <Link>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <SubSystem>Windows</SubSystem>
+      <OptimizeReferences>true</OptimizeReferences>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <AdditionalLibraryDirectories>$(ProfileDir)..\..\..\..\bin11\lib</AdditionalLibraryDirectories>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <WarningLevel>Level3</WarningLevel>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+      <ExceptionHandling>false</ExceptionHandling>
+    </ClCompile>
+    <Link>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <SubSystem>Windows</SubSystem>
+      <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <AdditionalLibraryDirectories>$(ProfileDir)..\..\..\..\bin11\lib</AdditionalLibraryDirectories>
+      <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <ClCompile>
+      <Optimization>Full</Optimization>
+      <PreprocessorDefinitions>NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <WarningLevel>Level3</WarningLevel>
+      <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
+      <ExceptionHandling>false</ExceptionHandling>
+    </ClCompile>
+    <Link>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <SubSystem>Windows</SubSystem>
+      <OptimizeReferences>true</OptimizeReferences>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <AdditionalLibraryDirectories>$(ProfileDir)..\..\..\..\bin11\lib</AdditionalLibraryDirectories>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <PreprocessorDefinitions>_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <WarningLevel>Level3</WarningLevel>
+      <ExceptionHandling>false</ExceptionHandling>
+    </ClCompile>
+    <Link>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <SubSystem>Windows</SubSystem>
+      <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <AdditionalLibraryDirectories>$(ProfileDir)..\..\..\..\bin11\lib</AdditionalLibraryDirectories>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="src\cryptor.cpp" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="src\Version.h" />
+  </ItemGroup>
+  <ItemGroup>
+    <ResourceCompile Include="res\Version.rc" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/RC4/rc4_11.vcxproj.filters b/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/RC4/rc4_11.vcxproj.filters
new file mode 100644
index 0000000000..5842bc8c63
--- /dev/null
+++ b/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/RC4/rc4_11.vcxproj.filters
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup>
+    <Filter Include="Source Files">
+      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+    </Filter>
+    <Filter Include="Resource Files">
+      <UniqueIdentifier>{d9ef4bec-040d-4cca-8faa-698d1448fb23}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Header Files">
+      <UniqueIdentifier>{27e27fc6-b7a7-4c5c-a051-e9cad5b16d52}</UniqueIdentifier>
+    </Filter>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="src\cryptor.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="src\Version.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+  </ItemGroup>
+  <ItemGroup>
+    <ResourceCompile Include="res\Version.rc">
+      <Filter>Resource Files</Filter>
+    </ResourceCompile>
+  </ItemGroup>
+</Project>
\ No newline at end of file
diff --git a/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/RC4/rc4_12.vcxproj b/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/RC4/rc4_12.vcxproj
new file mode 100644
index 0000000000..8b9f9cf7ce
--- /dev/null
+++ b/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/RC4/rc4_12.vcxproj
@@ -0,0 +1,178 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{E38B4212-53BC-49A7-B821-9A99DB4774C6}</ProjectGuid>
+    <ProjectName>RC4</ProjectName>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <CharacterSet>MultiByte</CharacterSet>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v120_xp</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <CharacterSet>MultiByte</CharacterSet>
+    <PlatformToolset>v120_xp</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <CharacterSet>MultiByte</CharacterSet>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v120_xp</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <CharacterSet>MultiByte</CharacterSet>
+    <PlatformToolset>v120_xp</PlatformToolset>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\Plugins\Cryptors\</OutDir>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\Plugins\Cryptors\</OutDir>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Configuration)64\Plugins\Cryptors\</OutDir>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Configuration)64\Plugins\Cryptors\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\Obj\$(ProjectName)\</IntDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\Obj\$(ProjectName)\</IntDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Configuration)64\Obj\$(ProjectName)\</IntDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Configuration)64\Obj\$(ProjectName)\</IntDir>
+    <IgnoreImportLibrary>true</IgnoreImportLibrary>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <ClCompile>
+      <Optimization>Full</Optimization>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <WarningLevel>Level3</WarningLevel>
+      <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
+      <ExceptionHandling>false</ExceptionHandling>
+    </ClCompile>
+    <Link>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <SubSystem>Windows</SubSystem>
+      <OptimizeReferences>true</OptimizeReferences>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <AdditionalLibraryDirectories>$(ProfileDir)..\..\..\..\bin12\lib</AdditionalLibraryDirectories>
+    </Link>
+    <ResourceCompile>
+      <AdditionalIncludeDirectories>..\..\..\..\include\msapi</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ResourceCompile>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <WarningLevel>Level3</WarningLevel>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+      <ExceptionHandling>false</ExceptionHandling>
+    </ClCompile>
+    <Link>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <SubSystem>Windows</SubSystem>
+      <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <AdditionalLibraryDirectories>$(ProfileDir)..\..\..\..\bin12\lib</AdditionalLibraryDirectories>
+      <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
+    </Link>
+    <ResourceCompile>
+      <AdditionalIncludeDirectories>..\..\..\..\include\msapi</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ResourceCompile>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <ClCompile>
+      <Optimization>Full</Optimization>
+      <PreprocessorDefinitions>NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <WarningLevel>Level3</WarningLevel>
+      <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
+      <ExceptionHandling>false</ExceptionHandling>
+    </ClCompile>
+    <Link>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <SubSystem>Windows</SubSystem>
+      <OptimizeReferences>true</OptimizeReferences>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <AdditionalLibraryDirectories>$(ProfileDir)..\..\..\..\bin12\lib</AdditionalLibraryDirectories>
+    </Link>
+    <ResourceCompile>
+      <AdditionalIncludeDirectories>..\..\..\..\include\msapi</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ResourceCompile>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <PreprocessorDefinitions>_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <WarningLevel>Level3</WarningLevel>
+      <ExceptionHandling>false</ExceptionHandling>
+    </ClCompile>
+    <Link>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <SubSystem>Windows</SubSystem>
+      <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <AdditionalLibraryDirectories>$(ProfileDir)..\..\..\..\bin12\lib</AdditionalLibraryDirectories>
+    </Link>
+    <ResourceCompile>
+      <AdditionalIncludeDirectories>..\..\..\..\include\msapi</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ResourceCompile>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="src\cryptor.cpp" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="src\Version.h" />
+  </ItemGroup>
+  <ItemGroup>
+    <ResourceCompile Include="res\Version.rc" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/RC4/rc4_12.vcxproj.filters b/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/RC4/rc4_12.vcxproj.filters
new file mode 100644
index 0000000000..5842bc8c63
--- /dev/null
+++ b/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/RC4/rc4_12.vcxproj.filters
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup>
+    <Filter Include="Source Files">
+      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+    </Filter>
+    <Filter Include="Resource Files">
+      <UniqueIdentifier>{d9ef4bec-040d-4cca-8faa-698d1448fb23}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Header Files">
+      <UniqueIdentifier>{27e27fc6-b7a7-4c5c-a051-e9cad5b16d52}</UniqueIdentifier>
+    </Filter>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="src\cryptor.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="src\Version.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+  </ItemGroup>
+  <ItemGroup>
+    <ResourceCompile Include="res\Version.rc">
+      <Filter>Resource Files</Filter>
+    </ResourceCompile>
+  </ItemGroup>
+</Project>
\ No newline at end of file
diff --git a/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/RC4/res/Version.rc b/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/RC4/res/Version.rc
new file mode 100644
index 0000000000..5bfbab4754
--- /dev/null
+++ b/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/RC4/res/Version.rc
@@ -0,0 +1,38 @@
+// Microsoft Visual C++ generated resource script.
+//
+#ifdef APSTUDIO_INVOKED
+#error this file is not editable by Microsoft Visual C++
+#endif //APSTUDIO_INVOKED
+
+#include "afxres.h"
+#include "..\src\version.h"
+
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION __FILEVERSION_STRING
+ PRODUCTVERSION __FILEVERSION_STRING
+ FILEFLAGSMASK 0x17L
+#ifdef _DEBUG
+ FILEFLAGS 0x1L
+#else
+ FILEFLAGS 0x0L
+#endif
+ FILEOS 0x4L
+ FILETYPE 0x0L
+ FILESUBTYPE 0x0L
+BEGIN
+    BLOCK "StringFileInfo"
+    BEGIN
+        BLOCK "000004b0"
+        BEGIN
+            VALUE "FileDescription", __DESCRIPTION
+            VALUE "InternalName", __PLUGIN_NAME
+            VALUE "LegalCopyright", __COPYRIGHT
+            VALUE "OriginalFilename", __FILENAME
+            VALUE "ProductName", __PLUGIN_NAME
+        END
+    END
+    BLOCK "VarFileInfo"
+    BEGIN
+        VALUE "Translation", 0x0, 1200
+    END
+END
diff --git a/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/RC4/src/Version.h b/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/RC4/src/Version.h
new file mode 100644
index 0000000000..b3cf9b4129
--- /dev/null
+++ b/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/RC4/src/Version.h
@@ -0,0 +1,11 @@
+#define __MAJOR_VERSION				0
+#define __MINOR_VERSION				0
+#define __RELEASE_NUM				0
+#define __BUILD_NUM					1
+
+#define __FILEVERSION_STRING		__MAJOR_VERSION,__MINOR_VERSION,__RELEASE_NUM,__BUILD_NUM
+
+#define __PLUGIN_NAME				"RC4"
+#define __FILENAME					"RC4.dll"
+#define __DESCRIPTION 				"Old, very easy to crack stream cipher"
+#define __COPYRIGHT					"� 2012-13 Miranda NG Team"
diff --git a/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/RC4/src/cryptor.cpp b/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/RC4/src/cryptor.cpp
new file mode 100644
index 0000000000..a673c11fe7
--- /dev/null
+++ b/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/RC4/src/cryptor.cpp
@@ -0,0 +1,133 @@
+#include <windows.h>
+
+#define buf_size 1024
+
+typedef struct{
+	void* (__stdcall *GenerateKey)(char* key);
+	void (__stdcall *FreeKey)(void* key);
+	void (__stdcall *EncryptMem)(BYTE* data, int size, void* key);
+	void (__stdcall *DecryptMem)(BYTE* data, int size, void* key);
+
+    char* Name;
+    char* Info;
+    char* Author;
+    char* Site;
+    char* Email;
+
+	DWORD Version;
+
+	WORD uid;
+} Cryptor;
+
+typedef struct rc4_key
+{
+   BYTE state[256];
+   BYTE x;
+   BYTE y;
+} rc4_key;
+
+#define swap_byte(x,y) t = *(x); *(x) = *(y); *(y) = t
+
+void prepare_key(BYTE *key_data_ptr, size_t key_data_len, rc4_key *key)
+{
+  int i = 0;
+  BYTE t = 0;
+  BYTE index1 = 0;
+  BYTE index2 = 0;
+  BYTE* state = 0;
+  unsigned long counter = 0;
+
+  state = &key->state[0];
+  for(counter = 0; counter < 256; counter++)
+  state[counter] = (BYTE)counter;
+  key->x = 0;
+  key->y = 0;
+  index1 = 0;
+  index2 = 0;
+  for(counter = 0; counter < 256; counter++)
+  {
+    index2 = (key_data_ptr[index1] + state[counter] + index2) % 256;
+    swap_byte(&state[counter], &state[index2]);
+    index1 = (index1 + 1) % key_data_len;
+  }
+}
+
+void rc4(BYTE *buffer_ptr, int buffer_len, rc4_key *key)
+{
+  BYTE t = 0;
+  BYTE x = 0;
+  BYTE y = 0;
+  BYTE* state = 0;
+  BYTE xorIndex = 0;
+  DWORD counter = 0;
+  BYTE old_state[256];
+
+  x = key->x;
+  y = key->y;
+  state = &key->state[0];
+  memcpy(old_state, key->state, 256);
+  for(counter = 0; counter < (DWORD)buffer_len; counter++)
+  {
+    x = (x + 1) % 256;
+    y = (state[x] + y) % 256;
+    swap_byte(&state[x], &state[y]);
+    xorIndex = (state[x] + state[y]) % 256;
+    buffer_ptr[counter] ^= state[xorIndex];
+  }
+  memcpy(key->state, old_state, 256);
+  //key->x = x;
+  //key->y = y;
+}
+
+
+void zero_fill(BYTE * pBuf, size_t bufSize)
+{
+	size_t i;
+	for(i = 0; i < bufSize; i++)
+		pBuf[i] = 0;
+}
+
+void* __stdcall GenerateKey(char* pwd)
+{
+	rc4_key* key;
+	key = (rc4_key*)malloc(sizeof(rc4_key));
+	zero_fill((BYTE*)key, sizeof(key));
+	prepare_key((BYTE*)pwd, strlen(pwd), key);
+	return key;
+}
+
+void __stdcall FreeKey(void* key)
+{
+	free(key);
+}
+
+void __stdcall EncryptMem(BYTE* data, int size, void* key)
+{
+	rc4(data, size, (rc4_key*)key);
+}
+
+void __stdcall DecryptMem(BYTE* data, int size, void* key)
+{
+	rc4(data, size, (rc4_key*)key);
+}
+
+Cryptor cryptor =
+	{
+		GenerateKey,
+		FreeKey,
+		EncryptMem,
+		DecryptMem,
+		"RC4",
+		"Old, very easy to crack stream cipher.",
+		"Unknown",
+		"http://ru.wikipedia.org/wiki/RC4",
+		"nomail",
+		0x00000100,
+		0xDEAD
+	};
+
+
+extern "C" __declspec(dllexport) Cryptor* GetCryptor()
+{
+	return &cryptor;
+}
diff --git a/plugins/!Deprecated/Dbx_mmap_SA/db3x_mmap_sa_10.vcxproj b/plugins/!Deprecated/Dbx_mmap_SA/db3x_mmap_sa_10.vcxproj
new file mode 100644
index 0000000000..7a548ce305
--- /dev/null
+++ b/plugins/!Deprecated/Dbx_mmap_SA/db3x_mmap_sa_10.vcxproj
@@ -0,0 +1,254 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectName>Dbx_mmap_SA</ProjectName>
+    <ProjectGuid>{6D3DC604-9CA0-45A2-85D7-1EFE3309F23B}</ProjectGuid>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <CharacterSet>Unicode</CharacterSet>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <CharacterSet>Unicode</CharacterSet>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <CharacterSet>Unicode</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <CharacterSet>Unicode</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\Plugins\</OutDir>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Configuration)64\Plugins\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\Obj\$(ProjectName)\</IntDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Configuration)64\Obj\$(ProjectName)\</IntDir>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\Plugins\</OutDir>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Configuration)64\Plugins\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\Obj\$(ProjectName)\</IntDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Configuration)64\Obj\$(ProjectName)\</IntDir>
+    <IgnoreImportLibrary>true</IgnoreImportLibrary>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>..\..\include;..\ExternalAPI;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader>Use</PrecompiledHeader>
+      <PrecompiledHeaderFile>commonheaders.h</PrecompiledHeaderFile>
+      <WarningLevel>Level3</WarningLevel>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+      <StringPooling>false</StringPooling>
+      <ExceptionHandling>false</ExceptionHandling>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>..\..\include;..\..\include\msapi</AdditionalIncludeDirectories>
+    </ResourceCompile>
+    <Link>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <AdditionalDependencies>comctl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
+      <SubSystem>Windows</SubSystem>
+      <BaseAddress>0x5130000</BaseAddress>
+      <AdditionalLibraryDirectories>$(ProfileDir)..\..\bin10\lib</AdditionalLibraryDirectories>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>..\..\include;..\ExternalAPI;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader>Use</PrecompiledHeader>
+      <PrecompiledHeaderFile>commonheaders.h</PrecompiledHeaderFile>
+      <WarningLevel>Level3</WarningLevel>
+      <StringPooling>false</StringPooling>
+      <ExceptionHandling>false</ExceptionHandling>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>..\..\include;..\..\include\msapi</AdditionalIncludeDirectories>
+    </ResourceCompile>
+    <Link>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <AdditionalDependencies>comctl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
+      <BaseAddress>0x5130000</BaseAddress>
+      <SubSystem>Windows</SubSystem>
+      <AdditionalLibraryDirectories>$(ProfileDir)..\..\bin10\lib</AdditionalLibraryDirectories>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <ClCompile>
+      <Optimization>Full</Optimization>
+      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+      <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
+      <OmitFramePointers>true</OmitFramePointers>
+      <AdditionalIncludeDirectories>..\..\include;..\ExternalAPI;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader>Use</PrecompiledHeader>
+      <PrecompiledHeaderFile>commonheaders.h</PrecompiledHeaderFile>
+      <WarningLevel>Level3</WarningLevel>
+      <ExceptionHandling>false</ExceptionHandling>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>..\..\include;..\..\include\msapi</AdditionalIncludeDirectories>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>comctl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <OptimizeReferences>true</OptimizeReferences>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <BaseAddress>0x5130000</BaseAddress>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
+      <SubSystem>Windows</SubSystem>
+      <AdditionalLibraryDirectories>$(ProfileDir)..\..\bin10\lib</AdditionalLibraryDirectories>
+      <AdditionalOptions>/PDBALTPATH:%_PDB%</AdditionalOptions>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <ClCompile>
+      <Optimization>Full</Optimization>
+      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+      <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
+      <OmitFramePointers>true</OmitFramePointers>
+      <AdditionalIncludeDirectories>..\..\include;..\ExternalAPI;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader>Use</PrecompiledHeader>
+      <PrecompiledHeaderFile>commonheaders.h</PrecompiledHeaderFile>
+      <WarningLevel>Level3</WarningLevel>
+      <ExceptionHandling>false</ExceptionHandling>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>..\..\include;..\..\include\msapi</AdditionalIncludeDirectories>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>comctl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <OptimizeReferences>true</OptimizeReferences>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <BaseAddress>0x5130000</BaseAddress>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
+      <SubSystem>Windows</SubSystem>
+      <AdditionalLibraryDirectories>$(ProfileDir)..\..\bin10\lib</AdditionalLibraryDirectories>
+      <AdditionalOptions>/PDBALTPATH:%_PDB%</AdditionalOptions>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\Db3x_mmap\src\database.cpp" />
+    <ClCompile Include="..\Db3x_mmap\src\dbcache.cpp" />
+    <ClCompile Include="..\Db3x_mmap\src\dbcontacts.cpp" />
+    <ClCompile Include="..\Db3x_mmap\src\dbcrypt.cpp" />
+    <ClCompile Include="..\Db3x_mmap\src\dbevents.cpp" />
+    <ClCompile Include="..\Db3x_mmap\src\dbheaders.cpp" />
+    <ClCompile Include="..\Db3x_mmap\src\dbintf.cpp" />
+    <ClCompile Include="..\Db3x_mmap\src\dbintfm.cpp" />
+    <ClCompile Include="..\Db3x_mmap\src\dbmodulechain.cpp" />
+    <ClCompile Include="..\Db3x_mmap\src\dbsettings.cpp" />
+    <ClCompile Include="..\db3x_mmap\src\dbtool\aggressive.cpp">
+      <PrecompiledHeaderFile>..\commonheaders.h</PrecompiledHeaderFile>
+    </ClCompile>
+    <ClCompile Include="..\db3x_mmap\src\dbtool\contactchain.cpp">
+      <PrecompiledHeaderFile>..\commonheaders.h</PrecompiledHeaderFile>
+    </ClCompile>
+    <ClCompile Include="..\db3x_mmap\src\dbtool\disk.cpp">
+      <PrecompiledHeaderFile>..\commonheaders.h</PrecompiledHeaderFile>
+    </ClCompile>
+    <ClCompile Include="..\db3x_mmap\src\dbtool\eventchain.cpp">
+      <PrecompiledHeaderFile>..\commonheaders.h</PrecompiledHeaderFile>
+    </ClCompile>
+    <ClCompile Include="..\db3x_mmap\src\dbtool\finaltasks.cpp">
+      <PrecompiledHeaderFile>..\commonheaders.h</PrecompiledHeaderFile>
+    </ClCompile>
+    <ClCompile Include="..\db3x_mmap\src\dbtool\initialchecks.cpp">
+      <PrecompiledHeaderFile>..\commonheaders.h</PrecompiledHeaderFile>
+    </ClCompile>
+    <ClCompile Include="..\db3x_mmap\src\dbtool\modulechain.cpp">
+      <PrecompiledHeaderFile>..\commonheaders.h</PrecompiledHeaderFile>
+    </ClCompile>
+    <ClCompile Include="..\db3x_mmap\src\dbtool\settingschain.cpp">
+      <PrecompiledHeaderFile>..\commonheaders.h</PrecompiledHeaderFile>
+    </ClCompile>
+    <ClCompile Include="..\db3x_mmap\src\dbtool\user.cpp">
+      <PrecompiledHeaderFile>..\commonheaders.h</PrecompiledHeaderFile>
+    </ClCompile>
+    <ClCompile Include="src\dbintf_sa.cpp" />
+    <ClCompile Include="src\dialogs.cpp" />
+    <ClCompile Include="src\stdafx.cpp">
+      <PrecompiledHeader>Create</PrecompiledHeader>
+    </ClCompile>
+    <ClCompile Include="src\security.cpp" />
+    <ClCompile Include="src\init.cpp" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="..\Db3x_mmap\src\dbintf.h" />
+    <ClInclude Include="src\commonheaders.h" />
+    <ClInclude Include="src\dbintf_sa.h" />
+    <ClInclude Include="src\options.h" />
+    <ClInclude Include="src\resource.h" />
+    <ClInclude Include="src\version.h" />
+  </ItemGroup>
+  <ItemGroup>
+    <ResourceCompile Include="res\db3x_mmap.rc" />
+    <ResourceCompile Include="res\version.rc" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/plugins/!Deprecated/Dbx_mmap_SA/db3x_mmap_sa_10.vcxproj.filters b/plugins/!Deprecated/Dbx_mmap_SA/db3x_mmap_sa_10.vcxproj.filters
new file mode 100644
index 0000000000..ab9907fdb9
--- /dev/null
+++ b/plugins/!Deprecated/Dbx_mmap_SA/db3x_mmap_sa_10.vcxproj.filters
@@ -0,0 +1,125 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup>
+    <Filter Include="Source Files">
+      <UniqueIdentifier>{4faf3f6f-953b-4e0c-aa3a-246accd395cc}</UniqueIdentifier>
+      <Extensions>cpp;c;cxx;rc;def;r;odl;idl;hpj;bat</Extensions>
+    </Filter>
+    <Filter Include="Header Files">
+      <UniqueIdentifier>{26f1ddd9-261b-4512-8da8-b3e786b0e35c}</UniqueIdentifier>
+      <Extensions>h;hpp;hxx;hm;inl</Extensions>
+    </Filter>
+    <Filter Include="Resource Files">
+      <UniqueIdentifier>{4eb47a45-3e87-400a-bfb3-05c2d9cbb32b}</UniqueIdentifier>
+      <Extensions>ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe</Extensions>
+    </Filter>
+    <Filter Include="Mmap files">
+      <UniqueIdentifier>{9b94a455-bdbc-497d-b375-18c090cccc36}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Mmap files\Checker">
+      <UniqueIdentifier>{9236b59b-8511-4248-adfd-5ad1f36788dc}</UniqueIdentifier>
+    </Filter>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="src\dialogs.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="src\init.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="src\security.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\Db3x_mmap\src\dbmodulechain.cpp">
+      <Filter>Mmap files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\Db3x_mmap\src\dbcache.cpp">
+      <Filter>Mmap files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\Db3x_mmap\src\dbcontacts.cpp">
+      <Filter>Mmap files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\Db3x_mmap\src\database.cpp">
+      <Filter>Mmap files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\Db3x_mmap\src\dbintf.cpp">
+      <Filter>Mmap files</Filter>
+    </ClCompile>
+    <ClCompile Include="src\dbintf_sa.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\Db3x_mmap\src\dbheaders.cpp">
+      <Filter>Mmap files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\Db3x_mmap\src\dbsettings.cpp">
+      <Filter>Mmap files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\Db3x_mmap\src\dbevents.cpp">
+      <Filter>Mmap files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\Db3x_mmap\src\dbintfm.cpp">
+      <Filter>Mmap files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\db3x_mmap\src\dbtool\aggressive.cpp">
+      <Filter>Mmap files\Checker</Filter>
+    </ClCompile>
+    <ClCompile Include="..\db3x_mmap\src\dbtool\contactchain.cpp">
+      <Filter>Mmap files\Checker</Filter>
+    </ClCompile>
+    <ClCompile Include="..\db3x_mmap\src\dbtool\disk.cpp">
+      <Filter>Mmap files\Checker</Filter>
+    </ClCompile>
+    <ClCompile Include="..\db3x_mmap\src\dbtool\eventchain.cpp">
+      <Filter>Mmap files\Checker</Filter>
+    </ClCompile>
+    <ClCompile Include="..\db3x_mmap\src\dbtool\finaltasks.cpp">
+      <Filter>Mmap files\Checker</Filter>
+    </ClCompile>
+    <ClCompile Include="..\db3x_mmap\src\dbtool\initialchecks.cpp">
+      <Filter>Mmap files\Checker</Filter>
+    </ClCompile>
+    <ClCompile Include="..\db3x_mmap\src\dbtool\modulechain.cpp">
+      <Filter>Mmap files\Checker</Filter>
+    </ClCompile>
+    <ClCompile Include="..\db3x_mmap\src\dbtool\settingschain.cpp">
+      <Filter>Mmap files\Checker</Filter>
+    </ClCompile>
+    <ClCompile Include="..\db3x_mmap\src\dbtool\user.cpp">
+      <Filter>Mmap files\Checker</Filter>
+    </ClCompile>
+    <ClCompile Include="src\stdafx.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\Db3x_mmap\src\dbcrypt.cpp">
+      <Filter>Mmap files</Filter>
+    </ClCompile>
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="src\commonheaders.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="src\options.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="src\resource.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="src\version.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="src\dbintf_sa.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\Db3x_mmap\src\dbintf.h">
+      <Filter>Mmap files</Filter>
+    </ClInclude>
+  </ItemGroup>
+  <ItemGroup>
+    <ResourceCompile Include="res\db3x_mmap.rc">
+      <Filter>Resource Files</Filter>
+    </ResourceCompile>
+    <ResourceCompile Include="res\version.rc">
+      <Filter>Resource Files</Filter>
+    </ResourceCompile>
+  </ItemGroup>
+</Project>
\ No newline at end of file
diff --git a/plugins/!Deprecated/Dbx_mmap_SA/db3x_mmap_sa_11.vcxproj b/plugins/!Deprecated/Dbx_mmap_SA/db3x_mmap_sa_11.vcxproj
new file mode 100644
index 0000000000..6f1fd99934
--- /dev/null
+++ b/plugins/!Deprecated/Dbx_mmap_SA/db3x_mmap_sa_11.vcxproj
@@ -0,0 +1,257 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectName>Dbx_mmap_SA</ProjectName>
+    <ProjectGuid>{6D3DC604-9CA0-45A2-85D7-1EFE3309F23B}</ProjectGuid>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <CharacterSet>Unicode</CharacterSet>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v110_xp</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <CharacterSet>Unicode</CharacterSet>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v110_xp</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <CharacterSet>Unicode</CharacterSet>
+    <PlatformToolset>v110_xp</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <CharacterSet>Unicode</CharacterSet>
+    <PlatformToolset>v110_xp</PlatformToolset>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\Plugins\</OutDir>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Configuration)64\Plugins\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\Obj\$(ProjectName)\</IntDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Configuration)64\Obj\$(ProjectName)\</IntDir>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\Plugins\</OutDir>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Configuration)64\Plugins\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\Obj\$(ProjectName)\</IntDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Configuration)64\Obj\$(ProjectName)\</IntDir>
+    <IgnoreImportLibrary>true</IgnoreImportLibrary>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>..\..\include;..\ExternalAPI;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader>Use</PrecompiledHeader>
+      <PrecompiledHeaderFile>commonheaders.h</PrecompiledHeaderFile>
+      <WarningLevel>Level3</WarningLevel>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+      <StringPooling>false</StringPooling>
+      <ExceptionHandling>false</ExceptionHandling>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>..\..\include;..\..\include\msapi</AdditionalIncludeDirectories>
+    </ResourceCompile>
+    <Link>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <AdditionalDependencies>comctl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
+      <SubSystem>Windows</SubSystem>
+      <BaseAddress>0x5130000</BaseAddress>
+      <AdditionalLibraryDirectories>$(ProfileDir)..\..\bin11\lib</AdditionalLibraryDirectories>
+      <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>..\..\include;..\ExternalAPI;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader>Use</PrecompiledHeader>
+      <PrecompiledHeaderFile>commonheaders.h</PrecompiledHeaderFile>
+      <WarningLevel>Level3</WarningLevel>
+      <StringPooling>false</StringPooling>
+      <ExceptionHandling>false</ExceptionHandling>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>..\..\include;..\..\include\msapi</AdditionalIncludeDirectories>
+    </ResourceCompile>
+    <Link>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <AdditionalDependencies>comctl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
+      <BaseAddress>0x5130000</BaseAddress>
+      <SubSystem>Windows</SubSystem>
+      <AdditionalLibraryDirectories>$(ProfileDir)..\..\bin11\lib</AdditionalLibraryDirectories>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <ClCompile>
+      <Optimization>Full</Optimization>
+      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+      <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
+      <OmitFramePointers>true</OmitFramePointers>
+      <AdditionalIncludeDirectories>..\..\include;..\ExternalAPI;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader>Use</PrecompiledHeader>
+      <PrecompiledHeaderFile>commonheaders.h</PrecompiledHeaderFile>
+      <WarningLevel>Level3</WarningLevel>
+      <ExceptionHandling>false</ExceptionHandling>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>..\..\include;..\..\include\msapi</AdditionalIncludeDirectories>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>comctl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <OptimizeReferences>true</OptimizeReferences>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <BaseAddress>0x5130000</BaseAddress>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
+      <SubSystem>Windows</SubSystem>
+      <AdditionalLibraryDirectories>$(ProfileDir)..\..\bin11\lib</AdditionalLibraryDirectories>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <ClCompile>
+      <Optimization>Full</Optimization>
+      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+      <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
+      <OmitFramePointers>true</OmitFramePointers>
+      <AdditionalIncludeDirectories>..\..\include;..\ExternalAPI;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader>Use</PrecompiledHeader>
+      <PrecompiledHeaderFile>commonheaders.h</PrecompiledHeaderFile>
+      <WarningLevel>Level3</WarningLevel>
+      <ExceptionHandling>false</ExceptionHandling>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>..\..\include;..\..\include\msapi</AdditionalIncludeDirectories>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>comctl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <OptimizeReferences>true</OptimizeReferences>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <BaseAddress>0x5130000</BaseAddress>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
+      <SubSystem>Windows</SubSystem>
+      <AdditionalLibraryDirectories>$(ProfileDir)..\..\bin11\lib</AdditionalLibraryDirectories>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\Db3x_mmap\src\database.cpp" />
+    <ClCompile Include="..\Db3x_mmap\src\dbcache.cpp" />
+    <ClCompile Include="..\Db3x_mmap\src\dbcontacts.cpp" />
+    <ClCompile Include="..\Db3x_mmap\src\dbcrypt.cpp" />
+    <ClCompile Include="..\Db3x_mmap\src\dbevents.cpp" />
+    <ClCompile Include="..\Db3x_mmap\src\dbheaders.cpp" />
+    <ClCompile Include="..\Db3x_mmap\src\dbintf.cpp" />
+    <ClCompile Include="..\Db3x_mmap\src\dbintfm.cpp" />
+    <ClCompile Include="..\Db3x_mmap\src\dbmodulechain.cpp" />
+    <ClCompile Include="..\Db3x_mmap\src\dbsettings.cpp" />
+    <ClCompile Include="..\db3x_mmap\src\dbtool\aggressive.cpp">
+      <PrecompiledHeaderFile>..\commonheaders.h</PrecompiledHeaderFile>
+    </ClCompile>
+    <ClCompile Include="..\db3x_mmap\src\dbtool\contactchain.cpp">
+      <PrecompiledHeaderFile>..\commonheaders.h</PrecompiledHeaderFile>
+    </ClCompile>
+    <ClCompile Include="..\db3x_mmap\src\dbtool\disk.cpp">
+      <PrecompiledHeaderFile>..\commonheaders.h</PrecompiledHeaderFile>
+    </ClCompile>
+    <ClCompile Include="..\db3x_mmap\src\dbtool\eventchain.cpp">
+      <PrecompiledHeaderFile>..\commonheaders.h</PrecompiledHeaderFile>
+    </ClCompile>
+    <ClCompile Include="..\db3x_mmap\src\dbtool\finaltasks.cpp">
+      <PrecompiledHeaderFile>..\commonheaders.h</PrecompiledHeaderFile>
+    </ClCompile>
+    <ClCompile Include="..\db3x_mmap\src\dbtool\initialchecks.cpp">
+      <PrecompiledHeaderFile>..\commonheaders.h</PrecompiledHeaderFile>
+    </ClCompile>
+    <ClCompile Include="..\db3x_mmap\src\dbtool\modulechain.cpp">
+      <PrecompiledHeaderFile>..\commonheaders.h</PrecompiledHeaderFile>
+    </ClCompile>
+    <ClCompile Include="..\db3x_mmap\src\dbtool\settingschain.cpp">
+      <PrecompiledHeaderFile>..\commonheaders.h</PrecompiledHeaderFile>
+    </ClCompile>
+    <ClCompile Include="..\db3x_mmap\src\dbtool\user.cpp">
+      <PrecompiledHeaderFile>..\commonheaders.h</PrecompiledHeaderFile>
+    </ClCompile>
+    <ClCompile Include="src\dbintf_sa.cpp" />
+    <ClCompile Include="src\dialogs.cpp" />
+    <ClCompile Include="src\stdafx.cpp">
+      <PrecompiledHeader>Create</PrecompiledHeader>
+    </ClCompile>
+    <ClCompile Include="src\security.cpp" />
+    <ClCompile Include="src\init.cpp" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="..\Db3x_mmap\src\dbintf.h" />
+    <ClInclude Include="src\commonheaders.h" />
+    <ClInclude Include="src\dbintf_sa.h" />
+    <ClInclude Include="src\options.h" />
+    <ClInclude Include="src\resource.h" />
+    <ClInclude Include="src\version.h" />
+  </ItemGroup>
+  <ItemGroup>
+    <ResourceCompile Include="res\db3x_mmap.rc" />
+    <ResourceCompile Include="res\version.rc" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/plugins/!Deprecated/Dbx_mmap_SA/db3x_mmap_sa_11.vcxproj.filters b/plugins/!Deprecated/Dbx_mmap_SA/db3x_mmap_sa_11.vcxproj.filters
new file mode 100644
index 0000000000..ab9907fdb9
--- /dev/null
+++ b/plugins/!Deprecated/Dbx_mmap_SA/db3x_mmap_sa_11.vcxproj.filters
@@ -0,0 +1,125 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup>
+    <Filter Include="Source Files">
+      <UniqueIdentifier>{4faf3f6f-953b-4e0c-aa3a-246accd395cc}</UniqueIdentifier>
+      <Extensions>cpp;c;cxx;rc;def;r;odl;idl;hpj;bat</Extensions>
+    </Filter>
+    <Filter Include="Header Files">
+      <UniqueIdentifier>{26f1ddd9-261b-4512-8da8-b3e786b0e35c}</UniqueIdentifier>
+      <Extensions>h;hpp;hxx;hm;inl</Extensions>
+    </Filter>
+    <Filter Include="Resource Files">
+      <UniqueIdentifier>{4eb47a45-3e87-400a-bfb3-05c2d9cbb32b}</UniqueIdentifier>
+      <Extensions>ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe</Extensions>
+    </Filter>
+    <Filter Include="Mmap files">
+      <UniqueIdentifier>{9b94a455-bdbc-497d-b375-18c090cccc36}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Mmap files\Checker">
+      <UniqueIdentifier>{9236b59b-8511-4248-adfd-5ad1f36788dc}</UniqueIdentifier>
+    </Filter>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="src\dialogs.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="src\init.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="src\security.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\Db3x_mmap\src\dbmodulechain.cpp">
+      <Filter>Mmap files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\Db3x_mmap\src\dbcache.cpp">
+      <Filter>Mmap files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\Db3x_mmap\src\dbcontacts.cpp">
+      <Filter>Mmap files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\Db3x_mmap\src\database.cpp">
+      <Filter>Mmap files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\Db3x_mmap\src\dbintf.cpp">
+      <Filter>Mmap files</Filter>
+    </ClCompile>
+    <ClCompile Include="src\dbintf_sa.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\Db3x_mmap\src\dbheaders.cpp">
+      <Filter>Mmap files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\Db3x_mmap\src\dbsettings.cpp">
+      <Filter>Mmap files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\Db3x_mmap\src\dbevents.cpp">
+      <Filter>Mmap files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\Db3x_mmap\src\dbintfm.cpp">
+      <Filter>Mmap files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\db3x_mmap\src\dbtool\aggressive.cpp">
+      <Filter>Mmap files\Checker</Filter>
+    </ClCompile>
+    <ClCompile Include="..\db3x_mmap\src\dbtool\contactchain.cpp">
+      <Filter>Mmap files\Checker</Filter>
+    </ClCompile>
+    <ClCompile Include="..\db3x_mmap\src\dbtool\disk.cpp">
+      <Filter>Mmap files\Checker</Filter>
+    </ClCompile>
+    <ClCompile Include="..\db3x_mmap\src\dbtool\eventchain.cpp">
+      <Filter>Mmap files\Checker</Filter>
+    </ClCompile>
+    <ClCompile Include="..\db3x_mmap\src\dbtool\finaltasks.cpp">
+      <Filter>Mmap files\Checker</Filter>
+    </ClCompile>
+    <ClCompile Include="..\db3x_mmap\src\dbtool\initialchecks.cpp">
+      <Filter>Mmap files\Checker</Filter>
+    </ClCompile>
+    <ClCompile Include="..\db3x_mmap\src\dbtool\modulechain.cpp">
+      <Filter>Mmap files\Checker</Filter>
+    </ClCompile>
+    <ClCompile Include="..\db3x_mmap\src\dbtool\settingschain.cpp">
+      <Filter>Mmap files\Checker</Filter>
+    </ClCompile>
+    <ClCompile Include="..\db3x_mmap\src\dbtool\user.cpp">
+      <Filter>Mmap files\Checker</Filter>
+    </ClCompile>
+    <ClCompile Include="src\stdafx.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\Db3x_mmap\src\dbcrypt.cpp">
+      <Filter>Mmap files</Filter>
+    </ClCompile>
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="src\commonheaders.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="src\options.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="src\resource.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="src\version.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="src\dbintf_sa.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\Db3x_mmap\src\dbintf.h">
+      <Filter>Mmap files</Filter>
+    </ClInclude>
+  </ItemGroup>
+  <ItemGroup>
+    <ResourceCompile Include="res\db3x_mmap.rc">
+      <Filter>Resource Files</Filter>
+    </ResourceCompile>
+    <ResourceCompile Include="res\version.rc">
+      <Filter>Resource Files</Filter>
+    </ResourceCompile>
+  </ItemGroup>
+</Project>
\ No newline at end of file
diff --git a/plugins/!Deprecated/Dbx_mmap_SA/db3x_mmap_sa_12.vcxproj b/plugins/!Deprecated/Dbx_mmap_SA/db3x_mmap_sa_12.vcxproj
new file mode 100644
index 0000000000..8168d59428
--- /dev/null
+++ b/plugins/!Deprecated/Dbx_mmap_SA/db3x_mmap_sa_12.vcxproj
@@ -0,0 +1,257 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectName>Dbx_mmap_SA</ProjectName>
+    <ProjectGuid>{6D3DC604-9CA0-45A2-85D7-1EFE3309F23B}</ProjectGuid>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <CharacterSet>Unicode</CharacterSet>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v120_xp</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <CharacterSet>Unicode</CharacterSet>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v120_xp</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <CharacterSet>Unicode</CharacterSet>
+    <PlatformToolset>v120_xp</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <CharacterSet>Unicode</CharacterSet>
+    <PlatformToolset>v120_xp</PlatformToolset>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\Plugins\</OutDir>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Configuration)64\Plugins\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\Obj\$(ProjectName)\</IntDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Configuration)64\Obj\$(ProjectName)\</IntDir>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\Plugins\</OutDir>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Configuration)64\Plugins\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\Obj\$(ProjectName)\</IntDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Configuration)64\Obj\$(ProjectName)\</IntDir>
+    <IgnoreImportLibrary>true</IgnoreImportLibrary>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>..\..\include;..\ExternalAPI;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader>Use</PrecompiledHeader>
+      <PrecompiledHeaderFile>commonheaders.h</PrecompiledHeaderFile>
+      <WarningLevel>Level3</WarningLevel>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+      <StringPooling>false</StringPooling>
+      <ExceptionHandling>false</ExceptionHandling>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>..\..\include;..\..\include\msapi</AdditionalIncludeDirectories>
+    </ResourceCompile>
+    <Link>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <AdditionalDependencies>comctl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
+      <SubSystem>Windows</SubSystem>
+      <BaseAddress>0x5130000</BaseAddress>
+      <AdditionalLibraryDirectories>$(ProfileDir)..\..\bin12\lib</AdditionalLibraryDirectories>
+      <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>..\..\include;..\ExternalAPI;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader>Use</PrecompiledHeader>
+      <PrecompiledHeaderFile>commonheaders.h</PrecompiledHeaderFile>
+      <WarningLevel>Level3</WarningLevel>
+      <StringPooling>false</StringPooling>
+      <ExceptionHandling>false</ExceptionHandling>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>..\..\include;..\..\include\msapi</AdditionalIncludeDirectories>
+    </ResourceCompile>
+    <Link>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <AdditionalDependencies>comctl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
+      <BaseAddress>0x5130000</BaseAddress>
+      <SubSystem>Windows</SubSystem>
+      <AdditionalLibraryDirectories>$(ProfileDir)..\..\bin12\lib</AdditionalLibraryDirectories>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <ClCompile>
+      <Optimization>Full</Optimization>
+      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+      <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
+      <OmitFramePointers>true</OmitFramePointers>
+      <AdditionalIncludeDirectories>..\..\include;..\ExternalAPI;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader>Use</PrecompiledHeader>
+      <PrecompiledHeaderFile>commonheaders.h</PrecompiledHeaderFile>
+      <WarningLevel>Level3</WarningLevel>
+      <ExceptionHandling>false</ExceptionHandling>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>..\..\include;..\..\include\msapi</AdditionalIncludeDirectories>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>comctl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <OptimizeReferences>true</OptimizeReferences>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <BaseAddress>0x5130000</BaseAddress>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
+      <SubSystem>Windows</SubSystem>
+      <AdditionalLibraryDirectories>$(ProfileDir)..\..\bin12\lib</AdditionalLibraryDirectories>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <ClCompile>
+      <Optimization>Full</Optimization>
+      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+      <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
+      <OmitFramePointers>true</OmitFramePointers>
+      <AdditionalIncludeDirectories>..\..\include;..\ExternalAPI;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader>Use</PrecompiledHeader>
+      <PrecompiledHeaderFile>commonheaders.h</PrecompiledHeaderFile>
+      <WarningLevel>Level3</WarningLevel>
+      <ExceptionHandling>false</ExceptionHandling>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>..\..\include;..\..\include\msapi</AdditionalIncludeDirectories>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>comctl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <OptimizeReferences>true</OptimizeReferences>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <BaseAddress>0x5130000</BaseAddress>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
+      <SubSystem>Windows</SubSystem>
+      <AdditionalLibraryDirectories>$(ProfileDir)..\..\bin12\lib</AdditionalLibraryDirectories>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\Db3x_mmap\src\database.cpp" />
+    <ClCompile Include="..\Db3x_mmap\src\dbcache.cpp" />
+    <ClCompile Include="..\Db3x_mmap\src\dbcontacts.cpp" />
+    <ClCompile Include="..\Db3x_mmap\src\dbcrypt.cpp" />
+    <ClCompile Include="..\Db3x_mmap\src\dbevents.cpp" />
+    <ClCompile Include="..\Db3x_mmap\src\dbheaders.cpp" />
+    <ClCompile Include="..\Db3x_mmap\src\dbintf.cpp" />
+    <ClCompile Include="..\Db3x_mmap\src\dbintfm.cpp" />
+    <ClCompile Include="..\Db3x_mmap\src\dbmodulechain.cpp" />
+    <ClCompile Include="..\Db3x_mmap\src\dbsettings.cpp" />
+    <ClCompile Include="..\db3x_mmap\src\dbtool\aggressive.cpp">
+      <PrecompiledHeaderFile>..\commonheaders.h</PrecompiledHeaderFile>
+    </ClCompile>
+    <ClCompile Include="..\db3x_mmap\src\dbtool\contactchain.cpp">
+      <PrecompiledHeaderFile>..\commonheaders.h</PrecompiledHeaderFile>
+    </ClCompile>
+    <ClCompile Include="..\db3x_mmap\src\dbtool\disk.cpp">
+      <PrecompiledHeaderFile>..\commonheaders.h</PrecompiledHeaderFile>
+    </ClCompile>
+    <ClCompile Include="..\db3x_mmap\src\dbtool\eventchain.cpp">
+      <PrecompiledHeaderFile>..\commonheaders.h</PrecompiledHeaderFile>
+    </ClCompile>
+    <ClCompile Include="..\db3x_mmap\src\dbtool\finaltasks.cpp">
+      <PrecompiledHeaderFile>..\commonheaders.h</PrecompiledHeaderFile>
+    </ClCompile>
+    <ClCompile Include="..\db3x_mmap\src\dbtool\initialchecks.cpp">
+      <PrecompiledHeaderFile>..\commonheaders.h</PrecompiledHeaderFile>
+    </ClCompile>
+    <ClCompile Include="..\db3x_mmap\src\dbtool\modulechain.cpp">
+      <PrecompiledHeaderFile>..\commonheaders.h</PrecompiledHeaderFile>
+    </ClCompile>
+    <ClCompile Include="..\db3x_mmap\src\dbtool\settingschain.cpp">
+      <PrecompiledHeaderFile>..\commonheaders.h</PrecompiledHeaderFile>
+    </ClCompile>
+    <ClCompile Include="..\db3x_mmap\src\dbtool\user.cpp">
+      <PrecompiledHeaderFile>..\commonheaders.h</PrecompiledHeaderFile>
+    </ClCompile>
+    <ClCompile Include="src\dbintf_sa.cpp" />
+    <ClCompile Include="src\dialogs.cpp" />
+    <ClCompile Include="src\stdafx.cpp">
+      <PrecompiledHeader>Create</PrecompiledHeader>
+    </ClCompile>
+    <ClCompile Include="src\security.cpp" />
+    <ClCompile Include="src\init.cpp" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="..\Db3x_mmap\src\dbintf.h" />
+    <ClInclude Include="src\commonheaders.h" />
+    <ClInclude Include="src\dbintf_sa.h" />
+    <ClInclude Include="src\options.h" />
+    <ClInclude Include="src\resource.h" />
+    <ClInclude Include="src\version.h" />
+  </ItemGroup>
+  <ItemGroup>
+    <ResourceCompile Include="res\db3x_mmap.rc" />
+    <ResourceCompile Include="res\version.rc" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/plugins/!Deprecated/Dbx_mmap_SA/db3x_mmap_sa_12.vcxproj.filters b/plugins/!Deprecated/Dbx_mmap_SA/db3x_mmap_sa_12.vcxproj.filters
new file mode 100644
index 0000000000..ab9907fdb9
--- /dev/null
+++ b/plugins/!Deprecated/Dbx_mmap_SA/db3x_mmap_sa_12.vcxproj.filters
@@ -0,0 +1,125 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup>
+    <Filter Include="Source Files">
+      <UniqueIdentifier>{4faf3f6f-953b-4e0c-aa3a-246accd395cc}</UniqueIdentifier>
+      <Extensions>cpp;c;cxx;rc;def;r;odl;idl;hpj;bat</Extensions>
+    </Filter>
+    <Filter Include="Header Files">
+      <UniqueIdentifier>{26f1ddd9-261b-4512-8da8-b3e786b0e35c}</UniqueIdentifier>
+      <Extensions>h;hpp;hxx;hm;inl</Extensions>
+    </Filter>
+    <Filter Include="Resource Files">
+      <UniqueIdentifier>{4eb47a45-3e87-400a-bfb3-05c2d9cbb32b}</UniqueIdentifier>
+      <Extensions>ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe</Extensions>
+    </Filter>
+    <Filter Include="Mmap files">
+      <UniqueIdentifier>{9b94a455-bdbc-497d-b375-18c090cccc36}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Mmap files\Checker">
+      <UniqueIdentifier>{9236b59b-8511-4248-adfd-5ad1f36788dc}</UniqueIdentifier>
+    </Filter>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="src\dialogs.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="src\init.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="src\security.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\Db3x_mmap\src\dbmodulechain.cpp">
+      <Filter>Mmap files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\Db3x_mmap\src\dbcache.cpp">
+      <Filter>Mmap files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\Db3x_mmap\src\dbcontacts.cpp">
+      <Filter>Mmap files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\Db3x_mmap\src\database.cpp">
+      <Filter>Mmap files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\Db3x_mmap\src\dbintf.cpp">
+      <Filter>Mmap files</Filter>
+    </ClCompile>
+    <ClCompile Include="src\dbintf_sa.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\Db3x_mmap\src\dbheaders.cpp">
+      <Filter>Mmap files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\Db3x_mmap\src\dbsettings.cpp">
+      <Filter>Mmap files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\Db3x_mmap\src\dbevents.cpp">
+      <Filter>Mmap files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\Db3x_mmap\src\dbintfm.cpp">
+      <Filter>Mmap files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\db3x_mmap\src\dbtool\aggressive.cpp">
+      <Filter>Mmap files\Checker</Filter>
+    </ClCompile>
+    <ClCompile Include="..\db3x_mmap\src\dbtool\contactchain.cpp">
+      <Filter>Mmap files\Checker</Filter>
+    </ClCompile>
+    <ClCompile Include="..\db3x_mmap\src\dbtool\disk.cpp">
+      <Filter>Mmap files\Checker</Filter>
+    </ClCompile>
+    <ClCompile Include="..\db3x_mmap\src\dbtool\eventchain.cpp">
+      <Filter>Mmap files\Checker</Filter>
+    </ClCompile>
+    <ClCompile Include="..\db3x_mmap\src\dbtool\finaltasks.cpp">
+      <Filter>Mmap files\Checker</Filter>
+    </ClCompile>
+    <ClCompile Include="..\db3x_mmap\src\dbtool\initialchecks.cpp">
+      <Filter>Mmap files\Checker</Filter>
+    </ClCompile>
+    <ClCompile Include="..\db3x_mmap\src\dbtool\modulechain.cpp">
+      <Filter>Mmap files\Checker</Filter>
+    </ClCompile>
+    <ClCompile Include="..\db3x_mmap\src\dbtool\settingschain.cpp">
+      <Filter>Mmap files\Checker</Filter>
+    </ClCompile>
+    <ClCompile Include="..\db3x_mmap\src\dbtool\user.cpp">
+      <Filter>Mmap files\Checker</Filter>
+    </ClCompile>
+    <ClCompile Include="src\stdafx.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\Db3x_mmap\src\dbcrypt.cpp">
+      <Filter>Mmap files</Filter>
+    </ClCompile>
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="src\commonheaders.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="src\options.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="src\resource.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="src\version.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="src\dbintf_sa.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\Db3x_mmap\src\dbintf.h">
+      <Filter>Mmap files</Filter>
+    </ClInclude>
+  </ItemGroup>
+  <ItemGroup>
+    <ResourceCompile Include="res\db3x_mmap.rc">
+      <Filter>Resource Files</Filter>
+    </ResourceCompile>
+    <ResourceCompile Include="res\version.rc">
+      <Filter>Resource Files</Filter>
+    </ResourceCompile>
+  </ItemGroup>
+</Project>
\ No newline at end of file
diff --git a/plugins/!Deprecated/Dbx_mmap_SA/res/db3x_mmap.rc b/plugins/!Deprecated/Dbx_mmap_SA/res/db3x_mmap.rc
new file mode 100644
index 0000000000..ddd13c7b17
--- /dev/null
+++ b/plugins/!Deprecated/Dbx_mmap_SA/res/db3x_mmap.rc
@@ -0,0 +1,275 @@
+// Microsoft Visual C++ generated resource script.
+//
+#include "..\src\resource.h"
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+#include <winres.h>
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// ������� (������) resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_RUS)
+LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
+#pragma code_page(1251)
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Dialog
+//
+
+IDD_LOGIN DIALOGEX 0, 0, 190, 86
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
+EXSTYLE WS_EX_TOPMOST | WS_EX_TOOLWINDOW
+CAPTION "Login to Miranda NG"
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+    CONTROL         "",IDC_HEADERBAR,"MHeaderbarCtrl",0x0,0,0,190,26
+    CTEXT           "EN",IDC_LANG,158,34,13,13,SS_CENTERIMAGE | NOT WS_GROUP
+    EDITTEXT        IDC_USERPASS,21,34,128,14,ES_PASSWORD | ES_AUTOHSCROLL | WS_GROUP
+    DEFPUSHBUTTON   "OK",IDOK,36,64,50,14
+    PUSHBUTTON      "Cancel",IDCANCEL,102,64,50,14
+    CONTROL         "",IDC_STATIC,"Static",SS_ETCHEDFRAME,0,55,190,1
+END
+
+IDD_NEWPASS DIALOGEX 0, 0, 190, 102
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
+EXSTYLE WS_EX_TOPMOST | WS_EX_TOOLWINDOW
+CAPTION "New password"
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+    CONTROL         "",IDC_HEADERBAR,"MHeaderbarCtrl",0x0,0,0,190,26
+    CTEXT           "EN",IDC_LANG,158,34,13,13,SS_CENTERIMAGE | NOT WS_GROUP
+    EDITTEXT        IDC_USERPASS1,21,34,128,14,ES_PASSWORD | ES_AUTOHSCROLL
+    EDITTEXT        IDC_USERPASS2,21,54,128,14,ES_PASSWORD | ES_AUTOHSCROLL
+    DEFPUSHBUTTON   "OK",IDOK,36,84,50,14
+    PUSHBUTTON      "Cancel",IDCANCEL,100,84,50,14
+    CONTROL         "",IDC_STATIC,"Static",SS_ETCHEDFRAME,0,77,190,1
+END
+
+IDD_CHANGEPASS DIALOGEX 0, 0, 190, 148
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
+EXSTYLE WS_EX_TOOLWINDOW
+CAPTION "Change password"
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+    CONTROL         "",IDC_HEADERBAR,"MHeaderbarCtrl",0x0,0,0,190,26
+    CTEXT           "EN",IDC_LANG,158,42,13,13,SS_CENTERIMAGE | NOT WS_GROUP
+    EDITTEXT        IDC_OLDPASS,21,42,128,14,ES_PASSWORD | ES_AUTOHSCROLL
+    EDITTEXT        IDC_NEWPASS1,21,77,128,14,ES_PASSWORD | ES_AUTOHSCROLL
+    EDITTEXT        IDC_NEWPASS2,21,98,128,14,ES_PASSWORD | ES_AUTOHSCROLL
+    DEFPUSHBUTTON   "Change",IDOK,11,127,50,14
+    PUSHBUTTON      "Remove",IDREMOVE,69,127,50,14
+    PUSHBUTTON      "Cancel",IDCANCEL,126,127,50,14
+    LTEXT           "New password",IDC_NEWPASSINFO,11,66,163,10,0,WS_EX_TRANSPARENT
+    CONTROL         "",IDC_STATIC,"Static",SS_ETCHEDFRAME,0,119,190,1
+    LTEXT           "Old password",IDC_NEWPASSINFO2,11,31,140,10,0,WS_EX_TRANSPARENT
+END
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// DESIGNINFO
+//
+
+#ifdef APSTUDIO_INVOKED
+GUIDELINES DESIGNINFO
+BEGIN
+    IDD_CHANGEPASS, DIALOG
+    BEGIN
+        TOPMARGIN, 7
+    END
+END
+#endif    // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Icon
+//
+
+// Icon with lowest ID value placed first to ensure application icon
+// remains consistent on all systems.
+IDI_ICON2               ICON                    "logo.ico"
+IDI_ICON3               ICON                    "pass.ico"
+#endif    // ������� (������) resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+/////////////////////////////////////////////////////////////////////////////
+// ���������� (���) resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+#pragma code_page(1252)
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Dialog
+//
+
+IDD_INSTALLINI DIALOGEX 0, 0, 212, 102
+STYLE DS_SETFONT | DS_MODALFRAME | DS_SETFOREGROUND | DS_3DLOOK | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
+EXSTYLE WS_EX_CONTROLPARENT
+CAPTION "Install Database Settings"
+FONT 8, "MS Shell Dlg", 0, 0, 0x1
+BEGIN
+    DEFPUSHBUTTON   "Yes",IDOK,26,83,50,14
+    PUSHBUTTON      "No",IDCANCEL,81,83,50,14
+    LTEXT           "A file containing new database settings has been placed in the Miranda NG directory.",IDC_STATIC,5,5,202,16
+    LTEXT           "Do you want to import the settings now?",IDC_STATIC,5,69,202,8
+    PUSHBUTTON      "No to all",IDC_NOTOALL,136,83,50,14
+    LTEXT           "",IDC_ININAME,5,24,143,16,SS_NOPREFIX | SS_CENTERIMAGE
+    PUSHBUTTON      "&View contents",IDC_VIEWINI,149,25,58,14
+    LTEXT           "Security systems to prevent malicious changes are in place and you will be warned before changes that are not known to be safe.",IDC_SECURITYINFO,5,43,202,24
+END
+
+IDD_WARNINICHANGE DIALOGEX 0, 0, 187, 113
+STYLE DS_SETFONT | DS_MODALFRAME | DS_SETFOREGROUND | DS_3DLOOK | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
+EXSTYLE WS_EX_CONTROLPARENT
+CAPTION "Database Setting Change"
+FONT 8, "MS Shell Dlg", 0, 0, 0x1
+BEGIN
+    LTEXT           "Database settings are being imported from",IDC_STATIC,5,5,177,8
+    CONTROL         "",IDC_ININAME,"Static",SS_SIMPLE | SS_NOPREFIX | WS_GROUP,5,13,177,8
+    LTEXT           "This file wishes to change the setting",IDC_STATIC,5,24,177,8
+    CONTROL         "",IDC_SETTINGNAME,"Static",SS_SIMPLE | SS_NOPREFIX | WS_GROUP,12,33,170,8
+    LTEXT           "to the value",IDC_STATIC,5,42,177,8
+    CONTROL         "",IDC_NEWVALUE,"Static",SS_SIMPLE | SS_NOPREFIX | WS_GROUP,12,51,170,8
+    LTEXT           "",IDC_SECURITYINFO,5,60,177,8
+    LTEXT           "Do you want to allow this change?",IDC_STATIC,5,71,177,8
+    CONTROL         "&Allow all further changes to this section",IDC_WARNNOMORE,
+                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,80,169,10
+    DEFPUSHBUTTON   "&Yes",IDYES,5,94,50,14
+    PUSHBUTTON      "&No",IDNO,59,94,50,14
+    PUSHBUTTON      "Cancel Import",IDCANCEL,123,94,59,14
+END
+
+IDD_INIIMPORTDONE DIALOGEX 0, 0, 186, 73
+STYLE DS_SETFONT | DS_MODALFRAME | DS_SETFOREGROUND | DS_3DLOOK | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
+EXSTYLE WS_EX_CONTROLPARENT
+CAPTION "Database Import Complete"
+FONT 8, "MS Shell Dlg", 0, 0, 0x1
+BEGIN
+    LTEXT           "The import has completed from",IDC_STATIC,5,5,176,8
+    CONTROL         "",IDC_ININAME,"Static",SS_SIMPLE | SS_NOPREFIX | WS_GROUP,5,13,176,8
+    LTEXT           "What do you want to do with the file now?",IDC_STATIC,5,24,176,8
+    PUSHBUTTON      "&Recycle",IDC_RECYCLE,5,36,50,14
+    PUSHBUTTON      "&Delete",IDC_DELETE,68,36,50,14
+    EDITTEXT        IDC_NEWNAME,5,55,117,12,ES_AUTOHSCROLL
+    PUSHBUTTON      "&Move/Rename",IDC_MOVE,124,54,57,14
+    PUSHBUTTON      "&Leave",IDC_LEAVE,131,36,50,14
+END
+
+IDD_OPTIONS DIALOGEX 0, 0, 318, 188
+STYLE DS_SETFONT | DS_FIXEDSYS | DS_CENTER | WS_CHILD
+FONT 8, "MS Shell Dlg", 0, 0, 0x0
+BEGIN
+    GROUPBOX        "Database encryption",IDC_ENC,4,87,307,96,0,WS_EX_RIGHT
+    CONTROL         "",IDC_MODULES,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_ALIGNLEFT | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP,6,3,305,80
+    LTEXT           "Info:",IDC_STATIC,9,97,35,8,0,WS_EX_RIGHT
+    EDITTEXT        IDC_INFO,49,97,256,21,ES_MULTILINE | ES_AUTOHSCROLL | ES_READONLY | ES_WANTRETURN | NOT WS_BORDER | WS_VSCROLL
+    LTEXT           "Author:",IDC_STATIC,9,123,35,8,0,WS_EX_RIGHT
+    EDITTEXT        IDC_AUTHOR,49,123,256,12,ES_AUTOHSCROLL | ES_READONLY | ES_WANTRETURN | NOT WS_BORDER
+    LTEXT           "Site:",IDC_STATIC,9,135,35,8,0,WS_EX_RIGHT
+    CONTROL         "",IDC_SITE,"Hyperlink",WS_TABSTOP,49,135,256,12
+    LTEXT           "Email:",IDC_STATIC,9,147,35,8,0,WS_EX_RIGHT
+    CONTROL         "",IDC_EMAIL,"Hyperlink",WS_TABSTOP,49,147,256,12
+    LTEXT           "Unique ID:",IDC_STATIC,9,166,35,8,0,WS_EX_RIGHT
+    EDITTEXT        IDC_UID,49,166,256,12,ES_AUTOHSCROLL | ES_READONLY | ES_WANTRETURN | NOT WS_BORDER
+END
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// DESIGNINFO
+//
+
+#ifdef APSTUDIO_INVOKED
+GUIDELINES DESIGNINFO
+BEGIN
+    IDD_INSTALLINI, DIALOG
+    BEGIN
+        LEFTMARGIN, 5
+        RIGHTMARGIN, 207
+        TOPMARGIN, 5
+        BOTTOMMARGIN, 97
+    END
+
+    IDD_WARNINICHANGE, DIALOG
+    BEGIN
+        LEFTMARGIN, 5
+        RIGHTMARGIN, 182
+        TOPMARGIN, 5
+        BOTTOMMARGIN, 108
+    END
+
+    IDD_INIIMPORTDONE, DIALOG
+    BEGIN
+        LEFTMARGIN, 5
+        RIGHTMARGIN, 181
+        TOPMARGIN, 5
+        BOTTOMMARGIN, 68
+    END
+
+    IDD_OPTIONS, DIALOG
+    BEGIN
+        LEFTMARGIN, 6
+        RIGHTMARGIN, 311
+        VERTGUIDE, 9
+        VERTGUIDE, 44
+        VERTGUIDE, 49
+        VERTGUIDE, 193
+        VERTGUIDE, 248
+        VERTGUIDE, 305
+        TOPMARGIN, 7
+        BOTTOMMARGIN, 181
+    END
+END
+#endif    // APSTUDIO_INVOKED
+
+
+#ifdef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXTINCLUDE
+//
+
+1 TEXTINCLUDE 
+BEGIN
+    "..\\src\\resource.h\0"
+END
+
+2 TEXTINCLUDE 
+BEGIN
+    "#include <winres.h>\0"
+END
+
+3 TEXTINCLUDE 
+BEGIN
+    "\r\n"
+    "\0"
+END
+
+#endif    // APSTUDIO_INVOKED
+
+#endif    // ���������� (���) resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+
+
+/////////////////////////////////////////////////////////////////////////////
+#endif    // not APSTUDIO_INVOKED
+
diff --git a/plugins/!Deprecated/Dbx_mmap_SA/res/logo.ico b/plugins/!Deprecated/Dbx_mmap_SA/res/logo.ico
new file mode 100644
index 0000000000..7602e30cbe
Binary files /dev/null and b/plugins/!Deprecated/Dbx_mmap_SA/res/logo.ico differ
diff --git a/plugins/!Deprecated/Dbx_mmap_SA/res/pass.ico b/plugins/!Deprecated/Dbx_mmap_SA/res/pass.ico
new file mode 100644
index 0000000000..2e51427986
Binary files /dev/null and b/plugins/!Deprecated/Dbx_mmap_SA/res/pass.ico differ
diff --git a/plugins/!Deprecated/Dbx_mmap_SA/res/version.rc b/plugins/!Deprecated/Dbx_mmap_SA/res/version.rc
new file mode 100644
index 0000000000..5bfbab4754
--- /dev/null
+++ b/plugins/!Deprecated/Dbx_mmap_SA/res/version.rc
@@ -0,0 +1,38 @@
+// Microsoft Visual C++ generated resource script.
+//
+#ifdef APSTUDIO_INVOKED
+#error this file is not editable by Microsoft Visual C++
+#endif //APSTUDIO_INVOKED
+
+#include "afxres.h"
+#include "..\src\version.h"
+
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION __FILEVERSION_STRING
+ PRODUCTVERSION __FILEVERSION_STRING
+ FILEFLAGSMASK 0x17L
+#ifdef _DEBUG
+ FILEFLAGS 0x1L
+#else
+ FILEFLAGS 0x0L
+#endif
+ FILEOS 0x4L
+ FILETYPE 0x0L
+ FILESUBTYPE 0x0L
+BEGIN
+    BLOCK "StringFileInfo"
+    BEGIN
+        BLOCK "000004b0"
+        BEGIN
+            VALUE "FileDescription", __DESCRIPTION
+            VALUE "InternalName", __PLUGIN_NAME
+            VALUE "LegalCopyright", __COPYRIGHT
+            VALUE "OriginalFilename", __FILENAME
+            VALUE "ProductName", __PLUGIN_NAME
+        END
+    END
+    BLOCK "VarFileInfo"
+    BEGIN
+        VALUE "Translation", 0x0, 1200
+    END
+END
diff --git a/plugins/!Deprecated/Dbx_mmap_SA/src/commonheaders.h b/plugins/!Deprecated/Dbx_mmap_SA/src/commonheaders.h
new file mode 100644
index 0000000000..877f0ff65d
--- /dev/null
+++ b/plugins/!Deprecated/Dbx_mmap_SA/src/commonheaders.h
@@ -0,0 +1,110 @@
+/*
+
+Miranda IM: the free IM client for Microsoft* Windows*
+
+Copyright 2000-2003 Miranda ICQ/IM project,
+all portions of this codebase are copyrighted to the people
+listed in contributors.txt.
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2
+of the License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+*/
+
+#define _CRT_SECURE_NO_WARNINGS
+
+#define _WIN32_WINNT 0x0501
+
+#include <windows.h>
+#include <shlobj.h>
+#include <time.h>
+#include <process.h>
+#include <memory>
+
+#include <newpluginapi.h>
+#include <win2k.h>
+#include <m_system_cpp.h>
+#include <m_database.h>
+#include <m_genmenu.h>
+#include <m_langpack.h>
+#include <m_options.h>
+#include <m_skin.h>
+#include <m_crypto.h>
+
+#include <m_folders.h>
+
+//own headers
+#include "dbintf_sa.h"
+#include "..\Db3x_mmap\src\database.h"
+#include "resource.h"
+#include "version.h"
+
+extern HINSTANCE g_hInst;
+extern HGENMENU hSetPwdMenu;
+
+#ifdef __GNUC__
+#define mir_i64(x) (x##LL)
+#else
+#define mir_i64(x) (x##i64)
+#endif
+
+//global procedures
+
+struct DlgStdInProcParam
+{
+	CDbxMmapSA *p_Db;
+	const TCHAR *pStr;
+};
+INT_PTR CALLBACK DlgStdInProc(HWND hDlg, UINT uMsg,WPARAM wParam,LPARAM lParam);
+
+struct DlgChangePassParam
+{
+	CDbxMmapSA *p_Db;
+	char *pszNewPass;
+};
+INT_PTR CALLBACK DlgChangePass(HWND hDlg, UINT uMsg,WPARAM wParam,LPARAM lParam);
+
+INT_PTR CALLBACK DlgStdNewPass(HWND hDlg, UINT uMsg,WPARAM wParam,LPARAM lParam);
+INT_PTR CALLBACK DlgProcOptions(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam);
+
+void xModifyMenu(HGENMENU hMenu,long flags,const TCHAR* name, HICON hIcon);
+
+extern DBSignature dbSignature, dbSignatureSecured, dbSignatureNonSecured;
+
+extern LIST<CDbxMmapSA> g_Dbs;
+
+typedef struct{
+	void* (__stdcall *GenerateKey)(char* pwd);
+	void (__stdcall *FreeKey)(void* key);
+	void (__stdcall *EncryptMem)(BYTE* data, int size, void* key);
+	void (__stdcall *DecryptMem)(BYTE* data, int size, void* key);
+
+    char* Name;
+    char* Info;
+    char* Author;
+    char* Site;
+    char* Email;
+
+	DWORD Version;
+
+	WORD uid;
+} Cryptor;
+
+typedef struct{
+	TCHAR dllname[MAX_PATH];
+	HMODULE hLib;
+	Cryptor* cryptor;
+} CryptoModule;
+
+extern Cryptor* CryptoEngine;
+extern void* key;
diff --git a/plugins/!Deprecated/Dbx_mmap_SA/src/dbintf_sa.cpp b/plugins/!Deprecated/Dbx_mmap_SA/src/dbintf_sa.cpp
new file mode 100644
index 0000000000..22921bcf40
--- /dev/null
+++ b/plugins/!Deprecated/Dbx_mmap_SA/src/dbintf_sa.cpp
@@ -0,0 +1,257 @@
+/*
+
+Miranda NG: the free IM client for Microsoft* Windows*
+
+Copyright 2012-13 Miranda NG project,
+all portions of this codebase are copyrighted to the people
+listed in contributors.txt.
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2
+of the License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+*/
+
+#include "commonheaders.h"
+
+#define NeedBytes(n)   if(bytesRemaining<(n)) pBlob=(PBYTE)DBRead(ofsBlobPtr,(n),&bytesRemaining)
+#define MoveAlong(n)   {int x=n; pBlob+=(x); ofsBlobPtr+=(x); bytesRemaining-=(x);}
+#define VLT(n) ((n==DBVT_UTF8)?DBVT_ASCIIZ:n)
+
+DBSignature dbSignatureSecured = {"Miranda ICQ SD",0x1A};
+DBSignature dbSignatureNonSecured = {"Miranda ICQ SA",0x1A};
+
+CDbxMmapSA::CDbxMmapSA(const TCHAR* tszFileName) :
+	CDb3Mmap(tszFileName)
+{
+}
+
+int CDbxMmapSA::Load(bool bSkipInit)
+{
+	if (CDb3Base::Load(bSkipInit) != ERROR_SUCCESS)
+		return 1;
+
+	if ( CheckDbHeaders())
+		return 1;
+
+	if (!bSkipInit) {
+		TCHAR* p = _tcsrchr(m_tszProfileName, '\\');
+		if (!p)
+			return 1;
+
+		if (m_bEncoding && !CheckPassword( LOWORD(m_dbHeader.version), p+1))
+			return 1;
+
+		InitDialogs();
+	}
+
+	return 0;
+}
+
+int CDbxMmapSA::CheckDbHeaders()
+{
+	if ( memcmp(m_dbHeader.signature, &dbSignatureSecured, sizeof(m_dbHeader.signature)) == 0)
+		m_bEncoding = true;
+	else if ( memcmp(m_dbHeader.signature, &dbSignatureNonSecured, sizeof(m_dbHeader.signature)) == 0)
+		m_bEncoding = false;
+	else {
+		m_bEncoding = false;
+		if ( memcmp(m_dbHeader.signature,&dbSignature,sizeof(m_dbHeader.signature)))
+			return EGROKPRF_UNKHEADER;
+		if ( LOWORD(m_dbHeader.version) != 0x0700)
+			return EGROKPRF_VERNEWER;
+	}
+	if (m_dbHeader.ofsUser == 0)
+		return EGROKPRF_DAMAGED;
+	return 0;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+
+static DWORD __inline GetSettingValueLength(PBYTE pSetting)
+{
+	if(pSetting[0]&DBVTF_VARIABLELENGTH) return 2+*(PWORD)(pSetting+1);
+	return pSetting[0];
+}
+
+void CDbxMmapSA::EncodeContactSettings(HANDLE hContact)
+{
+	if (!hContact)
+		hContact = (HANDLE)m_dbHeader.ofsUser;
+
+	DBContact *contact = (DBContact *)DBRead((DWORD)hContact, sizeof(DBContact), NULL);
+	if (contact->ofsFirstSettings) {
+		DBContactSettings *setting = (struct DBContactSettings *)DBRead(contact->ofsFirstSettings, sizeof(struct DBContactSettings), NULL);
+		DWORD offset = contact->ofsFirstSettings;
+		while( true ) {
+			DWORD ofsBlobPtr;
+			PBYTE pBlob;
+			int bytesRemaining;
+			DWORD len;
+
+			ofsBlobPtr = offset + offsetof(struct DBContactSettings,blob);
+			pBlob = (PBYTE)DBRead(ofsBlobPtr,1,&bytesRemaining);
+			while(pBlob[0]) {
+				NeedBytes(1);
+				NeedBytes(1+pBlob[0]);
+				MoveAlong(1+pBlob[0]);
+
+				NeedBytes(5);
+
+				switch(pBlob[0]) {
+				case DBVT_DELETED: break;
+				case DBVT_BYTE: break;
+				case DBVT_WORD:
+					CryptoEngine->EncryptMem(pBlob+1, 2, key);
+					break;
+
+				case DBVT_DWORD:
+					CryptoEngine->EncryptMem(pBlob+1, 4, key);
+					break;
+
+				case DBVT_UTF8:
+				case DBVT_ASCIIZ:
+				case DBVT_BLOB:
+					NeedBytes(3+*(PWORD)(pBlob+1));
+					len = *(PWORD)(pBlob+1);
+
+					CryptoEngine->EncryptMem(pBlob+3, len, key);
+					break;
+				}
+				NeedBytes(3);
+				MoveAlong(1+GetSettingValueLength(pBlob));
+				NeedBytes(1);
+			}
+
+			if (!setting->ofsNext)
+				break;
+
+			offset = setting->ofsNext;
+			setting = (struct DBContactSettings *)DBRead(setting->ofsNext, sizeof(struct DBContactSettings), NULL);
+		}
+	}
+}
+
+void CDbxMmapSA::DecodeContactSettings(HANDLE hContact)
+{
+	if (!hContact)
+		hContact = (HANDLE)m_dbHeader.ofsUser;
+
+	DBContact *contact = (DBContact *)DBRead((DWORD)hContact, sizeof(DBContact), NULL);
+	if (contact->ofsFirstSettings){
+		DBContactSettings *setting = (struct DBContactSettings *)DBRead(contact->ofsFirstSettings, sizeof(struct DBContactSettings), NULL);
+		DWORD offset = contact->ofsFirstSettings;
+		while (true) {
+			DWORD ofsBlobPtr;
+			PBYTE pBlob;
+			int bytesRemaining;
+			DWORD len;
+			ofsBlobPtr = offset + offsetof(struct DBContactSettings,blob);
+			pBlob = (PBYTE)DBRead(ofsBlobPtr,1,&bytesRemaining);
+			while(pBlob[0]) {
+				NeedBytes(1);
+				NeedBytes(1+pBlob[0]);
+				//CopyMemory(szSetting,pBlob+1,pBlob[0]); szSetting[pBlob[0]] = 0;
+				MoveAlong(1+pBlob[0]);
+
+				NeedBytes(5);
+
+				switch(pBlob[0]) {
+				case DBVT_DELETED: break;
+				case DBVT_BYTE: break;
+				case DBVT_WORD:
+					CryptoEngine->DecryptMem(pBlob+1, 2, key);
+					break;
+
+				case DBVT_DWORD:
+					CryptoEngine->DecryptMem(pBlob+1, 4, key);
+					break;
+
+				case DBVT_UTF8:
+				case DBVT_ASCIIZ:
+				case DBVT_BLOB:
+					NeedBytes(3+*(PWORD)(pBlob+1));
+					len = *(PWORD)(pBlob+1);
+
+					CryptoEngine->DecryptMem(pBlob+3, len, key);
+					break;
+				}
+				NeedBytes(3);
+				MoveAlong(1+GetSettingValueLength(pBlob));
+				NeedBytes(1);
+			}
+
+			if (!setting->ofsNext)
+				break;
+			
+			offset = setting->ofsNext;
+			setting = (struct DBContactSettings *)DBRead(setting->ofsNext, sizeof(struct DBContactSettings), NULL);
+		}
+	}
+}
+
+void CDbxMmapSA::EncodeEvent(HANDLE hEvent)
+{
+	DBEvent *dbe = (DBEvent*)DBRead((DWORD)hEvent,sizeof(DBEvent),NULL);
+	if (dbe->signature = DBEVENT_SIGNATURE)
+		CryptoEngine->EncryptMem(DBRead((DWORD)hEvent + offsetof(DBEvent,blob), dbe->cbBlob, NULL), dbe->cbBlob, key);
+}
+
+void CDbxMmapSA::DecodeEvent(HANDLE hEvent)
+{
+	DBEvent *dbe = (DBEvent*)DBRead((DWORD)hEvent,sizeof(DBEvent),NULL);
+	if (dbe->signature = DBEVENT_SIGNATURE)
+		CryptoEngine->DecryptMem(DBRead((DWORD)hEvent + offsetof(DBEvent,blob), dbe->cbBlob, NULL), dbe->cbBlob, key);
+}
+
+void CDbxMmapSA::EncodeContactEvents(HANDLE hContact)
+{
+	HANDLE hEvent = FindFirstEvent(hContact);
+	while (hEvent != 0) {
+		EncodeEvent(hEvent);
+		hEvent = FindNextEvent(hEvent);
+	}
+}
+
+void CDbxMmapSA::DecodeContactEvents(HANDLE hContact)
+{
+	HANDLE hEvent = FindFirstEvent(hContact);
+	while (hEvent != 0) {
+		DecodeEvent(hEvent);
+		hEvent = FindNextEvent(hEvent);
+	}
+}
+
+int CDbxMmapSA::WorkInitialCheckHeaders(void)
+{
+	if (m_bEncoding) {
+		cb->pfnAddLogMessage(STATUS_SUCCESS,TranslateT("Database is Secured MMAP database"));
+
+		TCHAR* p = _tcsrchr(m_tszProfileName, '\\');
+		if (!p)
+			return ERROR_BAD_FORMAT;
+
+		if (!CheckPassword( LOWORD(m_dbHeader.version), p+1)) {
+			cb->pfnAddLogMessage(STATUS_FATAL,TranslateT("You are not authorized for access to Database"));
+			return ERROR_BAD_FORMAT;
+		}
+
+		cb->pfnAddLogMessage(STATUS_SUCCESS,TranslateT("Secured MMAP: authorization successful"));
+	}
+
+	if ( LOWORD(m_dbHeader.version) != 0x0700 && !m_bEncoding) {
+		cb->pfnAddLogMessage(STATUS_FATAL,TranslateT("Database is marked as belonging to an unknown version of Miranda"));
+		return ERROR_BAD_FORMAT;
+	}
+
+	return ERROR_SUCCESS;
+}
diff --git a/plugins/!Deprecated/Dbx_mmap_SA/src/dbintf_sa.h b/plugins/!Deprecated/Dbx_mmap_SA/src/dbintf_sa.h
new file mode 100644
index 0000000000..2358d55d69
--- /dev/null
+++ b/plugins/!Deprecated/Dbx_mmap_SA/src/dbintf_sa.h
@@ -0,0 +1,76 @@
+/*
+
+Miranda NG: the free IM client for Microsoft* Windows*
+
+Copyright 2012-13 Miranda NG project,
+all portions of this codebase are copyrighted to the people
+listed in contributors.txt.
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2
+of the License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+*/
+
+#include <m_db_int.h>
+
+#include "..\Db3x_mmap\src\dbintf.h"
+
+struct CDbxMmapSA : public CDb3Mmap
+{
+	CDbxMmapSA(const TCHAR* tszFileName);
+
+	int CheckPassword(WORD checkWord, TCHAR *szDBName);
+	int CheckDbHeaders(void);
+
+	void ChangePwd();
+	void EncryptDB();
+	void DecryptDB();
+	void RecryptDB();
+
+	int Load(bool bSkipInit);
+
+	bool m_bEncoding, bEncProcess;
+
+protected:
+	virtual	void EncodeCopyMemory(void *dst, void *src, size_t size);
+	virtual	void DecodeCopyMemory(void *dst, void *src, size_t size);
+	virtual	void EncodeDBWrite(DWORD ofs, void *src, int size);
+	virtual	void DecodeDBWrite(DWORD ofs, void *src, int size);
+
+	virtual	int  WorkInitialCheckHeaders(void);
+
+protected:
+	int  CheckProto(HANDLE hContact, const char *proto);
+
+	void EncoderInit();
+	void EncodeContactEvents(HANDLE hContact);
+	void EncodeEvent(HANDLE hEvent);
+	void DecodeEvent(HANDLE hEvent);
+	void DecodeContactEvents(HANDLE hContact);
+
+	void DecodeContactSettings(HANDLE hContact);
+	void EncodeContactSettings(HANDLE hContact);
+
+	void WritePlainHeader();
+	void WriteCryptHeader();
+
+	void EncodeAll();
+	void DecodeAll();
+
+public:
+	char  encryptKey[255];
+	size_t encryptKeyLength;
+
+private:
+	void InitDialogs(void);
+};
diff --git a/plugins/!Deprecated/Dbx_mmap_SA/src/dialogs.cpp b/plugins/!Deprecated/Dbx_mmap_SA/src/dialogs.cpp
new file mode 100644
index 0000000000..1b395658a2
--- /dev/null
+++ b/plugins/!Deprecated/Dbx_mmap_SA/src/dialogs.cpp
@@ -0,0 +1,526 @@
+#include "commonheaders.h"
+#include <m_utils.h>
+#include <m_clist.h>
+#include <m_options.h>
+#include <m_icolib.h>
+
+#define MS_DB_CHANGEPASSWORD "DB/ChangePassword"
+
+extern LIST<CryptoModule> arCryptors;
+
+HGENMENU hSetPwdMenu;
+
+BOOL ShowDlgItem(HWND hwndDlg, int iIDCtrl, BOOL bShow)
+{
+	HWND hwndCtrl = GetDlgItem(hwndDlg, iIDCtrl);
+	if (!hwndCtrl) return FALSE;
+
+	// Avoid flickering
+	if (bShow && IsWindowVisible(hwndCtrl))
+		return TRUE;
+
+	return ShowWindow(hwndCtrl, (bShow ? SW_SHOW : SW_HIDE));
+}
+
+BOOL EnableDlgItem(HWND hwndDlg, int iIDCtrl, BOOL bEnable)
+{
+	HWND hwndCtrl = GetDlgItem(hwndDlg, iIDCtrl);
+	if (!hwndCtrl) return FALSE;
+
+	// Avoid flickering
+	if (IsWindowEnabled(hwndCtrl) == bEnable)
+		return (bEnable == FALSE);
+
+	return EnableWindow(hwndCtrl, bEnable);
+}
+
+BOOL IsDlgItemEnabled(HWND hwndDlg, int iIDCtrl)
+{
+	HWND hwndCtrl = GetDlgItem(hwndDlg, iIDCtrl);
+	if (!hwndCtrl) return FALSE;
+	return IsWindowEnabled(hwndCtrl);
+}
+
+static int OptionsInit(void *obj, WPARAM wParam, LPARAM lParam)
+{
+	OPTIONSDIALOGPAGE odp = { sizeof(odp) };
+	odp.position = -790000000;
+	odp.hInstance = g_hInst;
+	odp.pszTemplate = MAKEINTRESOURCEA(IDD_OPTIONS);
+	odp.flags = ODPF_BOLDGROUPS | ODPF_TCHAR;
+	odp.ptszTitle = LPGENT("Database Features");
+	odp.ptszGroup = LPGENT("Database");
+	odp.pfnDlgProc = DlgProcOptions;
+	odp.dwInitParam = (LPARAM)obj;
+	Options_AddPage(wParam, &odp);
+	return 0;
+}
+
+INT_PTR ChangePassword(void* obj, LPARAM wParam, LPARAM lParam)
+{
+	CDbxMmapSA *p = (CDbxMmapSA*)obj;
+
+	if (p->m_bEncoding)
+		p->ChangePwd();
+	else
+		p->EncryptDB();
+
+	return 0;
+}
+
+void xModifyMenu(HGENMENU hMenu,long flags,const TCHAR* name, HICON hIcon)
+{
+	CLISTMENUITEM mi = { sizeof(mi) };
+	mi.flags = CMIM_FLAGS | CMIF_TCHAR;
+	mi.flags |= name ? CMIM_NAME : 0;
+	mi.flags |= hIcon ? CMIM_ICON : 0;
+	mi.flags |= flags;
+	mi.ptszName = (TCHAR*)name;
+	mi.hIcon = hIcon;
+	Menu_ModifyItem(hMenu, &mi);
+}
+
+static IconItem iconList[] = 
+{
+	{ LPGEN("Database"), "database", IDI_ICON2 },
+	{ LPGEN("Change Password"), "password", IDI_ICON3 }
+};
+
+int InitMenus(void *obj, WPARAM, LPARAM)
+{
+	CDbxMmapSA *p = (CDbxMmapSA*)obj;
+
+	HookEventObj(ME_OPT_INITIALISE, OptionsInit, obj);
+
+	Icon_Register(g_hInst, LPGEN("Database"), iconList, SIZEOF(iconList));
+
+	// main menu item
+	CLISTMENUITEM mi = { sizeof(mi) };
+	mi.flags = CMIM_ALL | CMIF_TCHAR;
+	mi.icolibItem = iconList[1].hIcolib;
+	mi.ptszName = (p->m_bEncoding) ? LPGENT("Change password") : LPGENT("Set password");
+	mi.ptszPopupName = LPGENT("Database");
+	mi.pszService = MS_DB_CHANGEPASSWORD;
+	mi.position = 500000000;
+	hSetPwdMenu = Menu_AddMainMenuItem(&mi);
+	return 0;
+}
+
+void CDbxMmapSA::InitDialogs()
+{
+	HookEventObj(ME_SYSTEM_MODULESLOADED, InitMenus, this);
+	CreateServiceFunctionObj(MS_DB_CHANGEPASSWORD, ChangePassword, this);
+}
+
+INT_PTR CALLBACK DlgProcOptions(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
+{
+	HWND hwndList = GetDlgItem(hwndDlg, IDC_MODULES);
+	CDbxMmapSA *p_Db = (CDbxMmapSA*)GetWindowLongPtr(hwndDlg, GWLP_USERDATA);
+	LVITEM item;
+	int i, iRow, iIndex;
+	NMLISTVIEW * hdr = (NMLISTVIEW *) lParam;
+	WORD uid;
+
+	switch ( msg ) {
+	case WM_INITDIALOG:
+		TranslateDialogDefault( hwndDlg );
+		SetWindowLongPtr(hwndDlg, GWLP_USERDATA, lParam);
+		p_Db = (CDbxMmapSA*)lParam;
+		{
+			HIMAGELIST hIml = ImageList_Create(16, 16, ILC_MASK | ILC_COLOR32, 2, 0);
+			ImageList_AddIcon(hIml, LoadSkinnedIcon(SKINICON_OTHER_LOADED));
+			ImageList_AddIcon(hIml, LoadSkinnedIcon(SKINICON_OTHER_NOTLOADED));
+			ListView_SetImageList( hwndList, hIml, LVSIL_SMALL );
+
+			LVCOLUMN col;
+			col.pszText = NULL;
+			col.mask = LVCF_TEXT | LVCF_WIDTH;
+			col.fmt = LVCFMT_LEFT;
+			col.cx = 50;
+			ListView_InsertColumn(hwndList, 1, &col);
+
+			col.pszText = TranslateT("Dll");
+			col.mask = LVCF_TEXT | LVCF_WIDTH;
+			col.fmt = LVCFMT_LEFT;
+			col.cx = 1000;
+			ListView_InsertColumn(hwndList, 2, &col);
+
+			col.pszText = TranslateT("Name");
+			col.cx = 1000;
+			ListView_InsertColumn(hwndList, 3, &col);
+
+			col.pszText = TranslateT("Version");
+			col.cx = 1000;
+			ListView_InsertColumn(hwndList, 4, &col);
+		}
+
+		ListView_SetExtendedListViewStyleEx(hwndList, 0, LVS_EX_CHECKBOXES | LVS_EX_FULLROWSELECT | LVS_EX_SUBITEMIMAGES);
+
+		uid = db_get_w(NULL, "SecureMMAP", "CryptoModule", 0);
+
+		for (i = 0; i < arCryptors.getCount(); i++) {
+			TCHAR buf[100];
+
+			item.mask = LVIF_TEXT;
+			item.iItem = i;
+			item.iSubItem = 0;
+			item.pszText = NULL;
+			iRow = ListView_InsertItem(hwndList, &item);
+
+			ListView_SetItemText(hwndList, iRow, 1, arCryptors[i]->dllname);
+			_tcsncpy(buf, _A2T(arCryptors[i]->cryptor->Name), SIZEOF(buf));
+			ListView_SetItemText(hwndList, iRow, 2, buf);
+			mir_sntprintf(buf,SIZEOF(buf),_T("%d.%d.%d.%d"), HIBYTE(HIWORD(arCryptors[i]->cryptor->Version)), LOBYTE(HIWORD(arCryptors[i]->cryptor->Version)), HIBYTE(LOWORD(arCryptors[i]->cryptor->Version)), LOBYTE(LOWORD(arCryptors[i]->cryptor->Version)));
+			ListView_SetItemText(hwndList, iRow, 3, buf);
+
+			if (uid == arCryptors[i]->cryptor->uid && p_Db->m_bEncoding)
+				ListView_SetCheckState(hwndList, i, 1);
+
+			item.mask = LVIF_IMAGE;
+			item.iItem = iRow;
+			item.iSubItem = 0;
+			item.iImage = ( CryptoEngine == arCryptors[i]->cryptor && p_Db->m_bEncoding ) ? 0 : 1;
+			ListView_SetItem( hwndList, &item );
+		}
+
+		ListView_SetColumnWidth(hwndList, 0, LVSCW_AUTOSIZE);
+		ListView_SetColumnWidth(hwndList, 1, LVSCW_AUTOSIZE);
+		ListView_SetColumnWidth(hwndList, 2, LVSCW_AUTOSIZE);
+		ListView_SetColumnWidth(hwndList, 3, LVSCW_AUTOSIZE);
+		return TRUE;
+
+	case WM_COMMAND:
+		if ( HIWORD(wParam) == STN_CLICKED ) {
+			switch (LOWORD(wParam)) {
+				case IDC_EMAIL:
+				case IDC_SITE:
+				{
+					char buf[512];
+					char * p = &buf[7];
+					lstrcpyA(buf,"mailto:");
+					if ( GetWindowTextA(GetDlgItem(hwndDlg, LOWORD(wParam)), p, SIZEOF(buf) - 7)) {
+						CallService(MS_UTILS_OPENURL,0,(LPARAM) (LOWORD(wParam) == IDC_EMAIL ? buf : p));
+					}
+					break;
+		}	}	}
+		break;
+
+	case WM_NOTIFY:
+		if ( hdr && hdr->hdr.code == LVN_ITEMCHANGED && IsWindowVisible(hdr->hdr.hwndFrom) && hdr->iItem != (-1)) {
+			iIndex = hdr->iItem;
+			if (hdr->uNewState & 0x2000){
+				for (i = 0; i < arCryptors.getCount(); i++) {
+					if (i != iIndex) ListView_SetCheckState(hwndList, i, 0);
+				}
+				SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
+				break;
+			}
+			if (hdr->uNewState & 0x1000){
+				SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
+				break;
+			}
+			if (hdr->uNewState & LVIS_SELECTED){
+				SetDlgItemTextA(hwndDlg, IDC_AUTHOR, arCryptors[iIndex]->cryptor->Author);
+				{
+					TCHAR* info_t = mir_a2t((char*)(arCryptors[iIndex]->cryptor->Info));
+					SetDlgItemText(hwndDlg, IDC_INFO, TranslateTS(info_t));
+					mir_free(info_t);
+				}
+				SetDlgItemTextA(hwndDlg, IDC_SITE, arCryptors[iIndex]->cryptor->Site);
+				SetDlgItemTextA(hwndDlg, IDC_EMAIL, arCryptors[iIndex]->cryptor->Email);
+				SetDlgItemTextA(hwndDlg, IDC_ENC, arCryptors[iIndex]->cryptor->Name);
+				SetDlgItemInt(hwndDlg, IDC_UID, arCryptors[iIndex]->cryptor->uid, 0);
+			} else {
+				SetDlgItemTextA(hwndDlg, IDC_AUTHOR, "");
+				SetDlgItemTextA(hwndDlg, IDC_INFO, "");
+				SetDlgItemTextA(hwndDlg, IDC_SITE, "");
+				SetDlgItemTextA(hwndDlg, IDC_EMAIL, "");
+				SetDlgItemTextA(hwndDlg, IDC_ENC, "");
+				SetDlgItemTextA(hwndDlg, IDC_UID, "");
+			}
+
+			break;
+		}
+		if (((LPNMHDR)lParam)->code == PSN_APPLY ) {
+			int alg = -1;
+			for (i = 0; i < arCryptors.getCount(); i++) {
+				if (ListView_GetCheckState(hwndList, i)) {
+					alg = i;
+					break;
+				}
+			}
+
+			if (alg > -1){
+				if (!p_Db->m_bEncoding){
+					db_set_w(NULL, "SecureMMAP", "CryptoModule", arCryptors[alg]->cryptor->uid);
+					p_Db->EncryptDB();
+				}
+				else {
+					if (arCryptors[alg]->cryptor->uid != db_get_w(NULL, "SecureMMAP", "CryptoModule", -1)) {
+						db_set_w(NULL, "SecureMMAP", "CryptoModule", arCryptors[alg]->cryptor->uid);
+						p_Db->RecryptDB();
+					}
+				}
+			}
+			else if (p_Db->m_bEncoding)
+				p_Db->DecryptDB();
+
+			uid = db_get_w(NULL, "SecureMMAP", "CryptoModule", 0);
+
+			for (i = 0; i < arCryptors.getCount(); i++) {
+				if (uid == arCryptors[i]->cryptor->uid && p_Db->m_bEncoding)
+					ListView_SetCheckState(hwndList, i, 1);
+
+				item.mask = LVIF_IMAGE;
+				item.iItem = i;
+				item.iSubItem = 0;
+				item.iImage = ( CryptoEngine == arCryptors[i]->cryptor && p_Db->m_bEncoding ) ? 0 : 1;
+
+				ListView_SetItem( hwndList, &item );
+			}
+
+			return TRUE;
+
+		}
+		break;
+	}
+
+	return FALSE;
+}
+
+UINT oldLangID = 0;
+void LanguageChanged(HWND hDlg)
+{
+	UINT LangID = (UINT)GetKeyboardLayout(0);
+	char Lang[3] = {0};
+	if (LangID != oldLangID)
+	{
+		oldLangID = LangID;
+		GetLocaleInfoA(MAKELCID((LangID & 0xffffffff),  SORT_DEFAULT),  LOCALE_SABBREVLANGNAME, Lang, 2);
+		Lang[0] = toupper(Lang[0]);
+		Lang[1] = tolower(Lang[1]);
+		SetDlgItemTextA(hDlg, IDC_LANG, Lang);
+	}
+}
+
+extern BOOL wrongPass;
+
+INT_PTR CALLBACK DlgStdInProc(HWND hDlg, UINT uMsg,WPARAM wParam,LPARAM lParam)
+{
+	TCHAR tszHeaderTxt[256];
+
+	switch(uMsg) {
+	case WM_INITDIALOG:
+		TranslateDialogDefault(hDlg);
+		{
+			HICON hIcon = LoadIcon(g_hInst, MAKEINTRESOURCE(IDI_ICON2));
+			SendMessage(GetDlgItem(hDlg, IDC_HEADERBAR), WM_SETICON, ICON_SMALL, (LPARAM)hIcon);
+
+			DlgStdInProcParam *param = (DlgStdInProcParam*)lParam;
+			SetWindowLongPtr(hDlg, GWLP_USERDATA, (LPARAM)param->p_Db);
+
+			if (!wrongPass) {
+				mir_sntprintf(tszHeaderTxt, SIZEOF(tszHeaderTxt), _T("%s\n%s"), TranslateT("Please type in your password for"), param->pStr);
+				SetWindowText(GetDlgItem(hDlg, IDC_HEADERBAR), tszHeaderTxt);
+			}
+			else {
+				if (wrongPass > 2) {
+					HWND hwndCtrl = GetDlgItem(hDlg, IDC_USERPASS);
+					EnableWindow(hwndCtrl, FALSE);
+					hwndCtrl = GetDlgItem(hDlg, IDOK);
+					EnableWindow(hwndCtrl, FALSE);
+					SetWindowText(GetDlgItem(hDlg, IDC_HEADERBAR), TranslateT("Too many errors!"));
+				}
+				else SetWindowText(GetDlgItem(hDlg, IDC_HEADERBAR), TranslateT("Password is not correct!"));
+			}
+		}
+		oldLangID = 0;
+		SetTimer(hDlg,1,200,NULL);
+		LanguageChanged(hDlg);
+		return TRUE;
+
+	case WM_CTLCOLORSTATIC:
+		if ((HWND)lParam == GetDlgItem(hDlg, IDC_LANG)) {
+			SetTextColor((HDC)wParam, GetSysColor(COLOR_HIGHLIGHTTEXT));
+			SetBkMode((HDC)wParam, TRANSPARENT);
+			return (BOOL)GetSysColorBrush(COLOR_HIGHLIGHT);
+		}
+		return FALSE;
+
+	case WM_COMMAND:
+		switch( LOWORD(wParam)) {
+		case IDCANCEL:
+			EndDialog(hDlg,IDCANCEL);
+			break;
+
+		case IDOK:
+			CDbxMmapSA *p_Db = (CDbxMmapSA*)GetWindowLongPtr(hDlg, GWLP_USERDATA);
+			p_Db->encryptKeyLength = GetDlgItemTextA(hDlg, IDC_USERPASS, p_Db->encryptKey, 254);
+			EndDialog(hDlg,IDOK);
+		}
+		break;
+
+	case WM_TIMER:
+		LanguageChanged(hDlg);
+		return FALSE;
+
+	case WM_DESTROY:
+		KillTimer(hDlg, 1);
+		DestroyIcon((HICON)SendMessage(hDlg, WM_GETICON, ICON_SMALL, 0));
+	}
+
+	return FALSE;
+}
+
+INT_PTR CALLBACK DlgStdNewPass(HWND hDlg, UINT uMsg,WPARAM wParam,LPARAM lParam)
+{
+	switch(uMsg) {
+	case WM_INITDIALOG:
+		TranslateDialogDefault(hDlg);
+		SetWindowLongPtr(hDlg, GWLP_USERDATA, (LPARAM)lParam);
+
+		SendMessage(GetDlgItem(hDlg, IDC_HEADERBAR), WM_SETICON, ICON_SMALL, (LPARAM)LoadIcon(g_hInst, MAKEINTRESOURCE(IDI_ICON2)));
+
+		SetWindowText(GetDlgItem(hDlg, IDC_HEADERBAR), TranslateT("Please enter your new password"));
+
+		oldLangID = 0;
+		SetTimer(hDlg,1,200,NULL);
+		LanguageChanged(hDlg);
+		return TRUE;
+
+	case WM_CTLCOLORSTATIC:
+		if ((HWND)lParam == GetDlgItem(hDlg, IDC_LANG)) {
+			SetTextColor((HDC)wParam, GetSysColor(COLOR_HIGHLIGHTTEXT));
+			SetBkMode((HDC)wParam, TRANSPARENT);
+			return (BOOL)GetSysColorBrush(COLOR_HIGHLIGHT);
+		}
+		return FALSE;
+
+	case WM_COMMAND:
+		switch( LOWORD(wParam)) {
+		case IDCANCEL:
+			EndDialog(hDlg,IDCANCEL);
+			break;
+
+		case IDOK:
+			CDbxMmapSA *p_Db = (CDbxMmapSA*)GetWindowLongPtr(hDlg, GWLP_USERDATA);
+			char pass1[255], pass2[255];
+			if (GetDlgItemTextA(hDlg, IDC_USERPASS1, pass1, 254) < 3){
+				SetWindowText(GetDlgItem(hDlg, IDC_HEADERBAR), TranslateT("Password is too short!"));
+				SendMessage(GetDlgItem(hDlg, IDC_HEADERBAR), WM_NCPAINT, 0, 0);
+				SetDlgItemTextA(hDlg,IDC_USERPASS1,"");
+				SetDlgItemTextA(hDlg,IDC_USERPASS2,"");
+			}
+			else {
+				GetDlgItemTextA(hDlg, IDC_USERPASS2, pass2, 254);
+				if (!strcmp(pass1, pass2)) {
+					p_Db->encryptKeyLength = strlen(pass1);
+					strcpy(p_Db->encryptKey, pass1);
+					EndDialog(hDlg,IDOK);
+				}
+				else {
+					SetWindowText(GetDlgItem(hDlg, IDC_HEADERBAR), TranslateT("Passwords do not match!"));
+					SendMessage(GetDlgItem(hDlg, IDC_HEADERBAR), WM_NCPAINT, 0, 0);
+					SetDlgItemTextA(hDlg,IDC_USERPASS1,"");
+					SetDlgItemTextA(hDlg,IDC_USERPASS2,"");
+				}
+			}
+		}
+		break;
+
+	case WM_TIMER:
+		LanguageChanged(hDlg);
+		return FALSE;
+
+	case WM_DESTROY:
+		KillTimer(hDlg, 1);
+		DestroyIcon((HICON)SendMessage(hDlg, WM_GETICON, ICON_SMALL, 0));
+		return FALSE;
+	}
+	return FALSE;
+}
+
+INT_PTR CALLBACK DlgChangePass(HWND hDlg, UINT uMsg,WPARAM wParam,LPARAM lParam)
+{
+	static char* newPass;
+	CDbxMmapSA *p_Db = (CDbxMmapSA*)GetWindowLongPtr(hDlg, GWLP_USERDATA);
+
+	switch(uMsg) {
+	case WM_INITDIALOG:
+		TranslateDialogDefault(hDlg);
+
+		SendMessage(GetDlgItem(hDlg, IDC_HEADERBAR), WM_SETICON, 0, (LPARAM)LoadIcon(g_hInst, MAKEINTRESOURCE(IDI_ICON2)));
+		SetWindowText(GetDlgItem(hDlg, IDC_HEADERBAR), TranslateT("Change password"));
+		{
+			DlgChangePassParam *param = (DlgChangePassParam*)lParam;
+			newPass = param->pszNewPass;
+			SetWindowLongPtr(hDlg, GWLP_USERDATA, (LPARAM)param->p_Db);
+		}
+		oldLangID = 0;
+		SetTimer(hDlg,1,200,NULL);
+		LanguageChanged(hDlg);
+		return TRUE;
+
+	case WM_CTLCOLORSTATIC:
+		if ((HWND)lParam == GetDlgItem(hDlg, IDC_LANG)) {
+			SetTextColor((HDC)wParam, GetSysColor(COLOR_HIGHLIGHTTEXT));
+			SetBkMode((HDC)wParam, TRANSPARENT);
+			return (BOOL)GetSysColorBrush(COLOR_HIGHLIGHT);
+		}
+
+		return FALSE;
+
+	case WM_COMMAND:
+		switch( LOWORD(wParam)) {
+		char pass1[255], pass2[255], oldpass[255];
+		case IDOK:
+			GetDlgItemTextA(hDlg, IDC_OLDPASS, oldpass, 254);
+			if (strcmp(oldpass, p_Db->encryptKey)) {
+				SetWindowText(GetDlgItem(hDlg, IDC_HEADERBAR), TranslateT("Wrong password!"));
+				SendMessage(GetDlgItem(hDlg, IDC_HEADERBAR), WM_NCPAINT, 0, 0);
+				break;
+			}
+
+			if (GetDlgItemTextA(hDlg, IDC_NEWPASS1, pass1, 254) < 3){
+				SetWindowText(GetDlgItem(hDlg, IDC_HEADERBAR), TranslateT("Password is too short!"));
+				SendMessage(GetDlgItem(hDlg, IDC_HEADERBAR), WM_NCPAINT, 0, 0);
+			}
+			else {
+				GetDlgItemTextA(hDlg, IDC_NEWPASS2, pass2, 254);
+				if (!strcmp(pass1, pass2)) {
+					strcpy(newPass, pass1);
+					EndDialog(hDlg,IDOK);
+				}
+				else {
+					SetWindowText(GetDlgItem(hDlg, IDC_HEADERBAR), TranslateT("Passwords do not match!"));
+					SendMessage(GetDlgItem(hDlg, IDC_HEADERBAR), WM_NCPAINT, 0, 0);
+				}
+			}
+			break;
+
+		case IDCANCEL:
+			EndDialog(hDlg,IDCANCEL);
+			break;
+
+		case IDREMOVE:
+			GetDlgItemTextA(hDlg, IDC_OLDPASS, oldpass, 254);
+			if (strcmp(oldpass, p_Db->encryptKey)) {
+				SetWindowText(GetDlgItem(hDlg, IDC_HEADERBAR), TranslateT("Wrong password!"));
+				SendMessage(GetDlgItem(hDlg, IDC_HEADERBAR), WM_NCPAINT, 0, 0);
+				break;
+			}
+			EndDialog(hDlg, IDREMOVE);
+		}
+		break;
+
+	case WM_TIMER:
+		LanguageChanged(hDlg);
+		return FALSE;
+
+	case WM_DESTROY:
+		KillTimer(hDlg, 1);
+		DestroyIcon((HICON)SendMessage(hDlg, WM_GETICON, ICON_SMALL, 0));
+		return FALSE;
+	}
+	return FALSE;
+}
diff --git a/plugins/!Deprecated/Dbx_mmap_SA/src/init.cpp b/plugins/!Deprecated/Dbx_mmap_SA/src/init.cpp
new file mode 100644
index 0000000000..6b673fde1f
--- /dev/null
+++ b/plugins/!Deprecated/Dbx_mmap_SA/src/init.cpp
@@ -0,0 +1,152 @@
+/*
+
+Miranda IM: the free IM client for Microsoft* Windows*
+
+Copyright 2000-2003 Miranda ICQ/IM project,
+all portions of this codebase are copyrighted to the people
+listed in contributors.txt.
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2
+of the License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+*/
+
+#include "commonheaders.h"
+
+void InitSecurity(void);
+void UnloadSecurity(void);
+
+int hLangpack;
+
+HINSTANCE g_hInst = NULL;
+
+PLUGININFOEX pluginInfo = {
+	sizeof(PLUGININFOEX),
+	__PLUGIN_NAME,
+	PLUGIN_MAKE_VERSION(__MAJOR_VERSION, __MINOR_VERSION, __RELEASE_NUM, __BUILD_NUM),
+	__DESCRIPTION,
+	__AUTHOR,
+	__AUTHOREMAIL,
+	__COPYRIGHT,
+	__AUTHORWEB,
+	UNICODE_AWARE | STATIC_PLUGIN,
+	// {28FF9B91-3E4D-4F1C-B47C-C641B037FF40}
+	{0x28ff9b91, 0x3e4d, 0x4f1c, {0xb4, 0x7c, 0xc6, 0x41, 0xb0, 0x37, 0xff, 0x40}}
+};
+
+LIST<CDbxMmapSA> g_Dbs(1, HandleKeySortT);
+
+/////////////////////////////////////////////////////////////////////////////////////////
+
+// returns 0 if the profile is created, EMKPRF*
+static int makeDatabase(const TCHAR *profile)
+{
+	std::auto_ptr<CDbxMmapSA> db( new CDbxMmapSA(profile));
+	if (db->Create() == ERROR_SUCCESS) {
+		db->CreateDbHeaders(dbSignatureNonSecured);
+		return 0;
+	}
+
+	return EMKPRF_CREATEFAILED;
+}
+
+// returns 0 if the given profile has a valid header
+static int grokHeader(const TCHAR *profile)
+{
+	std::auto_ptr<CDbxMmapSA> db( new CDbxMmapSA(profile));
+	if (db->Load(true) != ERROR_SUCCESS)
+		return EGROKPRF_CANTREAD;
+
+	return db->CheckDbHeaders();
+}
+
+// returns 0 if all the APIs are injected otherwise, 1
+static MIDatabase* LoadDatabase(const TCHAR *profile)
+{
+	// set the memory, lists & UTF8 manager
+	mir_getLP( &pluginInfo );
+
+	std::auto_ptr<CDbxMmapSA> db( new CDbxMmapSA(profile));
+	if (db->Load(false) != ERROR_SUCCESS)
+		return NULL;
+
+	g_Dbs.insert(db.get());
+	return db.release();
+}
+
+static int UnloadDatabase(MIDatabase* db)
+{
+	g_Dbs.remove((CDbxMmapSA*)db);
+	delete (CDbxMmapSA*)db;
+	return 0;
+}
+
+MIDatabaseChecker* CheckDb(const TCHAR* profile, int *error)
+{
+	std::auto_ptr<CDbxMmapSA> db( new CDbxMmapSA(profile));
+	if (db->Load(true) != ERROR_SUCCESS) {
+		*error = EGROKPRF_CANTREAD;
+		return NULL;
+	}
+
+	int chk = db->CheckDbHeaders();
+	if (chk != ERROR_SUCCESS) {
+		*error = chk;
+		return NULL;
+	}
+
+	*error = 0;
+	return db.release();
+}
+
+static DATABASELINK dblink =
+{
+	sizeof(DATABASELINK),
+	"dbx_mmap_sa",
+	_T("dbx secure mmap driver"),
+	makeDatabase,
+	grokHeader,
+	LoadDatabase,
+	UnloadDatabase,
+	CheckDb
+};
+
+/////////////////////////////////////////////////////////////////////////////////////////
+
+extern "C" __declspec(dllexport) PLUGININFOEX * MirandaPluginInfoEx(DWORD mirandaVersion)
+{
+	return &pluginInfo;
+}
+
+extern "C" __declspec(dllexport) const MUUID MirandaInterfaces[] = {MIID_DATABASE, MIID_LAST};
+
+extern "C" __declspec(dllexport) int Load(void)
+{
+	InitSecurity();
+
+	RegisterDatabasePlugin(&dblink);
+	return 0;
+}
+
+extern "C" __declspec(dllexport) int Unload(void)
+{
+	g_Dbs.destroy();
+	UnloadSecurity();
+	return 0;
+}
+
+BOOL WINAPI DllMain(HINSTANCE hInstDLL, DWORD dwReason, LPVOID reserved)
+{
+	g_hInst = hInstDLL;
+	return TRUE;
+}
diff --git a/plugins/!Deprecated/Dbx_mmap_SA/src/options.h b/plugins/!Deprecated/Dbx_mmap_SA/src/options.h
new file mode 100644
index 0000000000..efabf3eba5
--- /dev/null
+++ b/plugins/!Deprecated/Dbx_mmap_SA/src/options.h
@@ -0,0 +1,38 @@
+/*
+
+Miranda IM: the free IM client for Microsoft* Windows*
+
+Copyright 2000-2003 Miranda ICQ/IM project,
+all portions of this codebase are copyrighted to the people
+listed in contributors.txt.
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2
+of the License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+*/
+
+#include <m_clist.h>
+#include <m_options.h>
+#include "resource.h"
+
+typedef enum { BT_DISABLED = 0, BT_START = 1, BT_EXIT = 2, BT_PERIODIC = 4} BackupType;
+typedef enum { PT_DAYS, PT_HOURS, PT_MINUTES} PeriodType;
+
+typedef struct Options_tag {
+	int backup_types;
+	unsigned int period;
+	PeriodType period_type;
+	char folder[MAX_PATH];
+	unsigned int num_backups;
+	BOOL disable_progress;
+} Options;
\ No newline at end of file
diff --git a/plugins/!Deprecated/Dbx_mmap_SA/src/resource.h b/plugins/!Deprecated/Dbx_mmap_SA/src/resource.h
new file mode 100644
index 0000000000..7b13f6957d
--- /dev/null
+++ b/plugins/!Deprecated/Dbx_mmap_SA/src/resource.h
@@ -0,0 +1,54 @@
+//{{NO_DEPENDENCIES}}
+// Microsoft Visual C++ generated include file.
+// Used by db3x_mmap.rc
+//
+#define IDC_NOTOALL                     3
+#define IDREMOVE                        3
+#define IDD_OPTIONS                     101
+#define IDD_INSTALLINI                  235
+#define IDD_WARNINICHANGE               236
+#define IDD_INIIMPORTDONE               237
+#define IDD_LOGIN                       269
+#define IDD_NEWPASS                     270
+#define IDI_ICON2                       271
+#define IDI_ICON3                       272
+#define IDC_LANG                        274
+#define IDD_CHANGEPASS                  275
+#define IDC_ININAME                     1333
+#define IDC_VIEWINI                     1334
+#define IDC_SECURITYINFO                1335
+#define IDC_SETTINGNAME                 1336
+#define IDC_NEWVALUE                    1337
+#define IDC_WARNNOMORE                  1338
+#define IDC_DELETE                      1339
+#define IDC_RECYCLE                     1340
+#define IDC_NEWNAME                     1341
+#define IDC_MOVE                        1342
+#define IDC_LEAVE                       1343
+#define IDC_HEADERBAR                   1657
+#define IDC_USERPASS                    1658
+#define IDC_ENC                         1659
+#define IDC_USERPASS1                   1659
+#define IDC_OLDPASS                     1660
+#define IDC_USERPASS2                   1661
+#define IDC_NEWPASSINFO                 1679
+#define IDC_MODULES                     1680
+#define IDC_NEWPASSINFO2                1680
+#define IDC_INFO                        1682
+#define IDC_AUTHOR                      1683
+#define IDC_NEWPASS1                    1683
+#define IDC_SITE                        1684
+#define IDC_NEWPASS2                    1684
+#define IDC_EMAIL                       1685
+#define IDC_UID                         1686
+
+// Next default values for new objects
+// 
+#ifdef APSTUDIO_INVOKED
+#ifndef APSTUDIO_READONLY_SYMBOLS
+#define _APS_NEXT_RESOURCE_VALUE        276
+#define _APS_NEXT_COMMAND_VALUE         40018
+#define _APS_NEXT_CONTROL_VALUE         1685
+#define _APS_NEXT_SYMED_VALUE           101
+#endif
+#endif
diff --git a/plugins/!Deprecated/Dbx_mmap_SA/src/security.cpp b/plugins/!Deprecated/Dbx_mmap_SA/src/security.cpp
new file mode 100644
index 0000000000..6d41787d24
--- /dev/null
+++ b/plugins/!Deprecated/Dbx_mmap_SA/src/security.cpp
@@ -0,0 +1,358 @@
+// (C) Artem Shpynov aka FYR and Igonin Vitaliy aka chaos.persei, 2007 - 2008
+
+#include "commonheaders.h"
+
+int wrongPass = 0;
+void* key;
+
+Cryptor* CryptoEngine = NULL;
+
+LIST<CryptoModule> arCryptors(1);
+
+void zero_fill(BYTE * pBuf, size_t bufSize)
+{
+	size_t i;
+	for (i = 0; i < bufSize; i++)
+		pBuf[i] = 0;
+}
+
+void InitSecurity()
+{
+	Cryptor* (__stdcall *GetCryptor)();	
+	
+	TCHAR tszPath[MAX_PATH];
+	GetModuleFileName(g_hInst, tszPath, SIZEOF(tszPath));
+	TCHAR *p = _tcsrchr(tszPath, '\\')+1; _tcscpy(p, _T("cryptors\\*.dll"));
+
+	WIN32_FIND_DATA fd;
+	HANDLE hFile = FindFirstFile(tszPath, &fd);	
+	while (hFile != INVALID_HANDLE_VALUE) {	
+		mir_sntprintf(p, MAX_PATH - (p-tszPath), _T("cryptors\\%s"), fd.cFileName);
+		HMODULE hLib = LoadLibrary(tszPath);
+		if (hLib){
+			GetCryptor = (Cryptor* (__stdcall *)()) GetProcAddress(hLib, "GetCryptor");
+			if (GetCryptor){
+				CryptoModule* newItem = (CryptoModule*) malloc(sizeof(CryptoModule));
+				newItem->cryptor = GetCryptor();
+				_tcsncpy(newItem->dllname, fd.cFileName, MAX_PATH);
+				newItem->hLib = hLib;
+				arCryptors.insert(newItem);
+			}
+			else FreeLibrary(hLib);
+		}
+		if (!FindNextFile(hFile, &fd))
+			break;
+	}
+}
+
+void UnloadSecurity()
+{
+	if (CryptoEngine)
+		CryptoEngine->FreeKey(key);
+
+	for (int i = 0; i < arCryptors.getCount(); i++) {
+		FreeLibrary(arCryptors[i]->hLib);
+		free(arCryptors[i]);
+	}
+	arCryptors.destroy();
+}
+
+void CDbxMmapSA::EncoderInit()
+{
+	if (!m_bEncoding) return;
+
+	encryptKey[encryptKeyLength] = 0;
+	key = CryptoEngine->GenerateKey(encryptKey);
+}
+
+void CDbxMmapSA::EncodeCopyMemory(void * dst, void * src, size_t size )
+{
+	memcpy(dst, src, size);
+
+	if (m_bEncoding)
+		CryptoEngine->EncryptMem((BYTE *)dst, (int)size, key);
+}
+
+void CDbxMmapSA::DecodeCopyMemory(void * dst, void * src, size_t size )
+{
+	memcpy(dst, src, size);
+
+	if (m_bEncoding)
+		CryptoEngine->DecryptMem((BYTE *)dst, (int)size, key);
+}
+
+void CDbxMmapSA::EncodeDBWrite(DWORD ofs, void *src, int size)
+{
+	if (m_bEncoding) {
+		BYTE *buf = (BYTE*)GlobalAlloc(GPTR, sizeof(BYTE)*size);
+		EncodeCopyMemory(buf, src, size);
+		DBWrite(ofs, buf, (int)size);
+		GlobalFree(buf);
+	}
+	else DBWrite(ofs, src, (int)size);
+}
+
+void CDbxMmapSA::DecodeDBWrite(DWORD ofs, void *src, int size)
+{
+	if (m_bEncoding) {
+		BYTE *buf = (BYTE*)GlobalAlloc(GPTR, sizeof(BYTE)*size);
+		DecodeCopyMemory(buf, src, size);
+		DBWrite(ofs, buf, (int)size);
+		GlobalFree(buf);
+	}
+	else DBWrite(ofs, src, (int)size);
+}
+
+int bCheckingPass = 0;
+
+int CDbxMmapSA::CheckPassword(WORD checkWord, TCHAR *szDBName)
+{
+	if (bCheckingPass)
+		return 0;
+
+	bCheckingPass = 1;
+
+	int Found = 0;
+	for (int i = 0; i < arCryptors.getCount(); i++) {
+		if ( HIWORD(m_dbHeader.version) == arCryptors[i]->cryptor->uid){
+			CryptoEngine = arCryptors[i]->cryptor;
+			Found = 1;
+			break;
+		}
+	}
+	if (!Found){
+		MessageBox(0, TranslateT("Sorry, but your database encrypted with unknown module"), TranslateT("Error"), MB_OK | MB_ICONERROR);
+		bCheckingPass = 0;
+		return 0;
+	}
+
+	while(1) {
+		DlgStdInProcParam param = { this, szDBName };
+		int res = DialogBoxParam(g_hInst, MAKEINTRESOURCE(IDD_LOGIN), NULL, DlgStdInProc, (LPARAM)&param);
+		if (res == IDCANCEL) {
+			wrongPass = 0;
+			bCheckingPass = 0;
+			return 0;
+		}
+		if (encryptKeyLength < 1)
+			continue;
+
+		EncoderInit();
+
+		WORD ver;
+		DecodeCopyMemory(&ver, &checkWord, sizeof(checkWord));
+		if (ver == 0x5195) {
+			wrongPass = 0;
+			bCheckingPass = 0;
+			return 1;
+		}
+		wrongPass++;
+	}
+
+	bCheckingPass = 0;
+}
+
+int SelectEncoder()
+{
+	if (arCryptors.getCount() == 0){
+		MessageBox(0, TranslateT("Crypto modules not found"), TranslateT("Error"), MB_OK | MB_ICONERROR);
+		return 1;
+	}
+
+	WORD uid = db_get_w(NULL, "SecureMMAP", "CryptoModule", 0);
+	if (uid != 0) {
+		for (int i = 0; i < arCryptors.getCount(); i++) {
+			if (arCryptors[i]->cryptor->uid == uid) {
+				CryptoEngine = arCryptors[i]->cryptor;
+				return 0;
+			}
+		}
+	}
+
+	db_set_w(NULL, "SecureMMAP", "CryptoModule", arCryptors[0]->cryptor->uid);
+	CryptoEngine = arCryptors[0]->cryptor;
+	return 0;
+}
+
+void CDbxMmapSA::EncodeAll()
+{
+	for (HANDLE hContact = db_find_first(); hContact; hContact = db_find_next(hContact)) {
+		EncodeContactEvents(hContact);
+		EncodeContactSettings(hContact);
+	}
+
+	EncodeContactEvents(NULL);
+	EncodeContactSettings(NULL);
+}
+
+void CDbxMmapSA::DecodeAll()
+{
+	for (HANDLE hContact = db_find_first(); hContact; hContact = db_find_next(hContact)) {
+		DecodeContactEvents(hContact);
+		DecodeContactSettings(hContact);
+	}
+	DecodeContactEvents(NULL);
+	DecodeContactSettings(NULL);
+}
+
+void CDbxMmapSA::WritePlainHeader()
+{
+	DWORD bytesWritten;
+
+	memcpy(m_dbHeader.signature, &dbSignatureNonSecured, sizeof(m_dbHeader.signature));
+	SetFilePointer(m_hDbFile,0,NULL,FILE_BEGIN);
+	WriteFile(m_hDbFile,m_dbHeader.signature,sizeof(m_dbHeader.signature),&bytesWritten,NULL);
+
+	m_dbHeader.version = MAKELONG(0x0700, 0x0000); //no encryption
+	WriteFile(m_hDbFile,&m_dbHeader.version, sizeof(m_dbHeader.version),&bytesWritten,NULL);
+}
+
+void CDbxMmapSA::WriteCryptHeader()
+{
+	DWORD bytesWritten;
+
+	memcpy(m_dbHeader.signature, &dbSignatureSecured, sizeof(m_dbHeader.signature));
+	SetFilePointer(m_hDbFile,0,NULL,FILE_BEGIN);
+	WriteFile(m_hDbFile,m_dbHeader.signature,sizeof(m_dbHeader.signature),&bytesWritten,NULL);
+
+	WORD checkWord = 0x5195, cryptWord;
+	EncodeCopyMemory(&cryptWord, &checkWord, sizeof(checkWord));
+	m_dbHeader.version = MAKELONG(cryptWord, CryptoEngine->uid);
+	WriteFile(m_hDbFile,&m_dbHeader.version, sizeof(m_dbHeader.version),&bytesWritten,NULL);
+}
+
+void CDbxMmapSA::EncryptDB()
+{
+	int action = 0;
+	if (bEncProcess)
+		return;
+
+	if (memcmp(m_dbHeader.signature, &dbSignatureSecured, sizeof(m_dbHeader.signature)) == 0){
+		MessageBox(0, TranslateT("DB is already secured!"), TranslateT("Error"), MB_OK | MB_ICONERROR);
+		return;
+	}
+
+	if (SelectEncoder())
+		return;
+
+	bEncProcess = 1;
+
+	action = DialogBoxParam(g_hInst, MAKEINTRESOURCE(IDD_NEWPASS), NULL, DlgStdNewPass, (LPARAM)this);
+	if (action != IDOK || !strlen(encryptKey)) {
+		bEncProcess = 0;
+		db_set_b(NULL, "SecureMMAP", "CryptoModule", 0);
+		return;
+	}
+
+	EnterCriticalSection(&m_csDbAccess);
+
+	m_bEncoding = 1;
+	EncoderInit();
+
+	EncodeAll();
+
+	LeaveCriticalSection(&m_csDbAccess);
+
+	WriteCryptHeader();
+
+	xModifyMenu(hSetPwdMenu, 0, LPGENT("Change Password"), 0);
+
+	bEncProcess = 0;
+}
+
+void CDbxMmapSA::DecryptDB()
+{
+	char oldKey[255];
+	strcpy(oldKey, encryptKey);
+
+	if ( !CheckPassword( LOWORD(m_dbHeader.version), TranslateT("current database"))) {
+		strcpy(encryptKey, oldKey);
+		encryptKeyLength = strlen(oldKey);
+		return;
+	}
+
+	WritePlainHeader();
+
+	EnterCriticalSection(&m_csDbAccess);
+	DecodeAll();
+	LeaveCriticalSection(&m_csDbAccess);
+
+	m_bEncoding = 0;
+
+	zero_fill((BYTE *)encryptKey, sizeof encryptKey);
+
+	xModifyMenu(hSetPwdMenu, 0, LPGENT("Set Password"), 0);
+
+	db_set_w(NULL, "SecureMMAP", "CryptoModule", 0);
+
+	CryptoEngine->FreeKey(key);
+
+	CryptoEngine = NULL;
+}
+
+void CDbxMmapSA::RecryptDB()
+{
+	EnterCriticalSection(&m_csDbAccess);
+
+	DecodeAll();
+
+	CryptoEngine->FreeKey(key);
+
+	SelectEncoder();
+
+	m_bEncoding = 1;
+
+	EncoderInit();
+
+	EncodeAll();
+
+	WriteCryptHeader();
+
+	LeaveCriticalSection(&m_csDbAccess);
+}
+
+void CDbxMmapSA::ChangePwd()
+{
+	char newpass[255] = {0};
+
+	DlgChangePassParam param = { this, newpass };
+	int action = DialogBoxParam(g_hInst, MAKEINTRESOURCE(IDD_CHANGEPASS), NULL, DlgChangePass, (LPARAM)&param);
+
+	if (action == IDCANCEL || (action == IDOK && !strlen(newpass)))
+		return;
+
+	EnterCriticalSection(&m_csDbAccess);
+
+	DecodeAll();
+
+	CryptoEngine->FreeKey(key);
+
+	if (action == IDREMOVE){
+		WritePlainHeader();
+
+		m_bEncoding = 0;
+		CryptoEngine = NULL;
+		db_set_w(NULL, "SecureMMAP", "CryptoModule", 0);
+
+		zero_fill((BYTE *)encryptKey, sizeof encryptKey);
+
+		xModifyMenu(hSetPwdMenu, 0, LPGENT("Set Password"), 0);
+	}
+
+	if (action == IDOK){
+		strcpy(encryptKey, newpass);
+		encryptKeyLength = strlen(newpass);
+
+		m_bEncoding = 1;
+
+		EncoderInit();
+
+		EncodeAll();
+
+		WriteCryptHeader();
+	}
+
+	zero_fill((BYTE *)newpass, sizeof newpass);
+
+	LeaveCriticalSection(&m_csDbAccess);
+}
diff --git a/plugins/!Deprecated/Dbx_mmap_SA/src/stdafx.cpp b/plugins/!Deprecated/Dbx_mmap_SA/src/stdafx.cpp
new file mode 100644
index 0000000000..e7e41dae3c
--- /dev/null
+++ b/plugins/!Deprecated/Dbx_mmap_SA/src/stdafx.cpp
@@ -0,0 +1,18 @@
+/*
+Copyright (C) 2012-13 Miranda NG Project (http://miranda-ng.org)
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation version 2
+of the License.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "commonheaders.h"
\ No newline at end of file
diff --git a/plugins/!Deprecated/Dbx_mmap_SA/src/version.h b/plugins/!Deprecated/Dbx_mmap_SA/src/version.h
new file mode 100644
index 0000000000..c77ad2d7ed
--- /dev/null
+++ b/plugins/!Deprecated/Dbx_mmap_SA/src/version.h
@@ -0,0 +1,14 @@
+#define __MAJOR_VERSION				0
+#define __MINOR_VERSION				7
+#define __RELEASE_NUM				5
+#define __BUILD_NUM					4
+
+#define __FILEVERSION_STRING		__MAJOR_VERSION,__MINOR_VERSION,__RELEASE_NUM,__BUILD_NUM
+
+#define __PLUGIN_NAME				"Miranda NG mmap secure database driver"
+#define __FILENAME					"Dbx_mmap_SA.dll"
+#define __DESCRIPTION 				"Provides Miranda database support: global settings, contacts, history, settings per contact. Enhanced modification with Encryption support."
+#define __AUTHOR					"Miranda-IM project, modification by FYR and chaos.persei, nullbie, Billy_Bons"
+#define __AUTHOREMAIL				"chaos.persei@gmail.com; ashpynov@gmail.com; bio@msx.ru; ghazan@miranda.im"
+#define __AUTHORWEB					"http://miranda-ng.org/p/Dbx_mmap_SA/"
+#define __COPYRIGHT					"� 2000-2011 Miranda IM project, 2012 Miranda NG project FYR, chaos.persei, induction, nullbie"
-- 
cgit v1.2.3