diff --git a/ROMVault2/DatReaders/DatCmpReader.cs b/ROMVault2/DatReaders/DatCmpReader.cs
index 35f1b38..0eb176f 100644
--- a/ROMVault2/DatReaders/DatCmpReader.cs
+++ b/ROMVault2/DatReaders/DatCmpReader.cs
@@ -7,6 +7,7 @@
using System;
using System.ComponentModel;
using System.IO;
+using System.Text;
using ROMVault2.Properties;
using ROMVault2.RvDB;
using ROMVault2.Utils;
@@ -548,7 +549,7 @@ namespace ROMVault2.DatReaders
int errorCode = IO.FileStream.OpenFileRead(strFilename, out _fileStream);
if (errorCode != 0)
return errorCode;
- _streamReader = new StreamReader(_fileStream, Program.Enc);
+ _streamReader = new StreamReader(_fileStream, Encoding.UTF8);
return 0;
}
public static void Close()
@@ -578,7 +579,7 @@ namespace ROMVault2.DatReaders
while ((_line.Trim().Length == 0) && (!_streamReader.EndOfStream))
{
_line = _streamReader.ReadLine();
- _line = (_line??"").Replace("" + (char)9, " ");
+ _line = (_line ?? "").Replace("" + (char)9, " ");
if (_line.TrimStart().Length > 2 && _line.TrimStart().Substring(0, 2) == @"//") _line = "";
if (_line.TrimStart().Length > 1 && _line.TrimStart().Substring(0, 1) == @"#") _line = "";
if (_line.TrimStart().Length > 1 && _line.TrimStart().Substring(0, 1) == @";") _line = "";
diff --git a/ROMVault2/DatReaders/DatXMLReader.cs b/ROMVault2/DatReaders/DatXMLReader.cs
index d421215..9fbb53e 100644
--- a/ROMVault2/DatReaders/DatXMLReader.cs
+++ b/ROMVault2/DatReaders/DatXMLReader.cs
@@ -124,6 +124,12 @@ namespace ROMVault2.DatReaders
tDat.AddData(RvDat.DatData.FileType, "zip");
thisFileType = FileType.ZipFile;
break;
+#if sevenzip
+ case "7z":
+ tDat.AddData(RvDat.DatData.FileType, "7z");
+ thisFileType = FileType.SevenZipFile;
+ break;
+#endif
case "unzip":
case "file":
tDat.AddData(RvDat.DatData.FileType, "file");
diff --git a/ROMVault2/DatUpdate.cs b/ROMVault2/DatUpdate.cs
index bd4a4b8..b693827 100644
--- a/ROMVault2/DatUpdate.cs
+++ b/ROMVault2/DatUpdate.cs
@@ -284,7 +284,7 @@ namespace ROMVault2
FileType ft = dbDir.FileType;
// if we are checking a dir or zip recurse into it.
- if (ft != FileType.Zip && ft != FileType.Dir) return EFile.Keep;
+ if (ft != FileType.Zip && ft != FileType.Dir && ft!=FileType.SevenZip) return EFile.Keep;
RvDir tDir = dbDir as RvDir;
// remove all DATStatus's here they will get set back correctly when adding dats back in below.
@@ -296,7 +296,7 @@ namespace ROMVault2
tDir.ChildRemove(i);
i--;
}
- if (ft == FileType.Zip && dbDir.GotStatus == GotStatus.Corrupt) return EFile.Keep;
+ if ((ft == FileType.Zip || ft==FileType.SevenZip) && dbDir.GotStatus == GotStatus.Corrupt) return EFile.Keep;
// if this directory is now empty it should be deleted
return tDir.ChildCount == 0 ? EFile.Delete : EFile.Keep;
@@ -544,7 +544,7 @@ namespace ROMVault2
FileType ft = dbChild.FileType;
- if (ft == FileType.Zip || ft == FileType.Dir)
+ if (ft == FileType.Zip || ft==FileType.SevenZip || ft == FileType.Dir)
{
RvDir dChild = (RvDir)dbChild;
RvDir dNewChild = (RvDir)newDatChild;
@@ -605,7 +605,7 @@ namespace ROMVault2
FileType ft = dbChild.FileType;
- if (ft == FileType.Zip || ft == FileType.Dir)
+ if (ft == FileType.Zip || ft == FileType.Dir || ft==FileType.SevenZip)
{
RvDir dbDir = (RvDir)dbChild;
for (int i = 0; i < dbDir.ChildCount; i++)
@@ -627,7 +627,7 @@ namespace ROMVault2
// filetypes are now know to be the same
// Dir's and Zip's are not deep scanned so matching here is done
- if ((v1 == FileType.Dir) || (v1 == FileType.Zip))
+ if ((v1 == FileType.Dir) || (v1 == FileType.Zip) || (v1==FileType.SevenZip))
return true;
RvFile f1 = (RvFile)var1;
diff --git a/ROMVault2/FileScanning.cs b/ROMVault2/FileScanning.cs
index 698c1c4..08d7a0b 100644
--- a/ROMVault2/FileScanning.cs
+++ b/ROMVault2/FileScanning.cs
@@ -15,6 +15,7 @@ using ROMVault2.RvDB;
using ROMVault2.SupportedFiles;
using ROMVault2.SupportedFiles.CHD;
using ROMVault2.SupportedFiles.Files;
+using ROMVault2.SupportedFiles.SevenZip;
using ROMVault2.SupportedFiles.Zip;
using ROMVault2.Utils;
using FileInfo = ROMVault2.IO.FileInfo;
@@ -140,11 +141,16 @@ namespace ROMVault2
switch (ft)
{
case FileType.Zip:
+ case FileType.SevenZip:
{
fileDir = new RvDir(ft);
// open the zip file
- ZipFile checkZ = new ZipFile();
+ ICompress checkZ;
+ if (ft == FileType.Zip)
+ checkZ = new ZipFile();
+ else
+ checkZ = new SevenZ();
ZipReturn zr = checkZ.ZipFileOpen(fullDir, dbDir.TimeStamp, true);
@@ -251,6 +257,19 @@ namespace ROMVault2
string fExt = Path.GetExtension(oFile.Name);
switch (fExt.ToLower())
{
+#if sevenzip
+ case ".7z":
+ {
+ RvDir tGame = new RvDir(FileType.SevenZip)
+ {
+ Name = Path.GetFileNameWithoutExtension(oFile.Name),
+ TimeStamp = oFile.LastWriteTime,
+ };
+ tGame.SetStatus(chechingDatStatus, GotStatus.Got);
+ fileDir.ChildAdd(tGame);
+ }
+ break;
+#endif
case ".zip":
{
RvDir tGame = new RvDir(FileType.Zip)
@@ -510,6 +529,7 @@ namespace ROMVault2
switch (dbChild.FileType)
{
case FileType.Zip:
+ case FileType.SevenZip:
if (dbChild.TimeStamp != fileChild.TimeStamp || EScanLevel == eScanLevel.Level3 ||
(EScanLevel == eScanLevel.Level2 && !IsDeepScanned((RvDir)dbChild)))
{
@@ -530,7 +550,8 @@ namespace ROMVault2
break;
case FileType.File:
case FileType.ZipFile:
- if (dbChild.TimeStamp == fileChild.TimeStamp && dbChild.GotStatus == GotStatus.Corrupt)
+ case FileType.SevenZipFile:
+ if (dbChild.TimeStamp == fileChild.TimeStamp && dbChild.GotStatus == GotStatus.Corrupt)
fileChild.GotStatus = GotStatus.Corrupt;
dbChild.FileAdd(fileChild);
@@ -555,6 +576,7 @@ namespace ROMVault2
switch (fileChild.FileType)
{
case FileType.Zip:
+ case FileType.SevenZip:
dbDir.ChildAdd(fileChild, dbIndex);
CheckADir((RvDir)fileChild, false);
break;
@@ -576,6 +598,7 @@ namespace ROMVault2
dbDir.ChildAdd(fileChild, dbIndex);
break;
case FileType.ZipFile:
+ case FileType.SevenZipFile:
dbDir.ChildAdd(fileChild, dbIndex);
break;
default:
@@ -669,7 +692,7 @@ namespace ROMVault2
// filetypes are now know to be the same
// Dir's and Zip's are not deep scanned so matching here is done
- if ((dbfileType == FileType.Dir) || (dbfileType == FileType.Zip))
+ if ((dbfileType == FileType.Dir) || (dbfileType == FileType.Zip) || (dbfileType==FileType.SevenZip))
return true;
RvFile dbFileF = (RvFile)dbFile;
diff --git a/ROMVault2/FixFileCopy.cs b/ROMVault2/FixFileCopy.cs
index 027d427..791cd43 100644
--- a/ROMVault2/FixFileCopy.cs
+++ b/ROMVault2/FixFileCopy.cs
@@ -7,9 +7,12 @@
using System;
using System.ComponentModel;
using System.Diagnostics;
+using System.Drawing;
+using System.IO;
using System.Security.Cryptography;
using ROMVault2.RvDB;
using ROMVault2.SupportedFiles;
+using ROMVault2.SupportedFiles.SevenZip;
using ROMVault2.SupportedFiles.Zip;
using ROMVault2.SupportedFiles.Zip.ZLib;
using ROMVault2.Utils;
@@ -44,7 +47,7 @@ namespace ROMVault2
/// If we are SHA1/MD5 checking the source file for the first time, and it is different from what we expected the correct values for this file are returned in foundFile
/// ReturnCode.Good is the valid return code otherwire we have an error
- public static ReturnCode CopyFile(RvFile fileIn, ref ZipFile zipFileOut, string zipFilenameOut, RvFile fileOut, bool forceRaw, out string error, out RvFile foundFile)
+ public static ReturnCode CopyFile(RvFile fileIn, ref ICompress zipFileOut, string zipFilenameOut, RvFile fileOut, bool forceRaw, out string error, out RvFile foundFile)
{
foundFile = null;
error = "";
@@ -59,120 +62,21 @@ namespace ROMVault2
bool sourceTrrntzip = false;
- ZipFile zipFileIn = null;
- System.IO.Stream readStream = null;
+ ICompress zipFileIn = null;
+ Stream readStream = null;
+ ReturnCode retC;
bool isZeroLengthFile = DBHelper.IsZeroLengthFile(fileOut);
if (!isZeroLengthFile)
{
- #region check that the in and out file match
- if (fileOut.FileStatusIs(FileStatus.SizeFromDAT) && fileOut.Size != null && fileIn.Size != fileOut.Size)
- {
- error = "Source and destination Size does not match. Logic Error.";
- return ReturnCode.LogicError;
- }
- if (fileOut.FileStatusIs(FileStatus.CRCFromDAT) && fileOut.CRC != null && !ArrByte.bCompare(fileIn.CRC, fileOut.CRC))
- {
- error = "Source and destination CRC does not match. Logic Error.";
- return ReturnCode.LogicError;
- }
+ retC = CheckInputAndOutputFile(fileIn, fileOut, out error);
+ if (retC != ReturnCode.Good)
+ return retC;
- if (fileOut.FileStatusIs(FileStatus.SHA1FromDAT) && fileIn.FileStatusIs(FileStatus.SHA1Verified))
- {
- if (fileIn.SHA1 != null && fileOut.SHA1 != null && !ArrByte.bCompare(fileIn.SHA1, fileOut.SHA1))
- {
- error = "Source and destination SHA1 does not match. Logic Error.";
- return ReturnCode.LogicError;
- }
- }
- if (fileOut.FileStatusIs(FileStatus.MD5CHDFromDAT) && fileIn.FileStatusIs(FileStatus.MD5Verified))
- {
- if (fileIn.MD5 != null && fileOut.MD5 != null && !ArrByte.bCompare(fileIn.MD5, fileOut.MD5))
- {
- error = "Source and destination SHA1 does not match. Logic Error.";
- return ReturnCode.LogicError;
- }
- }
-
- #endregion
-
- #region Find and Check/Open Input Files
-
- if (fileIn.FileType == FileType.ZipFile) // Input is a ZipFile
- {
- RvDir zZipFileIn = fileIn.Parent;
- if (zZipFileIn.FileType != FileType.Zip)
- {
- error = "Zip File Open but Source File is not a zip, Logic Error.";
- return ReturnCode.LogicError;
- }
-
- string fileNameIn = zZipFileIn.FullName;
-
- sourceTrrntzip = (zZipFileIn.ZipStatus & ZipStatus.TrrntZip) == ZipStatus.TrrntZip;
-
- //if (zZipFileIn.ZipFileType == RvZip.ZipType.Zip)
- //{
- zipFileIn = new ZipFile();
-
- ZipReturn zr1;
- if (fileIn.ZipFileHeaderPosition != null)
- zr1 = zipFileIn.ZipFileOpen(fileNameIn, zZipFileIn.TimeStamp, false);
- else
- zr1 = zipFileIn.ZipFileOpen(fileNameIn, zZipFileIn.TimeStamp, true);
- switch (zr1)
- {
- case ZipReturn.ZipGood:
- break;
- case ZipReturn.ZipErrorFileNotFound:
- error = "File not found, Rescan required before fixing " + fileIn.Name;
- return ReturnCode.FileSystemError;
- case ZipReturn.ZipErrorTimeStamp:
- error = "File has changed, Rescan required before fixing " + fileIn.Name;
- return ReturnCode.FileSystemError;
- default:
- error = "Error Open Zip" + zr1 + ", with File " + fileIn.DatFullName;
- return ReturnCode.FileSystemError;
- }
- if (fileIn.ZipFileHeaderPosition != null)
- zipFileIn.ZipFileOpenReadStreamQuick((ulong)fileIn.ZipFileHeaderPosition, rawCopy, out readStream, out streamSize, out compressionMethod);
- else
- zipFileIn.ZipFileOpenReadStream(fileIn.ZipFileIndex, rawCopy, out readStream, out streamSize, out compressionMethod);
- }
- else // Input is a regular file
- {
- string fileNameIn = fileIn.FullName;
- if (!IO.File.Exists(fileNameIn))
- {
- error = "Rescan needed, File Changed :" + fileNameIn;
- return ReturnCode.RescanNeeded;
- }
- IO.FileInfo fileInInfo = new IO.FileInfo(fileNameIn);
- if (fileInInfo.LastWriteTime != fileIn.TimeStamp)
- {
- error = "Rescan needed, File Changed :" + fileNameIn;
- return ReturnCode.RescanNeeded;
- }
- int errorCode = IO.FileStream.OpenFileRead(fileNameIn, out readStream);
- if (errorCode != 0)
- {
- error = new Win32Exception(errorCode).Message + ". " + fileNameIn;
- return ReturnCode.FileSystemError;
- }
- if (fileIn.Size == null)
- {
- error = "Null File Size found in Fixing File :" + fileNameIn;
- return ReturnCode.LogicError;
- }
- streamSize = (ulong)fileIn.Size;
- if ((ulong)readStream.Length != streamSize)
- {
- error = "Rescan needed, File Length Changed :" + fileNameIn;
- return ReturnCode.RescanNeeded;
- }
- }
- #endregion
+ retC = OpenInputStream(fileIn, rawCopy, out zipFileIn, out sourceTrrntzip, out readStream, out streamSize, out compressionMethod, out error);
+ if (retC != ReturnCode.Good)
+ return retC;
}
else
{
@@ -184,72 +88,12 @@ namespace ROMVault2
#region Find and Check/Open Output Files
- System.IO.Stream writeStream;
- if (fileOut.FileType == FileType.ZipFile)
- {
- // if ZipFileOut == null then we have not open the output zip yet so open it from writing.
- if (zipFileOut == null)
- {
- if (IO.Path.GetFileName(zipFilenameOut) == "__RomVault.tmp")
- {
- if (IO.File.Exists(zipFilenameOut))
- IO.File.Delete(zipFilenameOut);
- }
- else if (IO.File.Exists(zipFilenameOut))
- {
- error = "Rescan needed, File Changed :" + zipFilenameOut;
- return ReturnCode.RescanNeeded;
- }
+ Stream writeStream;
- zipFileOut = new ZipFile();
- ZipReturn zrf = zipFileOut.ZipFileCreate(zipFilenameOut);
- if (zrf != ZipReturn.ZipGood)
- {
- error = "Error Opening Write Stream " + zrf;
- return ReturnCode.FileSystemError;
- }
- }
- else
- {
- if (zipFileOut.ZipOpen != ZipOpenType.OpenWrite)
- {
- error = "Output Zip File is not set to OpenWrite, Logic Error.";
- return ReturnCode.LogicError;
- }
+ retC = OpenOutputStream(fileOut, fileIn, ref zipFileOut, zipFilenameOut, compressionMethod, rawCopy, sourceTrrntzip, out writeStream, out error);
+ if (retC != ReturnCode.Good)
+ return retC;
- if (zipFileOut.ZipFilename != (new IO.FileInfo(zipFilenameOut).FullName))
- {
- error = "Output Zip file has changed name from " + zipFileOut.ZipFilename + " to " + zipFilenameOut + ". Logic Error";
- return ReturnCode.LogicError;
- }
- }
-
- if (fileIn.Size == null)
- {
- error = "Null File Size found in Fixing File :" + fileIn.FullName;
- return ReturnCode.LogicError;
- }
- ZipReturn zr = zipFileOut.ZipFileOpenWriteStream(rawCopy, sourceTrrntzip, fileOut.Name, (ulong)fileIn.Size, compressionMethod, out writeStream);
- if (zr != ZipReturn.ZipGood)
- {
- error = "Error Opening Write Stream " + zr;
- return ReturnCode.FileSystemError;
- }
- }
- else
- {
- if (IO.File.Exists(zipFilenameOut) && fileOut.GotStatus != GotStatus.Corrupt)
- {
- error = "Rescan needed, File Changed :" + zipFilenameOut;
- return ReturnCode.RescanNeeded;
- }
- int errorCode = IO.FileStream.OpenFileWrite(zipFilenameOut, out writeStream);
- if (errorCode != 0)
- {
- error = new Win32Exception(errorCode).Message + ". " + zipFilenameOut;
- return ReturnCode.FileSystemError;
- }
- }
#endregion
byte[] bCRC;
@@ -374,7 +218,7 @@ namespace ROMVault2
#region close the ReadStream
- if (fileIn.FileType == FileType.ZipFile && zipFileIn != null)
+ if ((fileIn.FileType == FileType.ZipFile || fileIn.FileType == FileType.SevenZipFile) && zipFileIn != null)
{
ZipReturn zr = zipFileIn.ZipFileCloseReadStream();
if (zr != ZipReturn.ZipGood)
@@ -408,7 +252,7 @@ namespace ROMVault2
#region close the WriteStream
- if (fileOut.FileType == FileType.ZipFile)
+ if (fileOut.FileType == FileType.ZipFile || fileOut.FileType == FileType.SevenZipFile)
{
ZipReturn zr = zipFileOut.ZipFileCloseWriteStream(bCRC);
if (zr != ZipReturn.ZipGood)
@@ -516,7 +360,7 @@ namespace ROMVault2
if (sourceFailed)
{
- if (fileIn.FileType == FileType.ZipFile)
+ if (fileIn.FileType == FileType.ZipFile || fileIn.FileType == FileType.SevenZipFile)
{
RvFile tZFile = new RvFile(FileType.ZipFile);
foundFile = tZFile;
@@ -548,7 +392,7 @@ namespace ROMVault2
}
}
- if (fileOut.FileType == FileType.ZipFile)
+ if (fileOut.FileType == FileType.ZipFile || fileOut.FileType == FileType.SevenZipFile)
{
fileOut.FileStatusSet(FileStatus.SizeFromHeader | FileStatus.CRCFromHeader);
}
@@ -671,5 +515,227 @@ namespace ROMVault2
return false;
}
+
+ private static ReturnCode CheckInputAndOutputFile(RvFile fileIn, RvFile fileOut, out string error)
+ {
+ if (fileOut.FileStatusIs(FileStatus.SizeFromDAT) && fileOut.Size != null && fileIn.Size != fileOut.Size)
+ {
+ error = "Source and destination Size does not match. Logic Error.";
+ return ReturnCode.LogicError;
+ }
+ if (fileOut.FileStatusIs(FileStatus.CRCFromDAT) && fileOut.CRC != null && !ArrByte.bCompare(fileIn.CRC, fileOut.CRC))
+ {
+ error = "Source and destination CRC does not match. Logic Error.";
+ return ReturnCode.LogicError;
+ }
+
+ if (fileOut.FileStatusIs(FileStatus.SHA1FromDAT) && fileIn.FileStatusIs(FileStatus.SHA1Verified))
+ {
+ if (fileIn.SHA1 != null && fileOut.SHA1 != null && !ArrByte.bCompare(fileIn.SHA1, fileOut.SHA1))
+ {
+ error = "Source and destination SHA1 does not match. Logic Error.";
+ return ReturnCode.LogicError;
+ }
+ }
+ if (fileOut.FileStatusIs(FileStatus.MD5CHDFromDAT) && fileIn.FileStatusIs(FileStatus.MD5Verified))
+ {
+ if (fileIn.MD5 != null && fileOut.MD5 != null && !ArrByte.bCompare(fileIn.MD5, fileOut.MD5))
+ {
+ error = "Source and destination SHA1 does not match. Logic Error.";
+ return ReturnCode.LogicError;
+ }
+ }
+ error = "";
+ return ReturnCode.Good;
+ }
+
+ private static ReturnCode OpenInputStream(RvFile fileIn, bool rawCopy, out ICompress zipFileIn, out bool sourceTrrntzip, out Stream readStream, out ulong streamSize, out ushort compressionMethod, out string error)
+ {
+ zipFileIn = null;
+ sourceTrrntzip = false;
+ readStream = null;
+ streamSize = 0;
+ compressionMethod = 0;
+
+ switch (fileIn.FileType)
+ {
+ case FileType.SevenZipFile:
+ case FileType.ZipFile:
+ {
+ RvDir zZipFileIn = fileIn.Parent;
+ if (zZipFileIn.FileType != DBTypeGet.DirFromFile(fileIn.FileType))
+ {
+ error = "SevenZip File Open but Source File is not a SevenZip, Logic Error.";
+ return ReturnCode.LogicError;
+ }
+
+ string fileNameIn = zZipFileIn.FullName;
+ ZipReturn zr1;
+
+ if (fileIn.FileType == FileType.SevenZipFile)
+ {
+ sourceTrrntzip = false;
+ zipFileIn = new SevenZ();
+ zr1 = zipFileIn.ZipFileOpen(fileNameIn, zZipFileIn.TimeStamp, true);
+ }
+ else
+ {
+ sourceTrrntzip = (zZipFileIn.ZipStatus & ZipStatus.TrrntZip) == ZipStatus.TrrntZip;
+ zipFileIn = new ZipFile();
+ zr1 = zipFileIn.ZipFileOpen(fileNameIn, zZipFileIn.TimeStamp, fileIn.ZipFileHeaderPosition == null);
+ }
+
+ switch (zr1)
+ {
+ case ZipReturn.ZipGood:
+ break;
+ case ZipReturn.ZipErrorFileNotFound:
+ error = "File not found, Rescan required before fixing " + fileIn.Name;
+ return ReturnCode.FileSystemError;
+ case ZipReturn.ZipErrorTimeStamp:
+ error = "File has changed, Rescan required before fixing " + fileIn.Name;
+ return ReturnCode.FileSystemError;
+ default:
+ error = "Error Open Zip" + zr1 + ", with File " + fileIn.DatFullName;
+ return ReturnCode.FileSystemError;
+ }
+
+ if (fileIn.FileType == FileType.SevenZipFile)
+ {
+
+ SevenZ z = zipFileIn as SevenZ;
+ z.ZipFileOpenReadStream(fileIn.ZipFileIndex, out readStream, out streamSize);
+ }
+ else
+ {
+ ZipFile z = zipFileIn as ZipFile;
+ if (fileIn.ZipFileHeaderPosition != null)
+ z.ZipFileOpenReadStreamQuick((ulong)fileIn.ZipFileHeaderPosition, rawCopy, out readStream, out streamSize, out compressionMethod);
+ else
+ z.ZipFileOpenReadStream(fileIn.ZipFileIndex, rawCopy, out readStream, out streamSize, out compressionMethod);
+ }
+ }
+ break;
+ default:
+ {
+ string fileNameIn = fileIn.FullName;
+ if (!IO.File.Exists(fileNameIn))
+ {
+ error = "Rescan needed, File Changed :" + fileNameIn;
+ return ReturnCode.RescanNeeded;
+ }
+ IO.FileInfo fileInInfo = new IO.FileInfo(fileNameIn);
+ if (fileInInfo.LastWriteTime != fileIn.TimeStamp)
+ {
+ error = "Rescan needed, File Changed :" + fileNameIn;
+ return ReturnCode.RescanNeeded;
+ }
+ int errorCode = IO.FileStream.OpenFileRead(fileNameIn, out readStream);
+ if (errorCode != 0)
+ {
+ error = new Win32Exception(errorCode).Message + ". " + fileNameIn;
+ return ReturnCode.FileSystemError;
+ }
+ if (fileIn.Size == null)
+ {
+ error = "Null File Size found in Fixing File :" + fileNameIn;
+ return ReturnCode.LogicError;
+ }
+ streamSize = (ulong)fileIn.Size;
+ if ((ulong)readStream.Length != streamSize)
+ {
+ error = "Rescan needed, File Length Changed :" + fileNameIn;
+ return ReturnCode.RescanNeeded;
+ }
+ }
+ break;
+ }
+
+ error = "";
+ return ReturnCode.Good;
+ }
+
+ private static ReturnCode OpenOutputStream(RvFile fileOut, RvFile fileIn, ref ICompress zipFileOut, string zipFilenameOut, ushort compressionMethod, bool rawCopy, bool sourceTrrntzip, out System.IO.Stream writeStream, out string error)
+ {
+ writeStream = null;
+
+ switch (fileOut.FileType)
+ {
+ case FileType.ZipFile:
+ case FileType.SevenZipFile:
+ {
+ // if ZipFileOut == null then we have not open the output zip yet so open it from writing.
+ if (zipFileOut == null)
+ {
+ if (IO.Path.GetFileName(zipFilenameOut) == "__RomVault.tmp")
+ {
+ if (IO.File.Exists(zipFilenameOut))
+ IO.File.Delete(zipFilenameOut);
+ }
+ else if (IO.File.Exists(zipFilenameOut))
+ {
+ error = "Rescan needed, File Changed :" + zipFilenameOut;
+ return ReturnCode.RescanNeeded;
+ }
+ if (fileOut.FileType == FileType.ZipFile)
+ zipFileOut = new ZipFile();
+ else
+ zipFileOut = new SevenZ();
+
+ ZipReturn zrf = zipFileOut.ZipFileCreate(zipFilenameOut);
+ if (zrf != ZipReturn.ZipGood)
+ {
+ error = "Error Opening Write Stream " + zrf;
+ return ReturnCode.FileSystemError;
+ }
+ }
+ else
+ {
+ if (zipFileOut.ZipOpen != ZipOpenType.OpenWrite)
+ {
+ error = "Output Zip File is not set to OpenWrite, Logic Error.";
+ return ReturnCode.LogicError;
+ }
+
+ if (zipFileOut.ZipFilename != (new IO.FileInfo(zipFilenameOut).FullName))
+ {
+ error = "Output Zip file has changed name from " + zipFileOut.ZipFilename + " to " + zipFilenameOut + ". Logic Error";
+ return ReturnCode.LogicError;
+ }
+ }
+
+ if (fileIn.Size == null)
+ {
+ error = "Null File Size found in Fixing File :" + fileIn.FullName;
+ return ReturnCode.LogicError;
+ }
+ ZipReturn zr = zipFileOut.ZipFileOpenWriteStream(rawCopy, sourceTrrntzip, fileOut.Name, (ulong)fileIn.Size, compressionMethod, out writeStream);
+ if (zr != ZipReturn.ZipGood)
+ {
+ error = "Error Opening Write Stream " + zr;
+ return ReturnCode.FileSystemError;
+ }
+ }
+ break;
+ default:
+ {
+ if (IO.File.Exists(zipFilenameOut) && fileOut.GotStatus != GotStatus.Corrupt)
+ {
+ error = "Rescan needed, File Changed :" + zipFilenameOut;
+ return ReturnCode.RescanNeeded;
+ }
+ int errorCode = IO.FileStream.OpenFileWrite(zipFilenameOut, out writeStream);
+ if (errorCode != 0)
+ {
+ error = new Win32Exception(errorCode).Message + ". " + zipFilenameOut;
+ return ReturnCode.FileSystemError;
+ }
+ }
+ break;
+ }
+
+ error = "";
+ return ReturnCode.Good;
+ }
}
}
diff --git a/ROMVault2/FixFiles.cs b/ROMVault2/FixFiles.cs
index ed777b9..1d7f0c8 100644
--- a/ROMVault2/FixFiles.cs
+++ b/ROMVault2/FixFiles.cs
@@ -14,6 +14,7 @@ using ROMVault2.Properties;
using ROMVault2.RvDB;
using ROMVault2.SupportedFiles;
using ROMVault2.SupportedFiles.Zip;
+using ROMVault2.Utils;
namespace ROMVault2
{
@@ -133,6 +134,7 @@ namespace ROMVault2
switch (child.FileType)
{
case FileType.Zip:
+ case FileType.SevenZip:
if (!thisSelected)
continue;
RvDir tZip = (RvDir)child;
@@ -230,6 +232,23 @@ namespace ROMVault2
} while (returnCode == ReturnCode.StartOver);
break;
+ case FileType.SevenZip:
+ if (!thisSelected)
+ return ReturnCode.Good;
+
+ if (!String.IsNullOrEmpty(child.FileName))
+ {
+ string strDir = child.Parent.FullName;
+ File.Move(Path.Combine(strDir, child.FileName + ".z7"), Path.Combine(strDir, child.Name + ".z7"));
+ child.FileName = null;
+ }
+
+ do
+ {
+ returnCode = FixZip((RvDir)child);
+ } while (returnCode == ReturnCode.StartOver);
+ break;
+
case FileType.Dir:
if (thisSelected)
{
@@ -418,7 +437,7 @@ namespace ROMVault2
ReportProgress(new bgwShowFix(Path.GetDirectoryName(fixFileFullName), "", Path.GetFileName(fixFileFullName), fixFile.Size, "-->", "ToSort", "", fixFile.Name));
- ZipFile tempZipOut = null;
+ ICompress tempZipOut = null;
RvFile foundFile;
ReturnCode returnCode = FixFileCopy.CopyFile(fixFile, ref tempZipOut, toSortFullName, toSortRom, false, out _error, out foundFile);
switch (returnCode)
@@ -481,7 +500,7 @@ namespace ROMVault2
_bgw.ReportProgress(0, new bgwShowFix(Path.GetDirectoryName(fixFileFullName), "", Path.GetFileName(fixFileFullName), fixFile.Size, "-->", "Corrupt", "", fixFile.Name));
- ZipFile tempZipOut = null;
+ ICompress tempZipOut = null;
RvFile foundFile;
ReturnCode returnCode = FixFileCopy.CopyFile(fixFile, ref tempZipOut, toSortCorruptFullName, toSortCorruptRom, false, out _error, out foundFile);
switch (returnCode)
@@ -642,7 +661,7 @@ namespace ROMVault2
// now we can fix the file.
- ZipFile tempZipOut = null;
+ ICompress tempZipOut = null;
RvFile foundFile;
ReturnCode returnCode;
@@ -851,7 +870,8 @@ namespace ROMVault2
return ReturnCode.Good;
}
-
+ if (!fixZip.DirStatus.HasFixable() && needsTrrntzipped && fixZip.FileType == FileType.SevenZip)
+ return ReturnCode.Good;
string fixZipFullName = fixZip.TreeFullName;
@@ -869,10 +889,10 @@ namespace ROMVault2
ReportError.LogOut((RvFile)fixZip.Child(intLoop));
ReportError.LogOut("");
- ZipFile tempZipOut = null;
+ ICompress tempZipOut = null;
- ZipFile toSortCorruptOut = null;
- ZipFile toSortZipOut = null;
+ ICompress toSortCorruptOut = null;
+ ICompress toSortZipOut = null;
RvDir toSortGame = null;
RvDir toSortCorruptGame = null;
@@ -880,9 +900,11 @@ namespace ROMVault2
ReturnCode returnCode;
List fixZipTemp = new List();
+ FileType fixFileType = fixZip.FileType;
+
for (int iRom = 0; iRom < fixZip.ChildCount; iRom++)
{
- RvFile zipFileFixing = new RvFile(FileType.ZipFile);
+ RvFile zipFileFixing = new RvFile(DBTypeGet.FileFromDir(fixFileType));
fixZip.Child(iRom).CopyTo(zipFileFixing);
if (iRom == fixZipTemp.Count)
@@ -1063,7 +1085,7 @@ namespace ROMVault2
string ts = lstFixRomTable[0].Parent.FullName;
string sourceDir;
string sourceFile;
- if (lstFixRomTable[0].FileType == FileType.ZipFile)
+ if (lstFixRomTable[0].FileType == FileType.ZipFile || lstFixRomTable[0].FileType == FileType.SevenZipFile)
{
sourceDir = Path.GetDirectoryName(ts);
sourceFile = Path.GetFileName(ts);
@@ -1593,6 +1615,7 @@ namespace ROMVault2
switch (fileToCheck.FileType)
{
case FileType.ZipFile:
+ case FileType.SevenZipFile:
{
string fullPathCheckDelete = fileToCheck.Parent.FullName;
if (!File.Exists(fullPathCheckDelete))
@@ -1775,6 +1798,7 @@ namespace ROMVault2
_processList.Add(tCheck);
break;
case FileType.ZipFile:
+ case FileType.SevenZipFile:
RvDir p = tCheck.Parent;
if (fastProcess)
diff --git a/ROMVault2/FrmHelpAbout.Designer.cs b/ROMVault2/FrmHelpAbout.Designer.cs
index ea98129..7ae19b5 100644
--- a/ROMVault2/FrmHelpAbout.Designer.cs
+++ b/ROMVault2/FrmHelpAbout.Designer.cs
@@ -71,7 +71,7 @@
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
- this.BackgroundImage = global::ROMVault2.rvImages.romvaultTZ;
+ this.BackgroundImage = global::ROMVault2.rvImages1.romvaultTZ;
this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None;
this.ClientSize = new System.Drawing.Size(471, 172);
this.Controls.Add(this.label2);
diff --git a/ROMVault2/FrmMain.Designer.cs b/ROMVault2/FrmMain.Designer.cs
index e38d02f..91178cc 100644
--- a/ROMVault2/FrmMain.Designer.cs
+++ b/ROMVault2/FrmMain.Designer.cs
@@ -28,19 +28,14 @@
///
private void InitializeComponent()
{
- System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmMain));
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle5 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle6 = new System.Windows.Forms.DataGridViewCellStyle();
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmMain));
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
- this.btnReport = new System.Windows.Forms.Button();
- this.btnFixFiles = new System.Windows.Forms.Button();
- this.btnFindFixes = new System.Windows.Forms.Button();
- this.btnScanRoms = new System.Windows.Forms.Button();
- this.btnUpdateDats = new System.Windows.Forms.Button();
this.splitContainer2 = new System.Windows.Forms.SplitContainer();
this.splitContainer3 = new System.Windows.Forms.SplitContainer();
this.gbDatInfo = new System.Windows.Forms.GroupBox();
@@ -109,6 +104,11 @@
this.dataGridViewImageColumn1 = new System.Windows.Forms.DataGridViewImageColumn();
this.dataGridViewImageColumn2 = new System.Windows.Forms.DataGridViewImageColumn();
this.dataGridViewImageColumn3 = new System.Windows.Forms.DataGridViewImageColumn();
+ this.btnReport = new System.Windows.Forms.Button();
+ this.btnFixFiles = new System.Windows.Forms.Button();
+ this.btnFindFixes = new System.Windows.Forms.Button();
+ this.btnScanRoms = new System.Windows.Forms.Button();
+ this.btnUpdateDats = new System.Windows.Forms.Button();
this.splitContainer1.Panel1.SuspendLayout();
this.splitContainer1.Panel2.SuspendLayout();
this.splitContainer1.SuspendLayout();
@@ -154,71 +154,6 @@
this.splitContainer1.SplitterDistance = 80;
this.splitContainer1.TabIndex = 5;
//
- // btnReport
- //
- this.btnReport.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("btnReport.BackgroundImage")));
- this.btnReport.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
- this.btnReport.Location = new System.Drawing.Point(0, 320);
- this.btnReport.Name = "btnReport";
- this.btnReport.Size = new System.Drawing.Size(80, 80);
- this.btnReport.TabIndex = 13;
- this.btnReport.Text = "Generate Reports";
- this.btnReport.TextAlign = System.Drawing.ContentAlignment.BottomCenter;
- this.btnReport.UseVisualStyleBackColor = true;
- this.btnReport.Click += new System.EventHandler(this.BtnReportClick);
- //
- // btnFixFiles
- //
- this.btnFixFiles.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("btnFixFiles.BackgroundImage")));
- this.btnFixFiles.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
- this.btnFixFiles.Location = new System.Drawing.Point(0, 240);
- this.btnFixFiles.Name = "btnFixFiles";
- this.btnFixFiles.Size = new System.Drawing.Size(80, 80);
- this.btnFixFiles.TabIndex = 10;
- this.btnFixFiles.Text = "Fix ROMs";
- this.btnFixFiles.TextAlign = System.Drawing.ContentAlignment.BottomCenter;
- this.btnFixFiles.UseVisualStyleBackColor = true;
- this.btnFixFiles.Click += new System.EventHandler(this.BtnFixFilesClick);
- //
- // btnFindFixes
- //
- this.btnFindFixes.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("btnFindFixes.BackgroundImage")));
- this.btnFindFixes.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
- this.btnFindFixes.Location = new System.Drawing.Point(0, 160);
- this.btnFindFixes.Name = "btnFindFixes";
- this.btnFindFixes.Size = new System.Drawing.Size(80, 80);
- this.btnFindFixes.TabIndex = 9;
- this.btnFindFixes.Text = "Find Fixes";
- this.btnFindFixes.TextAlign = System.Drawing.ContentAlignment.BottomCenter;
- this.btnFindFixes.UseVisualStyleBackColor = true;
- this.btnFindFixes.Click += new System.EventHandler(this.BtnFindFixesClick);
- //
- // btnScanRoms
- //
- this.btnScanRoms.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("btnScanRoms.BackgroundImage")));
- this.btnScanRoms.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
- this.btnScanRoms.Location = new System.Drawing.Point(0, 80);
- this.btnScanRoms.Name = "btnScanRoms";
- this.btnScanRoms.Size = new System.Drawing.Size(80, 80);
- this.btnScanRoms.TabIndex = 8;
- this.btnScanRoms.Text = "Scan ROMs";
- this.btnScanRoms.TextAlign = System.Drawing.ContentAlignment.BottomCenter;
- this.btnScanRoms.UseVisualStyleBackColor = true;
- this.btnScanRoms.Click += new System.EventHandler(this.BtnScanRomsClick);
- //
- // btnUpdateDats
- //
- this.btnUpdateDats.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("btnUpdateDats.BackgroundImage")));
- this.btnUpdateDats.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
- this.btnUpdateDats.Location = new System.Drawing.Point(0, 0);
- this.btnUpdateDats.Name = "btnUpdateDats";
- this.btnUpdateDats.Size = new System.Drawing.Size(80, 80);
- this.btnUpdateDats.TabIndex = 0;
- this.btnUpdateDats.Text = "Update DATs";
- this.btnUpdateDats.TextAlign = System.Drawing.ContentAlignment.BottomCenter;
- this.btnUpdateDats.UseVisualStyleBackColor = true;
- this.btnUpdateDats.Click += new System.EventHandler(this.BtnUpdateDatsClick);
- //
// splitContainer2
//
this.splitContainer2.Dock = System.Windows.Forms.DockStyle.Fill;
@@ -653,10 +588,10 @@
this.GameGrid.Size = new System.Drawing.Size(697, 267);
this.GameGrid.TabIndex = 4;
this.GameGrid.CellFormatting += new System.Windows.Forms.DataGridViewCellFormattingEventHandler(this.GameGrid_CellFormatting);
+ this.GameGrid.ColumnHeaderMouseClick += new System.Windows.Forms.DataGridViewCellMouseEventHandler(this.GameGridColumnHeaderMouseClick);
this.GameGrid.SelectionChanged += new System.EventHandler(this.GameGridSelectionChanged);
this.GameGrid.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.GameGridMouseDoubleClick);
this.GameGrid.MouseUp += new System.Windows.Forms.MouseEventHandler(this.GameGrid_MouseUp);
- this.GameGrid.ColumnHeaderMouseClick += new System.Windows.Forms.DataGridViewCellMouseEventHandler(this.GameGridColumnHeaderMouseClick);
//
// Type
//
@@ -665,7 +600,6 @@
this.Type.Name = "Type";
this.Type.ReadOnly = true;
this.Type.Resizable = System.Windows.Forms.DataGridViewTriState.True;
- this.Type.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
this.Type.Width = 40;
//
// CGame
@@ -690,7 +624,6 @@
this.CCorrect.Name = "CCorrect";
this.CCorrect.ReadOnly = true;
this.CCorrect.Resizable = System.Windows.Forms.DataGridViewTriState.False;
- this.CCorrect.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
this.CCorrect.Width = 500;
//
// RomGrid
@@ -760,7 +693,6 @@
this.CGot.Name = "CGot";
this.CGot.ReadOnly = true;
this.CGot.Resizable = System.Windows.Forms.DataGridViewTriState.True;
- this.CGot.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
this.CGot.Width = 65;
//
// CRom
@@ -972,6 +904,71 @@
this.dataGridViewImageColumn3.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
this.dataGridViewImageColumn3.Width = 65;
//
+ // btnReport
+ //
+ this.btnReport.BackgroundImage = global::ROMVault2.rvImages1.btnReport_BackgroundImage;
+ this.btnReport.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
+ this.btnReport.Location = new System.Drawing.Point(0, 320);
+ this.btnReport.Name = "btnReport";
+ this.btnReport.Size = new System.Drawing.Size(80, 80);
+ this.btnReport.TabIndex = 13;
+ this.btnReport.Text = "Generate Reports";
+ this.btnReport.TextAlign = System.Drawing.ContentAlignment.BottomCenter;
+ this.btnReport.UseVisualStyleBackColor = true;
+ this.btnReport.Click += new System.EventHandler(this.BtnReportClick);
+ //
+ // btnFixFiles
+ //
+ this.btnFixFiles.BackgroundImage = global::ROMVault2.rvImages1.btnFixFiles_BackgroundImage;
+ this.btnFixFiles.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
+ this.btnFixFiles.Location = new System.Drawing.Point(0, 240);
+ this.btnFixFiles.Name = "btnFixFiles";
+ this.btnFixFiles.Size = new System.Drawing.Size(80, 80);
+ this.btnFixFiles.TabIndex = 10;
+ this.btnFixFiles.Text = "Fix ROMs";
+ this.btnFixFiles.TextAlign = System.Drawing.ContentAlignment.BottomCenter;
+ this.btnFixFiles.UseVisualStyleBackColor = true;
+ this.btnFixFiles.Click += new System.EventHandler(this.BtnFixFilesClick);
+ //
+ // btnFindFixes
+ //
+ this.btnFindFixes.BackgroundImage = global::ROMVault2.rvImages1.btnFindFixes_BackgroundImage;
+ this.btnFindFixes.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
+ this.btnFindFixes.Location = new System.Drawing.Point(0, 160);
+ this.btnFindFixes.Name = "btnFindFixes";
+ this.btnFindFixes.Size = new System.Drawing.Size(80, 80);
+ this.btnFindFixes.TabIndex = 9;
+ this.btnFindFixes.Text = "Find Fixes";
+ this.btnFindFixes.TextAlign = System.Drawing.ContentAlignment.BottomCenter;
+ this.btnFindFixes.UseVisualStyleBackColor = true;
+ this.btnFindFixes.Click += new System.EventHandler(this.BtnFindFixesClick);
+ //
+ // btnScanRoms
+ //
+ this.btnScanRoms.BackgroundImage = global::ROMVault2.rvImages1.btnScanRoms_BackgroundImage;
+ this.btnScanRoms.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
+ this.btnScanRoms.Location = new System.Drawing.Point(0, 80);
+ this.btnScanRoms.Name = "btnScanRoms";
+ this.btnScanRoms.Size = new System.Drawing.Size(80, 80);
+ this.btnScanRoms.TabIndex = 8;
+ this.btnScanRoms.Text = "Scan ROMs";
+ this.btnScanRoms.TextAlign = System.Drawing.ContentAlignment.BottomCenter;
+ this.btnScanRoms.UseVisualStyleBackColor = true;
+ this.btnScanRoms.Click += new System.EventHandler(this.BtnScanRomsClick);
+ //
+ // btnUpdateDats
+ //
+ this.btnUpdateDats.BackgroundImage = global::ROMVault2.rvImages1.btnUpdateDats_BackgroundImage;
+ this.btnUpdateDats.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
+ this.btnUpdateDats.Location = new System.Drawing.Point(0, 0);
+ this.btnUpdateDats.Name = "btnUpdateDats";
+ this.btnUpdateDats.Size = new System.Drawing.Size(80, 80);
+ this.btnUpdateDats.TabIndex = 0;
+ this.btnUpdateDats.Text = "Update DATs";
+ this.btnUpdateDats.TextAlign = System.Drawing.ContentAlignment.BottomCenter;
+ this.btnUpdateDats.UseVisualStyleBackColor = true;
+ this.btnUpdateDats.Click += new System.EventHandler(this.BtnUpdateDatsClick);
+ //
// FrmMain
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
diff --git a/ROMVault2/FrmMain.cs b/ROMVault2/FrmMain.cs
index 28be2b3..b957d94 100644
--- a/ROMVault2/FrmMain.cs
+++ b/ROMVault2/FrmMain.cs
@@ -774,6 +774,12 @@ namespace ROMVault2
else
bitmapName = "Zip" + tRvDir.RepStatus;
break;
+ case FileType.SevenZip:
+ if (tRvDir.RepStatus == RepStatus.DirCorrect && tRvDir.ZipStatus == ZipStatus.TrrntZip)
+ bitmapName = "SevenZipTZ";
+ else
+ bitmapName = "SevenZip" + tRvDir.RepStatus;
+ break;
default:
// hack because DirDirInToSort image doesnt exist.
if (tRvDir.RepStatus == RepStatus.DirInToSort)
diff --git a/ROMVault2/FrmMain.resx b/ROMVault2/FrmMain.resx
index b1dc996..4565e3e 100644
--- a/ROMVault2/FrmMain.resx
+++ b/ROMVault2/FrmMain.resx
@@ -117,411 +117,6 @@
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
-
- 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
- YII=
-
-
-
-
- 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
- RU5ErkJggg==
-
-
-
-
- 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
-
-
True
@@ -567,6 +162,7 @@
17, 17
+
AAABAAUAEBAAAAAAIABoBAAAVgAAACAgAAAAACAAqBAAAL4EAAAwMAAAAAAgAKglAABmFQAAQEAAAAAA
diff --git a/ROMVault2/FrmSplashScreen.Designer.cs b/ROMVault2/FrmSplashScreen.Designer.cs
index b15f88f..9307735 100644
--- a/ROMVault2/FrmSplashScreen.Designer.cs
+++ b/ROMVault2/FrmSplashScreen.Designer.cs
@@ -29,7 +29,6 @@
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
- System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmSplashScreen));
this.lblStatus = new System.Windows.Forms.Label();
this.timer1 = new System.Windows.Forms.Timer(this.components);
this.progressBar = new System.Windows.Forms.ProgressBar();
@@ -76,7 +75,7 @@
// FrmSplashScreen
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
- this.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("$this.BackgroundImage")));
+ this.BackgroundImage = global::ROMVault2.rvImages1.romvaultTZ;
this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None;
this.ClientSize = new System.Drawing.Size(465, 207);
this.ControlBox = false;
diff --git a/ROMVault2/FrmSplashScreen.resx b/ROMVault2/FrmSplashScreen.resx
index 739f5ec..4680b4e 100644
--- a/ROMVault2/FrmSplashScreen.resx
+++ b/ROMVault2/FrmSplashScreen.resx
@@ -123,447 +123,4 @@
104, 17
-
-
-
- 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
-
-
\ No newline at end of file
diff --git a/ROMVault2/ROMVault2.csproj b/ROMVault2/ROMVault2.csproj
index d08bdeb..99285c3 100644
--- a/ROMVault2/ROMVault2.csproj
+++ b/ROMVault2/ROMVault2.csproj
@@ -70,7 +70,7 @@
..\..\Stage\
- TRACE;UNMANAGED;COMPRESS;LZMA_STREAM;DOTNET20
+ TRACE;UNMANAGED;COMPRESS;LZMA_STREAM;DOTNET20;sevenzip
true
pdbonly
AnyCPU
@@ -82,6 +82,7 @@
;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets
;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules
false
+ true
chip.ico
@@ -118,6 +119,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ROMVault2/RepairStatus.cs b/ROMVault2/RepairStatus.cs
index 0e05480..8a936de 100644
--- a/ROMVault2/RepairStatus.cs
+++ b/ROMVault2/RepairStatus.cs
@@ -92,6 +92,19 @@ namespace ROMVault2
StatusCheck[(int)FileType.Zip, (int)DatStatus.NotInDat, (int)GotStatus.FileLocked] = new List { RepStatus.UnScanned };
StatusCheck[(int)FileType.Zip, (int)DatStatus.NotInDat, (int)GotStatus.NotGot] = new List { RepStatus.Deleted };
+ StatusCheck[(int)FileType.SevenZip, (int)DatStatus.InDatCollect, (int)GotStatus.Got] = new List { RepStatus.DirCorrect };
+ StatusCheck[(int)FileType.SevenZip, (int)DatStatus.InDatCollect, (int)GotStatus.Corrupt] = new List { RepStatus.DirCorrupt };
+ StatusCheck[(int)FileType.SevenZip, (int)DatStatus.InDatCollect, (int)GotStatus.FileLocked] = new List { RepStatus.UnScanned };
+ StatusCheck[(int)FileType.SevenZip, (int)DatStatus.InDatCollect, (int)GotStatus.NotGot] = new List { RepStatus.DirMissing };
+ StatusCheck[(int)FileType.SevenZip, (int)DatStatus.InToSort, (int)GotStatus.Got] = new List { RepStatus.DirInToSort };
+ StatusCheck[(int)FileType.SevenZip, (int)DatStatus.InToSort, (int)GotStatus.Corrupt] = new List { RepStatus.DirCorrupt };
+ StatusCheck[(int)FileType.SevenZip, (int)DatStatus.InToSort, (int)GotStatus.FileLocked] = new List { RepStatus.UnScanned };
+ StatusCheck[(int)FileType.SevenZip, (int)DatStatus.InToSort, (int)GotStatus.NotGot] = new List { RepStatus.Deleted };
+ StatusCheck[(int)FileType.SevenZip, (int)DatStatus.NotInDat, (int)GotStatus.Got] = new List { RepStatus.DirUnknown };
+ StatusCheck[(int)FileType.SevenZip, (int)DatStatus.NotInDat, (int)GotStatus.Corrupt] = new List { RepStatus.DirCorrupt };
+ StatusCheck[(int)FileType.SevenZip, (int)DatStatus.NotInDat, (int)GotStatus.FileLocked] = new List { RepStatus.UnScanned };
+ StatusCheck[(int)FileType.SevenZip, (int)DatStatus.NotInDat, (int)GotStatus.NotGot] = new List { RepStatus.Deleted };
+
StatusCheck[(int)FileType.File, (int)DatStatus.InDatBad, (int)GotStatus.FileLocked] = new List { RepStatus.UnScanned };
StatusCheck[(int)FileType.File, (int)DatStatus.InDatBad, (int)GotStatus.NotGot] = new List { RepStatus.NotCollected };
@@ -111,7 +124,7 @@ namespace ROMVault2
StatusCheck[(int)FileType.File, (int)DatStatus.NotInDat, (int)GotStatus.Got] = new List { RepStatus.Unknown, RepStatus.Ignore, RepStatus.Delete, RepStatus.MoveToSort, RepStatus.NeededForFix, RepStatus.Rename };
StatusCheck[(int)FileType.File, (int)DatStatus.NotInDat, (int)GotStatus.FileLocked] = new List { RepStatus.UnScanned };
StatusCheck[(int)FileType.File, (int)DatStatus.NotInDat, (int)GotStatus.NotGot] = new List { RepStatus.Deleted };
-
+
StatusCheck[(int)FileType.ZipFile, (int)DatStatus.InDatBad, (int)GotStatus.NotGot] = new List { RepStatus.NotCollected };
StatusCheck[(int)FileType.ZipFile, (int)DatStatus.InDatBad, (int)GotStatus.Got] = new List { RepStatus.Correct };
@@ -128,6 +141,22 @@ namespace ROMVault2
StatusCheck[(int)FileType.ZipFile, (int)DatStatus.NotInDat, (int)GotStatus.Got] = new List { RepStatus.Unknown, RepStatus.Delete, RepStatus.MoveToSort, RepStatus.NeededForFix, RepStatus.Rename };
StatusCheck[(int)FileType.ZipFile, (int)DatStatus.NotInDat, (int)GotStatus.NotGot] = new List { RepStatus.Deleted };
+ StatusCheck[(int)FileType.SevenZipFile, (int)DatStatus.InDatBad, (int)GotStatus.NotGot] = new List { RepStatus.NotCollected };
+ StatusCheck[(int)FileType.SevenZipFile, (int)DatStatus.InDatBad, (int)GotStatus.Got] = new List { RepStatus.Correct };
+ StatusCheck[(int)FileType.SevenZipFile, (int)DatStatus.InDatCollect, (int)GotStatus.Corrupt] = new List { RepStatus.Corrupt, RepStatus.MoveToCorrupt, RepStatus.CorruptCanBeFixed };
+ StatusCheck[(int)FileType.SevenZipFile, (int)DatStatus.InDatCollect, (int)GotStatus.Got] = new List { RepStatus.Correct };
+ StatusCheck[(int)FileType.SevenZipFile, (int)DatStatus.InDatCollect, (int)GotStatus.FileLocked] = new List { RepStatus.UnScanned };
+ StatusCheck[(int)FileType.SevenZipFile, (int)DatStatus.InDatCollect, (int)GotStatus.NotGot] = new List { RepStatus.Missing, RepStatus.CanBeFixed };
+ StatusCheck[(int)FileType.SevenZipFile, (int)DatStatus.InDatMerged, (int)GotStatus.Got] = new List { RepStatus.UnNeeded, RepStatus.Delete, RepStatus.NeededForFix, RepStatus.Rename };
+ StatusCheck[(int)FileType.SevenZipFile, (int)DatStatus.InDatMerged, (int)GotStatus.NotGot] = new List { RepStatus.NotCollected };
+ StatusCheck[(int)FileType.SevenZipFile, (int)DatStatus.InToSort, (int)GotStatus.Corrupt] = new List { RepStatus.Corrupt, RepStatus.Delete };
+ StatusCheck[(int)FileType.SevenZipFile, (int)DatStatus.InToSort, (int)GotStatus.Got] = new List { RepStatus.InToSort, RepStatus.NeededForFix, RepStatus.Delete };
+ StatusCheck[(int)FileType.SevenZipFile, (int)DatStatus.InToSort, (int)GotStatus.NotGot] = new List { RepStatus.Deleted };
+ StatusCheck[(int)FileType.SevenZipFile, (int)DatStatus.NotInDat, (int)GotStatus.Corrupt] = new List { RepStatus.Corrupt, RepStatus.MoveToCorrupt, RepStatus.Delete };
+ StatusCheck[(int)FileType.SevenZipFile, (int)DatStatus.NotInDat, (int)GotStatus.Got] = new List { RepStatus.Unknown, RepStatus.Delete, RepStatus.MoveToSort, RepStatus.NeededForFix, RepStatus.Rename };
+ StatusCheck[(int)FileType.SevenZipFile, (int)DatStatus.NotInDat, (int)GotStatus.NotGot] = new List { RepStatus.Deleted };
+
+
DisplayOrder = new[]
{
RepStatus.Error,
@@ -169,7 +198,7 @@ namespace ROMVault2
tBase.RepStatusReset();
FileType ftBase = tBase.FileType;
- if (ftBase != FileType.Zip && ftBase != FileType.Dir) return;
+ if (ftBase != FileType.Zip && ftBase != FileType.SevenZip && ftBase != FileType.Dir) return;
RvDir tDir = (RvDir)tBase;
diff --git a/ROMVault2/RvDB/RvBase.cs b/ROMVault2/RvDB/RvBase.cs
index 063ad43..ae51bb8 100644
--- a/ROMVault2/RvDB/RvBase.cs
+++ b/ROMVault2/RvDB/RvBase.cs
@@ -13,7 +13,7 @@ namespace ROMVault2.RvDB
{
public enum DatStatus { InDatCollect, InDatMerged, InDatBad, NotInDat, InToSort }
public enum GotStatus { NotGot, Got, Corrupt, FileLocked }
- public enum FileType { Unknown, Dir, Zip, xSevenZip, xRAR, File, ZipFile, xSevenZipFile }
+ public enum FileType { Unknown, Dir, Zip, SevenZip, xRAR, File, ZipFile, SevenZipFile }
public abstract class RvBase
{
@@ -184,7 +184,7 @@ namespace ROMVault2.RvDB
switch (FileType)
{
case FileType.Zip: return ".zip";
- //case FileType.SevenZip: return ".7z";
+ case FileType.SevenZip: return ".7z";
//case FileType.RAR: return ".rar";
}
return "";
diff --git a/ROMVault2/RvDB/RvDir.cs b/ROMVault2/RvDB/RvDir.cs
index f245de0..23d4f9d 100644
--- a/ROMVault2/RvDB/RvDir.cs
+++ b/ROMVault2/RvDB/RvDir.cs
@@ -26,7 +26,7 @@ namespace ROMVault2.RvDB
public RvDir(FileType type)
: base(type)
{
- if (type != FileType.Dir && type != FileType.Zip)
+ if (type != FileType.Dir && type != FileType.Zip && type !=FileType.SevenZip)
ReportError.SendAndShow("Trying to set Dir type to " + type);
}
diff --git a/ROMVault2/RvDB/RvFile.cs b/ROMVault2/RvDB/RvFile.cs
index cfda15c..df9808b 100644
--- a/ROMVault2/RvDB/RvFile.cs
+++ b/ROMVault2/RvDB/RvFile.cs
@@ -32,7 +32,7 @@ namespace ROMVault2.RvDB
public RvFile(FileType type)
: base(type)
{
- if (type != FileType.File && type != FileType.ZipFile)
+ if (type != FileType.File && type != FileType.ZipFile && type != FileType.SevenZipFile)
ReportError.SendAndShow("Trying to set file type to " + type);
}
diff --git a/ROMVault2/SupportedFiles/DirUtil.cs b/ROMVault2/SupportedFiles/DirUtil.cs
new file mode 100644
index 0000000..bf20abc
--- /dev/null
+++ b/ROMVault2/SupportedFiles/DirUtil.cs
@@ -0,0 +1,31 @@
+using System;
+using TrrntSevenZip.IO;
+
+namespace TrrntSevenZip.SupportedFiles
+{
+ public static class DirUtil
+ {
+ public static void CreateDirForFile(string sFilename)
+ {
+ string strTemp = Path.GetDirectoryName(sFilename);
+
+ if (String.IsNullOrEmpty(strTemp)) return;
+
+ if (Directory.Exists(strTemp)) return;
+
+
+ while (strTemp.Length > 0 && !Directory.Exists(strTemp))
+ {
+ int pos = strTemp.LastIndexOf(Path.DirectorySeparatorChar);
+ if (pos < 0) pos = 0;
+ strTemp = strTemp.Substring(0, pos);
+ }
+
+ while (sFilename.IndexOf(Path.DirectorySeparatorChar, strTemp.Length + 1) > 0)
+ {
+ strTemp = sFilename.Substring(0, sFilename.IndexOf(Path.DirectorySeparatorChar, strTemp.Length + 1));
+ Directory.CreateDirectory(strTemp);
+ }
+ }
+ }
+}
diff --git a/ROMVault2/SupportedFiles/ICompress.cs b/ROMVault2/SupportedFiles/ICompress.cs
new file mode 100644
index 0000000..c55d8ba
--- /dev/null
+++ b/ROMVault2/SupportedFiles/ICompress.cs
@@ -0,0 +1,40 @@
+using System.IO;
+
+namespace ROMVault2.SupportedFiles
+{
+ public interface ICompress
+ {
+ int LocalFilesCount();
+
+ string Filename(int i);
+ ulong? LocalHeader(int i);
+ ulong UncompressedSize(int i);
+ byte[] CRC32(int i);
+ ZipReturn FileStatus(int i);
+ byte[] MD5(int i);
+ byte[] SHA1(int i);
+
+
+ ZipOpenType ZipOpen { get; }
+
+ ZipReturn ZipFileOpen(string newFilename, long timestamp, bool readHeaders);
+ void ZipFileClose();
+ ZipReturn ZipFileOpenWriteStream(bool raw, bool trrntzip, string filename, ulong uncompressedSize, ushort compressionMethod, out Stream stream);
+ ZipReturn ZipFileCloseReadStream();
+ void DeepScan();
+
+
+ ZipStatus ZipStatus { get; }
+
+ string ZipFilename { get; }
+ long TimeStamp { get; }
+
+ void ZipFileAddDirectory();
+
+ ZipReturn ZipFileCreate(string newFilename);
+ ZipReturn ZipFileCloseWriteStream(byte[] crc32);
+ ZipReturn ZipFileRollBack();
+ void ZipFileCloseFailed();
+
+ }
+}
diff --git a/ROMVault2/SupportedFiles/SevenZip/Common/CRC.cs b/ROMVault2/SupportedFiles/SevenZip/Common/CRC.cs
new file mode 100644
index 0000000..f531160
--- /dev/null
+++ b/ROMVault2/SupportedFiles/SevenZip/Common/CRC.cs
@@ -0,0 +1,55 @@
+// Common/CRC.cs
+
+namespace ROMVault2.SupportedFiles.SevenZip.Common
+{
+ public class CRC
+ {
+ public static readonly uint[] Table;
+
+ static CRC()
+ {
+ Table = new uint[256];
+ const uint kPoly = 0xEDB88320;
+ for (uint i = 0; i < 256; i++)
+ {
+ uint r = i;
+ for (int j = 0; j < 8; j++)
+ if ((r & 1) != 0)
+ r = (r >> 1) ^ kPoly;
+ else
+ r >>= 1;
+ Table[i] = r;
+ }
+ }
+
+ uint _value = 0xFFFFFFFF;
+
+ public void Init() { _value = 0xFFFFFFFF; }
+
+ public void UpdateByte(byte b)
+ {
+ _value = Table[(((byte)(_value)) ^ b)] ^ (_value >> 8);
+ }
+
+ public void Update(byte[] data, uint offset, uint size)
+ {
+ for (uint i = 0; i < size; i++)
+ _value = Table[(((byte)(_value)) ^ data[offset + i])] ^ (_value >> 8);
+ }
+
+ public uint GetDigest() { return _value ^ 0xFFFFFFFF; }
+
+ public static uint CalculateDigest(byte[] data, uint offset, uint size)
+ {
+ CRC crc = new CRC();
+ // crc.Init();
+ crc.Update(data, offset, size);
+ return crc.GetDigest();
+ }
+
+ public static bool VerifyDigest(uint digest, byte[] data, uint offset, uint size)
+ {
+ return (CalculateDigest(data, offset, size) == digest);
+ }
+ }
+}
diff --git a/ROMVault2/SupportedFiles/SevenZip/Common/ICoder.cs b/ROMVault2/SupportedFiles/SevenZip/Common/ICoder.cs
new file mode 100644
index 0000000..e057aac
--- /dev/null
+++ b/ROMVault2/SupportedFiles/SevenZip/Common/ICoder.cs
@@ -0,0 +1,157 @@
+// ICoder.h
+
+using System;
+
+namespace ROMVault2.SupportedFiles.SevenZip.Common
+{
+ ///
+ /// The exception that is thrown when an error in input stream occurs during decoding.
+ ///
+ class DataErrorException : ApplicationException
+ {
+ public DataErrorException(): base("Data Error") { }
+ }
+
+ ///
+ /// The exception that is thrown when the value of an argument is outside the allowable range.
+ ///
+ class InvalidParamException : ApplicationException
+ {
+ public InvalidParamException(): base("Invalid Parameter") { }
+ }
+
+ public interface ICodeProgress
+ {
+ ///
+ /// Callback progress.
+ ///
+ ///
+ /// input size. -1 if unknown.
+ ///
+ ///
+ /// output size. -1 if unknown.
+ ///
+ void SetProgress(Int64 inSize, Int64 outSize);
+ };
+
+ public interface ICoder
+ {
+ ///
+ /// Codes streams.
+ ///
+ ///
+ /// input Stream.
+ ///
+ ///
+ /// output Stream.
+ ///
+ ///
+ /// input Size. -1 if unknown.
+ ///
+ ///
+ /// output Size. -1 if unknown.
+ ///
+ ///
+ /// callback progress reference.
+ ///
+ ///
+ /// if input stream is not valid
+ ///
+ void Code(System.IO.Stream inStream, System.IO.Stream outStream,
+ Int64 inSize, Int64 outSize, ICodeProgress progress);
+ };
+
+ /*
+ public interface ICoder2
+ {
+ void Code(ISequentialInStream []inStreams,
+ const UInt64 []inSizes,
+ ISequentialOutStream []outStreams,
+ UInt64 []outSizes,
+ ICodeProgress progress);
+ };
+ */
+
+ ///
+ /// Provides the fields that represent properties idenitifiers for compressing.
+ ///
+ public enum CoderPropID
+ {
+ ///
+ /// Specifies default property.
+ ///
+ DefaultProp = 0,
+ ///
+ /// Specifies size of dictionary.
+ ///
+ DictionarySize,
+ ///
+ /// Specifies size of memory for PPM*.
+ ///
+ UsedMemorySize,
+ ///
+ /// Specifies order for PPM methods.
+ ///
+ Order,
+ ///
+ /// Specifies Block Size.
+ ///
+ BlockSize,
+ ///
+ /// Specifies number of postion state bits for LZMA (0 <= x <= 4).
+ ///
+ PosStateBits,
+ ///
+ /// Specifies number of literal context bits for LZMA (0 <= x <= 8).
+ ///
+ LitContextBits,
+ ///
+ /// Specifies number of literal position bits for LZMA (0 <= x <= 4).
+ ///
+ LitPosBits,
+ ///
+ /// Specifies number of fast bytes for LZ*.
+ ///
+ NumFastBytes,
+ ///
+ /// Specifies match finder. LZMA: "BT2", "BT4" or "BT4B".
+ ///
+ MatchFinder,
+ ///
+ /// Specifies the number of match finder cyckes.
+ ///
+ MatchFinderCycles,
+ ///
+ /// Specifies number of passes.
+ ///
+ NumPasses,
+ ///
+ /// Specifies number of algorithm.
+ ///
+ Algorithm,
+ ///
+ /// Specifies the number of threads.
+ ///
+ NumThreads,
+ ///
+ /// Specifies mode with end marker.
+ ///
+ EndMarker
+ };
+
+
+ public interface ISetCoderProperties
+ {
+ void SetCoderProperties(CoderPropID[] propIDs, object[] properties);
+ };
+
+ public interface IWriteCoderProperties
+ {
+ void WriteCoderProperties(System.IO.Stream outStream);
+ }
+
+ public interface ISetDecoderProperties
+ {
+ void SetDecoderProperties(byte[] properties);
+ }
+}
diff --git a/ROMVault2/SupportedFiles/SevenZip/Compress/LZ/IMatchFinder.cs b/ROMVault2/SupportedFiles/SevenZip/Compress/LZ/IMatchFinder.cs
new file mode 100644
index 0000000..8468e0b
--- /dev/null
+++ b/ROMVault2/SupportedFiles/SevenZip/Compress/LZ/IMatchFinder.cs
@@ -0,0 +1,24 @@
+// IMatchFinder.cs
+
+using System;
+
+namespace ROMVault2.SupportedFiles.SevenZip.Compress.LZ
+{
+ interface IInWindowStream
+ {
+ void SetStream(System.IO.Stream inStream);
+ void Init();
+ void ReleaseStream();
+ Byte GetIndexByte(Int32 index);
+ UInt32 GetMatchLen(Int32 index, UInt32 distance, UInt32 limit);
+ UInt32 GetNumAvailableBytes();
+ }
+
+ interface IMatchFinder : IInWindowStream
+ {
+ void Create(UInt32 historySize, UInt32 keepAddBufferBefore,
+ UInt32 matchMaxLen, UInt32 keepAddBufferAfter);
+ UInt32 GetMatches(UInt32[] distances);
+ void Skip(UInt32 num);
+ }
+}
diff --git a/ROMVault2/SupportedFiles/SevenZip/Compress/LZ/LzBinTree.cs b/ROMVault2/SupportedFiles/SevenZip/Compress/LZ/LzBinTree.cs
new file mode 100644
index 0000000..fd16f44
--- /dev/null
+++ b/ROMVault2/SupportedFiles/SevenZip/Compress/LZ/LzBinTree.cs
@@ -0,0 +1,368 @@
+// LzBinTree.cs
+
+using System;
+using ROMVault2.SupportedFiles.SevenZip.Common;
+
+namespace ROMVault2.SupportedFiles.SevenZip.Compress.LZ
+{
+ public class BinTree : InWindow, IMatchFinder
+ {
+ UInt32 _cyclicBufferPos;
+ UInt32 _cyclicBufferSize = 0;
+ UInt32 _matchMaxLen;
+
+ UInt32[] _son;
+ UInt32[] _hash;
+
+ UInt32 _cutValue = 0xFF;
+ UInt32 _hashMask;
+ UInt32 _hashSizeSum = 0;
+
+ bool HASH_ARRAY = true;
+
+ const UInt32 kHash2Size = 1 << 10;
+ const UInt32 kHash3Size = 1 << 16;
+ const UInt32 kBT2HashSize = 1 << 16;
+ const UInt32 kStartMaxLen = 1;
+ const UInt32 kHash3Offset = kHash2Size;
+ const UInt32 kEmptyHashValue = 0;
+ const UInt32 kMaxValForNormalize = ((UInt32)1 << 31) - 1;
+
+ UInt32 kNumHashDirectBytes = 0;
+ UInt32 kMinMatchCheck = 4;
+ UInt32 kFixHashSize = kHash2Size + kHash3Size;
+
+ public void SetType(int numHashBytes)
+ {
+ HASH_ARRAY = (numHashBytes > 2);
+ if (HASH_ARRAY)
+ {
+ kNumHashDirectBytes = 0;
+ kMinMatchCheck = 4;
+ kFixHashSize = kHash2Size + kHash3Size;
+ }
+ else
+ {
+ kNumHashDirectBytes = 2;
+ kMinMatchCheck = 2 + 1;
+ kFixHashSize = 0;
+ }
+ }
+
+ public new void SetStream(System.IO.Stream stream) { base.SetStream(stream); }
+ public new void ReleaseStream() { base.ReleaseStream(); }
+
+ public new void Init()
+ {
+ base.Init();
+ for (UInt32 i = 0; i < _hashSizeSum; i++)
+ _hash[i] = kEmptyHashValue;
+ _cyclicBufferPos = 0;
+ ReduceOffsets(-1);
+ }
+
+ public new void MovePos()
+ {
+ if (++_cyclicBufferPos >= _cyclicBufferSize)
+ _cyclicBufferPos = 0;
+ base.MovePos();
+ if (_pos == kMaxValForNormalize)
+ Normalize();
+ }
+
+ public new Byte GetIndexByte(Int32 index) { return base.GetIndexByte(index); }
+
+ public new UInt32 GetMatchLen(Int32 index, UInt32 distance, UInt32 limit)
+ { return base.GetMatchLen(index, distance, limit); }
+
+ public new UInt32 GetNumAvailableBytes() { return base.GetNumAvailableBytes(); }
+
+ public void Create(UInt32 historySize, UInt32 keepAddBufferBefore,
+ UInt32 matchMaxLen, UInt32 keepAddBufferAfter)
+ {
+ if (historySize > kMaxValForNormalize - 256)
+ throw new Exception();
+ _cutValue = 16 + (matchMaxLen >> 1);
+
+ UInt32 windowReservSize = (historySize + keepAddBufferBefore +
+ matchMaxLen + keepAddBufferAfter) / 2 + 256;
+
+ base.Create(historySize + keepAddBufferBefore, matchMaxLen + keepAddBufferAfter, windowReservSize);
+
+ _matchMaxLen = matchMaxLen;
+
+ UInt32 cyclicBufferSize = historySize + 1;
+ if (_cyclicBufferSize != cyclicBufferSize)
+ _son = new UInt32[(_cyclicBufferSize = cyclicBufferSize) * 2];
+
+ UInt32 hs = kBT2HashSize;
+
+ if (HASH_ARRAY)
+ {
+ hs = historySize - 1;
+ hs |= (hs >> 1);
+ hs |= (hs >> 2);
+ hs |= (hs >> 4);
+ hs |= (hs >> 8);
+ hs >>= 1;
+ hs |= 0xFFFF;
+ if (hs > (1 << 24))
+ hs >>= 1;
+ _hashMask = hs;
+ hs++;
+ hs += kFixHashSize;
+ }
+ if (hs != _hashSizeSum)
+ _hash = new UInt32[_hashSizeSum = hs];
+ }
+
+ public UInt32 GetMatches(UInt32[] distances)
+ {
+ UInt32 lenLimit;
+ if (_pos + _matchMaxLen <= _streamPos)
+ lenLimit = _matchMaxLen;
+ else
+ {
+ lenLimit = _streamPos - _pos;
+ if (lenLimit < kMinMatchCheck)
+ {
+ MovePos();
+ return 0;
+ }
+ }
+
+ UInt32 offset = 0;
+ UInt32 matchMinPos = (_pos > _cyclicBufferSize) ? (_pos - _cyclicBufferSize) : 0;
+ UInt32 cur = _bufferOffset + _pos;
+ UInt32 maxLen = kStartMaxLen; // to avoid items for len < hashSize;
+ UInt32 hashValue, hash2Value = 0, hash3Value = 0;
+
+ if (HASH_ARRAY)
+ {
+ UInt32 temp = CRC.Table[_bufferBase[cur]] ^ _bufferBase[cur + 1];
+ hash2Value = temp & (kHash2Size - 1);
+ temp ^= ((UInt32)(_bufferBase[cur + 2]) << 8);
+ hash3Value = temp & (kHash3Size - 1);
+ hashValue = (temp ^ (CRC.Table[_bufferBase[cur + 3]] << 5)) & _hashMask;
+ }
+ else
+ hashValue = _bufferBase[cur] ^ ((UInt32)(_bufferBase[cur + 1]) << 8);
+
+ UInt32 curMatch = _hash[kFixHashSize + hashValue];
+ if (HASH_ARRAY)
+ {
+ UInt32 curMatch2 = _hash[hash2Value];
+ UInt32 curMatch3 = _hash[kHash3Offset + hash3Value];
+ _hash[hash2Value] = _pos;
+ _hash[kHash3Offset + hash3Value] = _pos;
+ if (curMatch2 > matchMinPos)
+ if (_bufferBase[_bufferOffset + curMatch2] == _bufferBase[cur])
+ {
+ distances[offset++] = maxLen = 2;
+ distances[offset++] = _pos - curMatch2 - 1;
+ }
+ if (curMatch3 > matchMinPos)
+ if (_bufferBase[_bufferOffset + curMatch3] == _bufferBase[cur])
+ {
+ if (curMatch3 == curMatch2)
+ offset -= 2;
+ distances[offset++] = maxLen = 3;
+ distances[offset++] = _pos - curMatch3 - 1;
+ curMatch2 = curMatch3;
+ }
+ if (offset != 0 && curMatch2 == curMatch)
+ {
+ offset -= 2;
+ maxLen = kStartMaxLen;
+ }
+ }
+
+ _hash[kFixHashSize + hashValue] = _pos;
+
+ UInt32 ptr0 = (_cyclicBufferPos << 1) + 1;
+ UInt32 ptr1 = (_cyclicBufferPos << 1);
+
+ UInt32 len0, len1;
+ len0 = len1 = kNumHashDirectBytes;
+
+ if (kNumHashDirectBytes != 0)
+ {
+ if (curMatch > matchMinPos)
+ {
+ if (_bufferBase[_bufferOffset + curMatch + kNumHashDirectBytes] !=
+ _bufferBase[cur + kNumHashDirectBytes])
+ {
+ distances[offset++] = maxLen = kNumHashDirectBytes;
+ distances[offset++] = _pos - curMatch - 1;
+ }
+ }
+ }
+
+ UInt32 count = _cutValue;
+
+ while(true)
+ {
+ if(curMatch <= matchMinPos || count-- == 0)
+ {
+ _son[ptr0] = _son[ptr1] = kEmptyHashValue;
+ break;
+ }
+ UInt32 delta = _pos - curMatch;
+ UInt32 cyclicPos = ((delta <= _cyclicBufferPos) ?
+ (_cyclicBufferPos - delta) :
+ (_cyclicBufferPos - delta + _cyclicBufferSize)) << 1;
+
+ UInt32 pby1 = _bufferOffset + curMatch;
+ UInt32 len = Math.Min(len0, len1);
+ if (_bufferBase[pby1 + len] == _bufferBase[cur + len])
+ {
+ while(++len != lenLimit)
+ if (_bufferBase[pby1 + len] != _bufferBase[cur + len])
+ break;
+ if (maxLen < len)
+ {
+ distances[offset++] = maxLen = len;
+ distances[offset++] = delta - 1;
+ if (len == lenLimit)
+ {
+ _son[ptr1] = _son[cyclicPos];
+ _son[ptr0] = _son[cyclicPos + 1];
+ break;
+ }
+ }
+ }
+ if (_bufferBase[pby1 + len] < _bufferBase[cur + len])
+ {
+ _son[ptr1] = curMatch;
+ ptr1 = cyclicPos + 1;
+ curMatch = _son[ptr1];
+ len1 = len;
+ }
+ else
+ {
+ _son[ptr0] = curMatch;
+ ptr0 = cyclicPos;
+ curMatch = _son[ptr0];
+ len0 = len;
+ }
+ }
+ MovePos();
+ return offset;
+ }
+
+ public void Skip(UInt32 num)
+ {
+ do
+ {
+ UInt32 lenLimit;
+ if (_pos + _matchMaxLen <= _streamPos)
+ lenLimit = _matchMaxLen;
+ else
+ {
+ lenLimit = _streamPos - _pos;
+ if (lenLimit < kMinMatchCheck)
+ {
+ MovePos();
+ continue;
+ }
+ }
+
+ UInt32 matchMinPos = (_pos > _cyclicBufferSize) ? (_pos - _cyclicBufferSize) : 0;
+ UInt32 cur = _bufferOffset + _pos;
+
+ UInt32 hashValue;
+
+ if (HASH_ARRAY)
+ {
+ UInt32 temp = CRC.Table[_bufferBase[cur]] ^ _bufferBase[cur + 1];
+ UInt32 hash2Value = temp & (kHash2Size - 1);
+ _hash[hash2Value] = _pos;
+ temp ^= ((UInt32)(_bufferBase[cur + 2]) << 8);
+ UInt32 hash3Value = temp & (kHash3Size - 1);
+ _hash[kHash3Offset + hash3Value] = _pos;
+ hashValue = (temp ^ (CRC.Table[_bufferBase[cur + 3]] << 5)) & _hashMask;
+ }
+ else
+ hashValue = _bufferBase[cur] ^ ((UInt32)(_bufferBase[cur + 1]) << 8);
+
+ UInt32 curMatch = _hash[kFixHashSize + hashValue];
+ _hash[kFixHashSize + hashValue] = _pos;
+
+ UInt32 ptr0 = (_cyclicBufferPos << 1) + 1;
+ UInt32 ptr1 = (_cyclicBufferPos << 1);
+
+ UInt32 len0, len1;
+ len0 = len1 = kNumHashDirectBytes;
+
+ UInt32 count = _cutValue;
+ while (true)
+ {
+ if (curMatch <= matchMinPos || count-- == 0)
+ {
+ _son[ptr0] = _son[ptr1] = kEmptyHashValue;
+ break;
+ }
+
+ UInt32 delta = _pos - curMatch;
+ UInt32 cyclicPos = ((delta <= _cyclicBufferPos) ?
+ (_cyclicBufferPos - delta) :
+ (_cyclicBufferPos - delta + _cyclicBufferSize)) << 1;
+
+ UInt32 pby1 = _bufferOffset + curMatch;
+ UInt32 len = Math.Min(len0, len1);
+ if (_bufferBase[pby1 + len] == _bufferBase[cur + len])
+ {
+ while (++len != lenLimit)
+ if (_bufferBase[pby1 + len] != _bufferBase[cur + len])
+ break;
+ if (len == lenLimit)
+ {
+ _son[ptr1] = _son[cyclicPos];
+ _son[ptr0] = _son[cyclicPos + 1];
+ break;
+ }
+ }
+ if (_bufferBase[pby1 + len] < _bufferBase[cur + len])
+ {
+ _son[ptr1] = curMatch;
+ ptr1 = cyclicPos + 1;
+ curMatch = _son[ptr1];
+ len1 = len;
+ }
+ else
+ {
+ _son[ptr0] = curMatch;
+ ptr0 = cyclicPos;
+ curMatch = _son[ptr0];
+ len0 = len;
+ }
+ }
+ MovePos();
+ }
+ while (--num != 0);
+ }
+
+ void NormalizeLinks(UInt32[] items, UInt32 numItems, UInt32 subValue)
+ {
+ for (UInt32 i = 0; i < numItems; i++)
+ {
+ UInt32 value = items[i];
+ if (value <= subValue)
+ value = kEmptyHashValue;
+ else
+ value -= subValue;
+ items[i] = value;
+ }
+ }
+
+ void Normalize()
+ {
+ UInt32 subValue = _pos - _cyclicBufferSize;
+ NormalizeLinks(_son, _cyclicBufferSize * 2, subValue);
+ NormalizeLinks(_hash, _hashSizeSum, subValue);
+ ReduceOffsets((Int32)subValue);
+ }
+
+ public void SetCutValue(UInt32 cutValue) { _cutValue = cutValue; }
+ }
+}
diff --git a/ROMVault2/SupportedFiles/SevenZip/Compress/LZ/LzInWindow.cs b/ROMVault2/SupportedFiles/SevenZip/Compress/LZ/LzInWindow.cs
new file mode 100644
index 0000000..c583e8e
--- /dev/null
+++ b/ROMVault2/SupportedFiles/SevenZip/Compress/LZ/LzInWindow.cs
@@ -0,0 +1,132 @@
+// LzInWindow.cs
+
+using System;
+
+namespace ROMVault2.SupportedFiles.SevenZip.Compress.LZ
+{
+ public class InWindow
+ {
+ public Byte[] _bufferBase = null; // pointer to buffer with data
+ System.IO.Stream _stream;
+ UInt32 _posLimit; // offset (from _buffer) of first byte when new block reading must be done
+ bool _streamEndWasReached; // if (true) then _streamPos shows real end of stream
+
+ UInt32 _pointerToLastSafePosition;
+
+ public UInt32 _bufferOffset;
+
+ public UInt32 _blockSize; // Size of Allocated memory block
+ public UInt32 _pos; // offset (from _buffer) of curent byte
+ UInt32 _keepSizeBefore; // how many BYTEs must be kept in buffer before _pos
+ UInt32 _keepSizeAfter; // how many BYTEs must be kept buffer after _pos
+ public UInt32 _streamPos; // offset (from _buffer) of first not read byte from Stream
+
+ public void MoveBlock()
+ {
+ UInt32 offset = (UInt32)(_bufferOffset) + _pos - _keepSizeBefore;
+ // we need one additional byte, since MovePos moves on 1 byte.
+ if (offset > 0)
+ offset--;
+
+ UInt32 numBytes = (UInt32)(_bufferOffset) + _streamPos - offset;
+
+ // check negative offset ????
+ for (UInt32 i = 0; i < numBytes; i++)
+ _bufferBase[i] = _bufferBase[offset + i];
+ _bufferOffset -= offset;
+ }
+
+ public virtual void ReadBlock()
+ {
+ if (_streamEndWasReached)
+ return;
+ while (true)
+ {
+ int size = (int)((0 - _bufferOffset) + _blockSize - _streamPos);
+ if (size == 0)
+ return;
+ int numReadBytes = _stream.Read(_bufferBase, (int)(_bufferOffset + _streamPos), size);
+ if (numReadBytes == 0)
+ {
+ _posLimit = _streamPos;
+ UInt32 pointerToPostion = _bufferOffset + _posLimit;
+ if (pointerToPostion > _pointerToLastSafePosition)
+ _posLimit = (UInt32)(_pointerToLastSafePosition - _bufferOffset);
+
+ _streamEndWasReached = true;
+ return;
+ }
+ _streamPos += (UInt32)numReadBytes;
+ if (_streamPos >= _pos + _keepSizeAfter)
+ _posLimit = _streamPos - _keepSizeAfter;
+ }
+ }
+
+ void Free() { _bufferBase = null; }
+
+ public void Create(UInt32 keepSizeBefore, UInt32 keepSizeAfter, UInt32 keepSizeReserv)
+ {
+ _keepSizeBefore = keepSizeBefore;
+ _keepSizeAfter = keepSizeAfter;
+ UInt32 blockSize = keepSizeBefore + keepSizeAfter + keepSizeReserv;
+ if (_bufferBase == null || _blockSize != blockSize)
+ {
+ Free();
+ _blockSize = blockSize;
+ _bufferBase = new Byte[_blockSize];
+ }
+ _pointerToLastSafePosition = _blockSize - keepSizeAfter;
+ }
+
+ public void SetStream(System.IO.Stream stream) { _stream = stream; }
+ public void ReleaseStream() { _stream = null; }
+
+ public void Init()
+ {
+ _bufferOffset = 0;
+ _pos = 0;
+ _streamPos = 0;
+ _streamEndWasReached = false;
+ ReadBlock();
+ }
+
+ public void MovePos()
+ {
+ _pos++;
+ if (_pos > _posLimit)
+ {
+ UInt32 pointerToPostion = _bufferOffset + _pos;
+ if (pointerToPostion > _pointerToLastSafePosition)
+ MoveBlock();
+ ReadBlock();
+ }
+ }
+
+ public Byte GetIndexByte(Int32 index) { return _bufferBase[_bufferOffset + _pos + index]; }
+
+ // index + limit have not to exceed _keepSizeAfter;
+ public UInt32 GetMatchLen(Int32 index, UInt32 distance, UInt32 limit)
+ {
+ if (_streamEndWasReached)
+ if ((_pos + index) + limit > _streamPos)
+ limit = _streamPos - (UInt32)(_pos + index);
+ distance++;
+ // Byte *pby = _buffer + (size_t)_pos + index;
+ UInt32 pby = _bufferOffset + _pos + (UInt32)index;
+
+ UInt32 i;
+ for (i = 0; i < limit && _bufferBase[pby + i] == _bufferBase[pby + i - distance]; i++);
+ return i;
+ }
+
+ public UInt32 GetNumAvailableBytes() { return _streamPos - _pos; }
+
+ public void ReduceOffsets(Int32 subValue)
+ {
+ _bufferOffset += (UInt32)subValue;
+ _posLimit -= (UInt32)subValue;
+ _pos -= (UInt32)subValue;
+ _streamPos -= (UInt32)subValue;
+ }
+ }
+}
diff --git a/ROMVault2/SupportedFiles/SevenZip/Compress/LZ/LzOutWindow.cs b/ROMVault2/SupportedFiles/SevenZip/Compress/LZ/LzOutWindow.cs
new file mode 100644
index 0000000..a6cd908
--- /dev/null
+++ b/ROMVault2/SupportedFiles/SevenZip/Compress/LZ/LzOutWindow.cs
@@ -0,0 +1,135 @@
+// LzOutWindow.cs
+
+namespace ROMVault2.SupportedFiles.SevenZip.Compress.LZ
+{
+ public class OutWindow
+ {
+ byte[] _buffer = null;
+ uint _pos;
+ uint _windowSize = 0;
+ uint _streamPos;
+ System.IO.Stream _stream;
+
+ public uint TrainSize = 0;
+
+ public void Create(uint windowSize)
+ {
+ if (_windowSize != windowSize)
+ {
+ // System.GC.Collect();
+ _buffer = new byte[windowSize];
+ }
+ _windowSize = windowSize;
+ _pos = 0;
+ _streamPos = 0;
+ }
+
+ public void Init(System.IO.Stream stream, bool solid)
+ {
+ ReleaseStream();
+ _stream = stream;
+ if (!solid)
+ {
+ _streamPos = 0;
+ _pos = 0;
+ TrainSize = 0;
+ }
+ }
+
+ public bool Train(System.IO.Stream stream)
+ {
+ long len = stream.Length;
+ uint size = (len < _windowSize) ? (uint)len : _windowSize;
+ TrainSize = size;
+ stream.Position = len - size;
+ _streamPos = _pos = 0;
+ while (size > 0)
+ {
+ uint curSize = _windowSize - _pos;
+ if (size < curSize)
+ curSize = size;
+ int numReadBytes = stream.Read(_buffer, (int)_pos, (int)curSize);
+ if (numReadBytes == 0)
+ return false;
+ size -= (uint)numReadBytes;
+ _pos += (uint)numReadBytes;
+ _streamPos += (uint)numReadBytes;
+ if (_pos == _windowSize)
+ _streamPos = _pos = 0;
+ }
+ return true;
+ }
+
+ public void ReleaseStream()
+ {
+ Flush();
+ _stream = null;
+ }
+
+ public void Flush()
+ {
+ uint size = _pos - _streamPos;
+ if (size == 0)
+ return;
+ if (_stream != null)
+ _stream.Write(_buffer, (int)_streamPos, (int)size);
+ if (_pos >= _windowSize)
+ _pos = 0;
+ _streamPos = _pos;
+ }
+
+ public void CopyBlock(uint distance, uint len)
+ {
+ uint l = 0;
+
+ uint pos = _pos - distance - 1;
+ if (pos >= _windowSize)
+ pos += _windowSize;
+ for (; len > 0; len--)
+ {
+ if (pos >= _windowSize)
+ pos = 0;
+ _buffer[_pos++] = _buffer[pos++];
+ if (_pos >= _windowSize)
+ Flush();
+ }
+ }
+
+
+ public void CopyBlockRetBlock(uint distance, uint len, ref byte[] outbuffer)
+ {
+ if (outbuffer == null || outbuffer.Length < len)
+ outbuffer=new byte[len];
+
+ uint l = 0;
+
+ uint pos = _pos - distance - 1;
+ if (pos >= _windowSize)
+ pos += _windowSize;
+ for (; len > 0; len--)
+ {
+ if (pos >= _windowSize)
+ pos = 0;
+ outbuffer[l++] = _buffer[pos];
+ _buffer[_pos++] = _buffer[pos++];
+ if (_pos >= _windowSize)
+ Flush();
+ }
+ }
+
+ public void PutByte(byte b)
+ {
+ _buffer[_pos++] = b;
+ if (_pos >= _windowSize)
+ Flush();
+ }
+
+ public byte GetByte(uint distance)
+ {
+ uint pos = _pos - distance - 1;
+ if (pos >= _windowSize)
+ pos += _windowSize;
+ return _buffer[pos];
+ }
+ }
+}
diff --git a/ROMVault2/SupportedFiles/SevenZip/Compress/LZMA/LzmaBase.cs b/ROMVault2/SupportedFiles/SevenZip/Compress/LZMA/LzmaBase.cs
new file mode 100644
index 0000000..d0ec96f
--- /dev/null
+++ b/ROMVault2/SupportedFiles/SevenZip/Compress/LZMA/LzmaBase.cs
@@ -0,0 +1,76 @@
+// LzmaBase.cs
+
+namespace ROMVault2.SupportedFiles.SevenZip.Compress.LZMA
+{
+ internal abstract class Base
+ {
+ public const uint kNumRepDistances = 4;
+ public const uint kNumStates = 12;
+
+ // static byte []kLiteralNextStates = {0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 4, 5};
+ // static byte []kMatchNextStates = {7, 7, 7, 7, 7, 7, 7, 10, 10, 10, 10, 10};
+ // static byte []kRepNextStates = {8, 8, 8, 8, 8, 8, 8, 11, 11, 11, 11, 11};
+ // static byte []kShortRepNextStates = {9, 9, 9, 9, 9, 9, 9, 11, 11, 11, 11, 11};
+
+ public struct State
+ {
+ public uint Index;
+ public void Init() { Index = 0; }
+ public void UpdateChar()
+ {
+ if (Index < 4) Index = 0;
+ else if (Index < 10) Index -= 3;
+ else Index -= 6;
+ }
+ public void UpdateMatch() { Index = (uint)(Index < 7 ? 7 : 10); }
+ public void UpdateRep() { Index = (uint)(Index < 7 ? 8 : 11); }
+ public void UpdateShortRep() { Index = (uint)(Index < 7 ? 9 : 11); }
+ public bool IsCharState() { return Index < 7; }
+ }
+
+ public const int kNumPosSlotBits = 6;
+ public const int kDicLogSizeMin = 0;
+ // public const int kDicLogSizeMax = 30;
+ // public const uint kDistTableSizeMax = kDicLogSizeMax * 2;
+
+ public const int kNumLenToPosStatesBits = 2; // it's for speed optimization
+ public const uint kNumLenToPosStates = 1 << kNumLenToPosStatesBits;
+
+ public const uint kMatchMinLen = 2;
+
+ public static uint GetLenToPosState(uint len)
+ {
+ len -= kMatchMinLen;
+ if (len < kNumLenToPosStates)
+ return len;
+ return (uint)(kNumLenToPosStates - 1);
+ }
+
+ public const int kNumAlignBits = 4;
+ public const uint kAlignTableSize = 1 << kNumAlignBits;
+ public const uint kAlignMask = (kAlignTableSize - 1);
+
+ public const uint kStartPosModelIndex = 4;
+ public const uint kEndPosModelIndex = 14;
+ public const uint kNumPosModels = kEndPosModelIndex - kStartPosModelIndex;
+
+ public const uint kNumFullDistances = 1 << ((int)kEndPosModelIndex / 2);
+
+ public const uint kNumLitPosStatesBitsEncodingMax = 4;
+ public const uint kNumLitContextBitsMax = 8;
+
+ public const int kNumPosStatesBitsMax = 4;
+ public const uint kNumPosStatesMax = (1 << kNumPosStatesBitsMax);
+ public const int kNumPosStatesBitsEncodingMax = 4;
+ public const uint kNumPosStatesEncodingMax = (1 << kNumPosStatesBitsEncodingMax);
+
+ public const int kNumLowLenBits = 3;
+ public const int kNumMidLenBits = 3;
+ public const int kNumHighLenBits = 8;
+ public const uint kNumLowLenSymbols = 1 << kNumLowLenBits;
+ public const uint kNumMidLenSymbols = 1 << kNumMidLenBits;
+ public const uint kNumLenSymbols = kNumLowLenSymbols + kNumMidLenSymbols +
+ (1 << kNumHighLenBits);
+ public const uint kMatchMaxLen = kMatchMinLen + kNumLenSymbols - 1;
+ }
+}
diff --git a/ROMVault2/SupportedFiles/SevenZip/Compress/LZMA/LzmaDecoder.cs b/ROMVault2/SupportedFiles/SevenZip/Compress/LZMA/LzmaDecoder.cs
new file mode 100644
index 0000000..7967120
--- /dev/null
+++ b/ROMVault2/SupportedFiles/SevenZip/Compress/LZMA/LzmaDecoder.cs
@@ -0,0 +1,597 @@
+// LzmaDecoder.cs
+
+using System;
+using System.IO;
+using ROMVault2.SupportedFiles.SevenZip.Common;
+using ROMVault2.SupportedFiles.SevenZip.Compress.RangeCoder;
+
+namespace ROMVault2.SupportedFiles.SevenZip.Compress.LZMA
+{
+ public class Decoder : Stream, ICoder, ISetDecoderProperties
+ {
+ class LenDecoder
+ {
+ BitDecoder m_Choice = new BitDecoder();
+ BitDecoder m_Choice2 = new BitDecoder();
+ BitTreeDecoder[] m_LowCoder = new BitTreeDecoder[Base.kNumPosStatesMax];
+ BitTreeDecoder[] m_MidCoder = new BitTreeDecoder[Base.kNumPosStatesMax];
+ BitTreeDecoder m_HighCoder = new BitTreeDecoder(Base.kNumHighLenBits);
+ uint m_NumPosStates = 0;
+
+ public void Create(uint numPosStates)
+ {
+ for (uint posState = m_NumPosStates; posState < numPosStates; posState++)
+ {
+ m_LowCoder[posState] = new BitTreeDecoder(Base.kNumLowLenBits);
+ m_MidCoder[posState] = new BitTreeDecoder(Base.kNumMidLenBits);
+ }
+ m_NumPosStates = numPosStates;
+ }
+
+ public void Init()
+ {
+ m_Choice.Init();
+ for (uint posState = 0; posState < m_NumPosStates; posState++)
+ {
+ m_LowCoder[posState].Init();
+ m_MidCoder[posState].Init();
+ }
+ m_Choice2.Init();
+ m_HighCoder.Init();
+ }
+
+ public uint Decode(RangeCoder.Decoder rangeDecoder, uint posState)
+ {
+ if (m_Choice.Decode(rangeDecoder) == 0)
+ return m_LowCoder[posState].Decode(rangeDecoder);
+ else
+ {
+ uint symbol = Base.kNumLowLenSymbols;
+ if (m_Choice2.Decode(rangeDecoder) == 0)
+ symbol += m_MidCoder[posState].Decode(rangeDecoder);
+ else
+ {
+ symbol += Base.kNumMidLenSymbols;
+ symbol += m_HighCoder.Decode(rangeDecoder);
+ }
+ return symbol;
+ }
+ }
+ }
+
+ class LiteralDecoder
+ {
+ struct Decoder2
+ {
+ BitDecoder[] m_Decoders;
+ public void Create() { m_Decoders = new BitDecoder[0x300]; }
+ public void Init() { for (int i = 0; i < 0x300; i++) m_Decoders[i].Init(); }
+
+ public byte DecodeNormal(RangeCoder.Decoder rangeDecoder)
+ {
+ uint symbol = 1;
+ do
+ symbol = (symbol << 1) | m_Decoders[symbol].Decode(rangeDecoder);
+ while (symbol < 0x100);
+ return (byte)symbol;
+ }
+
+ public byte DecodeWithMatchByte(RangeCoder.Decoder rangeDecoder, byte matchByte)
+ {
+ uint symbol = 1;
+ do
+ {
+ uint matchBit = (uint)(matchByte >> 7) & 1;
+ matchByte <<= 1;
+ uint bit = m_Decoders[((1 + matchBit) << 8) + symbol].Decode(rangeDecoder);
+ symbol = (symbol << 1) | bit;
+ if (matchBit != bit)
+ {
+ while (symbol < 0x100)
+ symbol = (symbol << 1) | m_Decoders[symbol].Decode(rangeDecoder);
+ break;
+ }
+ }
+ while (symbol < 0x100);
+ return (byte)symbol;
+ }
+ }
+
+ Decoder2[] m_Coders;
+ int m_NumPrevBits;
+ int m_NumPosBits;
+ uint m_PosMask;
+
+ public void Create(int numPosBits, int numPrevBits)
+ {
+ if (m_Coders != null && m_NumPrevBits == numPrevBits &&
+ m_NumPosBits == numPosBits)
+ return;
+ m_NumPosBits = numPosBits;
+ m_PosMask = ((uint)1 << numPosBits) - 1;
+ m_NumPrevBits = numPrevBits;
+ uint numStates = (uint)1 << (m_NumPrevBits + m_NumPosBits);
+ m_Coders = new Decoder2[numStates];
+ for (uint i = 0; i < numStates; i++)
+ m_Coders[i].Create();
+ }
+
+ public void Init()
+ {
+ uint numStates = (uint)1 << (m_NumPrevBits + m_NumPosBits);
+ for (uint i = 0; i < numStates; i++)
+ m_Coders[i].Init();
+ }
+
+ uint GetState(uint pos, byte prevByte)
+ { return ((pos & m_PosMask) << m_NumPrevBits) + (uint)(prevByte >> (8 - m_NumPrevBits)); }
+
+ public byte DecodeNormal(RangeCoder.Decoder rangeDecoder, uint pos, byte prevByte)
+ { return m_Coders[GetState(pos, prevByte)].DecodeNormal(rangeDecoder); }
+
+ public byte DecodeWithMatchByte(RangeCoder.Decoder rangeDecoder, uint pos, byte prevByte, byte matchByte)
+ { return m_Coders[GetState(pos, prevByte)].DecodeWithMatchByte(rangeDecoder, matchByte); }
+ };
+
+ LZ.OutWindow m_OutWindow = new LZ.OutWindow();
+ RangeCoder.Decoder m_RangeDecoder = new RangeCoder.Decoder();
+
+ BitDecoder[] m_IsMatchDecoders = new BitDecoder[Base.kNumStates << Base.kNumPosStatesBitsMax];
+ BitDecoder[] m_IsRepDecoders = new BitDecoder[Base.kNumStates];
+ BitDecoder[] m_IsRepG0Decoders = new BitDecoder[Base.kNumStates];
+ BitDecoder[] m_IsRepG1Decoders = new BitDecoder[Base.kNumStates];
+ BitDecoder[] m_IsRepG2Decoders = new BitDecoder[Base.kNumStates];
+ BitDecoder[] m_IsRep0LongDecoders = new BitDecoder[Base.kNumStates << Base.kNumPosStatesBitsMax];
+
+ BitTreeDecoder[] m_PosSlotDecoder = new BitTreeDecoder[Base.kNumLenToPosStates];
+ BitDecoder[] m_PosDecoders = new BitDecoder[Base.kNumFullDistances - Base.kEndPosModelIndex];
+
+ BitTreeDecoder m_PosAlignDecoder = new BitTreeDecoder(Base.kNumAlignBits);
+
+ LenDecoder m_LenDecoder = new LenDecoder();
+ LenDecoder m_RepLenDecoder = new LenDecoder();
+
+ LiteralDecoder m_LiteralDecoder = new LiteralDecoder();
+
+ uint m_DictionarySize;
+ uint m_DictionarySizeCheck;
+
+ uint m_PosStateMask;
+
+ public Decoder()
+ {
+ m_DictionarySize = 0xFFFFFFFF;
+ for (int i = 0; i < Base.kNumLenToPosStates; i++)
+ m_PosSlotDecoder[i] = new BitTreeDecoder(Base.kNumPosSlotBits);
+ }
+
+ void SetDictionarySize(uint dictionarySize)
+ {
+ if (m_DictionarySize != dictionarySize)
+ {
+ m_DictionarySize = dictionarySize;
+ m_DictionarySizeCheck = Math.Max(m_DictionarySize, 1);
+ uint blockSize = Math.Max(m_DictionarySizeCheck, (1 << 12));
+ m_OutWindow.Create(blockSize);
+ }
+ }
+
+ void SetLiteralProperties(int lp, int lc)
+ {
+ if (lp > 8)
+ throw new InvalidParamException();
+ if (lc > 8)
+ throw new InvalidParamException();
+ m_LiteralDecoder.Create(lp, lc);
+ }
+
+ void SetPosBitsProperties(int pb)
+ {
+ if (pb > Base.kNumPosStatesBitsMax)
+ throw new InvalidParamException();
+ uint numPosStates = (uint)1 << pb;
+ m_LenDecoder.Create(numPosStates);
+ m_RepLenDecoder.Create(numPosStates);
+ m_PosStateMask = numPosStates - 1;
+ }
+
+ bool _solid = false;
+ void Init(Stream inStream, Stream outStream)
+ {
+ m_RangeDecoder.Init(inStream);
+ m_OutWindow.Init(outStream, _solid);
+
+ uint i;
+ for (i = 0; i < Base.kNumStates; i++)
+ {
+ for (uint j = 0; j <= m_PosStateMask; j++)
+ {
+ uint index = (i << Base.kNumPosStatesBitsMax) + j;
+ m_IsMatchDecoders[index].Init();
+ m_IsRep0LongDecoders[index].Init();
+ }
+ m_IsRepDecoders[i].Init();
+ m_IsRepG0Decoders[i].Init();
+ m_IsRepG1Decoders[i].Init();
+ m_IsRepG2Decoders[i].Init();
+ }
+
+ m_LiteralDecoder.Init();
+ for (i = 0; i < Base.kNumLenToPosStates; i++)
+ m_PosSlotDecoder[i].Init();
+ // m_PosSpecDecoder.Init();
+ for (i = 0; i < Base.kNumFullDistances - Base.kEndPosModelIndex; i++)
+ m_PosDecoders[i].Init();
+
+ m_LenDecoder.Init();
+ m_RepLenDecoder.Init();
+ m_PosAlignDecoder.Init();
+ }
+
+ public void Code(Stream inStream, Stream outStream, Int64 inSize, Int64 outSize, ICodeProgress progress)
+ {
+ Init(inStream, outStream);
+
+ Base.State state = new Base.State();
+ state.Init();
+ uint rep0 = 0, rep1 = 0, rep2 = 0, rep3 = 0;
+
+ UInt64 nowPos64 = 0;
+ UInt64 outSize64 = (UInt64)outSize;
+ if (nowPos64 < outSize64)
+ {
+ if (m_IsMatchDecoders[state.Index << Base.kNumPosStatesBitsMax].Decode(m_RangeDecoder) != 0)
+ throw new DataErrorException();
+ state.UpdateChar();
+ byte b = m_LiteralDecoder.DecodeNormal(m_RangeDecoder, 0, 0);
+ m_OutWindow.PutByte(b);
+ nowPos64++;
+ }
+ while (nowPos64 < outSize64)
+ {
+ // UInt64 next = Math.Min(nowPos64 + (1 << 18), outSize64);
+ // while(nowPos64 < next)
+ {
+ uint posState = (uint)nowPos64 & m_PosStateMask;
+ if (m_IsMatchDecoders[(state.Index << Base.kNumPosStatesBitsMax) + posState].Decode(m_RangeDecoder) == 0)
+ {
+ byte b;
+ byte prevByte = m_OutWindow.GetByte(0);
+ if (!state.IsCharState())
+ b = m_LiteralDecoder.DecodeWithMatchByte(m_RangeDecoder,
+ (uint)nowPos64, prevByte, m_OutWindow.GetByte(rep0));
+ else
+ b = m_LiteralDecoder.DecodeNormal(m_RangeDecoder, (uint)nowPos64, prevByte);
+ m_OutWindow.PutByte(b);
+ state.UpdateChar();
+ nowPos64++;
+ }
+ else
+ {
+ uint len;
+ if (m_IsRepDecoders[state.Index].Decode(m_RangeDecoder) == 1)
+ {
+ if (m_IsRepG0Decoders[state.Index].Decode(m_RangeDecoder) == 0)
+ {
+ if (m_IsRep0LongDecoders[(state.Index << Base.kNumPosStatesBitsMax) + posState].Decode(m_RangeDecoder) == 0)
+ {
+ state.UpdateShortRep();
+ m_OutWindow.PutByte(m_OutWindow.GetByte(rep0));
+ nowPos64++;
+ continue;
+ }
+ }
+ else
+ {
+ UInt32 distance;
+ if (m_IsRepG1Decoders[state.Index].Decode(m_RangeDecoder) == 0)
+ {
+ distance = rep1;
+ }
+ else
+ {
+ if (m_IsRepG2Decoders[state.Index].Decode(m_RangeDecoder) == 0)
+ distance = rep2;
+ else
+ {
+ distance = rep3;
+ rep3 = rep2;
+ }
+ rep2 = rep1;
+ }
+ rep1 = rep0;
+ rep0 = distance;
+ }
+ len = m_RepLenDecoder.Decode(m_RangeDecoder, posState) + Base.kMatchMinLen;
+ state.UpdateRep();
+ }
+ else
+ {
+ rep3 = rep2;
+ rep2 = rep1;
+ rep1 = rep0;
+ len = Base.kMatchMinLen + m_LenDecoder.Decode(m_RangeDecoder, posState);
+ state.UpdateMatch();
+ uint posSlot = m_PosSlotDecoder[Base.GetLenToPosState(len)].Decode(m_RangeDecoder);
+ if (posSlot >= Base.kStartPosModelIndex)
+ {
+ int numDirectBits = (int)((posSlot >> 1) - 1);
+ rep0 = ((2 | (posSlot & 1)) << numDirectBits);
+ if (posSlot < Base.kEndPosModelIndex)
+ rep0 += BitTreeDecoder.ReverseDecode(m_PosDecoders,
+ rep0 - posSlot - 1, m_RangeDecoder, numDirectBits);
+ else
+ {
+ rep0 += (m_RangeDecoder.DecodeDirectBits(
+ numDirectBits - Base.kNumAlignBits) << Base.kNumAlignBits);
+ rep0 += m_PosAlignDecoder.ReverseDecode(m_RangeDecoder);
+ }
+ }
+ else
+ rep0 = posSlot;
+ }
+ if (rep0 >= m_OutWindow.TrainSize + nowPos64 || rep0 >= m_DictionarySizeCheck)
+ {
+ if (rep0 == 0xFFFFFFFF)
+ break;
+ throw new DataErrorException();
+ }
+ m_OutWindow.CopyBlock(rep0, len);
+ nowPos64 += len;
+ }
+ }
+ }
+ m_OutWindow.Flush();
+ m_OutWindow.ReleaseStream();
+ m_RangeDecoder.ReleaseStream();
+ }
+
+ public void SetDecoderProperties(byte[] properties)
+ {
+ if (properties.Length < 5)
+ throw new InvalidParamException();
+ int lc = properties[0] % 9;
+ int remainder = properties[0] / 9;
+ int lp = remainder % 5;
+ int pb = remainder / 5;
+ if (pb > Base.kNumPosStatesBitsMax)
+ throw new InvalidParamException();
+ UInt32 dictionarySize = 0;
+ for (int i = 0; i < 4; i++)
+ dictionarySize += ((UInt32)(properties[1 + i])) << (i * 8);
+ SetDictionarySize(dictionarySize);
+ SetLiteralProperties(lp, lc);
+ SetPosBitsProperties(pb);
+ }
+
+ public bool Train(System.IO.Stream stream)
+ {
+ _solid = true;
+ return m_OutWindow.Train(stream);
+ }
+
+
+
+
+
+ private Base.State state;
+ private uint rep0, rep1, rep2, rep3;
+ private UInt64 nowPos64;
+ private bool init;
+
+ private byte[] outbuffer;
+ private uint outbufferpos;
+ private uint outbufferlen;
+ private uint totalout;
+ public void SetUpStream(Stream inStream)
+ {
+ Init(inStream, null);
+
+ state = new Base.State();
+ state.Init();
+
+ rep0 = 0;
+ rep1 = 0;
+ rep2 = 0;
+ rep3 = 0;
+ nowPos64 = 0;
+
+ init = false;
+ outbufferpos = 0;
+ outbufferlen = 0;
+ totalout = 0;
+ }
+ public void ReleaseStream()
+ {
+ m_RangeDecoder.ReleaseStream();
+ }
+
+ private void GetNextBytes()
+ {
+ if (!init)
+ {
+ if (m_IsMatchDecoders[state.Index << Base.kNumPosStatesBitsMax].Decode(m_RangeDecoder) != 0)
+ throw new DataErrorException();
+ state.UpdateChar();
+ byte b = m_LiteralDecoder.DecodeNormal(m_RangeDecoder, 0, 0);
+ m_OutWindow.PutByte(b);
+ nowPos64++;
+ init = true;
+
+ outbuffer=new byte[1];
+ outbuffer[0] = b;
+ outbufferlen = 1;
+ return;
+ }
+
+ uint posState = (uint)nowPos64 & m_PosStateMask;
+ if (m_IsMatchDecoders[(state.Index << Base.kNumPosStatesBitsMax) + posState].Decode(m_RangeDecoder) == 0)
+ {
+ byte b;
+ byte prevByte = m_OutWindow.GetByte(0);
+ if (!state.IsCharState())
+ b = m_LiteralDecoder.DecodeWithMatchByte(m_RangeDecoder,
+ (uint)nowPos64, prevByte, m_OutWindow.GetByte(rep0));
+ else
+ b = m_LiteralDecoder.DecodeNormal(m_RangeDecoder, (uint)nowPos64, prevByte);
+ m_OutWindow.PutByte(b);
+ state.UpdateChar();
+ nowPos64++;
+
+ outbuffer[0] = b;
+ outbufferlen = 1;
+ return;
+
+ }
+ uint len;
+ if (m_IsRepDecoders[state.Index].Decode(m_RangeDecoder) == 1)
+ {
+ if (m_IsRepG0Decoders[state.Index].Decode(m_RangeDecoder) == 0)
+ {
+ if (m_IsRep0LongDecoders[(state.Index << Base.kNumPosStatesBitsMax) + posState].Decode(m_RangeDecoder) == 0)
+ {
+ state.UpdateShortRep();
+ byte b = m_OutWindow.GetByte(rep0);
+ m_OutWindow.PutByte(b);
+ nowPos64++;
+
+ outbuffer[0] = b;
+ outbufferlen = 1;
+ return;
+ }
+ }
+ else
+ {
+ UInt32 distance;
+ if (m_IsRepG1Decoders[state.Index].Decode(m_RangeDecoder) == 0)
+ {
+ distance = rep1;
+ }
+ else
+ {
+ if (m_IsRepG2Decoders[state.Index].Decode(m_RangeDecoder) == 0)
+ distance = rep2;
+ else
+ {
+ distance = rep3;
+ rep3 = rep2;
+ }
+ rep2 = rep1;
+ }
+ rep1 = rep0;
+ rep0 = distance;
+ }
+ len = m_RepLenDecoder.Decode(m_RangeDecoder, posState) + Base.kMatchMinLen;
+ state.UpdateRep();
+ }
+ else
+ {
+ rep3 = rep2;
+ rep2 = rep1;
+ rep1 = rep0;
+ len = Base.kMatchMinLen + m_LenDecoder.Decode(m_RangeDecoder, posState);
+ state.UpdateMatch();
+ uint posSlot = m_PosSlotDecoder[Base.GetLenToPosState(len)].Decode(m_RangeDecoder);
+ if (posSlot >= Base.kStartPosModelIndex)
+ {
+ int numDirectBits = (int)((posSlot >> 1) - 1);
+ rep0 = ((2 | (posSlot & 1)) << numDirectBits);
+ if (posSlot < Base.kEndPosModelIndex)
+ rep0 += BitTreeDecoder.ReverseDecode(m_PosDecoders,
+ rep0 - posSlot - 1, m_RangeDecoder, numDirectBits);
+ else
+ {
+ rep0 += (m_RangeDecoder.DecodeDirectBits(
+ numDirectBits - Base.kNumAlignBits) << Base.kNumAlignBits);
+ rep0 += m_PosAlignDecoder.ReverseDecode(m_RangeDecoder);
+ }
+ }
+ else
+ rep0 = posSlot;
+ }
+ if (rep0 >= m_OutWindow.TrainSize + nowPos64 || rep0 >= m_DictionarySizeCheck)
+ {
+ if (rep0 == 0xFFFFFFFF)
+ return;
+ throw new DataErrorException();
+ }
+ m_OutWindow.CopyBlockRetBlock(rep0, len, ref outbuffer);
+ outbufferlen = len;
+ nowPos64 += len;
+ }
+
+ public override void Flush()
+ {
+ throw new NotImplementedException();
+ }
+
+ public override long Seek(long offset, SeekOrigin origin)
+ {
+ if (origin != SeekOrigin.Current)
+ throw new NotImplementedException();
+
+ for (int i = 0; i < offset; i++)
+ {
+ if (outbufferpos == outbufferlen)
+ {
+ GetNextBytes();
+ outbufferpos = 0;
+ }
+ outbufferpos++;
+ totalout++;
+ }
+ return totalout;
+ }
+
+ public override void SetLength(long value)
+ {
+ throw new NotImplementedException();
+ }
+
+ public override int Read(byte[] buffer, int offset, int count)
+ {
+ for (int i = 0; i < count; i++)
+ {
+ if (outbufferpos == outbufferlen)
+ {
+ GetNextBytes();
+ outbufferpos = 0;
+ }
+ buffer[offset + i] = outbuffer[outbufferpos++];
+ totalout++;
+ }
+ return count;
+ }
+
+ public override void Write(byte[] buffer, int offset, int count)
+ {
+ throw new NotImplementedException();
+ }
+
+ public override bool CanRead
+ {
+ get { return true; }
+ }
+
+ public override bool CanSeek
+ {
+ get { throw new NotImplementedException(); }
+ }
+
+ public override bool CanWrite
+ {
+ get { return false; }
+ }
+
+ public override long Length
+ {
+ get { throw new NotImplementedException(); }
+ }
+
+ public override long Position
+ {
+ get { return totalout; }
+ set { }
+ }
+ }
+}
diff --git a/ROMVault2/SupportedFiles/SevenZip/Compress/LZMA/LzmaEncoder.cs b/ROMVault2/SupportedFiles/SevenZip/Compress/LZMA/LzmaEncoder.cs
new file mode 100644
index 0000000..53611d3
--- /dev/null
+++ b/ROMVault2/SupportedFiles/SevenZip/Compress/LZMA/LzmaEncoder.cs
@@ -0,0 +1,1480 @@
+// LzmaEncoder.cs
+
+using System;
+using ROMVault2.SupportedFiles.SevenZip.Common;
+using ROMVault2.SupportedFiles.SevenZip.Compress.RangeCoder;
+
+namespace ROMVault2.SupportedFiles.SevenZip.Compress.LZMA
+{
+ public class Encoder : ICoder, ISetCoderProperties, IWriteCoderProperties
+ {
+ enum EMatchFinderType
+ {
+ BT2,
+ BT4,
+ };
+
+ const UInt32 kIfinityPrice = 0xFFFFFFF;
+
+ static Byte[] g_FastPos = new Byte[1 << 11];
+
+ static Encoder()
+ {
+ const Byte kFastSlots = 22;
+ int c = 2;
+ g_FastPos[0] = 0;
+ g_FastPos[1] = 1;
+ for (Byte slotFast = 2; slotFast < kFastSlots; slotFast++)
+ {
+ UInt32 k = ((UInt32)1 << ((slotFast >> 1) - 1));
+ for (UInt32 j = 0; j < k; j++, c++)
+ g_FastPos[c] = slotFast;
+ }
+ }
+
+ static UInt32 GetPosSlot(UInt32 pos)
+ {
+ if (pos < (1 << 11))
+ return g_FastPos[pos];
+ if (pos < (1 << 21))
+ return (UInt32)(g_FastPos[pos >> 10] + 20);
+ return (UInt32)(g_FastPos[pos >> 20] + 40);
+ }
+
+ static UInt32 GetPosSlot2(UInt32 pos)
+ {
+ if (pos < (1 << 17))
+ return (UInt32)(g_FastPos[pos >> 6] + 12);
+ if (pos < (1 << 27))
+ return (UInt32)(g_FastPos[pos >> 16] + 32);
+ return (UInt32)(g_FastPos[pos >> 26] + 52);
+ }
+
+ Base.State _state = new Base.State();
+ Byte _previousByte;
+ UInt32[] _repDistances = new UInt32[Base.kNumRepDistances];
+
+ void BaseInit()
+ {
+ _state.Init();
+ _previousByte = 0;
+ for (UInt32 i = 0; i < Base.kNumRepDistances; i++)
+ _repDistances[i] = 0;
+ }
+
+ const int kDefaultDictionaryLogSize = 22;
+ const UInt32 kNumFastBytesDefault = 0x20;
+
+ class LiteralEncoder
+ {
+ public struct Encoder2
+ {
+ BitEncoder[] m_Encoders;
+
+ public void Create() { m_Encoders = new BitEncoder[0x300]; }
+
+ public void Init() { for (int i = 0; i < 0x300; i++) m_Encoders[i].Init(); }
+
+ public void Encode(RangeCoder.Encoder rangeEncoder, byte symbol)
+ {
+ uint context = 1;
+ for (int i = 7; i >= 0; i--)
+ {
+ uint bit = (uint)((symbol >> i) & 1);
+ m_Encoders[context].Encode(rangeEncoder, bit);
+ context = (context << 1) | bit;
+ }
+ }
+
+ public void EncodeMatched(RangeCoder.Encoder rangeEncoder, byte matchByte, byte symbol)
+ {
+ uint context = 1;
+ bool same = true;
+ for (int i = 7; i >= 0; i--)
+ {
+ uint bit = (uint)((symbol >> i) & 1);
+ uint state = context;
+ if (same)
+ {
+ uint matchBit = (uint)((matchByte >> i) & 1);
+ state += ((1 + matchBit) << 8);
+ same = (matchBit == bit);
+ }
+ m_Encoders[state].Encode(rangeEncoder, bit);
+ context = (context << 1) | bit;
+ }
+ }
+
+ public uint GetPrice(bool matchMode, byte matchByte, byte symbol)
+ {
+ uint price = 0;
+ uint context = 1;
+ int i = 7;
+ if (matchMode)
+ {
+ for (; i >= 0; i--)
+ {
+ uint matchBit = (uint)(matchByte >> i) & 1;
+ uint bit = (uint)(symbol >> i) & 1;
+ price += m_Encoders[((1 + matchBit) << 8) + context].GetPrice(bit);
+ context = (context << 1) | bit;
+ if (matchBit != bit)
+ {
+ i--;
+ break;
+ }
+ }
+ }
+ for (; i >= 0; i--)
+ {
+ uint bit = (uint)(symbol >> i) & 1;
+ price += m_Encoders[context].GetPrice(bit);
+ context = (context << 1) | bit;
+ }
+ return price;
+ }
+ }
+
+ Encoder2[] m_Coders;
+ int m_NumPrevBits;
+ int m_NumPosBits;
+ uint m_PosMask;
+
+ public void Create(int numPosBits, int numPrevBits)
+ {
+ if (m_Coders != null && m_NumPrevBits == numPrevBits && m_NumPosBits == numPosBits)
+ return;
+ m_NumPosBits = numPosBits;
+ m_PosMask = ((uint)1 << numPosBits) - 1;
+ m_NumPrevBits = numPrevBits;
+ uint numStates = (uint)1 << (m_NumPrevBits + m_NumPosBits);
+ m_Coders = new Encoder2[numStates];
+ for (uint i = 0; i < numStates; i++)
+ m_Coders[i].Create();
+ }
+
+ public void Init()
+ {
+ uint numStates = (uint)1 << (m_NumPrevBits + m_NumPosBits);
+ for (uint i = 0; i < numStates; i++)
+ m_Coders[i].Init();
+ }
+
+ public Encoder2 GetSubCoder(UInt32 pos, Byte prevByte)
+ { return m_Coders[((pos & m_PosMask) << m_NumPrevBits) + (uint)(prevByte >> (8 - m_NumPrevBits))]; }
+ }
+
+ class LenEncoder
+ {
+ RangeCoder.BitEncoder _choice = new RangeCoder.BitEncoder();
+ RangeCoder.BitEncoder _choice2 = new RangeCoder.BitEncoder();
+ RangeCoder.BitTreeEncoder[] _lowCoder = new RangeCoder.BitTreeEncoder[Base.kNumPosStatesEncodingMax];
+ RangeCoder.BitTreeEncoder[] _midCoder = new RangeCoder.BitTreeEncoder[Base.kNumPosStatesEncodingMax];
+ RangeCoder.BitTreeEncoder _highCoder = new RangeCoder.BitTreeEncoder(Base.kNumHighLenBits);
+
+ public LenEncoder()
+ {
+ for (UInt32 posState = 0; posState < Base.kNumPosStatesEncodingMax; posState++)
+ {
+ _lowCoder[posState] = new RangeCoder.BitTreeEncoder(Base.kNumLowLenBits);
+ _midCoder[posState] = new RangeCoder.BitTreeEncoder(Base.kNumMidLenBits);
+ }
+ }
+
+ public void Init(UInt32 numPosStates)
+ {
+ _choice.Init();
+ _choice2.Init();
+ for (UInt32 posState = 0; posState < numPosStates; posState++)
+ {
+ _lowCoder[posState].Init();
+ _midCoder[posState].Init();
+ }
+ _highCoder.Init();
+ }
+
+ public void Encode(RangeCoder.Encoder rangeEncoder, UInt32 symbol, UInt32 posState)
+ {
+ if (symbol < Base.kNumLowLenSymbols)
+ {
+ _choice.Encode(rangeEncoder, 0);
+ _lowCoder[posState].Encode(rangeEncoder, symbol);
+ }
+ else
+ {
+ symbol -= Base.kNumLowLenSymbols;
+ _choice.Encode(rangeEncoder, 1);
+ if (symbol < Base.kNumMidLenSymbols)
+ {
+ _choice2.Encode(rangeEncoder, 0);
+ _midCoder[posState].Encode(rangeEncoder, symbol);
+ }
+ else
+ {
+ _choice2.Encode(rangeEncoder, 1);
+ _highCoder.Encode(rangeEncoder, symbol - Base.kNumMidLenSymbols);
+ }
+ }
+ }
+
+ public void SetPrices(UInt32 posState, UInt32 numSymbols, UInt32[] prices, UInt32 st)
+ {
+ UInt32 a0 = _choice.GetPrice0();
+ UInt32 a1 = _choice.GetPrice1();
+ UInt32 b0 = a1 + _choice2.GetPrice0();
+ UInt32 b1 = a1 + _choice2.GetPrice1();
+ UInt32 i = 0;
+ for (i = 0; i < Base.kNumLowLenSymbols; i++)
+ {
+ if (i >= numSymbols)
+ return;
+ prices[st + i] = a0 + _lowCoder[posState].GetPrice(i);
+ }
+ for (; i < Base.kNumLowLenSymbols + Base.kNumMidLenSymbols; i++)
+ {
+ if (i >= numSymbols)
+ return;
+ prices[st + i] = b0 + _midCoder[posState].GetPrice(i - Base.kNumLowLenSymbols);
+ }
+ for (; i < numSymbols; i++)
+ prices[st + i] = b1 + _highCoder.GetPrice(i - Base.kNumLowLenSymbols - Base.kNumMidLenSymbols);
+ }
+ };
+
+ const UInt32 kNumLenSpecSymbols = Base.kNumLowLenSymbols + Base.kNumMidLenSymbols;
+
+ class LenPriceTableEncoder : LenEncoder
+ {
+ UInt32[] _prices = new UInt32[Base.kNumLenSymbols << Base.kNumPosStatesBitsEncodingMax];
+ UInt32 _tableSize;
+ UInt32[] _counters = new UInt32[Base.kNumPosStatesEncodingMax];
+
+ public void SetTableSize(UInt32 tableSize) { _tableSize = tableSize; }
+
+ public UInt32 GetPrice(UInt32 symbol, UInt32 posState)
+ {
+ return _prices[posState * Base.kNumLenSymbols + symbol];
+ }
+
+ void UpdateTable(UInt32 posState)
+ {
+ SetPrices(posState, _tableSize, _prices, posState * Base.kNumLenSymbols);
+ _counters[posState] = _tableSize;
+ }
+
+ public void UpdateTables(UInt32 numPosStates)
+ {
+ for (UInt32 posState = 0; posState < numPosStates; posState++)
+ UpdateTable(posState);
+ }
+
+ public new void Encode(RangeCoder.Encoder rangeEncoder, UInt32 symbol, UInt32 posState)
+ {
+ base.Encode(rangeEncoder, symbol, posState);
+ if (--_counters[posState] == 0)
+ UpdateTable(posState);
+ }
+ }
+
+ const UInt32 kNumOpts = 1 << 12;
+ class Optimal
+ {
+ public Base.State State;
+
+ public bool Prev1IsChar;
+ public bool Prev2;
+
+ public UInt32 PosPrev2;
+ public UInt32 BackPrev2;
+
+ public UInt32 Price;
+ public UInt32 PosPrev;
+ public UInt32 BackPrev;
+
+ public UInt32 Backs0;
+ public UInt32 Backs1;
+ public UInt32 Backs2;
+ public UInt32 Backs3;
+
+ public void MakeAsChar() { BackPrev = 0xFFFFFFFF; Prev1IsChar = false; }
+ public void MakeAsShortRep() { BackPrev = 0; ; Prev1IsChar = false; }
+ public bool IsShortRep() { return (BackPrev == 0); }
+ };
+ Optimal[] _optimum = new Optimal[kNumOpts];
+ LZ.IMatchFinder _matchFinder = null;
+ RangeCoder.Encoder _rangeEncoder = new RangeCoder.Encoder();
+
+ RangeCoder.BitEncoder[] _isMatch = new RangeCoder.BitEncoder[Base.kNumStates << Base.kNumPosStatesBitsMax];
+ RangeCoder.BitEncoder[] _isRep = new RangeCoder.BitEncoder[Base.kNumStates];
+ RangeCoder.BitEncoder[] _isRepG0 = new RangeCoder.BitEncoder[Base.kNumStates];
+ RangeCoder.BitEncoder[] _isRepG1 = new RangeCoder.BitEncoder[Base.kNumStates];
+ RangeCoder.BitEncoder[] _isRepG2 = new RangeCoder.BitEncoder[Base.kNumStates];
+ RangeCoder.BitEncoder[] _isRep0Long = new RangeCoder.BitEncoder[Base.kNumStates << Base.kNumPosStatesBitsMax];
+
+ RangeCoder.BitTreeEncoder[] _posSlotEncoder = new RangeCoder.BitTreeEncoder[Base.kNumLenToPosStates];
+
+ RangeCoder.BitEncoder[] _posEncoders = new RangeCoder.BitEncoder[Base.kNumFullDistances - Base.kEndPosModelIndex];
+ RangeCoder.BitTreeEncoder _posAlignEncoder = new RangeCoder.BitTreeEncoder(Base.kNumAlignBits);
+
+ LenPriceTableEncoder _lenEncoder = new LenPriceTableEncoder();
+ LenPriceTableEncoder _repMatchLenEncoder = new LenPriceTableEncoder();
+
+ LiteralEncoder _literalEncoder = new LiteralEncoder();
+
+ UInt32[] _matchDistances = new UInt32[Base.kMatchMaxLen * 2 + 2];
+
+ UInt32 _numFastBytes = kNumFastBytesDefault;
+ UInt32 _longestMatchLength;
+ UInt32 _numDistancePairs;
+
+ UInt32 _additionalOffset;
+
+ UInt32 _optimumEndIndex;
+ UInt32 _optimumCurrentIndex;
+
+ bool _longestMatchWasFound;
+
+ UInt32[] _posSlotPrices = new UInt32[1 << (Base.kNumPosSlotBits + Base.kNumLenToPosStatesBits)];
+ UInt32[] _distancesPrices = new UInt32[Base.kNumFullDistances << Base.kNumLenToPosStatesBits];
+ UInt32[] _alignPrices = new UInt32[Base.kAlignTableSize];
+ UInt32 _alignPriceCount;
+
+ UInt32 _distTableSize = (kDefaultDictionaryLogSize * 2);
+
+ int _posStateBits = 2;
+ UInt32 _posStateMask = (4 - 1);
+ int _numLiteralPosStateBits = 0;
+ int _numLiteralContextBits = 3;
+
+ UInt32 _dictionarySize = (1 << kDefaultDictionaryLogSize);
+ UInt32 _dictionarySizePrev = 0xFFFFFFFF;
+ UInt32 _numFastBytesPrev = 0xFFFFFFFF;
+
+ Int64 nowPos64;
+ bool _finished;
+ System.IO.Stream _inStream;
+
+ EMatchFinderType _matchFinderType = EMatchFinderType.BT4;
+ bool _writeEndMark = false;
+
+ bool _needReleaseMFStream;
+
+ void Create()
+ {
+ if (_matchFinder == null)
+ {
+ LZ.BinTree bt = new LZ.BinTree();
+ int numHashBytes = 4;
+ if (_matchFinderType == EMatchFinderType.BT2)
+ numHashBytes = 2;
+ bt.SetType(numHashBytes);
+ _matchFinder = bt;
+ }
+ _literalEncoder.Create(_numLiteralPosStateBits, _numLiteralContextBits);
+
+ if (_dictionarySize == _dictionarySizePrev && _numFastBytesPrev == _numFastBytes)
+ return;
+ _matchFinder.Create(_dictionarySize, kNumOpts, _numFastBytes, Base.kMatchMaxLen + 1);
+ _dictionarySizePrev = _dictionarySize;
+ _numFastBytesPrev = _numFastBytes;
+ }
+
+ public Encoder()
+ {
+ for (int i = 0; i < kNumOpts; i++)
+ _optimum[i] = new Optimal();
+ for (int i = 0; i < Base.kNumLenToPosStates; i++)
+ _posSlotEncoder[i] = new RangeCoder.BitTreeEncoder(Base.kNumPosSlotBits);
+ }
+
+ void SetWriteEndMarkerMode(bool writeEndMarker)
+ {
+ _writeEndMark = writeEndMarker;
+ }
+
+ void Init()
+ {
+ BaseInit();
+ _rangeEncoder.Init();
+
+ uint i;
+ for (i = 0; i < Base.kNumStates; i++)
+ {
+ for (uint j = 0; j <= _posStateMask; j++)
+ {
+ uint complexState = (i << Base.kNumPosStatesBitsMax) + j;
+ _isMatch[complexState].Init();
+ _isRep0Long[complexState].Init();
+ }
+ _isRep[i].Init();
+ _isRepG0[i].Init();
+ _isRepG1[i].Init();
+ _isRepG2[i].Init();
+ }
+ _literalEncoder.Init();
+ for (i = 0; i < Base.kNumLenToPosStates; i++)
+ _posSlotEncoder[i].Init();
+ for (i = 0; i < Base.kNumFullDistances - Base.kEndPosModelIndex; i++)
+ _posEncoders[i].Init();
+
+ _lenEncoder.Init((UInt32)1 << _posStateBits);
+ _repMatchLenEncoder.Init((UInt32)1 << _posStateBits);
+
+ _posAlignEncoder.Init();
+
+ _longestMatchWasFound = false;
+ _optimumEndIndex = 0;
+ _optimumCurrentIndex = 0;
+ _additionalOffset = 0;
+ }
+
+ void ReadMatchDistances(out UInt32 lenRes, out UInt32 numDistancePairs)
+ {
+ lenRes = 0;
+ numDistancePairs = _matchFinder.GetMatches(_matchDistances);
+ if (numDistancePairs > 0)
+ {
+ lenRes = _matchDistances[numDistancePairs - 2];
+ if (lenRes == _numFastBytes)
+ lenRes += _matchFinder.GetMatchLen((int)lenRes - 1, _matchDistances[numDistancePairs - 1],
+ Base.kMatchMaxLen - lenRes);
+ }
+ _additionalOffset++;
+ }
+
+
+ void MovePos(UInt32 num)
+ {
+ if (num > 0)
+ {
+ _matchFinder.Skip(num);
+ _additionalOffset += num;
+ }
+ }
+
+ UInt32 GetRepLen1Price(Base.State state, UInt32 posState)
+ {
+ return _isRepG0[state.Index].GetPrice0() +
+ _isRep0Long[(state.Index << Base.kNumPosStatesBitsMax) + posState].GetPrice0();
+ }
+
+ UInt32 GetPureRepPrice(UInt32 repIndex, Base.State state, UInt32 posState)
+ {
+ UInt32 price;
+ if (repIndex == 0)
+ {
+ price = _isRepG0[state.Index].GetPrice0();
+ price += _isRep0Long[(state.Index << Base.kNumPosStatesBitsMax) + posState].GetPrice1();
+ }
+ else
+ {
+ price = _isRepG0[state.Index].GetPrice1();
+ if (repIndex == 1)
+ price += _isRepG1[state.Index].GetPrice0();
+ else
+ {
+ price += _isRepG1[state.Index].GetPrice1();
+ price += _isRepG2[state.Index].GetPrice(repIndex - 2);
+ }
+ }
+ return price;
+ }
+
+ UInt32 GetRepPrice(UInt32 repIndex, UInt32 len, Base.State state, UInt32 posState)
+ {
+ UInt32 price = _repMatchLenEncoder.GetPrice(len - Base.kMatchMinLen, posState);
+ return price + GetPureRepPrice(repIndex, state, posState);
+ }
+
+ UInt32 GetPosLenPrice(UInt32 pos, UInt32 len, UInt32 posState)
+ {
+ UInt32 price;
+ UInt32 lenToPosState = Base.GetLenToPosState(len);
+ if (pos < Base.kNumFullDistances)
+ price = _distancesPrices[(lenToPosState * Base.kNumFullDistances) + pos];
+ else
+ price = _posSlotPrices[(lenToPosState << Base.kNumPosSlotBits) + GetPosSlot2(pos)] +
+ _alignPrices[pos & Base.kAlignMask];
+ return price + _lenEncoder.GetPrice(len - Base.kMatchMinLen, posState);
+ }
+
+ UInt32 Backward(out UInt32 backRes, UInt32 cur)
+ {
+ _optimumEndIndex = cur;
+ UInt32 posMem = _optimum[cur].PosPrev;
+ UInt32 backMem = _optimum[cur].BackPrev;
+ do
+ {
+ if (_optimum[cur].Prev1IsChar)
+ {
+ _optimum[posMem].MakeAsChar();
+ _optimum[posMem].PosPrev = posMem - 1;
+ if (_optimum[cur].Prev2)
+ {
+ _optimum[posMem - 1].Prev1IsChar = false;
+ _optimum[posMem - 1].PosPrev = _optimum[cur].PosPrev2;
+ _optimum[posMem - 1].BackPrev = _optimum[cur].BackPrev2;
+ }
+ }
+ UInt32 posPrev = posMem;
+ UInt32 backCur = backMem;
+
+ backMem = _optimum[posPrev].BackPrev;
+ posMem = _optimum[posPrev].PosPrev;
+
+ _optimum[posPrev].BackPrev = backCur;
+ _optimum[posPrev].PosPrev = cur;
+ cur = posPrev;
+ }
+ while (cur > 0);
+ backRes = _optimum[0].BackPrev;
+ _optimumCurrentIndex = _optimum[0].PosPrev;
+ return _optimumCurrentIndex;
+ }
+
+ UInt32[] reps = new UInt32[Base.kNumRepDistances];
+ UInt32[] repLens = new UInt32[Base.kNumRepDistances];
+
+
+ UInt32 GetOptimum(UInt32 position, out UInt32 backRes)
+ {
+ if (_optimumEndIndex != _optimumCurrentIndex)
+ {
+ UInt32 lenRes = _optimum[_optimumCurrentIndex].PosPrev - _optimumCurrentIndex;
+ backRes = _optimum[_optimumCurrentIndex].BackPrev;
+ _optimumCurrentIndex = _optimum[_optimumCurrentIndex].PosPrev;
+ return lenRes;
+ }
+ _optimumCurrentIndex = _optimumEndIndex = 0;
+
+ UInt32 lenMain, numDistancePairs;
+ if (!_longestMatchWasFound)
+ {
+ ReadMatchDistances(out lenMain, out numDistancePairs);
+ }
+ else
+ {
+ lenMain = _longestMatchLength;
+ numDistancePairs = _numDistancePairs;
+ _longestMatchWasFound = false;
+ }
+
+ UInt32 numAvailableBytes = _matchFinder.GetNumAvailableBytes() + 1;
+ if (numAvailableBytes < 2)
+ {
+ backRes = 0xFFFFFFFF;
+ return 1;
+ }
+ if (numAvailableBytes > Base.kMatchMaxLen)
+ numAvailableBytes = Base.kMatchMaxLen;
+
+ UInt32 repMaxIndex = 0;
+ UInt32 i;
+ for (i = 0; i < Base.kNumRepDistances; i++)
+ {
+ reps[i] = _repDistances[i];
+ repLens[i] = _matchFinder.GetMatchLen(0 - 1, reps[i], Base.kMatchMaxLen);
+ if (repLens[i] > repLens[repMaxIndex])
+ repMaxIndex = i;
+ }
+ if (repLens[repMaxIndex] >= _numFastBytes)
+ {
+ backRes = repMaxIndex;
+ UInt32 lenRes = repLens[repMaxIndex];
+ MovePos(lenRes - 1);
+ return lenRes;
+ }
+
+ if (lenMain >= _numFastBytes)
+ {
+ backRes = _matchDistances[numDistancePairs - 1] + Base.kNumRepDistances;
+ MovePos(lenMain - 1);
+ return lenMain;
+ }
+
+ Byte currentByte = _matchFinder.GetIndexByte(0 - 1);
+ Byte matchByte = _matchFinder.GetIndexByte((Int32)(0 - _repDistances[0] - 1 - 1));
+
+ if (lenMain < 2 && currentByte != matchByte && repLens[repMaxIndex] < 2)
+ {
+ backRes = (UInt32)0xFFFFFFFF;
+ return 1;
+ }
+
+ _optimum[0].State = _state;
+
+ UInt32 posState = (position & _posStateMask);
+
+ _optimum[1].Price = _isMatch[(_state.Index << Base.kNumPosStatesBitsMax) + posState].GetPrice0() +
+ _literalEncoder.GetSubCoder(position, _previousByte).GetPrice(!_state.IsCharState(), matchByte, currentByte);
+ _optimum[1].MakeAsChar();
+
+ UInt32 matchPrice = _isMatch[(_state.Index << Base.kNumPosStatesBitsMax) + posState].GetPrice1();
+ UInt32 repMatchPrice = matchPrice + _isRep[_state.Index].GetPrice1();
+
+ if (matchByte == currentByte)
+ {
+ UInt32 shortRepPrice = repMatchPrice + GetRepLen1Price(_state, posState);
+ if (shortRepPrice < _optimum[1].Price)
+ {
+ _optimum[1].Price = shortRepPrice;
+ _optimum[1].MakeAsShortRep();
+ }
+ }
+
+ UInt32 lenEnd = ((lenMain >= repLens[repMaxIndex]) ? lenMain : repLens[repMaxIndex]);
+
+ if(lenEnd < 2)
+ {
+ backRes = _optimum[1].BackPrev;
+ return 1;
+ }
+
+ _optimum[1].PosPrev = 0;
+
+ _optimum[0].Backs0 = reps[0];
+ _optimum[0].Backs1 = reps[1];
+ _optimum[0].Backs2 = reps[2];
+ _optimum[0].Backs3 = reps[3];
+
+ UInt32 len = lenEnd;
+ do
+ _optimum[len--].Price = kIfinityPrice;
+ while (len >= 2);
+
+ for (i = 0; i < Base.kNumRepDistances; i++)
+ {
+ UInt32 repLen = repLens[i];
+ if (repLen < 2)
+ continue;
+ UInt32 price = repMatchPrice + GetPureRepPrice(i, _state, posState);
+ do
+ {
+ UInt32 curAndLenPrice = price + _repMatchLenEncoder.GetPrice(repLen - 2, posState);
+ Optimal optimum = _optimum[repLen];
+ if (curAndLenPrice < optimum.Price)
+ {
+ optimum.Price = curAndLenPrice;
+ optimum.PosPrev = 0;
+ optimum.BackPrev = i;
+ optimum.Prev1IsChar = false;
+ }
+ }
+ while (--repLen >= 2);
+ }
+
+ UInt32 normalMatchPrice = matchPrice + _isRep[_state.Index].GetPrice0();
+
+ len = ((repLens[0] >= 2) ? repLens[0] + 1 : 2);
+ if (len <= lenMain)
+ {
+ UInt32 offs = 0;
+ while (len > _matchDistances[offs])
+ offs += 2;
+ for (; ; len++)
+ {
+ UInt32 distance = _matchDistances[offs + 1];
+ UInt32 curAndLenPrice = normalMatchPrice + GetPosLenPrice(distance, len, posState);
+ Optimal optimum = _optimum[len];
+ if (curAndLenPrice < optimum.Price)
+ {
+ optimum.Price = curAndLenPrice;
+ optimum.PosPrev = 0;
+ optimum.BackPrev = distance + Base.kNumRepDistances;
+ optimum.Prev1IsChar = false;
+ }
+ if (len == _matchDistances[offs])
+ {
+ offs += 2;
+ if (offs == numDistancePairs)
+ break;
+ }
+ }
+ }
+
+ UInt32 cur = 0;
+
+ while (true)
+ {
+ cur++;
+ if (cur == lenEnd)
+ return Backward(out backRes, cur);
+ UInt32 newLen;
+ ReadMatchDistances(out newLen, out numDistancePairs);
+ if (newLen >= _numFastBytes)
+ {
+ _numDistancePairs = numDistancePairs;
+ _longestMatchLength = newLen;
+ _longestMatchWasFound = true;
+ return Backward(out backRes, cur);
+ }
+ position++;
+ UInt32 posPrev = _optimum[cur].PosPrev;
+ Base.State state;
+ if (_optimum[cur].Prev1IsChar)
+ {
+ posPrev--;
+ if (_optimum[cur].Prev2)
+ {
+ state = _optimum[_optimum[cur].PosPrev2].State;
+ if (_optimum[cur].BackPrev2 < Base.kNumRepDistances)
+ state.UpdateRep();
+ else
+ state.UpdateMatch();
+ }
+ else
+ state = _optimum[posPrev].State;
+ state.UpdateChar();
+ }
+ else
+ state = _optimum[posPrev].State;
+ if (posPrev == cur - 1)
+ {
+ if (_optimum[cur].IsShortRep())
+ state.UpdateShortRep();
+ else
+ state.UpdateChar();
+ }
+ else
+ {
+ UInt32 pos;
+ if (_optimum[cur].Prev1IsChar && _optimum[cur].Prev2)
+ {
+ posPrev = _optimum[cur].PosPrev2;
+ pos = _optimum[cur].BackPrev2;
+ state.UpdateRep();
+ }
+ else
+ {
+ pos = _optimum[cur].BackPrev;
+ if (pos < Base.kNumRepDistances)
+ state.UpdateRep();
+ else
+ state.UpdateMatch();
+ }
+ Optimal opt = _optimum[posPrev];
+ if (pos < Base.kNumRepDistances)
+ {
+ if (pos == 0)
+ {
+ reps[0] = opt.Backs0;
+ reps[1] = opt.Backs1;
+ reps[2] = opt.Backs2;
+ reps[3] = opt.Backs3;
+ }
+ else if (pos == 1)
+ {
+ reps[0] = opt.Backs1;
+ reps[1] = opt.Backs0;
+ reps[2] = opt.Backs2;
+ reps[3] = opt.Backs3;
+ }
+ else if (pos == 2)
+ {
+ reps[0] = opt.Backs2;
+ reps[1] = opt.Backs0;
+ reps[2] = opt.Backs1;
+ reps[3] = opt.Backs3;
+ }
+ else
+ {
+ reps[0] = opt.Backs3;
+ reps[1] = opt.Backs0;
+ reps[2] = opt.Backs1;
+ reps[3] = opt.Backs2;
+ }
+ }
+ else
+ {
+ reps[0] = (pos - Base.kNumRepDistances);
+ reps[1] = opt.Backs0;
+ reps[2] = opt.Backs1;
+ reps[3] = opt.Backs2;
+ }
+ }
+ _optimum[cur].State = state;
+ _optimum[cur].Backs0 = reps[0];
+ _optimum[cur].Backs1 = reps[1];
+ _optimum[cur].Backs2 = reps[2];
+ _optimum[cur].Backs3 = reps[3];
+ UInt32 curPrice = _optimum[cur].Price;
+
+ currentByte = _matchFinder.GetIndexByte(0 - 1);
+ matchByte = _matchFinder.GetIndexByte((Int32)(0 - reps[0] - 1 - 1));
+
+ posState = (position & _posStateMask);
+
+ UInt32 curAnd1Price = curPrice +
+ _isMatch[(state.Index << Base.kNumPosStatesBitsMax) + posState].GetPrice0() +
+ _literalEncoder.GetSubCoder(position, _matchFinder.GetIndexByte(0 - 2)).
+ GetPrice(!state.IsCharState(), matchByte, currentByte);
+
+ Optimal nextOptimum = _optimum[cur + 1];
+
+ bool nextIsChar = false;
+ if (curAnd1Price < nextOptimum.Price)
+ {
+ nextOptimum.Price = curAnd1Price;
+ nextOptimum.PosPrev = cur;
+ nextOptimum.MakeAsChar();
+ nextIsChar = true;
+ }
+
+ matchPrice = curPrice + _isMatch[(state.Index << Base.kNumPosStatesBitsMax) + posState].GetPrice1();
+ repMatchPrice = matchPrice + _isRep[state.Index].GetPrice1();
+
+ if (matchByte == currentByte &&
+ !(nextOptimum.PosPrev < cur && nextOptimum.BackPrev == 0))
+ {
+ UInt32 shortRepPrice = repMatchPrice + GetRepLen1Price(state, posState);
+ if (shortRepPrice <= nextOptimum.Price)
+ {
+ nextOptimum.Price = shortRepPrice;
+ nextOptimum.PosPrev = cur;
+ nextOptimum.MakeAsShortRep();
+ nextIsChar = true;
+ }
+ }
+
+ UInt32 numAvailableBytesFull = _matchFinder.GetNumAvailableBytes() + 1;
+ numAvailableBytesFull = Math.Min(kNumOpts - 1 - cur, numAvailableBytesFull);
+ numAvailableBytes = numAvailableBytesFull;
+
+ if (numAvailableBytes < 2)
+ continue;
+ if (numAvailableBytes > _numFastBytes)
+ numAvailableBytes = _numFastBytes;
+ if (!nextIsChar && matchByte != currentByte)
+ {
+ // try Literal + rep0
+ UInt32 t = Math.Min(numAvailableBytesFull - 1, _numFastBytes);
+ UInt32 lenTest2 = _matchFinder.GetMatchLen(0, reps[0], t);
+ if (lenTest2 >= 2)
+ {
+ Base.State state2 = state;
+ state2.UpdateChar();
+ UInt32 posStateNext = (position + 1) & _posStateMask;
+ UInt32 nextRepMatchPrice = curAnd1Price +
+ _isMatch[(state2.Index << Base.kNumPosStatesBitsMax) + posStateNext].GetPrice1() +
+ _isRep[state2.Index].GetPrice1();
+ {
+ UInt32 offset = cur + 1 + lenTest2;
+ while (lenEnd < offset)
+ _optimum[++lenEnd].Price = kIfinityPrice;
+ UInt32 curAndLenPrice = nextRepMatchPrice + GetRepPrice(
+ 0, lenTest2, state2, posStateNext);
+ Optimal optimum = _optimum[offset];
+ if (curAndLenPrice < optimum.Price)
+ {
+ optimum.Price = curAndLenPrice;
+ optimum.PosPrev = cur + 1;
+ optimum.BackPrev = 0;
+ optimum.Prev1IsChar = true;
+ optimum.Prev2 = false;
+ }
+ }
+ }
+ }
+
+ UInt32 startLen = 2; // speed optimization
+
+ for (UInt32 repIndex = 0; repIndex < Base.kNumRepDistances; repIndex++)
+ {
+ UInt32 lenTest = _matchFinder.GetMatchLen(0 - 1, reps[repIndex], numAvailableBytes);
+ if (lenTest < 2)
+ continue;
+ UInt32 lenTestTemp = lenTest;
+ do
+ {
+ while (lenEnd < cur + lenTest)
+ _optimum[++lenEnd].Price = kIfinityPrice;
+ UInt32 curAndLenPrice = repMatchPrice + GetRepPrice(repIndex, lenTest, state, posState);
+ Optimal optimum = _optimum[cur + lenTest];
+ if (curAndLenPrice < optimum.Price)
+ {
+ optimum.Price = curAndLenPrice;
+ optimum.PosPrev = cur;
+ optimum.BackPrev = repIndex;
+ optimum.Prev1IsChar = false;
+ }
+ }
+ while(--lenTest >= 2);
+ lenTest = lenTestTemp;
+
+ if (repIndex == 0)
+ startLen = lenTest + 1;
+
+ // if (_maxMode)
+ if (lenTest < numAvailableBytesFull)
+ {
+ UInt32 t = Math.Min(numAvailableBytesFull - 1 - lenTest, _numFastBytes);
+ UInt32 lenTest2 = _matchFinder.GetMatchLen((Int32)lenTest, reps[repIndex], t);
+ if (lenTest2 >= 2)
+ {
+ Base.State state2 = state;
+ state2.UpdateRep();
+ UInt32 posStateNext = (position + lenTest) & _posStateMask;
+ UInt32 curAndLenCharPrice =
+ repMatchPrice + GetRepPrice(repIndex, lenTest, state, posState) +
+ _isMatch[(state2.Index << Base.kNumPosStatesBitsMax) + posStateNext].GetPrice0() +
+ _literalEncoder.GetSubCoder(position + lenTest,
+ _matchFinder.GetIndexByte((Int32)lenTest - 1 - 1)).GetPrice(true,
+ _matchFinder.GetIndexByte((Int32)((Int32)lenTest - 1 - (Int32)(reps[repIndex] + 1))),
+ _matchFinder.GetIndexByte((Int32)lenTest - 1));
+ state2.UpdateChar();
+ posStateNext = (position + lenTest + 1) & _posStateMask;
+ UInt32 nextMatchPrice = curAndLenCharPrice + _isMatch[(state2.Index << Base.kNumPosStatesBitsMax) + posStateNext].GetPrice1();
+ UInt32 nextRepMatchPrice = nextMatchPrice + _isRep[state2.Index].GetPrice1();
+
+ // for(; lenTest2 >= 2; lenTest2--)
+ {
+ UInt32 offset = lenTest + 1 + lenTest2;
+ while(lenEnd < cur + offset)
+ _optimum[++lenEnd].Price = kIfinityPrice;
+ UInt32 curAndLenPrice = nextRepMatchPrice + GetRepPrice(0, lenTest2, state2, posStateNext);
+ Optimal optimum = _optimum[cur + offset];
+ if (curAndLenPrice < optimum.Price)
+ {
+ optimum.Price = curAndLenPrice;
+ optimum.PosPrev = cur + lenTest + 1;
+ optimum.BackPrev = 0;
+ optimum.Prev1IsChar = true;
+ optimum.Prev2 = true;
+ optimum.PosPrev2 = cur;
+ optimum.BackPrev2 = repIndex;
+ }
+ }
+ }
+ }
+ }
+
+ if (newLen > numAvailableBytes)
+ {
+ newLen = numAvailableBytes;
+ for (numDistancePairs = 0; newLen > _matchDistances[numDistancePairs]; numDistancePairs += 2) ;
+ _matchDistances[numDistancePairs] = newLen;
+ numDistancePairs += 2;
+ }
+ if (newLen >= startLen)
+ {
+ normalMatchPrice = matchPrice + _isRep[state.Index].GetPrice0();
+ while (lenEnd < cur + newLen)
+ _optimum[++lenEnd].Price = kIfinityPrice;
+
+ UInt32 offs = 0;
+ while (startLen > _matchDistances[offs])
+ offs += 2;
+
+ for (UInt32 lenTest = startLen; ; lenTest++)
+ {
+ UInt32 curBack = _matchDistances[offs + 1];
+ UInt32 curAndLenPrice = normalMatchPrice + GetPosLenPrice(curBack, lenTest, posState);
+ Optimal optimum = _optimum[cur + lenTest];
+ if (curAndLenPrice < optimum.Price)
+ {
+ optimum.Price = curAndLenPrice;
+ optimum.PosPrev = cur;
+ optimum.BackPrev = curBack + Base.kNumRepDistances;
+ optimum.Prev1IsChar = false;
+ }
+
+ if (lenTest == _matchDistances[offs])
+ {
+ if (lenTest < numAvailableBytesFull)
+ {
+ UInt32 t = Math.Min(numAvailableBytesFull - 1 - lenTest, _numFastBytes);
+ UInt32 lenTest2 = _matchFinder.GetMatchLen((Int32)lenTest, curBack, t);
+ if (lenTest2 >= 2)
+ {
+ Base.State state2 = state;
+ state2.UpdateMatch();
+ UInt32 posStateNext = (position + lenTest) & _posStateMask;
+ UInt32 curAndLenCharPrice = curAndLenPrice +
+ _isMatch[(state2.Index << Base.kNumPosStatesBitsMax) + posStateNext].GetPrice0() +
+ _literalEncoder.GetSubCoder(position + lenTest,
+ _matchFinder.GetIndexByte((Int32)lenTest - 1 - 1)).
+ GetPrice(true,
+ _matchFinder.GetIndexByte((Int32)lenTest - (Int32)(curBack + 1) - 1),
+ _matchFinder.GetIndexByte((Int32)lenTest - 1));
+ state2.UpdateChar();
+ posStateNext = (position + lenTest + 1) & _posStateMask;
+ UInt32 nextMatchPrice = curAndLenCharPrice + _isMatch[(state2.Index << Base.kNumPosStatesBitsMax) + posStateNext].GetPrice1();
+ UInt32 nextRepMatchPrice = nextMatchPrice + _isRep[state2.Index].GetPrice1();
+
+ UInt32 offset = lenTest + 1 + lenTest2;
+ while (lenEnd < cur + offset)
+ _optimum[++lenEnd].Price = kIfinityPrice;
+ curAndLenPrice = nextRepMatchPrice + GetRepPrice(0, lenTest2, state2, posStateNext);
+ optimum = _optimum[cur + offset];
+ if (curAndLenPrice < optimum.Price)
+ {
+ optimum.Price = curAndLenPrice;
+ optimum.PosPrev = cur + lenTest + 1;
+ optimum.BackPrev = 0;
+ optimum.Prev1IsChar = true;
+ optimum.Prev2 = true;
+ optimum.PosPrev2 = cur;
+ optimum.BackPrev2 = curBack + Base.kNumRepDistances;
+ }
+ }
+ }
+ offs += 2;
+ if (offs == numDistancePairs)
+ break;
+ }
+ }
+ }
+ }
+ }
+
+ bool ChangePair(UInt32 smallDist, UInt32 bigDist)
+ {
+ const int kDif = 7;
+ return (smallDist < ((UInt32)(1) << (32 - kDif)) && bigDist >= (smallDist << kDif));
+ }
+
+ void WriteEndMarker(UInt32 posState)
+ {
+ if (!_writeEndMark)
+ return;
+
+ _isMatch[(_state.Index << Base.kNumPosStatesBitsMax) + posState].Encode(_rangeEncoder, 1);
+ _isRep[_state.Index].Encode(_rangeEncoder, 0);
+ _state.UpdateMatch();
+ UInt32 len = Base.kMatchMinLen;
+ _lenEncoder.Encode(_rangeEncoder, len - Base.kMatchMinLen, posState);
+ UInt32 posSlot = (1 << Base.kNumPosSlotBits) - 1;
+ UInt32 lenToPosState = Base.GetLenToPosState(len);
+ _posSlotEncoder[lenToPosState].Encode(_rangeEncoder, posSlot);
+ int footerBits = 30;
+ UInt32 posReduced = (((UInt32)1) << footerBits) - 1;
+ _rangeEncoder.EncodeDirectBits(posReduced >> Base.kNumAlignBits, footerBits - Base.kNumAlignBits);
+ _posAlignEncoder.ReverseEncode(_rangeEncoder, posReduced & Base.kAlignMask);
+ }
+
+ void Flush(UInt32 nowPos)
+ {
+ ReleaseMFStream();
+ WriteEndMarker(nowPos & _posStateMask);
+ _rangeEncoder.FlushData();
+ _rangeEncoder.FlushStream();
+ }
+
+ public void CodeOneBlock(out Int64 inSize, out Int64 outSize, out bool finished)
+ {
+ inSize = 0;
+ outSize = 0;
+ finished = true;
+
+ if (_inStream != null)
+ {
+ _matchFinder.SetStream(_inStream);
+ _matchFinder.Init();
+ _needReleaseMFStream = true;
+ _inStream = null;
+ if (_trainSize > 0)
+ _matchFinder.Skip(_trainSize);
+ }
+
+ if (_finished)
+ return;
+ _finished = true;
+
+
+ Int64 progressPosValuePrev = nowPos64;
+ if (nowPos64 == 0)
+ {
+ if (_matchFinder.GetNumAvailableBytes() == 0)
+ {
+ Flush((UInt32)nowPos64);
+ return;
+ }
+ UInt32 len, numDistancePairs; // it's not used
+ ReadMatchDistances(out len, out numDistancePairs);
+ UInt32 posState = (UInt32)(nowPos64) & _posStateMask;
+ _isMatch[(_state.Index << Base.kNumPosStatesBitsMax) + posState].Encode(_rangeEncoder, 0);
+ _state.UpdateChar();
+ Byte curByte = _matchFinder.GetIndexByte((Int32)(0 - _additionalOffset));
+ _literalEncoder.GetSubCoder((UInt32)(nowPos64), _previousByte).Encode(_rangeEncoder, curByte);
+ _previousByte = curByte;
+ _additionalOffset--;
+ nowPos64++;
+ }
+ if (_matchFinder.GetNumAvailableBytes() == 0)
+ {
+ Flush((UInt32)nowPos64);
+ return;
+ }
+ while (true)
+ {
+ UInt32 pos;
+ UInt32 len = GetOptimum((UInt32)nowPos64, out pos);
+
+ UInt32 posState = ((UInt32)nowPos64) & _posStateMask;
+ UInt32 complexState = (_state.Index << Base.kNumPosStatesBitsMax) + posState;
+ if (len == 1 && pos == 0xFFFFFFFF)
+ {
+ _isMatch[complexState].Encode(_rangeEncoder, 0);
+ Byte curByte = _matchFinder.GetIndexByte((Int32)(0 - _additionalOffset));
+ LiteralEncoder.Encoder2 subCoder = _literalEncoder.GetSubCoder((UInt32)nowPos64, _previousByte);
+ if (!_state.IsCharState())
+ {
+ Byte matchByte = _matchFinder.GetIndexByte((Int32)(0 - _repDistances[0] - 1 - _additionalOffset));
+ subCoder.EncodeMatched(_rangeEncoder, matchByte, curByte);
+ }
+ else
+ subCoder.Encode(_rangeEncoder, curByte);
+ _previousByte = curByte;
+ _state.UpdateChar();
+ }
+ else
+ {
+ _isMatch[complexState].Encode(_rangeEncoder, 1);
+ if (pos < Base.kNumRepDistances)
+ {
+ _isRep[_state.Index].Encode(_rangeEncoder, 1);
+ if (pos == 0)
+ {
+ _isRepG0[_state.Index].Encode(_rangeEncoder, 0);
+ if (len == 1)
+ _isRep0Long[complexState].Encode(_rangeEncoder, 0);
+ else
+ _isRep0Long[complexState].Encode(_rangeEncoder, 1);
+ }
+ else
+ {
+ _isRepG0[_state.Index].Encode(_rangeEncoder, 1);
+ if (pos == 1)
+ _isRepG1[_state.Index].Encode(_rangeEncoder, 0);
+ else
+ {
+ _isRepG1[_state.Index].Encode(_rangeEncoder, 1);
+ _isRepG2[_state.Index].Encode(_rangeEncoder, pos - 2);
+ }
+ }
+ if (len == 1)
+ _state.UpdateShortRep();
+ else
+ {
+ _repMatchLenEncoder.Encode(_rangeEncoder, len - Base.kMatchMinLen, posState);
+ _state.UpdateRep();
+ }
+ UInt32 distance = _repDistances[pos];
+ if (pos != 0)
+ {
+ for (UInt32 i = pos; i >= 1; i--)
+ _repDistances[i] = _repDistances[i - 1];
+ _repDistances[0] = distance;
+ }
+ }
+ else
+ {
+ _isRep[_state.Index].Encode(_rangeEncoder, 0);
+ _state.UpdateMatch();
+ _lenEncoder.Encode(_rangeEncoder, len - Base.kMatchMinLen, posState);
+ pos -= Base.kNumRepDistances;
+ UInt32 posSlot = GetPosSlot(pos);
+ UInt32 lenToPosState = Base.GetLenToPosState(len);
+ _posSlotEncoder[lenToPosState].Encode(_rangeEncoder, posSlot);
+
+ if (posSlot >= Base.kStartPosModelIndex)
+ {
+ int footerBits = (int)((posSlot >> 1) - 1);
+ UInt32 baseVal = ((2 | (posSlot & 1)) << footerBits);
+ UInt32 posReduced = pos - baseVal;
+
+ if (posSlot < Base.kEndPosModelIndex)
+ RangeCoder.BitTreeEncoder.ReverseEncode(_posEncoders,
+ baseVal - posSlot - 1, _rangeEncoder, footerBits, posReduced);
+ else
+ {
+ _rangeEncoder.EncodeDirectBits(posReduced >> Base.kNumAlignBits, footerBits - Base.kNumAlignBits);
+ _posAlignEncoder.ReverseEncode(_rangeEncoder, posReduced & Base.kAlignMask);
+ _alignPriceCount++;
+ }
+ }
+ UInt32 distance = pos;
+ for (UInt32 i = Base.kNumRepDistances - 1; i >= 1; i--)
+ _repDistances[i] = _repDistances[i - 1];
+ _repDistances[0] = distance;
+ _matchPriceCount++;
+ }
+ _previousByte = _matchFinder.GetIndexByte((Int32)(len - 1 - _additionalOffset));
+ }
+ _additionalOffset -= len;
+ nowPos64 += len;
+ if (_additionalOffset == 0)
+ {
+ // if (!_fastMode)
+ if (_matchPriceCount >= (1 << 7))
+ FillDistancesPrices();
+ if (_alignPriceCount >= Base.kAlignTableSize)
+ FillAlignPrices();
+ inSize = nowPos64;
+ outSize = _rangeEncoder.GetProcessedSizeAdd();
+ if (_matchFinder.GetNumAvailableBytes() == 0)
+ {
+ Flush((UInt32)nowPos64);
+ return;
+ }
+
+ if (nowPos64 - progressPosValuePrev >= (1 << 12))
+ {
+ _finished = false;
+ finished = false;
+ return;
+ }
+ }
+ }
+ }
+
+ void ReleaseMFStream()
+ {
+ if (_matchFinder != null && _needReleaseMFStream)
+ {
+ _matchFinder.ReleaseStream();
+ _needReleaseMFStream = false;
+ }
+ }
+
+ void SetOutStream(System.IO.Stream outStream) { _rangeEncoder.SetStream(outStream); }
+ void ReleaseOutStream() { _rangeEncoder.ReleaseStream(); }
+
+ void ReleaseStreams()
+ {
+ ReleaseMFStream();
+ ReleaseOutStream();
+ }
+
+ void SetStreams(System.IO.Stream inStream, System.IO.Stream outStream,
+ Int64 inSize, Int64 outSize)
+ {
+ _inStream = inStream;
+ _finished = false;
+ Create();
+ SetOutStream(outStream);
+ Init();
+
+ // if (!_fastMode)
+ {
+ FillDistancesPrices();
+ FillAlignPrices();
+ }
+
+ _lenEncoder.SetTableSize(_numFastBytes + 1 - Base.kMatchMinLen);
+ _lenEncoder.UpdateTables((UInt32)1 << _posStateBits);
+ _repMatchLenEncoder.SetTableSize(_numFastBytes + 1 - Base.kMatchMinLen);
+ _repMatchLenEncoder.UpdateTables((UInt32)1 << _posStateBits);
+
+ nowPos64 = 0;
+ }
+
+
+ public void Code(System.IO.Stream inStream, System.IO.Stream outStream,
+ Int64 inSize, Int64 outSize, ICodeProgress progress)
+ {
+ _needReleaseMFStream = false;
+ try
+ {
+ SetStreams(inStream, outStream, inSize, outSize);
+ while (true)
+ {
+ Int64 processedInSize;
+ Int64 processedOutSize;
+ bool finished;
+ CodeOneBlock(out processedInSize, out processedOutSize, out finished);
+ if (finished)
+ return;
+ if (progress != null)
+ {
+ progress.SetProgress(processedInSize, processedOutSize);
+ }
+ }
+ }
+ finally
+ {
+ ReleaseStreams();
+ }
+ }
+
+ const int kPropSize = 5;
+ Byte[] properties = new Byte[kPropSize];
+
+ public void WriteCoderProperties(System.IO.Stream outStream)
+ {
+ properties[0] = (Byte)((_posStateBits * 5 + _numLiteralPosStateBits) * 9 + _numLiteralContextBits);
+ for (int i = 0; i < 4; i++)
+ properties[1 + i] = (Byte)((_dictionarySize >> (8 * i)) & 0xFF);
+ outStream.Write(properties, 0, kPropSize);
+ }
+
+ UInt32[] tempPrices = new UInt32[Base.kNumFullDistances];
+ UInt32 _matchPriceCount;
+
+ void FillDistancesPrices()
+ {
+ for (UInt32 i = Base.kStartPosModelIndex; i < Base.kNumFullDistances; i++)
+ {
+ UInt32 posSlot = GetPosSlot(i);
+ int footerBits = (int)((posSlot >> 1) - 1);
+ UInt32 baseVal = ((2 | (posSlot & 1)) << footerBits);
+ tempPrices[i] = BitTreeEncoder.ReverseGetPrice(_posEncoders,
+ baseVal - posSlot - 1, footerBits, i - baseVal);
+ }
+
+ for (UInt32 lenToPosState = 0; lenToPosState < Base.kNumLenToPosStates; lenToPosState++)
+ {
+ UInt32 posSlot;
+ RangeCoder.BitTreeEncoder encoder = _posSlotEncoder[lenToPosState];
+
+ UInt32 st = (lenToPosState << Base.kNumPosSlotBits);
+ for (posSlot = 0; posSlot < _distTableSize; posSlot++)
+ _posSlotPrices[st + posSlot] = encoder.GetPrice(posSlot);
+ for (posSlot = Base.kEndPosModelIndex; posSlot < _distTableSize; posSlot++)
+ _posSlotPrices[st + posSlot] += ((((posSlot >> 1) - 1) - Base.kNumAlignBits) << RangeCoder.BitEncoder.kNumBitPriceShiftBits);
+
+ UInt32 st2 = lenToPosState * Base.kNumFullDistances;
+ UInt32 i;
+ for (i = 0; i < Base.kStartPosModelIndex; i++)
+ _distancesPrices[st2 + i] = _posSlotPrices[st + i];
+ for (; i < Base.kNumFullDistances; i++)
+ _distancesPrices[st2 + i] = _posSlotPrices[st + GetPosSlot(i)] + tempPrices[i];
+ }
+ _matchPriceCount = 0;
+ }
+
+ void FillAlignPrices()
+ {
+ for (UInt32 i = 0; i < Base.kAlignTableSize; i++)
+ _alignPrices[i] = _posAlignEncoder.ReverseGetPrice(i);
+ _alignPriceCount = 0;
+ }
+
+
+ static string[] kMatchFinderIDs =
+ {
+ "BT2",
+ "BT4",
+ };
+
+ static int FindMatchFinder(string s)
+ {
+ for (int m = 0; m < kMatchFinderIDs.Length; m++)
+ if (s == kMatchFinderIDs[m])
+ return m;
+ return -1;
+ }
+
+ public void SetCoderProperties(CoderPropID[] propIDs, object[] properties)
+ {
+ for (UInt32 i = 0; i < properties.Length; i++)
+ {
+ object prop = properties[i];
+ switch (propIDs[i])
+ {
+ case CoderPropID.NumFastBytes:
+ {
+ if (!(prop is Int32))
+ throw new InvalidParamException();
+ Int32 numFastBytes = (Int32)prop;
+ if (numFastBytes < 5 || numFastBytes > Base.kMatchMaxLen)
+ throw new InvalidParamException();
+ _numFastBytes = (UInt32)numFastBytes;
+ break;
+ }
+ case CoderPropID.Algorithm:
+ {
+ /*
+ if (!(prop is Int32))
+ throw new InvalidParamException();
+ Int32 maximize = (Int32)prop;
+ _fastMode = (maximize == 0);
+ _maxMode = (maximize >= 2);
+ */
+ break;
+ }
+ case CoderPropID.MatchFinder:
+ {
+ if (!(prop is String))
+ throw new InvalidParamException();
+ EMatchFinderType matchFinderIndexPrev = _matchFinderType;
+ int m = FindMatchFinder(((string)prop).ToUpper());
+ if (m < 0)
+ throw new InvalidParamException();
+ _matchFinderType = (EMatchFinderType)m;
+ if (_matchFinder != null && matchFinderIndexPrev != _matchFinderType)
+ {
+ _dictionarySizePrev = 0xFFFFFFFF;
+ _matchFinder = null;
+ }
+ break;
+ }
+ case CoderPropID.DictionarySize:
+ {
+ const int kDicLogSizeMaxCompress = 30;
+ if (!(prop is Int32))
+ throw new InvalidParamException(); ;
+ Int32 dictionarySize = (Int32)prop;
+ if (dictionarySize < (UInt32)(1 << Base.kDicLogSizeMin) ||
+ dictionarySize > (UInt32)(1 << kDicLogSizeMaxCompress))
+ throw new InvalidParamException();
+ _dictionarySize = (UInt32)dictionarySize;
+ int dicLogSize;
+ for (dicLogSize = 0; dicLogSize < (UInt32)kDicLogSizeMaxCompress; dicLogSize++)
+ if (dictionarySize <= ((UInt32)(1) << dicLogSize))
+ break;
+ _distTableSize = (UInt32)dicLogSize * 2;
+ break;
+ }
+ case CoderPropID.PosStateBits:
+ {
+ if (!(prop is Int32))
+ throw new InvalidParamException();
+ Int32 v = (Int32)prop;
+ if (v < 0 || v > (UInt32)Base.kNumPosStatesBitsEncodingMax)
+ throw new InvalidParamException();
+ _posStateBits = (int)v;
+ _posStateMask = (((UInt32)1) << (int)_posStateBits) - 1;
+ break;
+ }
+ case CoderPropID.LitPosBits:
+ {
+ if (!(prop is Int32))
+ throw new InvalidParamException();
+ Int32 v = (Int32)prop;
+ if (v < 0 || v > (UInt32)Base.kNumLitPosStatesBitsEncodingMax)
+ throw new InvalidParamException();
+ _numLiteralPosStateBits = (int)v;
+ break;
+ }
+ case CoderPropID.LitContextBits:
+ {
+ if (!(prop is Int32))
+ throw new InvalidParamException();
+ Int32 v = (Int32)prop;
+ if (v < 0 || v > (UInt32)Base.kNumLitContextBitsMax)
+ throw new InvalidParamException(); ;
+ _numLiteralContextBits = (int)v;
+ break;
+ }
+ case CoderPropID.EndMarker:
+ {
+ if (!(prop is Boolean))
+ throw new InvalidParamException();
+ SetWriteEndMarkerMode((Boolean)prop);
+ break;
+ }
+ default:
+ throw new InvalidParamException();
+ }
+ }
+ }
+
+ uint _trainSize = 0;
+ public void SetTrainSize(uint trainSize)
+ {
+ _trainSize = trainSize;
+ }
+
+ }
+}
diff --git a/ROMVault2/SupportedFiles/SevenZip/Compress/RangeCoder/RangeCoder.cs b/ROMVault2/SupportedFiles/SevenZip/Compress/RangeCoder/RangeCoder.cs
new file mode 100644
index 0000000..cdcb72c
--- /dev/null
+++ b/ROMVault2/SupportedFiles/SevenZip/Compress/RangeCoder/RangeCoder.cs
@@ -0,0 +1,234 @@
+using System;
+
+namespace ROMVault2.SupportedFiles.SevenZip.Compress.RangeCoder
+{
+ class Encoder
+ {
+ public const uint kTopValue = (1 << 24);
+
+ System.IO.Stream Stream;
+
+ public UInt64 Low;
+ public uint Range;
+ uint _cacheSize;
+ byte _cache;
+
+ long StartPosition;
+
+ public void SetStream(System.IO.Stream stream)
+ {
+ Stream = stream;
+ }
+
+ public void ReleaseStream()
+ {
+ Stream = null;
+ }
+
+ public void Init()
+ {
+ StartPosition = Stream.Position;
+
+ Low = 0;
+ Range = 0xFFFFFFFF;
+ _cacheSize = 1;
+ _cache = 0;
+ }
+
+ public void FlushData()
+ {
+ for (int i = 0; i < 5; i++)
+ ShiftLow();
+ }
+
+ public void FlushStream()
+ {
+ Stream.Flush();
+ }
+
+ public void CloseStream()
+ {
+ Stream.Close();
+ }
+
+ public void Encode(uint start, uint size, uint total)
+ {
+ Low += start * (Range /= total);
+ Range *= size;
+ while (Range < kTopValue)
+ {
+ Range <<= 8;
+ ShiftLow();
+ }
+ }
+
+ public void ShiftLow()
+ {
+ if ((uint)Low < (uint)0xFF000000 || (uint)(Low >> 32) == 1)
+ {
+ byte temp = _cache;
+ do
+ {
+ Stream.WriteByte((byte)(temp + (Low >> 32)));
+ temp = 0xFF;
+ }
+ while (--_cacheSize != 0);
+ _cache = (byte)(((uint)Low) >> 24);
+ }
+ _cacheSize++;
+ Low = ((uint)Low) << 8;
+ }
+
+ public void EncodeDirectBits(uint v, int numTotalBits)
+ {
+ for (int i = numTotalBits - 1; i >= 0; i--)
+ {
+ Range >>= 1;
+ if (((v >> i) & 1) == 1)
+ Low += Range;
+ if (Range < kTopValue)
+ {
+ Range <<= 8;
+ ShiftLow();
+ }
+ }
+ }
+
+ public void EncodeBit(uint size0, int numTotalBits, uint symbol)
+ {
+ uint newBound = (Range >> numTotalBits) * size0;
+ if (symbol == 0)
+ Range = newBound;
+ else
+ {
+ Low += newBound;
+ Range -= newBound;
+ }
+ while (Range < kTopValue)
+ {
+ Range <<= 8;
+ ShiftLow();
+ }
+ }
+
+ public long GetProcessedSizeAdd()
+ {
+ return _cacheSize +
+ Stream.Position - StartPosition + 4;
+ // (long)Stream.GetProcessedSize();
+ }
+ }
+
+ class Decoder
+ {
+ public const uint kTopValue = (1 << 24);
+ public uint Range;
+ public uint Code;
+ // public Buffer.InBuffer Stream = new Buffer.InBuffer(1 << 16);
+ public System.IO.Stream Stream;
+
+ public void Init(System.IO.Stream stream)
+ {
+ // Stream.Init(stream);
+ Stream = stream;
+
+ Code = 0;
+ Range = 0xFFFFFFFF;
+ for (int i = 0; i < 5; i++)
+ Code = (Code << 8) | (byte)Stream.ReadByte();
+ }
+
+ public void ReleaseStream()
+ {
+ // Stream.ReleaseStream();
+ Stream = null;
+ }
+
+ public void CloseStream()
+ {
+ Stream.Close();
+ }
+
+ public void Normalize()
+ {
+ while (Range < kTopValue)
+ {
+ Code = (Code << 8) | (byte)Stream.ReadByte();
+ Range <<= 8;
+ }
+ }
+
+ public void Normalize2()
+ {
+ if (Range < kTopValue)
+ {
+ Code = (Code << 8) | (byte)Stream.ReadByte();
+ Range <<= 8;
+ }
+ }
+
+ public uint GetThreshold(uint total)
+ {
+ return Code / (Range /= total);
+ }
+
+ public void Decode(uint start, uint size, uint total)
+ {
+ Code -= start * Range;
+ Range *= size;
+ Normalize();
+ }
+
+ public uint DecodeDirectBits(int numTotalBits)
+ {
+ uint range = Range;
+ uint code = Code;
+ uint result = 0;
+ for (int i = numTotalBits; i > 0; i--)
+ {
+ range >>= 1;
+ /*
+ result <<= 1;
+ if (code >= range)
+ {
+ code -= range;
+ result |= 1;
+ }
+ */
+ uint t = (code - range) >> 31;
+ code -= range & (t - 1);
+ result = (result << 1) | (1 - t);
+
+ if (range < kTopValue)
+ {
+ code = (code << 8) | (byte)Stream.ReadByte();
+ range <<= 8;
+ }
+ }
+ Range = range;
+ Code = code;
+ return result;
+ }
+
+ public uint DecodeBit(uint size0, int numTotalBits)
+ {
+ uint newBound = (Range >> numTotalBits) * size0;
+ uint symbol;
+ if (Code < newBound)
+ {
+ symbol = 0;
+ Range = newBound;
+ }
+ else
+ {
+ symbol = 1;
+ Code -= newBound;
+ Range -= newBound;
+ }
+ Normalize();
+ return symbol;
+ }
+
+ // ulong GetProcessedSize() {return Stream.GetProcessedSize(); }
+ }
+}
diff --git a/ROMVault2/SupportedFiles/SevenZip/Compress/RangeCoder/RangeCoderBit.cs b/ROMVault2/SupportedFiles/SevenZip/Compress/RangeCoder/RangeCoderBit.cs
new file mode 100644
index 0000000..d81e8a4
--- /dev/null
+++ b/ROMVault2/SupportedFiles/SevenZip/Compress/RangeCoder/RangeCoderBit.cs
@@ -0,0 +1,117 @@
+using System;
+
+namespace ROMVault2.SupportedFiles.SevenZip.Compress.RangeCoder
+{
+ struct BitEncoder
+ {
+ public const int kNumBitModelTotalBits = 11;
+ public const uint kBitModelTotal = (1 << kNumBitModelTotalBits);
+ const int kNumMoveBits = 5;
+ const int kNumMoveReducingBits = 2;
+ public const int kNumBitPriceShiftBits = 6;
+
+ uint Prob;
+
+ public void Init() { Prob = kBitModelTotal >> 1; }
+
+ public void UpdateModel(uint symbol)
+ {
+ if (symbol == 0)
+ Prob += (kBitModelTotal - Prob) >> kNumMoveBits;
+ else
+ Prob -= (Prob) >> kNumMoveBits;
+ }
+
+ public void Encode(Encoder encoder, uint symbol)
+ {
+ // encoder.EncodeBit(Prob, kNumBitModelTotalBits, symbol);
+ // UpdateModel(symbol);
+ uint newBound = (encoder.Range >> kNumBitModelTotalBits) * Prob;
+ if (symbol == 0)
+ {
+ encoder.Range = newBound;
+ Prob += (kBitModelTotal - Prob) >> kNumMoveBits;
+ }
+ else
+ {
+ encoder.Low += newBound;
+ encoder.Range -= newBound;
+ Prob -= (Prob) >> kNumMoveBits;
+ }
+ if (encoder.Range < Encoder.kTopValue)
+ {
+ encoder.Range <<= 8;
+ encoder.ShiftLow();
+ }
+ }
+
+ private static UInt32[] ProbPrices = new UInt32[kBitModelTotal >> kNumMoveReducingBits];
+
+ static BitEncoder()
+ {
+ const int kNumBits = (kNumBitModelTotalBits - kNumMoveReducingBits);
+ for (int i = kNumBits - 1; i >= 0; i--)
+ {
+ UInt32 start = (UInt32)1 << (kNumBits - i - 1);
+ UInt32 end = (UInt32)1 << (kNumBits - i);
+ for (UInt32 j = start; j < end; j++)
+ ProbPrices[j] = ((UInt32)i << kNumBitPriceShiftBits) +
+ (((end - j) << kNumBitPriceShiftBits) >> (kNumBits - i - 1));
+ }
+ }
+
+ public uint GetPrice(uint symbol)
+ {
+ return ProbPrices[(((Prob - symbol) ^ ((-(int)symbol))) & (kBitModelTotal - 1)) >> kNumMoveReducingBits];
+ }
+ public uint GetPrice0() { return ProbPrices[Prob >> kNumMoveReducingBits]; }
+ public uint GetPrice1() { return ProbPrices[(kBitModelTotal - Prob) >> kNumMoveReducingBits]; }
+ }
+
+ struct BitDecoder
+ {
+ public const int kNumBitModelTotalBits = 11;
+ public const uint kBitModelTotal = (1 << kNumBitModelTotalBits);
+ const int kNumMoveBits = 5;
+
+ uint Prob;
+
+ public void UpdateModel(int numMoveBits, uint symbol)
+ {
+ if (symbol == 0)
+ Prob += (kBitModelTotal - Prob) >> numMoveBits;
+ else
+ Prob -= (Prob) >> numMoveBits;
+ }
+
+ public void Init() { Prob = kBitModelTotal >> 1; }
+
+ public uint Decode(RangeCoder.Decoder rangeDecoder)
+ {
+ uint newBound = (uint)(rangeDecoder.Range >> kNumBitModelTotalBits) * (uint)Prob;
+ if (rangeDecoder.Code < newBound)
+ {
+ rangeDecoder.Range = newBound;
+ Prob += (kBitModelTotal - Prob) >> kNumMoveBits;
+ if (rangeDecoder.Range < Decoder.kTopValue)
+ {
+ rangeDecoder.Code = (rangeDecoder.Code << 8) | (byte)rangeDecoder.Stream.ReadByte();
+ rangeDecoder.Range <<= 8;
+ }
+ return 0;
+ }
+ else
+ {
+ rangeDecoder.Range -= newBound;
+ rangeDecoder.Code -= newBound;
+ Prob -= (Prob) >> kNumMoveBits;
+ if (rangeDecoder.Range < Decoder.kTopValue)
+ {
+ rangeDecoder.Code = (rangeDecoder.Code << 8) | (byte)rangeDecoder.Stream.ReadByte();
+ rangeDecoder.Range <<= 8;
+ }
+ return 1;
+ }
+ }
+ }
+}
diff --git a/ROMVault2/SupportedFiles/SevenZip/Compress/RangeCoder/RangeCoderBitTree.cs b/ROMVault2/SupportedFiles/SevenZip/Compress/RangeCoder/RangeCoderBitTree.cs
new file mode 100644
index 0000000..4488815
--- /dev/null
+++ b/ROMVault2/SupportedFiles/SevenZip/Compress/RangeCoder/RangeCoderBitTree.cs
@@ -0,0 +1,160 @@
+using System;
+
+namespace ROMVault2.SupportedFiles.SevenZip.Compress.RangeCoder
+{
+ struct BitTreeEncoder
+ {
+ BitEncoder[] Models;
+ int NumBitLevels;
+
+ public BitTreeEncoder(int numBitLevels)
+ {
+ NumBitLevels = numBitLevels;
+ Models = new BitEncoder[1 << numBitLevels];
+ }
+
+ public void Init()
+ {
+ for (uint i = 1; i < (1 << NumBitLevels); i++)
+ Models[i].Init();
+ }
+
+ public void Encode(Encoder rangeEncoder, UInt32 symbol)
+ {
+ UInt32 m = 1;
+ for (int bitIndex = NumBitLevels; bitIndex > 0; )
+ {
+ bitIndex--;
+ UInt32 bit = (symbol >> bitIndex) & 1;
+ Models[m].Encode(rangeEncoder, bit);
+ m = (m << 1) | bit;
+ }
+ }
+
+ public void ReverseEncode(Encoder rangeEncoder, UInt32 symbol)
+ {
+ UInt32 m = 1;
+ for (UInt32 i = 0; i < NumBitLevels; i++)
+ {
+ UInt32 bit = symbol & 1;
+ Models[m].Encode(rangeEncoder, bit);
+ m = (m << 1) | bit;
+ symbol >>= 1;
+ }
+ }
+
+ public UInt32 GetPrice(UInt32 symbol)
+ {
+ UInt32 price = 0;
+ UInt32 m = 1;
+ for (int bitIndex = NumBitLevels; bitIndex > 0; )
+ {
+ bitIndex--;
+ UInt32 bit = (symbol >> bitIndex) & 1;
+ price += Models[m].GetPrice(bit);
+ m = (m << 1) + bit;
+ }
+ return price;
+ }
+
+ public UInt32 ReverseGetPrice(UInt32 symbol)
+ {
+ UInt32 price = 0;
+ UInt32 m = 1;
+ for (int i = NumBitLevels; i > 0; i--)
+ {
+ UInt32 bit = symbol & 1;
+ symbol >>= 1;
+ price += Models[m].GetPrice(bit);
+ m = (m << 1) | bit;
+ }
+ return price;
+ }
+
+ public static UInt32 ReverseGetPrice(BitEncoder[] Models, UInt32 startIndex,
+ int NumBitLevels, UInt32 symbol)
+ {
+ UInt32 price = 0;
+ UInt32 m = 1;
+ for (int i = NumBitLevels; i > 0; i--)
+ {
+ UInt32 bit = symbol & 1;
+ symbol >>= 1;
+ unchecked
+ {
+ price += Models[startIndex + m].GetPrice(bit);
+ }
+ m = (m << 1) | bit;
+ }
+ return price;
+ }
+
+ public static void ReverseEncode(BitEncoder[] Models, UInt32 startIndex,
+ Encoder rangeEncoder, int NumBitLevels, UInt32 symbol)
+ {
+ UInt32 m = 1;
+ for (int i = 0; i < NumBitLevels; i++)
+ {
+ UInt32 bit = symbol & 1;
+ Models[startIndex + m].Encode(rangeEncoder, bit);
+ m = (m << 1) | bit;
+ symbol >>= 1;
+ }
+ }
+ }
+
+ struct BitTreeDecoder
+ {
+ BitDecoder[] Models;
+ int NumBitLevels;
+
+ public BitTreeDecoder(int numBitLevels)
+ {
+ NumBitLevels = numBitLevels;
+ Models = new BitDecoder[1 << numBitLevels];
+ }
+
+ public void Init()
+ {
+ for (uint i = 1; i < (1 << NumBitLevels); i++)
+ Models[i].Init();
+ }
+
+ public uint Decode(RangeCoder.Decoder rangeDecoder)
+ {
+ uint m = 1;
+ for (int bitIndex = NumBitLevels; bitIndex > 0; bitIndex--)
+ m = (m << 1) + Models[m].Decode(rangeDecoder);
+ return m - ((uint)1 << NumBitLevels);
+ }
+
+ public uint ReverseDecode(RangeCoder.Decoder rangeDecoder)
+ {
+ uint m = 1;
+ uint symbol = 0;
+ for (int bitIndex = 0; bitIndex < NumBitLevels; bitIndex++)
+ {
+ uint bit = Models[m].Decode(rangeDecoder);
+ m <<= 1;
+ m += bit;
+ symbol |= (bit << bitIndex);
+ }
+ return symbol;
+ }
+
+ public static uint ReverseDecode(BitDecoder[] Models, UInt32 startIndex,
+ RangeCoder.Decoder rangeDecoder, int NumBitLevels)
+ {
+ uint m = 1;
+ uint symbol = 0;
+ for (int bitIndex = 0; bitIndex < NumBitLevels; bitIndex++)
+ {
+ uint bit = Models[startIndex + m].Decode(rangeDecoder);
+ m <<= 1;
+ m += bit;
+ symbol |= (bit << bitIndex);
+ }
+ return symbol;
+ }
+ }
+}
diff --git a/ROMVault2/SupportedFiles/SevenZip/DirUtil.cs b/ROMVault2/SupportedFiles/SevenZip/DirUtil.cs
new file mode 100644
index 0000000..589359f
--- /dev/null
+++ b/ROMVault2/SupportedFiles/SevenZip/DirUtil.cs
@@ -0,0 +1,31 @@
+using System;
+using ROMVault2.IO;
+
+namespace ROMVault2.SupportedFiles.SevenZip
+{
+ public static class DirUtil
+ {
+ public static void CreateDirForFile(string sFilename)
+ {
+ string strTemp = Path.GetDirectoryName(sFilename);
+
+ if (String.IsNullOrEmpty(strTemp)) return;
+
+ if (Directory.Exists(strTemp)) return;
+
+
+ while (strTemp.Length > 0 && !Directory.Exists(strTemp))
+ {
+ int pos = strTemp.LastIndexOf(Path.DirectorySeparatorChar);
+ if (pos < 0) pos = 0;
+ strTemp = strTemp.Substring(0, pos);
+ }
+
+ while (sFilename.IndexOf(Path.DirectorySeparatorChar, strTemp.Length + 1) > 0)
+ {
+ strTemp = sFilename.Substring(0, sFilename.IndexOf(Path.DirectorySeparatorChar, strTemp.Length + 1));
+ Directory.CreateDirectory(strTemp);
+ }
+ }
+ }
+}
diff --git a/ROMVault2/SupportedFiles/SevenZip/Filters/BCJ2Filter.cs b/ROMVault2/SupportedFiles/SevenZip/Filters/BCJ2Filter.cs
new file mode 100644
index 0000000..1a98fc6
--- /dev/null
+++ b/ROMVault2/SupportedFiles/SevenZip/Filters/BCJ2Filter.cs
@@ -0,0 +1,207 @@
+using System;
+using System.IO;
+
+namespace ROMVault2.SupportedFiles.SevenZip.Filters
+{
+ public class BCJ2Filter : Stream
+ {
+ private Stream baseStream;
+ private byte[] input = new byte[4096];
+ private int inputOffset = 0;
+ private int inputCount = 0;
+ private bool endReached = false;
+
+ private long position = 0;
+ private byte[] output = new byte[4];
+ private int outputOffset = 0;
+ private int outputCount = 0;
+
+ private byte[] control;
+ private byte[] data1;
+ private byte[] data2;
+
+ private int controlPos = 0;
+ private int data1Pos = 0;
+ private int data2Pos = 0;
+
+ private ushort[] p = new ushort[256 + 2];
+ private uint range, code;
+ private byte prevByte = 0;
+
+ private const int kNumTopBits = 24;
+ private const int kTopValue = 1 << kNumTopBits;
+
+ private const int kNumBitModelTotalBits = 11;
+ private const int kBitModelTotal = 1 << kNumBitModelTotalBits;
+ private const int kNumMoveBits = 5;
+
+ private static bool IsJ(byte b0, byte b1)
+ {
+ return (b1 & 0xFE) == 0xE8 || IsJcc(b0, b1);
+ }
+
+ private static bool IsJcc(byte b0, byte b1)
+ {
+ return b0 == 0x0F && (b1 & 0xF0) == 0x80;
+ }
+
+ public BCJ2Filter(byte[] control, byte[] data1, byte[] data2, Stream baseStream)
+ {
+ this.control = control;
+ this.data1 = data1;
+ this.data2 = data2;
+ this.baseStream = baseStream;
+
+ int i;
+ for (i = 0; i < p.Length; i++)
+ p[i] = kBitModelTotal >> 1;
+
+ code = 0;
+ range = 0xFFFFFFFF;
+ for (i = 0; i < 5; i++)
+ code = (code << 8) | control[controlPos++];
+ }
+
+ public override bool CanRead
+ {
+ get { return true; }
+ }
+
+ public override bool CanSeek
+ {
+ get { return false; }
+ }
+
+ public override bool CanWrite
+ {
+ get { return false; }
+ }
+
+ public override void Flush()
+ {
+ throw new NotImplementedException();
+ }
+
+ public override long Length
+ {
+ get { return baseStream.Length + data1.Length + data2.Length; }
+ }
+
+ public override long Position
+ {
+ get
+ {
+ return position;
+ }
+ set
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+ public override int Read(byte[] buffer, int offset, int count)
+ {
+ int size = 0;
+ byte b = 0;
+
+ while (!endReached && size < count)
+ {
+ while (outputOffset < outputCount)
+ {
+ b = output[outputOffset++];
+ buffer[offset++] = b;
+ size++;
+ position++;
+
+ prevByte = b;
+ if (size == count)
+ return size;
+ }
+
+ if (inputOffset == inputCount)
+ {
+ inputOffset = 0;
+ inputCount = baseStream.Read(input, 0, input.Length);
+ if (inputCount == 0)
+ {
+ endReached = true;
+ break;
+ }
+ }
+
+ b = input[inputOffset++];
+ buffer[offset++] = b;
+ size++;
+ position++;
+
+ if (!IsJ(prevByte, b))
+ prevByte = b;
+ else
+ {
+ int prob;
+ if (b == 0xE8)
+ prob = prevByte;
+ else if (b == 0xE9)
+ prob = 256;
+ else
+ prob = 257;
+
+ uint bound = (range >> kNumBitModelTotalBits) * p[prob];
+ if (code < bound)
+ {
+ range = bound;
+ p[prob] += (ushort)((kBitModelTotal - p[prob]) >> kNumMoveBits);
+ if (range < kTopValue)
+ {
+ range <<= 8;
+ code = (code << 8) | control[controlPos++];
+ }
+ prevByte = b;
+ }
+ else
+ {
+ range -= bound;
+ code -= bound;
+ p[prob] -= (ushort)(p[prob] >> kNumMoveBits);
+ if (range < kTopValue)
+ {
+ range <<= 8;
+ code = (code << 8) | control[controlPos++];
+ }
+
+ uint dest;
+ if (b == 0xE8)
+ dest = (uint)((data1[data1Pos++] << 24) | (data1[data1Pos++] << 16) | (data1[data1Pos++] << 8) | data1[data1Pos++]);
+ else
+ dest = (uint)((data2[data2Pos++] << 24) | (data2[data2Pos++] << 16) | (data2[data2Pos++] << 8) | data2[data2Pos++]);
+ dest -= (uint)(position + 4);
+
+ output[0] = (byte)dest;
+ output[1] = (byte)(dest >> 8);
+ output[2] = (byte)(dest >> 16);
+ output[3] = (byte)(dest >> 24);
+ outputOffset = 0;
+ outputCount = 4;
+ }
+ }
+ }
+
+ return size;
+ }
+
+ public override long Seek(long offset, SeekOrigin origin)
+ {
+ throw new NotImplementedException();
+ }
+
+ public override void SetLength(long value)
+ {
+ throw new NotImplementedException();
+ }
+
+ public override void Write(byte[] buffer, int offset, int count)
+ {
+ throw new NotImplementedException();
+ }
+ }
+}
diff --git a/ROMVault2/SupportedFiles/SevenZip/Filters/BCJFilter.cs b/ROMVault2/SupportedFiles/SevenZip/Filters/BCJFilter.cs
new file mode 100644
index 0000000..045a179
--- /dev/null
+++ b/ROMVault2/SupportedFiles/SevenZip/Filters/BCJFilter.cs
@@ -0,0 +1,90 @@
+using System.IO;
+
+namespace ROMVault2.SupportedFiles.SevenZip.Filters
+{
+ public class BCJFilter : Filter
+ {
+ private static readonly bool[] MASK_TO_ALLOWED_STATUS = new bool[] {true, true, true, false, true, false, false, false};
+ private static readonly int[] MASK_TO_BIT_NUMBER = new int[] { 0, 1, 2, 2, 3, 3, 3, 3 };
+
+ private int pos;
+ private int prevMask = 0;
+
+ public BCJFilter(bool isEncoder, Stream baseStream) : base(isEncoder, baseStream, 5)
+ {
+ pos = 5;
+ }
+
+ private static bool test86MSByte(byte b)
+ {
+ return b == 0x00 || b == 0xFF;
+ }
+
+ protected override int Transform(byte[] buffer, int offset, int count)
+ {
+ int prevPos = offset - 1;
+ int end = offset + count - 5;
+ int i;
+
+ for (i = offset; i <= end; ++i) {
+ if ((buffer[i] & 0xFE) != 0xE8)
+ continue;
+
+ prevPos = i - prevPos;
+ if ((prevPos & ~3) != 0) { // (unsigned)prevPos > 3
+ prevMask = 0;
+ } else {
+ prevMask = (prevMask << (prevPos - 1)) & 7;
+ if (prevMask != 0) {
+ if (!MASK_TO_ALLOWED_STATUS[prevMask] || test86MSByte(
+ buffer[i + 4 - MASK_TO_BIT_NUMBER[prevMask]])) {
+ prevPos = i;
+ prevMask = (prevMask << 1) | 1;
+ continue;
+ }
+ }
+ }
+
+ prevPos = i;
+
+ if (test86MSByte(buffer[i + 4])) {
+ int src = buffer[i + 1]
+ | (buffer[i + 2] << 8)
+ | (buffer[i + 3] << 16)
+ | (buffer[i + 4] << 24);
+ int dest;
+ while (true) {
+ if (isEncoder)
+ dest = src + (pos + i - offset);
+ else
+ dest = src - (pos + i - offset);
+
+ if (prevMask == 0)
+ break;
+
+ int index = MASK_TO_BIT_NUMBER[prevMask] * 8;
+ if (!test86MSByte((byte)(dest >> (24 - index))))
+ break;
+
+ src = dest ^ ((1 << (32 - index)) - 1);
+ }
+
+ buffer[i + 1] = (byte)dest;
+ buffer[i + 2] = (byte)(dest >> 8);
+ buffer[i + 3] = (byte)(dest >> 16);
+ buffer[i + 4] = (byte)(~(((dest >> 24) & 1) - 1));
+ i += 4;
+ } else {
+ prevMask = (prevMask << 1) | 1;
+ }
+ }
+
+ prevPos = i - prevPos;
+ prevMask = ((prevPos & ~3) != 0) ? 0 : prevMask << (prevPos - 1);
+
+ i -= offset;
+ pos += i;
+ return i;
+ }
+ }
+}
diff --git a/ROMVault2/SupportedFiles/SevenZip/Filters/Filter.cs b/ROMVault2/SupportedFiles/SevenZip/Filters/Filter.cs
new file mode 100644
index 0000000..e1e8e88
--- /dev/null
+++ b/ROMVault2/SupportedFiles/SevenZip/Filters/Filter.cs
@@ -0,0 +1,171 @@
+using System;
+using System.IO;
+
+namespace ROMVault2.SupportedFiles.SevenZip.Filters
+{
+ public abstract class Filter : Stream
+ {
+ protected bool isEncoder;
+ protected Stream baseStream;
+
+ private byte[] tail;
+ private byte[] window;
+ private int transformed = 0;
+ private int read = 0;
+ private bool endReached = false;
+ private long position = 0;
+
+ protected Filter(bool isEncoder, Stream baseStream, int lookahead)
+ {
+ this.isEncoder = isEncoder;
+ this.baseStream = baseStream;
+ tail = new byte[lookahead - 1];
+ window = new byte[tail.Length * 2];
+ }
+
+ public Stream BaseStream
+ { get { return baseStream; } }
+
+ public override bool CanRead
+ {
+ get { return !isEncoder; }
+ }
+
+ public override bool CanSeek
+ {
+ get { return false; }
+ }
+
+ public override bool CanWrite
+ {
+ get { return isEncoder; }
+ }
+
+ public override void Flush()
+ {
+ throw new NotImplementedException();
+ }
+
+ public override long Length
+ {
+ get { return baseStream.Length; }
+ }
+
+ public override long Position
+ {
+ get
+ {
+ return position;
+ }
+ set
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+ public override int Read(byte[] buffer, int offset, int count)
+ {
+ int size = 0;
+
+ if (transformed > 0)
+ {
+ int copySize = transformed;
+ if (copySize > count)
+ copySize = count;
+ Buffer.BlockCopy(tail, 0, buffer, offset, copySize);
+ transformed -= copySize;
+ read -= copySize;
+ offset += copySize;
+ count -= copySize;
+ size += copySize;
+ Buffer.BlockCopy(tail, copySize, tail, 0, read);
+ }
+ if (count == 0)
+ {
+ position += size;
+ return size;
+ }
+
+ int inSize = read;
+ if (inSize > count)
+ inSize = count;
+ Buffer.BlockCopy(tail, 0, buffer, offset, inSize);
+ read -= inSize;
+ Buffer.BlockCopy(tail, inSize, tail, 0, read);
+ while (!endReached && inSize < count)
+ {
+ int baseRead = baseStream.Read(buffer, offset + inSize, count - inSize);
+ inSize += baseRead;
+ if (baseRead == 0)
+ endReached = true;
+ }
+ while (!endReached && read < tail.Length)
+ {
+ int baseRead = baseStream.Read(tail, read, tail.Length - read);
+ read += baseRead;
+ if (baseRead == 0)
+ endReached = true;
+ }
+
+ if (inSize > tail.Length)
+ {
+ transformed = Transform(buffer, offset, inSize);
+ offset += transformed;
+ count -= transformed;
+ size += transformed;
+ inSize -= transformed;
+ transformed = 0;
+ }
+
+ if (count == 0)
+ {
+ position += size;
+ return size;
+ }
+
+ Buffer.BlockCopy(buffer, offset, window, 0, inSize);
+ Buffer.BlockCopy(tail, 0, window, inSize, read);
+ if (inSize + read > tail.Length)
+ transformed = Transform(window, 0, inSize + read);
+ else
+ transformed = inSize + read;
+ Buffer.BlockCopy(window, 0, buffer, offset, inSize);
+ Buffer.BlockCopy(window, inSize, tail, 0, read);
+ size += inSize;
+ transformed -= inSize;
+
+ position += size;
+ return size;
+ }
+
+ public override long Seek(long offset, SeekOrigin origin)
+ {
+ if (origin != SeekOrigin.Current)
+ throw new NotImplementedException();
+
+ const int bufferSize = 10240;
+ Byte[] seekBuffer = new byte[bufferSize];
+ long seekToGo = offset;
+ while (seekToGo > 0)
+ {
+ long get = seekToGo > bufferSize ? bufferSize : seekToGo;
+ Read(seekBuffer, 0, (int) get);
+ seekToGo -= get;
+ }
+ return position;
+ }
+
+ public override void SetLength(long value)
+ {
+ throw new NotImplementedException();
+ }
+
+ public override void Write(byte[] buffer, int offset, int count)
+ {
+ Transform(buffer, offset, count);
+ baseStream.Write(buffer, offset, count);
+ }
+
+ protected abstract int Transform(byte[] buffer, int offset, int count);
+ }
+}
diff --git a/ROMVault2/SupportedFiles/SevenZip/LZMACompressFile.cs b/ROMVault2/SupportedFiles/SevenZip/LZMACompressFile.cs
new file mode 100644
index 0000000..81cc7bd
--- /dev/null
+++ b/ROMVault2/SupportedFiles/SevenZip/LZMACompressFile.cs
@@ -0,0 +1,61 @@
+using System;
+using System.IO;
+using ROMVault2.SupportedFiles.SevenZip.Common;
+using ROMVault2.SupportedFiles.SevenZip.Compress.LZMA;
+
+namespace ROMVault2.SupportedFiles.SevenZip
+{
+ public static class LZMACompressFile
+ {
+ public static void CompressFile(Stream inStream,Stream outStream,out byte[] codeMSbytes,ICodeProgress p)
+ {
+ Int32 dictionary = 1 << 24;
+ Int32 posStateBits = 2;
+ Int32 litContextBits = 3; // for normal files
+ Int32 litPosBits = 0;
+ Int32 algorithm = 2;
+ Int32 numFastBytes = 128; //64;
+
+ string mf = "bt4";
+ bool eos = true;
+
+
+ CoderPropID[] propIDs =
+ {
+ CoderPropID.DictionarySize,
+ CoderPropID.PosStateBits,
+ CoderPropID.LitContextBits,
+ CoderPropID.LitPosBits,
+ CoderPropID.Algorithm,
+ CoderPropID.NumFastBytes,
+ CoderPropID.MatchFinder,
+ CoderPropID.EndMarker
+ };
+
+ object[] properties =
+ {
+ dictionary,
+ posStateBits,
+ litContextBits,
+ litPosBits,
+ algorithm,
+ numFastBytes,
+ mf,
+ eos
+ };
+
+
+
+ Encoder encoder = new Encoder();
+ encoder.SetCoderProperties(propIDs, properties);
+ using (MemoryStream codeMS = new MemoryStream())
+ {
+ encoder.WriteCoderProperties(codeMS);
+ codeMSbytes = new byte[codeMS.Length];
+ codeMS.Position = 0;
+ codeMS.Read(codeMSbytes, 0, codeMSbytes.Length);
+ }
+ encoder.Code(inStream, outStream, -1, -1, p);
+ }
+ }
+}
diff --git a/ROMVault2/SupportedFiles/SevenZip/SevenZip.cs b/ROMVault2/SupportedFiles/SevenZip/SevenZip.cs
new file mode 100644
index 0000000..792c5fd
--- /dev/null
+++ b/ROMVault2/SupportedFiles/SevenZip/SevenZip.cs
@@ -0,0 +1,782 @@
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.IO;
+using System.Security.Cryptography;
+using ROMVault2.SupportedFiles.SevenZip.Common;
+using ROMVault2.SupportedFiles.SevenZip.Compress.LZMA;
+using ROMVault2.SupportedFiles.SevenZip.Filters;
+using ROMVault2.SupportedFiles.SevenZip.Structure;
+
+namespace ROMVault2.SupportedFiles.SevenZip
+{
+ public class SevenZ : ICompress
+ {
+ public class LocalFile
+ {
+ public string FileName;
+ public ulong UncompressedSize;
+ public bool isDirectory;
+ public byte[] crc;
+ public byte[] sha1;
+ public byte[] md5;
+ public int StreamIndex;
+ public ulong StreamOffset;
+ public ZipReturn FileStatus = ZipReturn.ZipUntested;
+ }
+
+ private List _localFiles = new List();
+
+ private IO.FileInfo _zipFileInfo;
+
+ private Stream _zipFs;
+
+ private ZipOpenType _zipOpen;
+ private ZipStatus _pZipStatus;
+
+ SignatureHeader _signatureHeader;
+
+ private bool _compressed = true;
+ private Stream _tmpOutStream;
+
+
+
+ private Stream _streamNow;
+ private int _streamIndex = -1;
+
+
+ public string ZipFilename
+ {
+ get { return _zipFileInfo != null ? _zipFileInfo.FullName : ""; }
+ }
+ public long TimeStamp
+ {
+ get { return _zipFileInfo != null ? _zipFileInfo.LastWriteTime : 0; }
+ }
+
+ public ZipOpenType ZipOpen { get { return _zipOpen; } }
+ public ZipStatus ZipStatus { get { return _pZipStatus; } }
+ public int LocalFilesCount() { return _localFiles.Count; }
+ public string Filename(int i) { return _localFiles[i].FileName; }
+ public ulong? LocalHeader(int i) { return 0; }
+ public ulong UncompressedSize(int i) { return _localFiles[i].UncompressedSize; }
+ public ZipReturn FileStatus(int i) { return _localFiles[i].FileStatus; }
+ public byte[] CRC32(int i) { return _localFiles[i].crc; }
+ public byte[] MD5(int i) { return _localFiles[i].md5; }
+ public byte[] SHA1(int i) { return _localFiles[i].sha1; }
+ public bool IsDirectory(int i) { return _localFiles[i].isDirectory; }
+
+
+ private long _baseOffset;
+
+
+ #region open 7z files
+
+ public ZipReturn ZipFileOpen(string filename, long timestamp,bool readHeaders)
+ {
+ Debug.WriteLine(filename);
+ #region open file stream
+ try
+ {
+ if (!IO.File.Exists(filename))
+ {
+ ZipFileClose();
+ return ZipReturn.ZipErrorFileNotFound;
+ }
+ _zipFileInfo = new IO.FileInfo(filename);
+ if (timestamp != -1 && _zipFileInfo.LastWriteTime != timestamp)
+ {
+ ZipFileClose();
+ return ZipReturn.ZipErrorTimeStamp;
+ }
+ int errorCode = IO.FileStream.OpenFileRead(filename, out _zipFs);
+ if (errorCode != 0)
+ {
+ ZipFileClose();
+ return ZipReturn.ZipErrorOpeningFile;
+ }
+ }
+ catch (PathTooLongException)
+ {
+ ZipFileClose();
+ return ZipReturn.ZipFileNameToLong;
+ }
+ catch (IOException)
+ {
+ ZipFileClose();
+ return ZipReturn.ZipErrorOpeningFile;
+ }
+ #endregion
+
+ _zipOpen = ZipOpenType.OpenRead;
+ _pZipStatus = ZipStatus.None;
+
+ SignatureHeader signatureHeader = new SignatureHeader();
+ if (!signatureHeader.Read(new BinaryReader(_zipFs)))
+ return ZipReturn.ZipSignatureError;
+
+ _baseOffset = _zipFs.Position; Util.log("BaseOffset : " + _baseOffset);
+
+ Util.log("Loading Stream : " + (_baseOffset + (long)signatureHeader.NextHeaderOffset) + " , Size : " + signatureHeader.NextHeaderSize);
+
+ //_zipFs.Seek(_baseOffset + (long)signatureHeader.NextHeaderOffset, SeekOrigin.Begin);
+ //byte[] mainHeader = new byte[signatureHeader.NextHeaderSize];
+ //_zipFs.Read(mainHeader, 0, (int)signatureHeader.NextHeaderSize);
+ //if (!CRC.VerifyDigest(signatureHeader.NextHeaderCRC, mainHeader, 0, (uint)signatureHeader.NextHeaderSize))
+ // return ZipReturn.Zip64EndOfCentralDirError;
+
+ _zipFs.Seek(_baseOffset + (long)signatureHeader.NextHeaderOffset, SeekOrigin.Begin);
+ ZipReturn zr = Header.ReadHeaderOrPackedHeader(_zipFs, _baseOffset, out _header);
+ if (zr != ZipReturn.ZipGood)
+ return zr;
+
+ _zipFs.Seek(_baseOffset + (long)(signatureHeader.NextHeaderOffset + signatureHeader.NextHeaderSize), SeekOrigin.Begin);
+ _pZipStatus = Istorrent7Z() ? ZipStatus.TrrntZip : ZipStatus.None;
+ PopulateLocalFiles(out _localFiles);
+
+ return ZipReturn.ZipGood;
+ }
+
+
+ private void PopulateLocalFiles(out List localFiles)
+ {
+ int emptyFileIndex = 0;
+ int folderIndex = 0;
+ int unpackedStreamsIndex = 0;
+ ulong streamOffset = 0;
+ localFiles = new List();
+
+ for (int i = 0; i < _header.FileInfo.Names.Length; i++)
+ {
+ LocalFile lf = new LocalFile { FileName = _header.FileInfo.Names[i] };
+
+ if (_header.FileInfo.EmptyStreamFlags == null || !_header.FileInfo.EmptyStreamFlags[i])
+ {
+ lf.StreamIndex = folderIndex;
+ lf.StreamOffset = streamOffset;
+ lf.UncompressedSize = _header.StreamsInfo.Folders[folderIndex].UnpackedStreamInfo[unpackedStreamsIndex].UnpackedSize;
+ lf.crc = Util.uinttobytes(_header.StreamsInfo.Folders[folderIndex].UnpackedStreamInfo[unpackedStreamsIndex].Crc);
+
+ streamOffset += lf.UncompressedSize;
+ unpackedStreamsIndex++;
+
+ if (unpackedStreamsIndex >= _header.StreamsInfo.Folders[folderIndex].UnpackedStreamInfo.Length)
+ {
+ folderIndex++;
+ unpackedStreamsIndex = 0;
+ streamOffset = 0;
+ }
+ }
+ else
+ {
+ lf.UncompressedSize = 0;
+ lf.crc = new byte[] { 0, 0, 0, 0 };
+ lf.isDirectory = _header.FileInfo.EmptyFileFlags == null || !_header.FileInfo.EmptyFileFlags[emptyFileIndex++];
+
+ if (lf.isDirectory)
+ if (lf.FileName.Substring(lf.FileName.Length - 1, 1) != "/")
+ lf.FileName += "/";
+ }
+
+ localFiles.Add(lf);
+ }
+ }
+
+ public void ZipFileClose()
+ {
+ ZipFileClose(null);
+ }
+
+ public void ZipFileClose(ICodeProgress p)
+ {
+ if (_zipOpen == ZipOpenType.Closed)
+ return;
+
+ if (_zipOpen == ZipOpenType.OpenRead)
+ {
+ ZipFileCloseReadStream();
+ if (_zipFs != null)
+ {
+ _zipFs.Close();
+ _zipFs.Dispose();
+ }
+ _zipOpen = ZipOpenType.Closed;
+ return;
+ }
+
+ CloseWriting7Zip(p);
+
+ _zipFileInfo = new IO.FileInfo(_zipFileInfo.FullName);
+ _zipOpen = ZipOpenType.Closed;
+ }
+
+ private Header _header;
+
+
+
+ private bool Istorrent7Z()
+ {
+ const int crcsz = 128;
+ const int t7ZsigSize = 16 + 1 + 9 + 4 + 4;
+ byte[] kSignature = { (byte)'7', (byte)'z', 0xBC, 0xAF, 0x27, 0x1C };
+ int kSignatureSize = kSignature.Length;
+ const string sig = "\xa9\x9f\xd1\x57\x08\xa9\xd7\xea\x29\x64\xb2\x36\x1b\x83\x52\x33\x01torrent7z_0.9beta";
+ byte[] t7Zid = Util.Enc.GetBytes(sig);
+ int t7ZidSize = t7Zid.Length;
+
+ const int tmpbufsize = 256 + t7ZsigSize + 8 + 4;
+ byte[] buffer = new byte[tmpbufsize];
+
+ // read fist 128 bytes, pad with zeros if less bytes
+ int offs = 0;
+ _zipFs.Seek(0, SeekOrigin.Begin);
+ int ar = _zipFs.Read(buffer, offs, crcsz);
+ if (ar < crcsz)
+ Util.memset(buffer, offs + ar, 0, crcsz - ar);
+
+
+ offs = crcsz;
+ long foffs = _zipFs.Length;
+ foffs = foffs < (crcsz + t7ZsigSize + 4) ? 0 : foffs - (crcsz + t7ZsigSize + 4);
+ _zipFs.Seek(foffs, SeekOrigin.Begin);
+
+ ar = _zipFs.Read(buffer, offs, (crcsz + t7ZsigSize + 4));
+ if (ar < (crcsz + t7ZsigSize + 4))
+ {
+ if (ar >= t7ZsigSize + 4)
+ {
+ ar -= t7ZsigSize + 4;
+ }
+ if (ar < kSignatureSize)
+ {
+ ar = kSignatureSize;
+ }
+ Util.memset(buffer, offs + ar, 0, crcsz - ar);
+ Util.memcpyr(buffer, crcsz * 2 + 8, buffer, offs + ar, t7ZsigSize + 4);
+ }
+ else
+ Util.memcpyr(buffer, crcsz * 2 + 8, buffer, crcsz * 2, t7ZsigSize + 4);
+
+ foffs = _zipFs.Length;
+ foffs -= t7ZsigSize + 4;
+
+ //memcpy(buffer, crcsz * 2, &foffs, 8);
+ buffer[crcsz * 2 + 0] = (byte)((foffs >> 0) & 0xff);
+ buffer[crcsz * 2 + 1] = (byte)((foffs >> 8) & 0xff);
+ buffer[crcsz * 2 + 2] = (byte)((foffs >> 16) & 0xff);
+ buffer[crcsz * 2 + 3] = (byte)((foffs >> 24) & 0xff);
+ buffer[crcsz * 2 + 4] = 0;
+ buffer[crcsz * 2 + 5] = 0;
+ buffer[crcsz * 2 + 6] = 0;
+ buffer[crcsz * 2 + 7] = 0;
+
+ if (Util.memcmp(buffer, 0, kSignature, kSignatureSize))
+ {
+ t7Zid[16] = buffer[crcsz * 2 + 4 + 8 + 16];
+ if (Util.memcmp(buffer, crcsz * 2 + 4 + 8, t7Zid, t7ZidSize))
+ {
+ UInt32 inCrc32 = (UInt32)((buffer[crcsz * 2 + 8 + 0]) +
+ (buffer[crcsz * 2 + 8 + 1] << 8) +
+ (buffer[crcsz * 2 + 8 + 2] << 16) +
+ (buffer[crcsz * 2 + 8 + 3] << 24));
+
+ buffer[crcsz * 2 + 8 + 0] = 0xff;
+ buffer[crcsz * 2 + 8 + 1] = 0xff;
+ buffer[crcsz * 2 + 8 + 2] = 0xff;
+ buffer[crcsz * 2 + 8 + 3] = 0xff;
+
+ uint calcCrc32 = CRC.CalculateDigest(buffer, 0, crcsz * 2 + 8 + t7ZsigSize + 4);
+
+ if (inCrc32 == calcCrc32) return true;
+ }
+ }
+
+ return false;
+ }
+
+
+
+ #endregion
+
+
+ public void DeepScan()
+ {
+ const int bufferSize = 4096 * 128;
+ byte[] buffer = new byte[bufferSize];
+
+ for (int index = 0; index < _localFiles.Count; index++)
+ {
+ if (_localFiles[index].isDirectory || _localFiles[index].UncompressedSize == 0)
+ {
+ _localFiles[index].md5 = new byte[] { 0xd4, 0x1d, 0x8c, 0xd9, 0x8f, 0x00, 0xb2, 0x04, 0xe9, 0x80, 0x09, 0x98, 0xec, 0xf8, 0x42, 0x7e };
+ _localFiles[index].sha1 = new byte[] { 0xda, 0x39, 0xa3, 0xee, 0x5e, 0x6b, 0x4b, 0x0d, 0x32, 0x55, 0xbf, 0xef, 0x95, 0x60, 0x18, 0x90, 0xaf, 0xd8, 0x07, 0x09 };
+ _localFiles[index].FileStatus = ZipReturn.ZipGood;
+
+ continue;
+ }
+
+ ulong sizetogo;
+ Stream inStream;
+ ZipReturn zr = ZipFileOpenReadStream(index, out inStream, out sizetogo);
+ if (zr != ZipReturn.ZipGood)
+ continue;
+
+ if (inStream == null)
+ continue;
+
+ CRC crc32 = new CRC();
+ MD5 lmd5 = System.Security.Cryptography.MD5.Create();
+ SHA1 lsha1 = System.Security.Cryptography.SHA1.Create();
+
+ while (sizetogo > 0)
+ {
+ int sizenow = sizetogo > (ulong)bufferSize ? bufferSize : (int)sizetogo;
+ inStream.Read(buffer, 0, sizenow);
+
+ crc32.Update(buffer, 0, (uint)sizenow);
+ lmd5.TransformBlock(buffer, 0, sizenow, null, 0);
+ lsha1.TransformBlock(buffer, 0, sizenow, null, 0);
+
+ sizetogo = sizetogo - (ulong)sizenow;
+ }
+
+ lmd5.TransformFinalBlock(buffer, 0, 0);
+ lsha1.TransformFinalBlock(buffer, 0, 0);
+
+ byte[] testcrc = Util.uinttobytes(crc32.GetDigest());
+ _localFiles[index].md5 = lmd5.Hash;
+ _localFiles[index].sha1 = lsha1.Hash;
+
+ _localFiles[index].FileStatus = Util.ByteArrCompare(_localFiles[index].crc, testcrc) ? ZipReturn.ZipGood : ZipReturn.ZipCRCDecodeError;
+ }
+ }
+
+
+
+ #region read 7z file
+
+ public ZipReturn ZipFileOpenReadStream(int index, out Stream stream, out ulong unCompressedSize)
+ {
+ Debug.WriteLine("Opening File " + _localFiles[index].FileName);
+ stream = null;
+ unCompressedSize = 0;
+
+ if (_zipOpen != ZipOpenType.OpenRead)
+ return ZipReturn.ZipErrorGettingDataStream;
+
+ if (IsDirectory(index))
+ return ZipReturn.ZipTryingToAccessADirectory;
+
+ unCompressedSize = _localFiles[index].UncompressedSize;
+
+ int thisStreamIndex = _localFiles[index].StreamIndex;
+
+ // first see if we can re-use the current open stream
+ if (_streamIndex == thisStreamIndex)
+ {
+ stream = _streamNow;
+ if (_streamNow is BCJFilter) // it is a BCJ + Decoder stream but need to check the position in the stream can be used.
+ {
+ if ((long)_localFiles[index].StreamOffset >= _streamNow.Position)
+ {
+ stream.Seek((long)_localFiles[index].StreamOffset - _streamNow.Position, SeekOrigin.Current);
+ return ZipReturn.ZipGood;
+ }
+ }
+ else if (_streamNow is Decoder) // it is a Decoder stream but need to check the position in the stream can be used.
+ {
+ if ((long)_localFiles[index].StreamOffset >= _streamNow.Position)
+ {
+ stream.Seek((long)_localFiles[index].StreamOffset - _streamNow.Position, SeekOrigin.Current);
+ return ZipReturn.ZipGood;
+ }
+ }
+ else // it is an uncompressed stream
+ {
+ if (stream != null)
+ stream.Seek((long)_localFiles[index].StreamOffset - _streamNow.Position, SeekOrigin.Current);
+ return ZipReturn.ZipGood;
+ }
+ }
+
+ // need to open a new stream
+
+ // first close the old streams
+ ZipFileCloseReadStream();
+
+
+ // open new stream
+ _streamIndex = thisStreamIndex;
+ _zipFs.Seek(_baseOffset + (long)_header.StreamsInfo.PackedStreams[thisStreamIndex].StreamPosition, SeekOrigin.Begin);
+
+ byte[] method = _header.StreamsInfo.Folders[_localFiles[index].StreamIndex].Coders[0].Method;
+ if (method.Length == 3 && method[0] == 3 && method[1] == 1 && method[2] == 1) // LZMA
+ {
+ Decoder decoder = new Decoder();
+ decoder.SetDecoderProperties(_header.StreamsInfo.Folders[_localFiles[index].StreamIndex].Coders[0].Properties);
+ decoder.SetUpStream(_zipFs);
+ stream = decoder;
+ _streamNow = stream;
+
+ if (_header.StreamsInfo.Folders[_localFiles[index].StreamIndex].Coders.Length > 1) // BCJ
+ {
+ method = _header.StreamsInfo.Folders[_localFiles[index].StreamIndex].Coders[1].Method;
+ if (method.Length == 4 && method[0] == 3 && method[1] == 3 && method[2] == 1 && method[3] == 3)
+ {
+ BCJFilter filter = new BCJFilter(false, stream);
+ stream = filter;
+ _streamNow = stream;
+ stream.Seek((long)_localFiles[index].StreamOffset, SeekOrigin.Current);
+ return ZipReturn.ZipGood;
+ }
+ return ZipReturn.ZipUnsupportedCompression;
+ }
+
+ stream.Seek((long)_localFiles[index].StreamOffset, SeekOrigin.Current);
+ return ZipReturn.ZipGood;
+ }
+ if (method.Length == 1 && method[0] == 33) // lzma2
+ {
+ return ZipReturn.ZipUnsupportedCompression;
+ }
+
+ if (method.Length == 1 && method[0] == 0) // uncompressed
+ {
+ stream = _zipFs;
+ _streamNow = stream;
+ stream.Seek((long)_localFiles[index].StreamOffset, SeekOrigin.Current);
+ return ZipReturn.ZipGood;
+ }
+
+ if (method.Length == 3 && method[0] == 4 && method[1] == 2 && method[2] == 2) // BZip2
+ {
+ return ZipReturn.ZipUnsupportedCompression;
+ }
+ if (method.Length == 1 && method[0] == 33) // LZMA2
+ {
+ return ZipReturn.ZipUnsupportedCompression;
+ }
+
+ return ZipReturn.ZipUnsupportedCompression;
+ }
+
+
+ public ZipReturn ZipFileCloseReadStream()
+ {
+ if (_streamNow is BCJFilter)
+ {
+ Stream baseStream = ((BCJFilter)_streamNow).BaseStream;
+ _streamNow.Dispose();
+ _streamNow = baseStream;
+ }
+ if (_streamNow is Decoder)
+ {
+ _streamNow.Close();
+ _streamNow.Dispose();
+ }
+ _streamNow = null;
+ return ZipReturn.ZipGood;
+ }
+
+ #endregion
+
+
+ #region write 7z File
+
+ public void ZipFileAddDirectory()
+ {
+ // do nothing here for 7zip
+ }
+
+ public ZipReturn ZipFileCreate(string newFilename)
+ {
+ return ZipFileCreate(newFilename, true);
+ }
+
+
+ public ZipReturn ZipFileCreate(string newFilename, bool compressOutput)
+ {
+ if (_zipOpen != ZipOpenType.Closed)
+ return ZipReturn.ZipFileAlreadyOpen;
+
+ DirUtil.CreateDirForFile(newFilename);
+ _zipFileInfo = new IO.FileInfo(newFilename);
+
+ int errorCode = IO.FileStream.OpenFileWrite(newFilename, out _zipFs);
+ if (errorCode != 0)
+ {
+ ZipFileClose();
+ return ZipReturn.ZipErrorOpeningFile;
+ }
+ _zipOpen = ZipOpenType.OpenWrite;
+
+ _signatureHeader = new SignatureHeader();
+ _header = new Header();
+
+ BinaryWriter bw = new BinaryWriter(_zipFs);
+ _signatureHeader.Write(bw);
+
+ _compressed = compressOutput;
+ _tmpOutStream = compressOutput ? new FileStream(_zipFileInfo.FullName + ".tmp", FileMode.Create, FileAccess.Write) : null;
+
+ return ZipReturn.ZipGood;
+ }
+
+ public ZipReturn ZipFileOpenWriteStream(bool raw, bool trrntzip, string filename, ulong uncompressedSize, ushort compressionMethod, out Stream stream)
+ {
+ return ZipFileOpenWriteStream(filename, uncompressedSize, out stream);
+ }
+ public ZipReturn ZipFileOpenWriteStream(string filename, ulong uncompressedSize, out Stream stream)
+ {
+ LocalFile lf = new LocalFile
+ {
+ FileName = filename,
+ UncompressedSize = uncompressedSize,
+ StreamOffset = (ulong)(_zipFs.Position - _signatureHeader.BaseOffset)
+ };
+
+ _localFiles.Add(lf);
+ stream = _tmpOutStream ?? _zipFs;
+ return ZipReturn.ZipGood;
+ }
+
+
+ public ZipReturn ZipFileCloseWriteStream(byte[] crc32)
+ {
+ _localFiles[_localFiles.Count - 1].crc = new[] { crc32[3], crc32[2], crc32[1], crc32[0] };
+ return ZipReturn.ZipGood;
+ }
+
+ private void Create7ZStructure()
+ {
+ int fileCount = _localFiles.Count;
+
+ //FileInfo
+ _header.FileInfo = new Structure.FileInfo
+ {
+ Names = new string[fileCount]
+ };
+
+ ulong emptyStreamCount = 0;
+ ulong emptyFileCount = 0;
+ for (int i = 0; i < fileCount; i++)
+ {
+ _header.FileInfo.Names[i] = _localFiles[i].FileName;
+
+ if (_localFiles[i].UncompressedSize != 0)
+ continue;
+
+ if (!_localFiles[i].isDirectory)
+ emptyFileCount += 1;
+
+ emptyStreamCount += 1;
+ }
+ ulong outFileCount = (ulong)_localFiles.Count - emptyStreamCount;
+
+ _header.FileInfo.EmptyStreamFlags = null;
+ _header.FileInfo.EmptyFileFlags = null;
+ _header.FileInfo.Attributes = null;
+
+ if (emptyStreamCount > 0)
+ {
+ if (emptyStreamCount != emptyFileCount) //then we found directories and need to set the attributes
+ _header.FileInfo.Attributes = new uint[fileCount];
+
+ if (emptyFileCount > 0)
+ _header.FileInfo.EmptyFileFlags = new bool[emptyStreamCount];
+
+ emptyStreamCount = 0;
+ _header.FileInfo.EmptyStreamFlags = new bool[fileCount];
+ for (int i = 0; i < fileCount; i++)
+ {
+ if (_localFiles[i].UncompressedSize != 0)
+ continue;
+
+ if (_localFiles[i].isDirectory)
+ _header.FileInfo.Attributes[i] = 0x10; // set attributes to directory
+ else
+ _header.FileInfo.EmptyFileFlags[emptyStreamCount] = true; // set empty file flag
+
+ _header.FileInfo.EmptyStreamFlags[i] = true;
+ emptyStreamCount += 1;
+ }
+ }
+
+
+
+ //StreamsInfo
+ _header.StreamsInfo = new StreamsInfo { PackPosition = 0 };
+
+ //StreamsInfo.PackedStreamsInfo
+ if (_compressed)
+ {
+ _header.StreamsInfo.PackedStreams = new PackedStreamInfo[1];
+ _header.StreamsInfo.PackedStreams[0] = new PackedStreamInfo { PackedSize = _packStreamSize };
+ }
+ else
+ {
+ _header.StreamsInfo.PackedStreams = new PackedStreamInfo[outFileCount];
+ int fileIndex = 0;
+ for (int i = 0; i < fileCount; i++)
+ {
+ if (_localFiles[i].UncompressedSize == 0)
+ continue;
+ _header.StreamsInfo.PackedStreams[fileIndex++] = new PackedStreamInfo { PackedSize = _localFiles[i].UncompressedSize };
+ }
+ }
+ //StreamsInfo.PackedStreamsInfo, no CRC or StreamPosition required
+
+ if (_compressed)
+ {
+ //StreamsInfo.Folders
+ _header.StreamsInfo.Folders = new Folder[1];
+
+ Folder folder = new Folder { Coders = new Coder[1] };
+
+ //StreamsInfo.Folders.Coder
+ // flags 0x23
+ folder.Coders[0] = new Coder
+ {
+ Method = new byte[] { 3, 1, 1 },
+ NumInStreams = 1,
+ NumOutStreams = 1,
+ Properties = _codeMSbytes
+ };
+ folder.BindPairs = null;
+ folder.PackedStreamIndices = new[] { (ulong)0 };
+ folder.UnpackedStreamSizes = new[] { _unpackedStreamSize };
+ folder.UnpackCRC = null;
+
+ folder.UnpackedStreamInfo = new UnpackedStreamInfo[outFileCount];
+ int fileIndex = 0;
+ for (int i = 0; i < fileCount; i++)
+ {
+ if (_localFiles[i].UncompressedSize == 0)
+ continue;
+ UnpackedStreamInfo unpackedStreamInfo = new UnpackedStreamInfo
+ {
+ UnpackedSize = _localFiles[i].UncompressedSize,
+ Crc = Util.bytestouint(_localFiles[i].crc)
+ };
+ folder.UnpackedStreamInfo[fileIndex++] = unpackedStreamInfo;
+ }
+ _header.StreamsInfo.Folders[0] = folder;
+ }
+ else
+ {
+ _header.StreamsInfo.Folders = new Folder[outFileCount];
+ int fileIndex = 0;
+ for (int i = 0; i < fileCount; i++)
+ {
+ if (_localFiles[i].UncompressedSize == 0)
+ continue;
+ Folder folder = new Folder { Coders = new Coder[1] };
+
+ //StreamsInfo.Folders.Coder
+ // flags 0x01
+ folder.Coders[0] = new Coder
+ {
+ Method = new byte[] { 0 },
+ NumInStreams = 1,
+ NumOutStreams = 1,
+ Properties = null
+ };
+
+ folder.BindPairs = null;
+ folder.PackedStreamIndices = new[] { (ulong)i };
+ folder.UnpackedStreamSizes = new[] { _localFiles[i].UncompressedSize };
+ folder.UnpackCRC = null;
+
+ folder.UnpackedStreamInfo = new UnpackedStreamInfo[1];
+ UnpackedStreamInfo unpackedStreamInfo = new UnpackedStreamInfo
+ {
+ UnpackedSize = _localFiles[i].UncompressedSize,
+ Crc = Util.bytestouint(_localFiles[i].crc)
+ };
+ folder.UnpackedStreamInfo[0] = unpackedStreamInfo;
+
+ _header.StreamsInfo.Folders[fileIndex++] = folder;
+ }
+ }
+ }
+
+ ulong _packStreamSize;
+ ulong _unpackedStreamSize;
+ byte[] _codeMSbytes;
+
+ private void CloseWriting7Zip(ICodeProgress p = null)
+ {
+ if (_compressed)
+ {
+ _unpackedStreamSize = (ulong)_tmpOutStream.Length;
+ _tmpOutStream.Close();
+ _tmpOutStream.Dispose();
+
+ UInt64 packStreamStart = (UInt64)_zipFs.Position;
+ using (Stream inStream = new FileStream(_zipFileInfo.FullName + ".tmp", FileMode.Open, FileAccess.Read))
+ {
+ LZMACompressFile.CompressFile(inStream, _zipFs, out _codeMSbytes, p);
+ }
+ _packStreamSize = (UInt64)_zipFs.Position - packStreamStart;
+
+ File.Delete(_zipFileInfo.FullName + ".tmp");
+ }
+
+ Create7ZStructure();
+
+ byte[] newHeaderByte;
+ using (Stream headerMem = new MemoryStream())
+ {
+ using (BinaryWriter headerBw = new BinaryWriter(headerMem))
+ {
+ _header.WriteHeader(headerBw);
+ newHeaderByte = new byte[headerMem.Length];
+ headerMem.Position = 0;
+ headerMem.Read(newHeaderByte, 0, newHeaderByte.Length);
+ }
+ }
+
+ CRC mainHeadercrc = new CRC();
+ mainHeadercrc.Update(newHeaderByte, 0, (uint)newHeaderByte.Length);
+ UInt32 mainHeaderCRC = mainHeadercrc.GetDigest();
+
+ UInt64 headerpos = (UInt64)_zipFs.Position;
+ BinaryWriter bw = new BinaryWriter(_zipFs);
+ bw.Write(newHeaderByte);
+
+ _signatureHeader.WriteFinal(bw, headerpos, (ulong)newHeaderByte.Length, mainHeaderCRC);
+
+ _zipFs.Flush();
+ _zipFs.Close();
+ _zipFs.Dispose();
+ }
+
+ #endregion
+
+
+ public void ZipFileAddDirectory(string filename)
+ {
+ LocalFile lf = new LocalFile
+ {
+ FileName = filename,
+ UncompressedSize = 0,
+ isDirectory = true,
+ StreamOffset = 0
+ };
+ _localFiles.Add(lf);
+ }
+
+ public ZipReturn ZipFileRollBack()
+ {
+ throw new NotImplementedException();
+ }
+
+ public void ZipFileCloseFailed()
+ {
+ throw new NotImplementedException();
+ }
+
+
+
+ }
+}
diff --git a/ROMVault2/SupportedFiles/SevenZip/Structure/BindPair.cs b/ROMVault2/SupportedFiles/SevenZip/Structure/BindPair.cs
new file mode 100644
index 0000000..8103a71
--- /dev/null
+++ b/ROMVault2/SupportedFiles/SevenZip/Structure/BindPair.cs
@@ -0,0 +1,24 @@
+using System.IO;
+
+namespace ROMVault2.SupportedFiles.SevenZip.Structure
+{
+ public class BindPair
+ {
+ public ulong InIndex;
+ public ulong OutIndex;
+
+ public void Read(BinaryReader br)
+ {
+ InIndex = br.ReadEncodedUInt64();
+ Util.log("InIndex = " + InIndex);
+ OutIndex = br.ReadEncodedUInt64();
+ Util.log("OutIndex = " + OutIndex);
+ }
+
+ public void Write(BinaryWriter bw)
+ {
+ bw.WriteEncodedUInt64(InIndex);
+ bw.WriteEncodedUInt64(OutIndex);
+ }
+ }
+}
diff --git a/ROMVault2/SupportedFiles/SevenZip/Structure/Coder.cs b/ROMVault2/SupportedFiles/SevenZip/Structure/Coder.cs
new file mode 100644
index 0000000..dcbe781
--- /dev/null
+++ b/ROMVault2/SupportedFiles/SevenZip/Structure/Coder.cs
@@ -0,0 +1,70 @@
+using System;
+using System.IO;
+
+namespace ROMVault2.SupportedFiles.SevenZip.Structure
+{
+ public class Coder
+ {
+ public byte[] Method;
+ public ulong NumInStreams;
+ public ulong NumOutStreams;
+ public byte[] Properties;
+
+ public void Read(BinaryReader br)
+ {
+ Util.log("Begin : ReadCoder", 1);
+
+ byte flags = br.ReadByte();
+ Util.log("Flags = " + flags.ToString("X"));
+ int decompressionMethodIdSize = flags & 0xf;
+ Method = br.ReadBytes(decompressionMethodIdSize);
+ if ((flags & 0x10) != 0)
+ {
+ NumInStreams = br.ReadEncodedUInt64();
+ Util.log("NumInStreams = " + NumInStreams);
+ NumOutStreams = br.ReadEncodedUInt64();
+ Util.log("NumOutStreams = " + NumOutStreams);
+ }
+ else
+ {
+ NumInStreams = 1;
+ NumOutStreams = 1;
+ }
+ if ((flags & 0x20) != 0)
+ {
+ ulong propSize = br.ReadEncodedUInt64();
+ Util.log("PropertiesSize = " + propSize);
+ Properties = br.ReadBytes((int)propSize);
+ Util.log("Properties = " + Properties);
+ }
+ if ((flags & 0x80) != 0)
+ throw new NotSupportedException("External flag");
+
+ Util.log("End : ReadCoder", -1);
+ }
+
+ public void Write(BinaryWriter bw)
+ {
+ byte flags = (byte)Method.Length;
+ if (NumInStreams != 1 || NumOutStreams != 1)
+ flags = (byte)(flags | 0x10);
+ if (Properties != null && Properties.Length > 0)
+ flags = (byte)(flags | 0x20);
+ bw.Write(flags);
+
+ bw.Write(Method);
+
+ if (NumInStreams != 1 || NumOutStreams != 1)
+ {
+ bw.WriteEncodedUInt64(NumInStreams);
+ bw.WriteEncodedUInt64(NumOutStreams);
+ }
+
+ if (Properties != null && Properties.Length > 0)
+ {
+ bw.WriteEncodedUInt64((ulong) Properties.Length);
+ bw.Write(Properties);
+ }
+ }
+ }
+}
diff --git a/ROMVault2/SupportedFiles/SevenZip/Structure/FileInfo.cs b/ROMVault2/SupportedFiles/SevenZip/Structure/FileInfo.cs
new file mode 100644
index 0000000..d42ae6c
--- /dev/null
+++ b/ROMVault2/SupportedFiles/SevenZip/Structure/FileInfo.cs
@@ -0,0 +1,128 @@
+using System;
+using System.IO;
+
+namespace ROMVault2.SupportedFiles.SevenZip.Structure
+{
+ public class FileInfo
+ {
+ public string[] Names;
+ public bool[] EmptyStreamFlags;
+ public bool[] EmptyFileFlags;
+ public uint[] Attributes;
+
+ public void Read(BinaryReader br)
+ {
+ Util.log("Begin : ReadFileInfo", 1);
+
+ ulong size = br.ReadEncodedUInt64();
+ Names = new string[size];
+
+ ulong numEmptyFiles = 0;
+
+ for (; ; )
+ {
+ HeaderProperty hp = (HeaderProperty)br.ReadByte();
+ Util.log("HeaderProperty = " + hp);
+ if (hp == HeaderProperty.kEnd)
+ {
+ Util.log("End : ReadFileInfo", -1);
+ return;
+ }
+
+ ulong bytessize = br.ReadEncodedUInt64();
+ switch (hp)
+ {
+ case HeaderProperty.kName:
+ if (br.ReadByte() != 0)
+ throw new Exception("Cannot be external");
+
+ Util.log("Looping Names Begin " + size, 1);
+ for (ulong i = 0; i < size; i++)
+ {
+ Names[i] = br.ReadName();
+ Util.log("enteries[" + i + "]=" + Names[i]);
+ }
+ Util.log("Looping Names End " + size, -1);
+ continue;
+
+ case HeaderProperty.kEmptyStream:
+ Util.log("reading EmptyStreamFlags Total=" + size);
+ EmptyStreamFlags = Util.ReadBoolFlags(br, (ulong)Names.Length);
+ for (ulong i = 0; i < size; i++)
+ if (EmptyStreamFlags[i]) numEmptyFiles++;
+ continue;
+
+ case HeaderProperty.kEmptyFile:
+ Util.log("reading numEmptyFilesFlags Total=" + numEmptyFiles);
+ EmptyFileFlags = Util.ReadBoolFlags(br, numEmptyFiles);
+ continue;
+
+ case HeaderProperty.kWinAttributes:
+ Util.log("skipping bytes " + bytessize);
+ Attributes = Util.ReadUInt32Def(br, size);
+ continue;
+
+ case HeaderProperty.kLastWriteTime:
+ Util.log("skipping bytes " + bytessize);
+ br.ReadBytes((int)bytessize);
+ continue;
+
+ case HeaderProperty.kDummy:
+ Util.log("skipping bytes " + bytessize);
+ br.ReadBytes((int)bytessize);
+ continue;
+
+ default:
+ throw new Exception(hp.ToString());
+ }
+ }
+ }
+
+ public void Write(BinaryWriter bw)
+ {
+ bw.Write((byte)HeaderProperty.kFilesInfo);
+ bw.WriteEncodedUInt64((UInt64)Names.Length);
+
+
+ byte[] namebyte;
+ using (MemoryStream nameMem = new MemoryStream())
+ {
+ using (BinaryWriter nameBw = new BinaryWriter(nameMem))
+ {
+ nameBw.Write((byte)0); //not external
+ foreach (string name in Names)
+ nameBw.WriteName(name);
+
+ namebyte = new byte[nameMem.Length];
+ nameMem.Position = 0;
+ nameMem.Read(namebyte, 0, namebyte.Length);
+ }
+ }
+
+ bw.Write((byte)HeaderProperty.kName);
+ bw.WriteEncodedUInt64((UInt64)namebyte.Length);
+ bw.Write(namebyte);
+
+ if (EmptyStreamFlags != null)
+ {
+
+ bw.Write((byte)HeaderProperty.kEmptyStream);
+ Util.WriteBoolFlags(bw, EmptyStreamFlags);
+ }
+
+ if (EmptyFileFlags != null)
+ {
+ bw.Write((byte)HeaderProperty.kEmptyFile);
+ Util.WriteBoolFlags(bw, EmptyFileFlags);
+ }
+
+ if (Attributes != null)
+ {
+ bw.Write((byte)HeaderProperty.kWinAttributes);
+ Util.WriteUint32Def(bw, Attributes);
+ }
+
+ bw.Write((byte)HeaderProperty.kEnd);
+ }
+ }
+}
diff --git a/ROMVault2/SupportedFiles/SevenZip/Structure/Folder.cs b/ROMVault2/SupportedFiles/SevenZip/Structure/Folder.cs
new file mode 100644
index 0000000..b7aca98
--- /dev/null
+++ b/ROMVault2/SupportedFiles/SevenZip/Structure/Folder.cs
@@ -0,0 +1,395 @@
+using System;
+using System.IO;
+
+namespace ROMVault2.SupportedFiles.SevenZip.Structure
+{
+ public class Folder
+ {
+
+
+ public Coder[] Coders;
+ public BindPair[] BindPairs;
+ public ulong[] PackedStreamIndices;
+ public ulong[] UnpackedStreamSizes;
+ public uint? UnpackCRC;
+ public UnpackedStreamInfo[] UnpackedStreamInfo;
+
+
+
+ private void ReadFolder(BinaryReader br)
+ {
+ Util.log("Begin : Read Folder", 1);
+
+ ulong numCoders = br.ReadEncodedUInt64();
+ Util.log("NumCoders = " + numCoders);
+
+ Coders = new Coder[numCoders];
+
+ int numInStreams = 0;
+ int numOutStreams = 0;
+
+ Util.log("Looping Coders Begin", 1);
+ for (ulong i = 0; i < numCoders; i++)
+ {
+ Util.log("Looping Coders : " + i);
+ Coders[i] = new Coder();
+ Coders[i].Read(br);
+
+ numInStreams += (int)Coders[i].NumInStreams;
+ numOutStreams += (int)Coders[i].NumOutStreams;
+ }
+ Util.log("Looping Coders End", -1);
+
+ int numBindPairs = numOutStreams - 1;
+ Util.log("numBindPairs : " + numBindPairs);
+ BindPairs = new BindPair[numBindPairs];
+
+ Util.log("Looping BindPairs Begin", 1);
+ for (int i = 0; i < numBindPairs; i++)
+ {
+ Util.log("Looping BindPairs : " + i);
+ BindPairs[i] = new BindPair();
+ BindPairs[i].Read(br);
+ }
+ Util.log("Looping BindPairs End", -1);
+
+ if (numInStreams < numBindPairs)
+ throw new NotSupportedException("Error");
+
+ int numPackedStreams = numInStreams - numBindPairs;
+ Util.log("numPackedStreams : " + numPackedStreams);
+
+ PackedStreamIndices = new ulong[numPackedStreams];
+
+ if (numPackedStreams == 1)
+ {
+ uint pi = 0;
+ for (uint j = 0; j < numInStreams; j++)
+ {
+ for (uint k = 0; k < BindPairs.Length; k++)
+ {
+ if (BindPairs[k].InIndex == j) continue;
+ Util.log("PackedStreamIndices[" + pi + "] : " + j);
+ PackedStreamIndices[pi++] = j;
+ break;
+ }
+ }
+ }
+ else
+ {
+ for (uint i = 0; i < numPackedStreams; i++)
+ {
+ PackedStreamIndices[i] = br.ReadEncodedUInt64();
+ Util.log("PackedStreamIndices[" + i + "] = " + PackedStreamIndices[i]);
+ }
+ }
+
+ Util.log("End : Read Folder", -1);
+ }
+ private void ReadUnpackedStreamSize(BinaryReader br)
+ {
+ ulong outStreams = 0;
+ foreach (Coder c in Coders)
+ outStreams += c.NumOutStreams;
+
+ Util.log("Looping UnpackedStreamSizes Begin", 1);
+ UnpackedStreamSizes = new ulong[outStreams];
+ for (uint j = 0; j < outStreams; j++)
+ {
+ UnpackedStreamSizes[j] = br.ReadEncodedUInt64();
+ Util.log("unpackedStreamSizes[" + j + "] = " + UnpackedStreamSizes[j]);
+ }
+ Util.log("Looping UnpackedStreamSizes End", -1);
+ }
+ private ulong GetUnpackSize()
+ {
+ ulong outStreams = 0;
+ foreach (Coder coder in Coders)
+ outStreams += coder.NumInStreams;
+
+ for (ulong j = 0; j < outStreams; j++)
+ {
+ bool found = false;
+ foreach (BindPair bindPair in BindPairs)
+ {
+ if (bindPair.OutIndex != j)
+ continue;
+ found = true;
+ break;
+ }
+ if (!found) return UnpackedStreamSizes[j];
+
+ }
+ return 0;
+ }
+
+
+ public static void ReadUnPackInfo(BinaryReader br,out Folder[] Folders)
+ {
+ Folders = null;
+ Util.log("Begin : ReadUnPackInfo", 1);
+
+ for (; ; )
+ {
+ HeaderProperty hp = (HeaderProperty)br.ReadByte();
+ Util.log("HeaderProperty = " + hp);
+ switch (hp)
+ {
+ case HeaderProperty.kFolder:
+ {
+ ulong numFolders = br.ReadEncodedUInt64();
+ Util.log("NumFolders = " + numFolders);
+
+ Folders = new Folder[numFolders];
+
+ byte external = br.ReadByte();
+ Util.log("External = " + external);
+ switch (external)
+ {
+ case 0:
+ {
+ Util.log("Looping Folders Begin", 1);
+ for (uint i = 0; i < numFolders; i++)
+ {
+ Util.log("Looping Folders : " + i);
+ Folders[i] = new Folder();
+ Folders[i].ReadFolder(br);
+ }
+ Util.log("Looping Folders End", -1);
+ break;
+ }
+ case 1:
+ throw new NotSupportedException("External flag");
+ }
+ continue;
+ }
+
+
+ case HeaderProperty.kCodersUnPackSize:
+ {
+ Util.log("Looping Folders Begin", 1);
+ for (uint i = 0; i < Folders.Length; i++)
+ {
+ Util.log("Looping Folders : " + i);
+ Folders[i].ReadUnpackedStreamSize(br);
+ }
+ Util.log("Looping Folders End", -1);
+ continue;
+ }
+
+ case HeaderProperty.kCRC:
+ {
+
+ uint?[] crcs;
+ Util.log("Looping CRC Begin", 1);
+ Util.UnPackCRCs(br,(ulong) Folders.Length, out crcs);
+ for (int i = 0; i < Folders.Length; i++)
+ {
+ Folders[i].UnpackCRC = crcs[i];
+ Util.log("Folder[" + i + "].UnpackCRC = " + (Folders[i].UnpackCRC ?? 0).ToString("X"));
+ }
+ Util.log("Looping CRC End", -1);
+ continue;
+ }
+ case HeaderProperty.kEnd:
+ Util.log("End : ReadUnPackInfo", -1);
+ return;
+
+ default:
+ throw new Exception(hp.ToString());
+ }
+
+
+ }
+ }
+
+ public static void ReadSubStreamsInfo(BinaryReader br,ref Folder[] Folders)
+ {
+ Util.log("Begin : ReadSubStreamsInfo", 1);
+
+ for (; ; )
+ {
+ HeaderProperty hp = (HeaderProperty)br.ReadByte();
+ Util.log("HeaderProperty = " + hp);
+ switch (hp)
+ {
+ case HeaderProperty.kNumUnPackStream:
+ {
+ Util.log("Looping Folders Begin", 1);
+ for (int f = 0; f < Folders.Length; f++)
+ {
+ int numStreams = (int)br.ReadEncodedUInt64();
+ Util.log("Folders[" + f + "].Length=" + numStreams);
+ Folders[f].UnpackedStreamInfo = new UnpackedStreamInfo[numStreams];
+ for (int i = 0; i < numStreams; i++)
+ Folders[f].UnpackedStreamInfo[i] = new UnpackedStreamInfo();
+ }
+ Util.log("Looping Folders End", -1);
+ continue;
+ }
+ case HeaderProperty.kSize:
+ {
+ Util.log("Looping Folders Begin", 1);
+ for (int f = 0; f < Folders.Length; f++)
+ {
+ Folder folder = Folders[f];
+
+ if (folder.UnpackedStreamInfo.Length == 0)
+ {
+ Util.log("Folder size is Zero for " + f + " Begin");
+ continue;
+ }
+
+ Util.log("Looping Folder UnpackedStreams" + f + " : " + (folder.UnpackedStreamInfo.Length - 1), 1);
+ ulong sum = 0;
+ for (int i = 0; i < folder.UnpackedStreamInfo.Length - 1; i++)
+ {
+ ulong size = br.ReadEncodedUInt64();
+ folder.UnpackedStreamInfo[i].UnpackedSize = size;
+ Util.log("UnpackedStreams[" + i + "].UnpackedSize = " + folder.UnpackedStreamInfo[i].UnpackedSize);
+ sum += size;
+ }
+ Util.log("Looping Folder UnpackedStreams " + f + " End", -1);
+
+ Util.log("Sum : " + sum + " : Folder[" + f + "].GetUnpackSize()=" + Folders[f].GetUnpackSize());
+ folder.UnpackedStreamInfo[folder.UnpackedStreamInfo.Length - 1].UnpackedSize = folder.GetUnpackSize() - sum;
+ Util.log("UnpackedStreams[" + (folder.UnpackedStreamInfo.Length - 1) + "].UnpackedSize = " + folder.UnpackedStreamInfo[folder.UnpackedStreamInfo.Length - 1].UnpackedSize);
+ }
+ Util.log("Looping Folders End", -1);
+ continue;
+ }
+ case HeaderProperty.kCRC:
+ {
+ ulong numCRC = 0;
+ foreach (var folder in Folders)
+ {
+ if (folder.UnpackedStreamInfo == null)
+ {
+ folder.UnpackedStreamInfo = new UnpackedStreamInfo[1];
+ folder.UnpackedStreamInfo[0] = new UnpackedStreamInfo();
+ folder.UnpackedStreamInfo[0].UnpackedSize = folder.GetUnpackSize();
+ }
+
+ if (folder.UnpackedStreamInfo.Length != 1 || !folder.UnpackCRC.HasValue)
+ numCRC += (ulong)folder.UnpackedStreamInfo.Length;
+ }
+
+ Util.log("Reading CRC Total : " + numCRC);
+ int crcIndex = 0;
+ uint?[] crc;
+ Util.UnPackCRCs(br, numCRC, out crc);
+ Util.log("Looping Folders Begin", 1);
+ for (uint i = 0; i < Folders.Length; i++)
+ {
+ Folder folder = Folders[i];
+ if (folder.UnpackedStreamInfo.Length == 1 && folder.UnpackCRC.HasValue)
+ {
+ folder.UnpackedStreamInfo[0].Crc = folder.UnpackCRC;
+ Util.log("UnpackedStreams[0].Crc = " + folder.UnpackedStreamInfo[0].Crc);
+ }
+ else
+ {
+ Util.log("Looping Folder UnpackedStreams" + i + " : " + (Folders[i].UnpackedStreamInfo.Length), 1);
+ for (uint j = 0; j < folder.UnpackedStreamInfo.Length; j++, crcIndex++)
+ {
+ folder.UnpackedStreamInfo[j].Crc = crc[crcIndex];
+ Util.log("UnpackedStreams[" + j + "].Crc = " + (folder.UnpackedStreamInfo[j].Crc ?? 0).ToString("X"));
+ }
+ Util.log("Looping Folder UnpackedStreams " + i + " End", -1);
+
+ }
+ }
+ Util.log("Looping Folders End", -1);
+
+ continue;
+ }
+ case HeaderProperty.kEnd:
+ Util.log("End : ReadSubStreamsInfo", -1);
+ return;
+
+ default:
+ throw new Exception(hp.ToString());
+ }
+ }
+ }
+
+ private void WriteFolder(BinaryWriter bw)
+ {
+ ulong numCoders = (ulong)Coders.Length;
+ bw.WriteEncodedUInt64(numCoders);
+ for (ulong i=0;i 1)
+ return ZipReturn.ZipUnsupportedCompression;
+
+ Folder firstFolder = streamsInfo.Folders[0];
+ if (firstFolder.Coders.Length > 1)
+ return ZipReturn.ZipUnsupportedCompression;
+
+ byte[] method = firstFolder.Coders[0].Method;
+ if (!(method.Length == 3 && method[0] == 3 && method[1] == 1 && method[2] == 1)) // LZMA
+ return ZipReturn.ZipUnsupportedCompression;
+
+ stream.Seek(baseOffset + (long)streamsInfo.PackPosition, SeekOrigin.Begin);
+ using (Decoder decoder = new Decoder())
+ {
+ decoder.SetDecoderProperties(firstFolder.Coders[0].Properties);
+ decoder.SetUpStream(stream);
+ ZipReturn zr = ReadHeaderOrPackedHeader(decoder, baseOffset, out header);
+ if (zr != ZipReturn.ZipGood)
+ return zr;
+ }
+ Util.log("End : ReadHeaderOrPackedHeader (Packed)", -1);
+ return ZipReturn.ZipGood;
+ }
+ case HeaderProperty.kHeader:
+ {
+ header = new Header();
+ header.Read(br);
+ Util.log("End : ReadHeaderOrPackedHeader (UnPacked)", -1);
+ return ZipReturn.ZipGood;
+ }
+ }
+
+ return ZipReturn.ZipCenteralDirError;
+ }
+
+
+
+
+
+ }
+}
diff --git a/ROMVault2/SupportedFiles/SevenZip/Structure/PackedStreamInfo.cs b/ROMVault2/SupportedFiles/SevenZip/Structure/PackedStreamInfo.cs
new file mode 100644
index 0000000..14afd6d
--- /dev/null
+++ b/ROMVault2/SupportedFiles/SevenZip/Structure/PackedStreamInfo.cs
@@ -0,0 +1,91 @@
+using System;
+using System.IO;
+
+namespace ROMVault2.SupportedFiles.SevenZip.Structure
+{
+ public class PackedStreamInfo
+ {
+ public ulong PackedSize;
+ public ulong? Crc;
+ public ulong StreamPosition;
+
+ public static void Read(BinaryReader br, out ulong packPosition, out PackedStreamInfo[] packedStreams)
+ {
+ Util.log("Begin : ReadPackInfo", 1);
+
+ packPosition = br.ReadEncodedUInt64();
+ Util.log("PackPosition = " + packPosition);
+
+ ulong numPackStreams = br.ReadEncodedUInt64();
+ Util.log("NumPackStreams = " + numPackStreams);
+
+ packedStreams = new PackedStreamInfo[numPackStreams];
+ for (ulong i = 0; i < numPackStreams; i++)
+ packedStreams[i] = new PackedStreamInfo();
+
+ ulong streamPosition = 0;
+
+ for (; ; )
+ {
+ HeaderProperty hp = (HeaderProperty)br.ReadByte();
+ Util.log("HeaderProperty = " + hp);
+ switch (hp)
+ {
+ case HeaderProperty.kSize:
+ for (ulong i = 0; i < numPackStreams; i++)
+ {
+ packedStreams[i].StreamPosition = streamPosition;
+ Util.log("PackdStream[" + i + "].StreamPosition = " + packedStreams[i].StreamPosition);
+ packedStreams[i].PackedSize = br.ReadEncodedUInt64();
+ Util.log("PackdStream[" + i + "].PackedSize = " + packedStreams[i].PackedSize);
+ streamPosition += packedStreams[i].PackedSize;
+ }
+ continue;
+
+ case HeaderProperty.kCRC:
+ for (ulong i = 0; i < numPackStreams; i++)
+ {
+ packedStreams[i].Crc = br.ReadEncodedUInt64();
+ Util.log("PackdStream[" + i + "].CRC = " + ((ulong)packedStreams[i].Crc).ToString("X"));
+ }
+ continue;
+
+ case HeaderProperty.kEnd:
+ Util.log("End : ReadPackInfo", -1);
+ return;
+
+ default:
+ throw new Exception(hp.ToString());
+ }
+ }
+ }
+
+ public static void Write(BinaryWriter bw,ulong packPosition, PackedStreamInfo[] packedStreams)
+ {
+ ulong numPackStreams =(ulong) packedStreams.Length;
+ bw.Write((byte)HeaderProperty.kPackInfo);
+ bw.WriteEncodedUInt64(packPosition);
+ bw.WriteEncodedUInt64(numPackStreams);
+
+ bw.Write((byte)HeaderProperty.kSize);
+ ulong streamPosition = 0;
+ for (ulong i = 0; i < numPackStreams; i++)
+ {
+ packedStreams[i].StreamPosition = streamPosition;
+ bw.WriteEncodedUInt64(packedStreams[i].PackedSize);
+ streamPosition += packedStreams[i].PackedSize;
+ }
+
+ // Only checking the first CRC assuming all the reset will be the same
+ if (packedStreams[0].Crc != null)
+ {
+ bw.Write((byte) HeaderProperty.kCRC);
+ for (ulong i = 0; i < numPackStreams; i++)
+ bw.WriteEncodedUInt64(packedStreams[i].Crc??0);
+ }
+
+ bw.Write((byte)HeaderProperty.kEnd);
+
+ }
+ }
+}
diff --git a/ROMVault2/SupportedFiles/SevenZip/Structure/SignatureHeader.cs b/ROMVault2/SupportedFiles/SevenZip/Structure/SignatureHeader.cs
new file mode 100644
index 0000000..aa199fe
--- /dev/null
+++ b/ROMVault2/SupportedFiles/SevenZip/Structure/SignatureHeader.cs
@@ -0,0 +1,117 @@
+using System;
+using System.IO;
+using ROMVault2.SupportedFiles.SevenZip.Common;
+
+namespace ROMVault2.SupportedFiles.SevenZip.Structure
+{
+ internal class SignatureHeader
+ {
+ private static readonly byte[] Signature = {(byte) '7', (byte) 'z', 0xBC, 0xAF, 0x27, 0x1C};
+
+ private byte _major;
+ private byte _minor;
+
+ private uint _startHeaderCRC;
+
+ public ulong NextHeaderOffset;
+ public ulong NextHeaderSize;
+ public uint NextHeaderCRC;
+
+ public bool Read(BinaryReader br)
+ {
+ Util.log("Begin: Read Header", 1);
+ byte[] signatureBytes = br.ReadBytes(6);
+ if (!signatureBytes.Compare(Signature))
+ {
+ Util.log("End: Read Header signature Failed", -1);
+ return false;
+ }
+
+ _major = br.ReadByte();
+ Util.log("Major = " + _major);
+ _minor = br.ReadByte();
+ Util.log("Minor = " + _minor);
+
+ _startHeaderCRC = br.ReadUInt32();
+ Util.log("HeaderCRC = " + _startHeaderCRC.ToString("X"));
+
+ long pos = br.BaseStream.Position;
+ byte[] mainHeader = new byte[8 + 8 + 4];
+ br.BaseStream.Read(mainHeader, 0, mainHeader.Length);
+ if (!CRC.VerifyDigest(_startHeaderCRC, mainHeader, 0, (uint)mainHeader.Length))
+ return false;
+ br.BaseStream.Seek(pos, SeekOrigin.Begin);
+
+ NextHeaderOffset = br.ReadUInt64();
+ Util.log("NextHeaderOffset = " + NextHeaderOffset);
+ NextHeaderSize = br.ReadUInt64();
+ Util.log("NextHeaderSize = " + NextHeaderSize);
+ NextHeaderCRC = br.ReadUInt32();
+ Util.log("NextHeaderCRC = " + NextHeaderCRC.ToString("X"));
+
+ Util.log("End: Read Header", -1);
+ return true;
+ }
+
+
+ private long _crcOffset;
+ public long BaseOffset { get; private set; }
+
+ public void Write(BinaryWriter bw)
+ {
+ //SignatureHeader
+ //~~~~~~~~~~~~~~~
+
+ bw.Write(Signature);
+
+ //ArchiveVersion
+ //{
+ bw.Write((byte) 0); // BYTE Major
+ bw.Write((byte) 3); // BYTE Minor
+ //};
+
+ _crcOffset = bw.BaseStream.Position;
+ bw.Write((uint) 0); //HeaderCRC
+
+ //StartHeader
+ //{
+ bw.Write((ulong) 0); //NextHeaderOffset
+ bw.Write((ulong) 0); //NextHeaderSize
+ bw.Write((uint) 0); //NextHeaderCRC
+ //}
+
+ BaseOffset = bw.BaseStream.Position;
+ }
+
+ public void WriteFinal(BinaryWriter bw, ulong headerpos, ulong headerLength, uint headerCRC)
+ {
+ long fileEnd = bw.BaseStream.Position;
+
+
+ byte[] sigHeaderBytes;
+ using (MemoryStream sigHeaderMem = new MemoryStream())
+ {
+ using (BinaryWriter sigHeaderBw = new BinaryWriter(sigHeaderMem))
+ {
+ sigHeaderBw.Write((ulong) ((long) headerpos - BaseOffset)); //NextHeaderOffset
+ sigHeaderBw.Write(headerLength); //NextHeaderSize
+ sigHeaderBw.Write(headerCRC); //NextHeaderCRC
+
+ sigHeaderBytes = new byte[sigHeaderMem.Length];
+ sigHeaderMem.Position = 0;
+ sigHeaderMem.Read(sigHeaderBytes, 0, sigHeaderBytes.Length);
+ }
+ }
+
+ CRC sigHeadercrc = new CRC();
+ sigHeadercrc.Update(sigHeaderBytes, 0, (uint) sigHeaderBytes.Length);
+ UInt32 sigHeaderCRC = sigHeadercrc.GetDigest();
+
+ bw.BaseStream.Position = _crcOffset;
+ bw.Write(sigHeaderCRC); //Header CRC
+ bw.Write(sigHeaderBytes);
+
+ bw.BaseStream.Seek(fileEnd, SeekOrigin.Begin);
+ }
+ }
+}
diff --git a/ROMVault2/SupportedFiles/SevenZip/Structure/StreamsInfo.cs b/ROMVault2/SupportedFiles/SevenZip/Structure/StreamsInfo.cs
new file mode 100644
index 0000000..6502b15
--- /dev/null
+++ b/ROMVault2/SupportedFiles/SevenZip/Structure/StreamsInfo.cs
@@ -0,0 +1,52 @@
+using System;
+using System.IO;
+
+namespace ROMVault2.SupportedFiles.SevenZip.Structure
+{
+ public class StreamsInfo
+ {
+ public ulong PackPosition;
+ public PackedStreamInfo[] PackedStreams;
+ public Folder[] Folders;
+
+ public void Read(BinaryReader br)
+ {
+ Util.log("Begin : ReadStreamsInfo", 1);
+ for (; ; )
+ {
+ HeaderProperty hp = (HeaderProperty)br.ReadByte();
+ Util.log("HeaderProperty = " + hp);
+ switch (hp)
+ {
+ case HeaderProperty.kPackInfo:
+ PackedStreamInfo.Read(br, out PackPosition, out PackedStreams);
+ continue;
+
+ case HeaderProperty.kUnPackInfo:
+ Folder.ReadUnPackInfo(br, out Folders);
+ continue;
+
+ case HeaderProperty.kSubStreamsInfo:
+ Folder.ReadSubStreamsInfo(br, ref Folders);
+ continue;
+
+ case HeaderProperty.kEnd:
+ Util.log("End : ReadStreamInfo", -1);
+ return;
+
+ default:
+ throw new Exception(hp.ToString());
+ }
+ }
+ }
+
+ public void Write(BinaryWriter bw)
+ {
+ bw.Write((byte)HeaderProperty.kMainStreamsInfo);
+ PackedStreamInfo.Write(bw, PackPosition, PackedStreams);
+ Folder.WriteUnPackInfo(bw, Folders);
+ Folder.WriteSubStreamsInfo(bw, Folders);
+ bw.Write((byte)HeaderProperty.kEnd);
+ }
+ }
+}
diff --git a/ROMVault2/SupportedFiles/SevenZip/Structure/UnpackedStreamInfo.cs b/ROMVault2/SupportedFiles/SevenZip/Structure/UnpackedStreamInfo.cs
new file mode 100644
index 0000000..5a73a83
--- /dev/null
+++ b/ROMVault2/SupportedFiles/SevenZip/Structure/UnpackedStreamInfo.cs
@@ -0,0 +1,8 @@
+namespace ROMVault2.SupportedFiles.SevenZip.Structure
+{
+ public class UnpackedStreamInfo
+ {
+ public ulong UnpackedSize;
+ public uint? Crc;
+ }
+}
diff --git a/ROMVault2/SupportedFiles/SevenZip/TesterStream.cs b/ROMVault2/SupportedFiles/SevenZip/TesterStream.cs
new file mode 100644
index 0000000..e41072c
--- /dev/null
+++ b/ROMVault2/SupportedFiles/SevenZip/TesterStream.cs
@@ -0,0 +1,82 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+
+namespace ROMVault2.SupportedFiles.SevenZip
+{
+ public class TesterStream : Stream
+ {
+ private int pos = 0;
+ private List arrByte;
+ private byte[] testarr;
+ private int index = 0;
+
+ public TesterStream(byte[] test)
+ {
+ arrByte=new List();
+ testarr = test;
+ index = 0;
+ }
+
+ public override void Flush()
+ {
+ throw new NotImplementedException();
+ }
+
+ public override long Seek(long offset, SeekOrigin origin)
+ {
+ throw new NotImplementedException();
+ }
+
+ public override void SetLength(long value)
+ {
+ throw new NotImplementedException();
+ }
+
+ public override int Read(byte[] buffer, int offset, int count)
+ {
+ for (int i = 0; i < count; i++)
+ {
+ buffer[offset + i] = arrByte[pos];
+ pos += 1;
+ }
+ return count;
+ }
+
+ public override void Write(byte[] buffer, int offset, int count)
+ {
+ for (int i = 0; i < count; i++)
+ {
+ byte test = buffer[i + offset];
+ arrByte.Add(test);
+ if (test != testarr[index])
+ {
+ Console.WriteLine("Expected ="+testarr[index]+" : Found = "+test);
+ }
+ index += 1;
+ }
+ }
+
+ public override bool CanRead
+ {
+ get { throw new NotImplementedException(); }
+ }
+
+ public override bool CanSeek
+ {
+ get { throw new NotImplementedException(); }
+ }
+
+ public override bool CanWrite
+ {
+ get { return true; }
+ }
+
+ public override long Length
+ {
+ get { return arrByte.Count; }
+ }
+
+ public override long Position { get; set; }
+ }
+}
diff --git a/ROMVault2/SupportedFiles/SevenZip/Util.cs b/ROMVault2/SupportedFiles/SevenZip/Util.cs
new file mode 100644
index 0000000..9970d55
--- /dev/null
+++ b/ROMVault2/SupportedFiles/SevenZip/Util.cs
@@ -0,0 +1,315 @@
+using System;
+using System.Diagnostics;
+using System.IO;
+using System.Text;
+
+namespace ROMVault2.SupportedFiles.SevenZip
+{
+ public enum HeaderProperty
+ {
+ kEnd,
+ kHeader,
+
+ kArchiveProperties,
+
+ kAdditionalStreamsInfo,
+ kMainStreamsInfo,
+ kFilesInfo,
+
+ kPackInfo,
+ kUnPackInfo,
+ kSubStreamsInfo,
+
+ kSize,
+ kCRC,
+
+ kFolder,
+
+ kCodersUnPackSize,
+ kNumUnPackStream,
+
+ kEmptyStream,
+ kEmptyFile,
+ kAnti,
+
+ kName,
+ kCreationTime,
+ kLastAccessTime,
+ kLastWriteTime,
+ kWinAttributes,
+ kComment,
+
+ kEncodedHeader,
+
+ kStartPos,
+ kDummy
+ }
+
+ public static class Util
+ {
+ public static readonly Encoding Enc = Encoding.GetEncoding(28591);
+
+ private static int indent = 0;
+ public static void log(string txt, int ind = 0)
+ {
+ if (ind < 0) indent += ind;
+ for (int i = 0; i < indent; i++)
+ Debug.Write(" ");
+ Debug.WriteLine(txt);
+ if (ind == -1)
+ Debug.WriteLine("");
+ if (ind > 0) indent += ind;
+ }
+
+ public static void memset(byte[] buffer, int start, byte val, int len)
+ {
+ for (int i = 0; i < len; i++)
+ buffer[start + i] = val;
+ }
+
+ public static void memcpyr(byte[] destBuffer, int destPoint, byte[] sourceBuffer, int sourcePoint, int len)
+ {
+ for (int i = len - 1; i >= 0; i--)
+ destBuffer[destPoint + i] = sourceBuffer[sourcePoint + i];
+ }
+
+
+ public static bool memcmp(byte[] buffer1, int offset, byte[] buffer2, int len)
+ {
+ for (int i = 0; i < len; i++)
+ {
+ if (buffer1[offset + i] != buffer2[i])
+ return false;
+ }
+ return true;
+ }
+
+
+
+ public static bool Compare(this byte[] b1, byte[] b2)
+ {
+ if (b1 == null || b2 == null) return false;
+
+ if (b1.Length != b2.Length) return false;
+
+ for (int i = 0; i < b1.Length; i++)
+ if (b1[i] != b2[i]) return false;
+
+ return true;
+ }
+
+
+ public static ulong ReadEncodedUInt64(this BinaryReader br)
+ {
+ byte mask = 0x80;
+ int i;
+ byte firstByte = br.ReadByte();
+ ulong value = 0;
+ for (i = 0; i < 8; i++)
+ {
+ if ((firstByte & mask) == 0)
+ {
+ ulong highPart = (ulong)(firstByte & (mask - 1));
+ value += (highPart << (8 * i));
+ return value;
+ }
+ byte b = br.ReadByte();
+ value |= ((ulong)b << (8 * i));
+ mask >>= 1;
+ }
+ return value;
+ }
+ public static void WriteEncodedUInt64(this BinaryWriter bw, ulong value)
+ {
+ byte firstByte = 0;
+ byte mask = 0x80;
+ int i;
+ for (i = 0; i < 8; i++)
+ {
+ if (value < ((ulong)(1) << (7 * (i + 1))))
+ {
+ firstByte |= (byte)(value >> (8 * i));
+ break;
+ }
+ firstByte |= mask;
+ mask >>= 1;
+ }
+ bw.Write(firstByte);
+ for (; i > 0; i--)
+ {
+ bw.Write((byte)value);
+ value >>= 8;
+ }
+ }
+
+ public static string ReadName(this BinaryReader br)
+ {
+ StringBuilder stringBuilder = new StringBuilder();
+ for (; ; )
+ {
+ char c = (char)br.ReadUInt16();
+ if (c == 0) return stringBuilder.ToString();
+ stringBuilder.Append(c);
+ }
+ }
+
+ public static void WriteName(this BinaryWriter bw, string name)
+ {
+ char[] chars = name.ToCharArray();
+ for (int i = 0; i < chars.Length; i++)
+ {
+ bw.Write((UInt16)chars[i]);
+ }
+ bw.Write((UInt16)0);
+ }
+
+
+
+ public static void UnPackCRCs(BinaryReader br, ulong numItems, out uint?[] digests)
+ {
+ bool[] digestsDefined = ReadBoolFlagsDefaultTrue(br, numItems);
+ digests = new uint?[numItems];
+ for (ulong i = 0; i < numItems; i++)
+ {
+ if (digestsDefined[i])
+ {
+ digests[i] = br.ReadUInt32();
+ }
+ }
+ }
+ private static bool[] ReadBoolFlagsDefaultTrue(BinaryReader br, ulong numItems)
+ {
+ byte allAreDefined = br.ReadByte();
+ if (allAreDefined == 0)
+ {
+ return ReadBoolFlags(br, numItems);
+ }
+ bool[] flags = new bool[numItems];
+ for (ulong i = 0; i < numItems; i++)
+ {
+ flags[i] = true;
+ }
+ return flags;
+ }
+ public static bool[] ReadBoolFlags(BinaryReader br, ulong numItems)
+ {
+ byte b = 0;
+ byte mask = 0;
+
+ bool[] flags = new bool[numItems];
+ for (ulong i = 0; i < numItems; i++)
+ {
+ if (mask == 0)
+ {
+ b = br.ReadByte();
+ mask = 0x80;
+ }
+
+ flags[i] = ((b & mask) != 0);
+
+ mask >>= 1;
+ }
+ return flags;
+ }
+
+ public static bool[] ReadBoolFlags2(BinaryReader br, ulong numItems)
+ {
+ byte allAreDefined = br.ReadByte();
+ if (allAreDefined == 0)
+ return ReadBoolFlags(br, numItems);
+
+
+ bool[] flags = new bool[numItems];
+ for (ulong i = 0; i < numItems; i++)
+ flags[i] = true;
+ return flags;
+ }
+
+ public static void WriteUint32Def(BinaryWriter br, uint[] values)
+ {
+ br.WriteEncodedUInt64((ulong)(values.Length * 4 + 2));
+ br.Write((byte)1);
+ br.Write((byte)0);
+ for (int i = 0; i < values.Length; i++)
+ br.Write(values[i]);
+ }
+
+ public static uint[] ReadUInt32Def(BinaryReader br, ulong numItems)
+ {
+ uint[] v = new uint[numItems];
+ bool[] defs = ReadBoolFlags2(br, numItems);
+ byte tmp = br.ReadByte();
+ for (ulong i = 0; i < numItems; i++)
+ v[i] = defs[i] ? br.ReadUInt32() : 0;
+
+ return v;
+ }
+
+ public static ulong[] ReadUInt64Def(BinaryReader br, ulong numItems)
+ {
+ ulong[] v = new ulong[numItems];
+ bool[] defs = ReadBoolFlags2(br, numItems);
+ byte tmp = br.ReadByte();
+ for (ulong i = 0; i < numItems; i++)
+ v[i] = defs[i] ? br.ReadUInt64() : 0;
+
+ return v;
+ }
+
+ public static void WriteBoolFlags(BinaryWriter bw, bool[] bArray)
+ {
+ bw.WriteEncodedUInt64((ulong)((bArray.Length + 7) / 8));
+ byte mask = 0x80;
+ byte tmpOut = 0;
+ for (int i = 0; i < bArray.Length; i++)
+ {
+ if (bArray[i])
+ tmpOut |= mask;
+
+ mask >>= 1;
+ if (mask != 0)
+ continue;
+
+ bw.Write(tmpOut);
+ mask = 0x80;
+ tmpOut = 0;
+ }
+ if (mask != 0x80)
+ bw.Write(tmpOut);
+ }
+
+ public static byte[] uinttobytes(uint? crc)
+ {
+ if (crc == null) return null;
+ uint c = (uint)crc;
+
+ byte[] b = new byte[4];
+ b[0] = (byte)((c >> 24) & 0xff);
+ b[1] = (byte)((c >> 16) & 0xff);
+ b[2] = (byte)((c >> 8) & 0xff);
+ b[3] = (byte)((c >> 0) & 0xff);
+ return b;
+ }
+ public static uint? bytestouint(byte[] crc)
+ {
+ if (crc == null) return null;
+
+ return (uint?)(crc[0] << 24 | (crc[1] << 16) | (crc[2] << 8) | (crc[3] << 0));
+ }
+ public static bool ByteArrCompare(byte[] b0, byte[] b1)
+ {
+ if (b0 == null || b1 == null)
+ return false;
+ if (b0.Length != b1.Length)
+ return false;
+
+ for (int i = 0; i < b0.Length; i++)
+ {
+ if (b0[i] != b1[i])
+ return false;
+ }
+ return true;
+ }
+
+ }
+}
diff --git a/ROMVault2/SupportedFiles/Zip/zipFile.cs b/ROMVault2/SupportedFiles/Zip/zipFile.cs
index a31b24d..49dce60 100644
--- a/ROMVault2/SupportedFiles/Zip/zipFile.cs
+++ b/ROMVault2/SupportedFiles/Zip/zipFile.cs
@@ -18,7 +18,7 @@ using ROMVault2.SupportedFiles.Zip.ZLib;
namespace ROMVault2.SupportedFiles.Zip
{
- public class ZipFile
+ public class ZipFile : ICompress
{
const int Buffersize = 4096 * 128;
private static byte[] _buffer;
@@ -807,7 +807,7 @@ namespace ROMVault2.SupportedFiles.Zip
private ZipStatus _pZipStatus;
private bool _zip64;
- public ZipOpenType ZipOpen;
+ public ZipOpenType ZipOpen { get; private set; }
public ZipStatus ZipStatus { get { return _pZipStatus; } }
@@ -823,7 +823,7 @@ namespace ROMVault2.SupportedFiles.Zip
public byte[] CRC32(int i) { return _localFiles[i].CRC; }
public byte[] MD5(int i) { return _localFiles[i].md5; }
public byte[] SHA1(int i) { return _localFiles[i].sha1; }
-
+
~ZipFile()
{
diff --git a/ROMVault2/SupportedFiles/ZipEnums.cs b/ROMVault2/SupportedFiles/ZipEnums.cs
index d80d9fc..61ce79a 100644
--- a/ROMVault2/SupportedFiles/ZipEnums.cs
+++ b/ROMVault2/SupportedFiles/ZipEnums.cs
@@ -34,6 +34,7 @@ namespace ROMVault2.SupportedFiles
ZipErrorReadingFile,
ZipErrorTimeStamp,
ZipErrorRollBackFile,
+ ZipTryingToAccessADirectory,
ZipUntested
}
diff --git a/ROMVault2/Utils/DBTypeGet.cs b/ROMVault2/Utils/DBTypeGet.cs
index 25daa43..613a1d9 100644
--- a/ROMVault2/Utils/DBTypeGet.cs
+++ b/ROMVault2/Utils/DBTypeGet.cs
@@ -19,6 +19,8 @@ namespace ROMVault2.Utils
return FileType.Dir;
case FileType.ZipFile:
return FileType.Zip;
+ case FileType.SevenZipFile:
+ return FileType.SevenZip;
}
return FileType.Zip;
}
@@ -31,13 +33,15 @@ namespace ROMVault2.Utils
return FileType.File;
case FileType.Zip:
return FileType.ZipFile;
+ case FileType.SevenZip:
+ return FileType.SevenZipFile;
}
return FileType.Zip;
}
public static bool isCompressedDir(FileType fileType)
{
- return (fileType == FileType.Zip);
+ return (fileType == FileType.Zip || fileType==FileType.SevenZip);
}
public static RvBase GetRvType(FileType fileType)
@@ -46,9 +50,11 @@ namespace ROMVault2.Utils
{
case FileType.Dir:
case FileType.Zip:
+ case FileType.SevenZip:
return new RvDir(fileType);
case FileType.File:
case FileType.ZipFile:
+ case FileType.SevenZipFile:
return new RvFile(fileType);
default:
throw new Exception("Unknown file type");
diff --git a/ROMVault2/rvImages.cs b/ROMVault2/rvImages.cs
index c867a9b..e9aed7b 100644
--- a/ROMVault2/rvImages.cs
+++ b/ROMVault2/rvImages.cs
@@ -11,10 +11,6 @@ namespace ROMVault2
{
public static class rvImages
{
- private static List names;
- private static List images;
-
-
public static Bitmap GetBitmap(string bitmapName)
{
object bmObj = rvImages1.ResourceManager.GetObject(bitmapName);
@@ -25,32 +21,5 @@ namespace ROMVault2
return bm;
}
-
- public static Bitmap TickBoxDisabled
- {
- get { return GetBitmap("TickBoxDisabled"); }
- }
- public static Bitmap TickBoxTicked
- {
- get { return GetBitmap("TickBoxTicked"); }
- }
- public static Bitmap TickBoxUnTicked
- {
- get { return GetBitmap("TickBoxUnTicked"); }
- }
-
- public static Bitmap ExpandBoxMinus
- {
- get { return GetBitmap("ExpandBoxMinus"); }
- }
- public static Bitmap ExpandBoxPlus
- {
- get { return GetBitmap("ExpandBoxPlus"); }
- }
-
- public static Bitmap romvaultTZ
- {
- get { return GetBitmap("romvaultTZ"); }
- }
}
}
diff --git a/ROMVault2/rvImages1.Designer.cs b/ROMVault2/rvImages1.Designer.cs
index 341dc40..7c08bf2 100644
--- a/ROMVault2/rvImages1.Designer.cs
+++ b/ROMVault2/rvImages1.Designer.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
//
// This code was generated by a tool.
-// Runtime Version:4.0.30319.34011
+// Runtime Version:4.0.30319.0
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
@@ -60,6 +60,56 @@ namespace ROMVault2 {
}
}
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap btnFindFixes_BackgroundImage {
+ get {
+ object obj = ResourceManager.GetObject("btnFindFixes_BackgroundImage", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap btnFixFiles_BackgroundImage {
+ get {
+ object obj = ResourceManager.GetObject("btnFixFiles_BackgroundImage", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap btnReport_BackgroundImage {
+ get {
+ object obj = ResourceManager.GetObject("btnReport_BackgroundImage", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap btnScanRoms_BackgroundImage {
+ get {
+ object obj = ResourceManager.GetObject("btnScanRoms_BackgroundImage", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap btnUpdateDats_BackgroundImage {
+ get {
+ object obj = ResourceManager.GetObject("btnUpdateDats_BackgroundImage", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
///
/// Looks up a localized resource of type System.Drawing.Bitmap.
///
@@ -610,6 +660,56 @@ namespace ROMVault2 {
}
}
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap SevenZipDirCorrect {
+ get {
+ object obj = ResourceManager.GetObject("SevenZipDirCorrect", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap SevenZipDirInToSort {
+ get {
+ object obj = ResourceManager.GetObject("SevenZipDirInToSort", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap SevenZipDirMissing {
+ get {
+ object obj = ResourceManager.GetObject("SevenZipDirMissing", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap SevenZipDirUnknown {
+ get {
+ object obj = ResourceManager.GetObject("SevenZipDirUnknown", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap SevenZipTZ {
+ get {
+ object obj = ResourceManager.GetObject("SevenZipTZ", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
///
/// Looks up a localized resource of type System.Drawing.Bitmap.
///
diff --git a/ROMVault2/rvImages1.resx b/ROMVault2/rvImages1.resx
index 75a2f72..73d104f 100644
--- a/ROMVault2/rvImages1.resx
+++ b/ROMVault2/rvImages1.resx
@@ -118,122 +118,6 @@
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- iVBORw0KGgoAAAANSUhEUgAAAG4AAABuCAYAAADGWyb7AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
- vAAADrwBlbxySQAAABl0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuODc7gF0AABmcSURBVHhe7Z0J
- uFRFdseVZEaGYYwYnUzUGEejIyY6TphonAijMd9EYTRGjRmNDONEUWMENQgGl4AKPPHhe/DeE/d933Df
- d0VFUXHDBXHBDTcUwQWF6Tm/+93/S01Zfbvu7X6PBrq+7/919+2+t+ue362qc07V7V6tURqlURqlURql
- UbqmnHbaaeu2tbX9tKOjY//29vZR9niW6a7W1tYTR4wYscnaa6/d0z72x6bVkx0apXuKgfm2qZ/B2MMA
- HZqCucX0pG1faiplacqUKS8MGDDgr+xQ3zN9y9QAWKtiBt7SWssvDMZB9thij5cBxrTQB+HrzDPPLJ1/
- /vmlK664onTNNdeUbrzxxtJtt91Wuvjii5P3+MykSZNmbbDBBj+2r1rXRAtswMtTzIjfNxijTWeanjDN
- cyGENHXq1ATMpZdeWrr66qtLt956a+mee+4pPfTQQ6Wnn3669Oyzz5aee+650vPPP588IrY/8cQTpQce
- eKB07rnnJscZN27cjJ49e/7UqvHnpga82GLGW8N0u2kZhnR13nnnlS666KLSVVddVbr55ptLd9xxR2n6
- 9Omlp556KgEDlNmzZ5deeOGF0ksvvVSaM2dO6ZVXXinNnTu39Oqrr5Zee+21TrGN9/jsM888kwA+66yz
- ku8ZM2bMg1aVfqY/M61hasDLKma0dUy3mL7AgJdffnnSah5++OHOVgOcF198MQHz8ssvJ3BcMK+//npp
- 3rx5id58883SW2+9VXrnnXdKb7/9dvL47rvvJo+I9954440EIMcF3hlnnJHAGzVq1I1WpZ+Yvm/6tqkB
- r1wxg92K0QSNlkSXBiSMKzgY2wXjQpk/f36i999/P9GHH36Y6KOPPvoDsY332YdjcGxaH92m6jB8+PCL
- rFpbmdYxNRyWUDFDbYGx6K4w3qxZs5KWhUGBhHEF5r333usE88EHH/wBnAULFiT6+OOPE33yySelhQsX
- fkNs53Psw/GAL3i0csE76KCDOqx6f2Na21T38KzOCnt2aW5u3sA29UjVNfW2LzwDQ+H10dJoZXR7GBRY
- bqvxwQiOC+nTTz+tKD7PMQSPi4Nul3Hy9ttvT8CZAZbtt99+J1kV+5r6mJZrrGd16mce9U5WLzzrEw3S
- 2fZ8uuk56ivZ68UW4sw46qijdrHd1jThaAGwdsW+aF3T53wh4wxXPdBoYQADlAvIlQ9j0aJF39hWTuwv
- eHwPFwjdr8Y8vNPUCEv32GOPo62qm5n+xAS8mhf7rg2VJLDHYfZILHqdKSrkQYzR55xzTudrg/uxXXi/
- ssOvZ/qu6Y/4rpoUq9SxfAmuPA4IVz0tjW4Qo7qQ8oBBIbjapuMCj1bnw2N8xYOlbmbILwcOHHiYVXdT
- E1dwLgPYMb5jIkHwSzvWwcShaWsByly+I0aEPBdeeGHpyiuvLF133XWJd33vvfeWHnzwwdJjjz1WevTR
- R5Pn9Bh8ln0sxHnSqrCdaUMT8KpveXZgMh7v8gWMLXSRjGl0XRhTrayc0d33yr0fkvsZtTq+j4uFlk4d
- 8FhpeRiJ+lnX82n//v1/Y9Xe2ESGpROevf8jA7GtQaALIwZNUmqAsfeWsH8lnX322YmxccwU8tx5553J
- mA8Uxn15125cSg9F985zQpuZM2cmYRKxLMdtaWlZ1Lt3b+q9rYkQh7G6umIn9msOTnzmtza6SN/IMVBC
- Cu3ndr0uPHmbwNOYx9ibGuFji/Out4H/egM1y+o/X4bP0umnn55AIVPDhXDDDTckYIBCuPPkk08mYDC8
- oPC9blyKysWmDC28JkRiX+DJQ7Y6/m6ttdY61sy9q4m0Xi9sX1Wxg87i4LfccktSQVx9jW0YsxyoojB9
- WP6jPE3Bo9uUt0lLcGG4YlwBDFCuvfbaBMrdd9+dGI/sDA6Xn8ERFD8u9cEARSEQcsMgpFCIbXyW43AB
- 0G1ywVA/A3eymXuwifCGrr54sQP+nINecMEFyUlRaSpFNynPUUYOyYXgb3MfY8X3Ib6bC0fdpgyCQYFA
- 9wUUWsrjjz+e1B25rUVgQsmCvFAEBmEbSSGRwiK2sQ/H5rupm7JBG264YbuZ/EAT6Ty84+KesbW2Gzgo
- VygnyxdSSXWTGNOFUhSIBJTQdkngXHgYBYeFemFUjEw9MT4gAIKAKpUDIygCIyB6VIzqQsEWEvXxRe8g
- 8RmOw/dxwXCROeCmmskPNm1j+lNTMXB2sE1MyXTLjBkzvtFNukaOBebu4z7Xa23T83JSa5dBqI8MipFl
- fEC4LSXUWgREUIARC8aFEiOB42KhB7j//vs7Zz6OPfbYuU1NTW9YY1lmmmPbLjcdY/rHFElcsR1O5ICX
- XXZZMihz1XLinAyVcI0uY/vbJPc9PecxRoLEo/8cySgYEsPI8MhtIXrtgikHRcdE7ndkbQsJQHSJeJx0
- 34QHhFTYNYfweH+QYqlcjPp57HjTTTcl4wJdDFcpJ0zFs4DEguE4Wdv0nMcYYSwZ3gXhS+9rH/8YeUR3
- yzACHGKzadOmRcEhtCCBcNdddyVdJt069uV8eQQ4Q1T6eTJDccVc6TZ2wi1mIGdM4IBcnVRYxo2RjBJ6
- D+k997EaUb/QtiICMGOivEDgYHDCBkEoJzxZjE/8SzjBcegqubC/+uqr0pIlS76hL7/8slM4Temxbkqx
- ZBf7YA9rcdPZiS+FPlcWYwLgMESW4cttc9/z39c2/z1XGDK0TfJfl9smua2QK54hAU8UOIQNeNOp4cqK
- CV4u7vvuuy/Zn+6RrpgQCDiuKoFCX3zxRadoMOn3nJ2iyS72wT4GLsm9cZXhmFAh1zEJAaiVMKr7PPQ6
- Sy4QbaOLBw5XPvlW4BC0K+2UJSaIiWNJVdHycNK4gEnvff31198AVA4SygKFPv/8804RpKd1GJuiyS72
- wT7sQEKUnUPgZMhqoLnG1mt/ezm5UFxIPFJPjMyaFYJyN6kbEssqaF18nhbHmIUnSl0WL16cwHEVC8qH
- 5INyIUmfffZZp5RZMQ1P0WSXsWPHsjwhOaEQOBneNbYvGVXvu699uUaX3PdCr0PC2HhvcrFdkaEgbUdL
- I7yh+8dLZrzBYD4cKQQJxYByIcWAQlwoknKZpr1SNBXL6vbhJPGKtyRw7hgnQ1aC4grjhh71PPS+K99t
- d7fjPLnAcCCoN3Eb8SWGXLp0aadCkFAsJFQtKBeSRPcradrKtH3KpXKxMW4BOzHG+c6JjF1OMqieu9tC
- r10Jjv/ovi/pNfGZvLzrr78+aXkYvBIk5ENCMZB8UJUghUC5kCScGskZf0k8xxUD9yY7Mf0gcIrjXEMK
- lgsjBoz72lVoWyXhOFDXSy65JDn5ECDkA5JiQLmQagXKhSTROyB8ByWgTd9JsVQu7e3tz7MTaRnAKY7z
- wbnCiKHtkm/wLMV8nrrI8+IkqV8lUCFIqFpQPqS8oBDjrURIkUJblCKJKwbuYXYkjlMAznjBAWVU99E3
- dIzhswQU93lIBLQa18g+xILyIfmgKkEKgfIhVQLlQkK0MFd09ym4OSmSuNLW1nYnO7KoFfcYIwGO8cQ1
- cLUSBPd5jPBwNa7RVWLwWFAupFqByoJUCZQ8cYmhhtxwCo7Fv/FlypQp09iR2Ea5StznSuAwqv9a8l/H
- Sklh9zUTodSPcQ3D1BKUD6krQbk+gusbEOin4K5KkcQVA3cxO5Jk5iBkHQDHle4aEYUgFRFAXOEQMb7i
- 2TIxSl2YrdAcFuMadcoCVQlSCJQPqRKoLEixoCTZklgzBdeaIokrBu50diQPBziaLv0uIUHI6JUECD1K
- tF4SqSwbIGNBwMmdOrSitNJlxUoq6uNCqhWoLEh5WpMPqhwkybUXTmF6rsekSOLK5MmTm9mRaQrNx5Gj
- A5wguCDcL9U2RIsADoE8KRzgkIbS3TdZIlVFEEo2RBkcYHHSGDwGlA8JdRUoF1JeUL7dGKJSO/xniiSu
- tLa2HseOLEMLrVx2v0SiG8UL5d42urRQ6smVcoRK4HKB4L1yHIyysnR7IUg+KIRdEedPg0ntNChFElcM
- 3BHsSAadjDprJBhz5FlK+kIenaukU8BjYpH3aHV4qLRcThTDlhubagUqC1Ke1uSDyoJUBJREj4ac4YLb
- yeJLS0vLgeyI0YmR6KYEji/Ql0qMUYIFZLpITh5jr0zeXiyoGEguKHoyCRszQ57aM37ZAmXSpEl7syMZ
- dY0vCsJ9cCx8odvj8zgyIUg+qEqQQqB8SJVAZUGqBpQPKRaUIPmgBEuiR0qhsVgr370Ep5566i7szBgk
- cAThtCS+WPAY++Ses0YeKD6kWoHKgpSnNfmgsiB1Byhs6orQKwX3foojvjQ3N/dnZ2Z/WbhJ2gtw8ixV
- Od10QUCMsWNB+ZBQV4FyIRUBFQMJxUAKgcJTduUsWXgmxRFfrKvcmp1x2+VUkD1xwfGotBOvy0EKgfIh
- VQKVBakaUD6kWFCCVAtQ2NQVPkUK7o4UR3wZN27cxuxMNwg40l40YQ5MZVRpxWMYKA+oLEh5WpMPKgtS
- d4DyIfmgfEiEWL6YSkvBnZfiiC9NTU3cqJ+sOyHlpOwJB6YyqrTmjDBud4ByIRUBFQPJBeUCQi6kECgX
- UgwofAS6Rlcsr0jBTUhxxJcjjjiiJzvjLQocX0JIIHBUjM8ADxCxoLIgVQPKhxQLKrY11QIUnjnhEskG
- ejJs68tZsnBkiiNX6Vx3QtPF5QccXyxwOCu8jwNTDlKe1uSDyoLUHaB8SCgPJMSFjp3wyslAkTwOwXLl
- 3C62b8oiV1m9o6PjAw5AwhNwXCmAo9KcGJl73ueLioByIRUBFQPJBZUFKQTKhRQDCkgIG+HI0e2RdQrB
- yRKxcwou3w0fKgbudQ6gJdSAUkjAidLceZ+bGUKQqgHlQ4oFFduaag0K4bzhxOEVhoDEyknA/yhFka9o
- 3QnZeYFTSMCJEt/xPkliH5IPKgtSd4DyIaE8kARKkLiAEfYgVKoWliv9epKJX5DIX7TuBC/HBcdJcOJy
- W7njxIVUBFQMJBdUFqQQKBdSDCi/NQmUC4zWVc7BKKpHHnlE0JakGPIXrTshK0Laiz6b7oAT4+S50YH3
- mZLJAuVDigUV25q6C5QEsBgno4icG/rfTDHkL1p3wvwa3SJdArEcJ4YxWEjE+3xhd4LyIfmgKkESqBhI
- EhcsniF28I1dS7FEA5tabzczxZC/aN0JzoeyJwoJMIgW7NC/54XkgsqCFALlQooBlac1uaAkzrmId1hE
- mtM029+QYshftO6Em/MApyCck8cgmqUlVKgEKrY1LQ9QLiREryLRy3RVtxgSvRs2bW1tjbsnLlQmT558
- MgdhBoDK++D0ozA4LStat1cOFOIciVm7q5W5UmNoaWkZl2LIX7TuhAAbb4e4TfNyGEvT65xovbYmH1QI
- kiuA0cpq7S3GSj9vNXHixELprqQY9WEcBEACR+vCABhPd5NgnHoB5UKKBeWKbj9k0O6SbvwfP378f6QY
- 8hcD91sOQgqGNSWK5TAIRlSgiGFDkHxQlSAJVNHWVAmUD4neQ+K8ahlEF5XuOx89evROKYb8RetOOBjB
- NuCI5TAIhuQ9Zg+A4kOKAZW3NfmgsiDFgJKWZ9foS4uEhg4dyq/eFitad0KXyA3vgFMshyF4j+V3XQXK
- hVRLUJr3Qsu7a/SlRVd9+/blR8KLFa07IekJOLIniuXwMHmPpeAhSAJVtDVVApUFKQsUF560PLzGLCmF
- 2NHRwT1x/BBbsaJ1JzRfUjECh6F4znusWBakeuj2XFAuJIn6I+ofMt7ylFKIFoa9buYvDk7rTugOmZNT
- EI7hlAxltrZeur0sUBL17+q0VVExC4NNrad73MzPr7oXKwYu+b0TliYIHGMCxlMylJvlfUh5QWVBqgUo
- ibrXixMSku5lnzBhwm1m/uI/fbjvvvt+iwMhmjHZE4FTMpS7b3xQWZAqgXIhuaBiIPmgBAsRg3Zn6qqI
- uKUNm44ZM+ZSM39xcFZYvpD8HQugODgGwJBKhtK8awVKkGJB+ZBcUC6weojPYsS9gdj06KOPbjPb8+8l
- Vf1KbLLuBEAcXOC4O5TtLGuIhVRrUD4kgUIszKlHByRLyv0OGzbsRDM94Ir/jL3WndDCcEgwCEZVMpSx
- rhwoF5ILygeEfEh5QUm4+PXqfFSSFgkNHjyY3+4ijisOTutOGDhJe9HtYGhdHWzritYUAuVDQlxIiHrV
- s+MRI5Y5YtOdd97512b6qsEl606YJyJAxEAYWjMDDPi1AOVDqgQK0broDuvd6YiV7uDt27fvL830/HFE
- 8b9r0boTZsEBh6EwtGYGtKQhC1JRUD4kiYtnRe0Oy0lxsQ1Ny8zs/U3VgdO6E2bBWRQkcLonDkNWgoQq
- QYoBtaJ3hVnCttiztbV1oZl9gIk7UYv/uZOBu4ADMgvOwTEghlcylOeVIKE8oLg4VnZQvvDOsWdTU9M8
- M/vPTfwHbHFwkydP7uCAzMwqe0ILYBvzcSFIKBaS25pWlrGqiHSHjgXfz5nZdzDxt2RVgUvWnZBMFji+
- iG3MGoQgCRQtx2090qoMqJy0Ym7kyJGPmNl3NAGu+L9aad0JXqTSXkzxsI0pHVqN25JoQcAKVa6h8sL5
- w6aHHnood6Fys8f6puLgtO6E4JCb8/F+NP3AtlAlGsov3Us/ZMiQaWZ2li3w/6lVgUvWnbB8QeC4V4Bt
- dJ+hSjSUX9gSm+62227nm9n/yVQdOK07IW7D89GPpbENhyVUiYbyS4uE+vfvT4L5F6a/MPH/5sWK1p3g
- iOg/2bTaltguVImG8kv/jbD55ptz3zfg+L/U4uCam5t/xgE5MF0k2RMlmJlEDVWioXxi+NGPIPTq1Yt/
- Vxa4NWBQqBi4LTkgeTTA4VG6P0oTqkhD+aSGYDEct1YNM+FVVjfGad0JwTZzcoDTQMpUT6giDZUXQw12
- BBY/7uPcfVrafvvtLzGTH2D6exOzA8UDcHfdCffDkfbSvBEtMFS5hv5f2IsLnNltOSC+rFdbfMABB8ww
- c48y7WHqa+IPbotP67jrTkjLMHGqmQHCg1BlV2WRXWIIYb7SuQm/Ux0dHb+bOHHiwuHDh88eMGDAtN69
- e/Oby9yZAzTm4X5mImvC+FZ86YKVznUnhAGA0zJpnocqvyqJEIlFPgwfzm9Mdqq9vX3p+PHjPzr44IOf
- 6tev3+Vmz4kmQB1nGmk6zPRbEy3tH0wbmXqbqv/3fa074UriipIHRH8dOpmVVXh/jE+kp/zxSZoyZcpX
- J5xwwvzBgwc/summm/JbXPy/N2tIADXCdKhpf9PepoEmZgL4C+nNTbS075mKj21u0boT4je6R57rp6JW
- ZuGIVRqfWltbvzzmmGPm7bnnnveut956Z5q5BIp/0v8f03+ZfmP6N9MuJiZJ/9bEOEbrYvqGxa+0MrpH
- Jk+r6iI7izX3Z6gkV5rSXUykhk52RRa9CWtryo1PaNKkSYtHjhw5d+DAgbfb+ESWo8l0gomfmQfUIaYh
- Jv7z7Z9N/IXYT0y0KEAxQcryckD1NNG6agPKL1p3QqZE6yk5sdDJr0iqND7hSJx88skLDz/88Bd32GEH
- bqafZAIUf3052nSEiT9dx6lgjCJwZpza2sSvAv2liSUIgPquiRbVdaD8Yv32bZwI9wlo3oiuI2SMepWS
- 41njU1tb29IJEyYsOOSQQ57eaqutLrNTbzaRghpj+l/T4aaDTPuZ/tVEMhgv8MemzUxkO4i/1jJ1Pyi/
- GLirOTGSylomzfxcyED1opjxCUdi7Nix7+2///4zN9poI7LygBpv+j8TqSfWNw41cVvvv5iYbiE43sq0
- qYlEsA+qdmNUtUXrTriJn+6S54wDIYMtLxGaMD5xcZUbn3Akjj/++Lf32Wef6X369Jlqp3aKSaCIo0g3
- HWjax7SbidTTtqYtTfxrImmodU38xlYvE0ng+gHlF6074cZy5SnpNkMG7C7h3eLllhufkDkSn40ePfqN
- 3Xff/Z4ePXoQ6AKKGOp4k2IoUky/Mu1qYsnA35m4jXcTE7PQLAUniwEocofEV/UJyi9ad8LYoBXM5NpC
- Bu0KueMTXXRofMKROOWUUxaNGDHilR133JF/qm8xEeyeZCKGOsr03yaC3X838dcnLMohhvpr08Ym4iju
- kgEUf2+5YoHyi9adkKPUzzlwtYeMXAsxPpFeY3xiXYsLSDJQy5qamj4ZNmzY7G222eYaq+apJjeGCgW7
- rFfkL0+IoX5oIoYCFEEvrvmKDcovWndCjlKGJP0VMnoRMT5xvKzxCY9v3LhxHw0dOnTWFltswf1jPqg8
- wa5A4fFVn1qq12LghmA8jKobE5gpCEGIUcz4lHp884cMGfLY+uuvT+oIUHmCXTeGUlZi+bnmy6PYIL8n
- xsTIMrRudKwkjU/MljM+6cYGX9YdLznuuOPe2muvvR5cZ511SB2tWMFuPZaJEyfuiHFxCuQYkB4KgWJp
- A+MTYUO58Qnh8Y0aNeq1XXfd9a4111wT13zFDnbrsZx00kk/NGfga9fw+k+4mPEJGfxPjzzyyDk77bTT
- rT179uyww65cwW49lkGDBvU05+Alg/dVCIovXHM8vsMOO2z2dtttd53FUJPtMCt3sFunpYcFsoPMSZlt
- UJI/kXDV3t6+jMlC8/ie2nrrra+0zxNDrVrBbp2W1Xv16rWmOQ6DDNAsG58W2Pj00t57733/ZpttdrG9
- 3wh267gwpvzAAOIg0GpwHnDL8fgawW4dF4yMU4CTQMsBDvETrvnOplU72K3zgnPA+IN3RysifsI1bwS7
- y6WsttrvAQMfgh5KTfoXAAAAAElFTkSuQmCC
-
-
iVBORw0KGgoAAAANSUhEUgAAAG4AAABuCAYAAADGWyb7AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
@@ -394,163 +278,440 @@
1xe7R6QZxv8DiyxXTC5xLO8AAAAASUVORK5CYII=
-
+
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
- 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
- Y/eRFMP4//ZFmX/edOjbAAAAAElFTkSuQmCC
+ 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
+ 1xe7R6QZxv8DiyxXTC5xLO8AAAAASUVORK5CYII=
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAAG4AAABuCAYAAADGWyb7AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
+ vAAADrwBlbxySQAAABl0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuODc7gF0AABmcSURBVHhe7Z0J
+ uFRFdseVZEaGYYwYnUzUGEejIyY6TphonAijMd9EYTRGjRmNDONEUWMENQgGl4AKPPHhe/DeE/d933Df
+ d0VFUXHDBXHBDTcUwQWF6Tm/+93/S01Zfbvu7X6PBrq+7/919+2+t+ue362qc07V7V6tURqlURqlURql
+ UbqmnHbaaeu2tbX9tKOjY//29vZR9niW6a7W1tYTR4wYscnaa6/d0z72x6bVkx0apXuKgfm2qZ/B2MMA
+ HZqCucX0pG1faiplacqUKS8MGDDgr+xQ3zN9y9QAWKtiBt7SWssvDMZB9thij5cBxrTQB+HrzDPPLJ1/
+ /vmlK664onTNNdeUbrzxxtJtt91Wuvjii5P3+MykSZNmbbDBBj+2r1rXRAtswMtTzIjfNxijTWeanjDN
+ cyGENHXq1ATMpZdeWrr66qtLt956a+mee+4pPfTQQ6Wnn3669Oyzz5aee+650vPPP588IrY/8cQTpQce
+ eKB07rnnJscZN27cjJ49e/7UqvHnpga82GLGW8N0u2kZhnR13nnnlS666KLSVVddVbr55ptLd9xxR2n6
+ 9Omlp556KgEDlNmzZ5deeOGF0ksvvVSaM2dO6ZVXXinNnTu39Oqrr5Zee+21TrGN9/jsM888kwA+66yz
+ ku8ZM2bMg1aVfqY/M61hasDLKma0dUy3mL7AgJdffnnSah5++OHOVgOcF198MQHz8ssvJ3BcMK+//npp
+ 3rx5id58883SW2+9VXrnnXdKb7/9dvL47rvvJo+I9954440EIMcF3hlnnJHAGzVq1I1WpZ+Yvm/6tqkB
+ r1wxg92K0QSNlkSXBiSMKzgY2wXjQpk/f36i999/P9GHH36Y6KOPPvoDsY332YdjcGxaH92m6jB8+PCL
+ rFpbmdYxNRyWUDFDbYGx6K4w3qxZs5KWhUGBhHEF5r333usE88EHH/wBnAULFiT6+OOPE33yySelhQsX
+ fkNs53Psw/GAL3i0csE76KCDOqx6f2Na21T38KzOCnt2aW5u3sA29UjVNfW2LzwDQ+H10dJoZXR7GBRY
+ bqvxwQiOC+nTTz+tKD7PMQSPi4Nul3Hy9ttvT8CZAZbtt99+J1kV+5r6mJZrrGd16mce9U5WLzzrEw3S
+ 2fZ8uuk56ivZ68UW4sw46qijdrHd1jThaAGwdsW+aF3T53wh4wxXPdBoYQADlAvIlQ9j0aJF39hWTuwv
+ eHwPFwjdr8Y8vNPUCEv32GOPo62qm5n+xAS8mhf7rg2VJLDHYfZILHqdKSrkQYzR55xzTudrg/uxXXi/
+ ssOvZ/qu6Y/4rpoUq9SxfAmuPA4IVz0tjW4Qo7qQ8oBBIbjapuMCj1bnw2N8xYOlbmbILwcOHHiYVXdT
+ E1dwLgPYMb5jIkHwSzvWwcShaWsByly+I0aEPBdeeGHpyiuvLF133XWJd33vvfeWHnzwwdJjjz1WevTR
+ R5Pn9Bh8ln0sxHnSqrCdaUMT8KpveXZgMh7v8gWMLXSRjGl0XRhTrayc0d33yr0fkvsZtTq+j4uFlk4d
+ 8FhpeRiJ+lnX82n//v1/Y9Xe2ESGpROevf8jA7GtQaALIwZNUmqAsfeWsH8lnX322YmxccwU8tx5553J
+ mA8Uxn15125cSg9F985zQpuZM2cmYRKxLMdtaWlZ1Lt3b+q9rYkQh7G6umIn9msOTnzmtza6SN/IMVBC
+ Cu3ndr0uPHmbwNOYx9ibGuFji/Out4H/egM1y+o/X4bP0umnn55AIVPDhXDDDTckYIBCuPPkk08mYDC8
+ oPC9blyKysWmDC28JkRiX+DJQ7Y6/m6ttdY61sy9q4m0Xi9sX1Wxg87i4LfccktSQVx9jW0YsxyoojB9
+ WP6jPE3Bo9uUt0lLcGG4YlwBDFCuvfbaBMrdd9+dGI/sDA6Xn8ERFD8u9cEARSEQcsMgpFCIbXyW43AB
+ 0G1ywVA/A3eymXuwifCGrr54sQP+nINecMEFyUlRaSpFNynPUUYOyYXgb3MfY8X3Ib6bC0fdpgyCQYFA
+ 9wUUWsrjjz+e1B25rUVgQsmCvFAEBmEbSSGRwiK2sQ/H5rupm7JBG264YbuZ/EAT6Ty84+KesbW2Gzgo
+ VygnyxdSSXWTGNOFUhSIBJTQdkngXHgYBYeFemFUjEw9MT4gAIKAKpUDIygCIyB6VIzqQsEWEvXxRe8g
+ 8RmOw/dxwXCROeCmmskPNm1j+lNTMXB2sE1MyXTLjBkzvtFNukaOBebu4z7Xa23T83JSa5dBqI8MipFl
+ fEC4LSXUWgREUIARC8aFEiOB42KhB7j//vs7Zz6OPfbYuU1NTW9YY1lmmmPbLjcdY/rHFElcsR1O5ICX
+ XXZZMihz1XLinAyVcI0uY/vbJPc9PecxRoLEo/8cySgYEsPI8MhtIXrtgikHRcdE7ndkbQsJQHSJeJx0
+ 34QHhFTYNYfweH+QYqlcjPp57HjTTTcl4wJdDFcpJ0zFs4DEguE4Wdv0nMcYYSwZ3gXhS+9rH/8YeUR3
+ yzACHGKzadOmRcEhtCCBcNdddyVdJt069uV8eQQ4Q1T6eTJDccVc6TZ2wi1mIGdM4IBcnVRYxo2RjBJ6
+ D+k997EaUb/QtiICMGOivEDgYHDCBkEoJzxZjE/8SzjBcegqubC/+uqr0pIlS76hL7/8slM4Temxbkqx
+ ZBf7YA9rcdPZiS+FPlcWYwLgMESW4cttc9/z39c2/z1XGDK0TfJfl9smua2QK54hAU8UOIQNeNOp4cqK
+ CV4u7vvuuy/Zn+6RrpgQCDiuKoFCX3zxRadoMOn3nJ2iyS72wT4GLsm9cZXhmFAh1zEJAaiVMKr7PPQ6
+ Sy4QbaOLBw5XPvlW4BC0K+2UJSaIiWNJVdHycNK4gEnvff31198AVA4SygKFPv/8804RpKd1GJuiyS72
+ wT7sQEKUnUPgZMhqoLnG1mt/ezm5UFxIPFJPjMyaFYJyN6kbEssqaF18nhbHmIUnSl0WL16cwHEVC8qH
+ 5INyIUmfffZZp5RZMQ1P0WSXsWPHsjwhOaEQOBneNbYvGVXvu699uUaX3PdCr0PC2HhvcrFdkaEgbUdL
+ I7yh+8dLZrzBYD4cKQQJxYByIcWAQlwoknKZpr1SNBXL6vbhJPGKtyRw7hgnQ1aC4grjhh71PPS+K99t
+ d7fjPLnAcCCoN3Eb8SWGXLp0aadCkFAsJFQtKBeSRPcradrKtH3KpXKxMW4BOzHG+c6JjF1OMqieu9tC
+ r10Jjv/ovi/pNfGZvLzrr78+aXkYvBIk5ENCMZB8UJUghUC5kCScGskZf0k8xxUD9yY7Mf0gcIrjXEMK
+ lgsjBoz72lVoWyXhOFDXSy65JDn5ECDkA5JiQLmQagXKhSTROyB8ByWgTd9JsVQu7e3tz7MTaRnAKY7z
+ wbnCiKHtkm/wLMV8nrrI8+IkqV8lUCFIqFpQPqS8oBDjrURIkUJblCKJKwbuYXYkjlMAznjBAWVU99E3
+ dIzhswQU93lIBLQa18g+xILyIfmgKkEKgfIhVQLlQkK0MFd09ym4OSmSuNLW1nYnO7KoFfcYIwGO8cQ1
+ cLUSBPd5jPBwNa7RVWLwWFAupFqByoJUCZQ8cYmhhtxwCo7Fv/FlypQp09iR2Ea5StznSuAwqv9a8l/H
+ Sklh9zUTodSPcQ3D1BKUD6krQbk+gusbEOin4K5KkcQVA3cxO5Jk5iBkHQDHle4aEYUgFRFAXOEQMb7i
+ 2TIxSl2YrdAcFuMadcoCVQlSCJQPqRKoLEixoCTZklgzBdeaIokrBu50diQPBziaLv0uIUHI6JUECD1K
+ tF4SqSwbIGNBwMmdOrSitNJlxUoq6uNCqhWoLEh5WpMPqhwkybUXTmF6rsekSOLK5MmTm9mRaQrNx5Gj
+ A5wguCDcL9U2RIsADoE8KRzgkIbS3TdZIlVFEEo2RBkcYHHSGDwGlA8JdRUoF1JeUL7dGKJSO/xniiSu
+ tLa2HseOLEMLrVx2v0SiG8UL5d42urRQ6smVcoRK4HKB4L1yHIyysnR7IUg+KIRdEedPg0ntNChFElcM
+ 3BHsSAadjDprJBhz5FlK+kIenaukU8BjYpH3aHV4qLRcThTDlhubagUqC1Ke1uSDyoJUBJREj4ac4YLb
+ yeJLS0vLgeyI0YmR6KYEji/Ql0qMUYIFZLpITh5jr0zeXiyoGEguKHoyCRszQ57aM37ZAmXSpEl7syMZ
+ dY0vCsJ9cCx8odvj8zgyIUg+qEqQQqB8SJVAZUGqBpQPKRaUIPmgBEuiR0qhsVgr370Ep5566i7szBgk
+ cAThtCS+WPAY++Ses0YeKD6kWoHKgpSnNfmgsiB1Byhs6orQKwX3foojvjQ3N/dnZ2Z/WbhJ2gtw8ixV
+ Od10QUCMsWNB+ZBQV4FyIRUBFQMJxUAKgcJTduUsWXgmxRFfrKvcmp1x2+VUkD1xwfGotBOvy0EKgfIh
+ VQKVBakaUD6kWFCCVAtQ2NQVPkUK7o4UR3wZN27cxuxMNwg40l40YQ5MZVRpxWMYKA+oLEh5WpMPKgtS
+ d4DyIfmgfEiEWL6YSkvBnZfiiC9NTU3cqJ+sOyHlpOwJB6YyqrTmjDBud4ByIRUBFQPJBeUCQi6kECgX
+ UgwofAS6Rlcsr0jBTUhxxJcjjjiiJzvjLQocX0JIIHBUjM8ADxCxoLIgVQPKhxQLKrY11QIUnjnhEskG
+ ejJs68tZsnBkiiNX6Vx3QtPF5QccXyxwOCu8jwNTDlKe1uSDyoLUHaB8SCgPJMSFjp3wyslAkTwOwXLl
+ 3C62b8oiV1m9o6PjAw5AwhNwXCmAo9KcGJl73ueLioByIRUBFQPJBZUFKQTKhRQDCkgIG+HI0e2RdQrB
+ yRKxcwou3w0fKgbudQ6gJdSAUkjAidLceZ+bGUKQqgHlQ4oFFduaag0K4bzhxOEVhoDEyknA/yhFka9o
+ 3QnZeYFTSMCJEt/xPkliH5IPKgtSd4DyIaE8kARKkLiAEfYgVKoWliv9epKJX5DIX7TuBC/HBcdJcOJy
+ W7njxIVUBFQMJBdUFqQQKBdSDCi/NQmUC4zWVc7BKKpHHnlE0JakGPIXrTshK0Laiz6b7oAT4+S50YH3
+ mZLJAuVDigUV25q6C5QEsBgno4icG/rfTDHkL1p3wvwa3SJdArEcJ4YxWEjE+3xhd4LyIfmgKkESqBhI
+ EhcsniF28I1dS7FEA5tabzczxZC/aN0JzoeyJwoJMIgW7NC/54XkgsqCFALlQooBlac1uaAkzrmId1hE
+ mtM029+QYshftO6Em/MApyCck8cgmqUlVKgEKrY1LQ9QLiREryLRy3RVtxgSvRs2bW1tjbsnLlQmT558
+ MgdhBoDK++D0ozA4LStat1cOFOIciVm7q5W5UmNoaWkZl2LIX7TuhAAbb4e4TfNyGEvT65xovbYmH1QI
+ kiuA0cpq7S3GSj9vNXHixELprqQY9WEcBEACR+vCABhPd5NgnHoB5UKKBeWKbj9k0O6SbvwfP378f6QY
+ 8hcD91sOQgqGNSWK5TAIRlSgiGFDkHxQlSAJVNHWVAmUD4neQ+K8ahlEF5XuOx89evROKYb8RetOOBjB
+ NuCI5TAIhuQ9Zg+A4kOKAZW3NfmgsiDFgJKWZ9foS4uEhg4dyq/eFitad0KXyA3vgFMshyF4j+V3XQXK
+ hVRLUJr3Qsu7a/SlRVd9+/blR8KLFa07IekJOLIniuXwMHmPpeAhSAJVtDVVApUFKQsUF560PLzGLCmF
+ 2NHRwT1x/BBbsaJ1JzRfUjECh6F4znusWBakeuj2XFAuJIn6I+ofMt7ylFKIFoa9buYvDk7rTugOmZNT
+ EI7hlAxltrZeur0sUBL17+q0VVExC4NNrad73MzPr7oXKwYu+b0TliYIHGMCxlMylJvlfUh5QWVBqgUo
+ ibrXixMSku5lnzBhwm1m/uI/fbjvvvt+iwMhmjHZE4FTMpS7b3xQWZAqgXIhuaBiIPmgBAsRg3Zn6qqI
+ uKUNm44ZM+ZSM39xcFZYvpD8HQugODgGwJBKhtK8awVKkGJB+ZBcUC6weojPYsS9gdj06KOPbjPb8+8l
+ Vf1KbLLuBEAcXOC4O5TtLGuIhVRrUD4kgUIszKlHByRLyv0OGzbsRDM94Ir/jL3WndDCcEgwCEZVMpSx
+ rhwoF5ILygeEfEh5QUm4+PXqfFSSFgkNHjyY3+4ijisOTutOGDhJe9HtYGhdHWzritYUAuVDQlxIiHrV
+ s+MRI5Y5YtOdd97512b6qsEl606YJyJAxEAYWjMDDPi1AOVDqgQK0broDuvd6YiV7uDt27fvL830/HFE
+ 8b9r0boTZsEBh6EwtGYGtKQhC1JRUD4kiYtnRe0Oy0lxsQ1Ny8zs/U3VgdO6E2bBWRQkcLonDkNWgoQq
+ QYoBtaJ3hVnCttiztbV1oZl9gIk7UYv/uZOBu4ADMgvOwTEghlcylOeVIKE8oLg4VnZQvvDOsWdTU9M8
+ M/vPTfwHbHFwkydP7uCAzMwqe0ILYBvzcSFIKBaS25pWlrGqiHSHjgXfz5nZdzDxt2RVgUvWnZBMFji+
+ iG3MGoQgCRQtx2090qoMqJy0Ym7kyJGPmNl3NAGu+L9aad0JXqTSXkzxsI0pHVqN25JoQcAKVa6h8sL5
+ w6aHHnood6Fys8f6puLgtO6E4JCb8/F+NP3AtlAlGsov3Us/ZMiQaWZ2li3w/6lVgUvWnbB8QeC4V4Bt
+ dJ+hSjSUX9gSm+62227nm9n/yVQdOK07IW7D89GPpbENhyVUiYbyS4uE+vfvT4L5F6a/MPH/5sWK1p3g
+ iOg/2bTaltguVImG8kv/jbD55ptz3zfg+L/U4uCam5t/xgE5MF0k2RMlmJlEDVWioXxi+NGPIPTq1Yt/
+ Vxa4NWBQqBi4LTkgeTTA4VG6P0oTqkhD+aSGYDEct1YNM+FVVjfGad0JwTZzcoDTQMpUT6giDZUXQw12
+ BBY/7uPcfVrafvvtLzGTH2D6exOzA8UDcHfdCffDkfbSvBEtMFS5hv5f2IsLnNltOSC+rFdbfMABB8ww
+ c48y7WHqa+IPbotP67jrTkjLMHGqmQHCg1BlV2WRXWIIYb7SuQm/Ux0dHb+bOHHiwuHDh88eMGDAtN69
+ e/Oby9yZAzTm4X5mImvC+FZ86YKVznUnhAGA0zJpnocqvyqJEIlFPgwfzm9Mdqq9vX3p+PHjPzr44IOf
+ 6tev3+Vmz4kmQB1nGmk6zPRbEy3tH0wbmXqbqv/3fa074UriipIHRH8dOpmVVXh/jE+kp/zxSZoyZcpX
+ J5xwwvzBgwc/summm/JbXPy/N2tIADXCdKhpf9PepoEmZgL4C+nNTbS075mKj21u0boT4je6R57rp6JW
+ ZuGIVRqfWltbvzzmmGPm7bnnnveut956Z5q5BIp/0v8f03+ZfmP6N9MuJiZJ/9bEOEbrYvqGxa+0MrpH
+ Jk+r6iI7izX3Z6gkV5rSXUykhk52RRa9CWtryo1PaNKkSYtHjhw5d+DAgbfb+ESWo8l0gomfmQfUIaYh
+ Jv7z7Z9N/IXYT0y0KEAxQcryckD1NNG6agPKL1p3QqZE6yk5sdDJr0iqND7hSJx88skLDz/88Bd32GEH
+ bqafZAIUf3052nSEiT9dx6lgjCJwZpza2sSvAv2liSUIgPquiRbVdaD8Yv32bZwI9wlo3oiuI2SMepWS
+ 41njU1tb29IJEyYsOOSQQ57eaqutLrNTbzaRghpj+l/T4aaDTPuZ/tVEMhgv8MemzUxkO4i/1jJ1Pyi/
+ GLirOTGSylomzfxcyED1opjxCUdi7Nix7+2///4zN9poI7LygBpv+j8TqSfWNw41cVvvv5iYbiE43sq0
+ qYlEsA+qdmNUtUXrTriJn+6S54wDIYMtLxGaMD5xcZUbn3Akjj/++Lf32Wef6X369Jlqp3aKSaCIo0g3
+ HWjax7SbidTTtqYtTfxrImmodU38xlYvE0ng+gHlF6074cZy5SnpNkMG7C7h3eLllhufkDkSn40ePfqN
+ 3Xff/Z4ePXoQ6AKKGOp4k2IoUky/Mu1qYsnA35m4jXcTE7PQLAUniwEocofEV/UJyi9ad8LYoBXM5NpC
+ Bu0KueMTXXRofMKROOWUUxaNGDHilR133JF/qm8xEeyeZCKGOsr03yaC3X838dcnLMohhvpr08Ym4iju
+ kgEUf2+5YoHyi9adkKPUzzlwtYeMXAsxPpFeY3xiXYsLSDJQy5qamj4ZNmzY7G222eYaq+apJjeGCgW7
+ rFfkL0+IoX5oIoYCFEEvrvmKDcovWndCjlKGJP0VMnoRMT5xvKzxCY9v3LhxHw0dOnTWFltswf1jPqg8
+ wa5A4fFVn1qq12LghmA8jKobE5gpCEGIUcz4lHp884cMGfLY+uuvT+oIUHmCXTeGUlZi+bnmy6PYIL8n
+ xsTIMrRudKwkjU/MljM+6cYGX9YdLznuuOPe2muvvR5cZ511SB2tWMFuPZaJEyfuiHFxCuQYkB4KgWJp
+ A+MTYUO58Qnh8Y0aNeq1XXfd9a4111wT13zFDnbrsZx00kk/NGfga9fw+k+4mPEJGfxPjzzyyDk77bTT
+ rT179uyww65cwW49lkGDBvU05+Alg/dVCIovXHM8vsMOO2z2dtttd53FUJPtMCt3sFunpYcFsoPMSZlt
+ UJI/kXDV3t6+jMlC8/ie2nrrra+0zxNDrVrBbp2W1Xv16rWmOQ6DDNAsG58W2Pj00t57733/ZpttdrG9
+ 3wh267gwpvzAAOIg0GpwHnDL8fgawW4dF4yMU4CTQMsBDvETrvnOplU72K3zgnPA+IN3RysifsI1bwS7
+ y6WsttrvAQMfgh5KTfoXAAAAAElFTkSuQmCC
+
+
+
+
+ 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
+ 1xe7R6QZxv8DiyxXTC5xLO8AAAAASUVORK5CYII=
@@ -1013,6 +1174,165 @@
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
+ Y/eRFMP4//ZFmX/edOjbAAAAAElFTkSuQmCC
@@ -1056,13 +1376,13 @@
gg==
-
+
iVBORw0KGgoAAAANSUhEUgAAADAAAAApCAMAAABEBVrmAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6
- JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAADAFBMVEU9AAdPAAlUAApfAAtoAAxvAA18
- AA6BAA+MABCRABGeABKhABOlAxaoBhmrCButCh2wDSC2FCe6GCu7Gi2+HTDCJTfGKz3ILkDLNEbNN0nS
- RFTUR1fVSVnXT1/ZUmLcW2rdXWzgaXbicH3mfIjohpLpjJfrkZvun6juoarwqbLytbz1xMr2x8330NT5
- 3eD64+b87O798vP+9fb++fn//Pz///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAADAFBMVEVDQwBVVQBbWwBmZgBvbwB3dwCD
+ gwCHhwCJiQCSkgCWlgCYmACkpAWnpwerqwqurg2xsQ+zsxG2thS8vBu/vyDAwCHDwyXHxyvLyzHMzDTP
+ zzrR0T3W1knY2E3Y2E/a2lXc3Fne3mHf32Pi4m7k5HTn54Dp6Yrq6o/s7JXu7qLv76Xw8K3z87j19cb2
+ 9sn399L5+d76+uT8/O39/fP9/fb+/vn+/vz///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
@@ -1072,24 +1392,24 @@
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
- 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
+ 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
+ H6YwJdAl+mOdAAAAAElFTkSuQmCC
@@ -1128,13 +1448,13 @@
CV4lp0vtr3kAAAAASUVORK5CYII=
-
+
iVBORw0KGgoAAAANSUhEUgAAADAAAAApCAMAAABEBVrmAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6
- JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAADAFBMVEU4ADhIAEhNAE1XAFdfAF9mAGZy
- AHJ2AHZ3AHeAAICEAISRAJGSAJKUAJSYAJibAZueA56gBaCjCKOpD6mtE62uFa6xGLG1ILW5Jrm7KLu/
- L7/AM8DHP8fJQ8nJRsnMS8zOT87RWNHSWtLWZdbZbNndet3ghODiieLjj+PnnOfooOjqqOrttO3xw/Hy
- xvL0z/T33Pf44/j77Pv88fz99f3++P7+/P7///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAADAFBMVEVgBgB9CACECQCXCgCkCwCwDADE
+ DQDMDgDeDwDlDwD/AAD/AAL/AAX/BAD/AA3/CwD/DgD/AxP/BRX/DB35EQD+EAD/ESL/Hy3/IzL/JTT/
+ LDv/Lj7/OUj/PUv/SVX/U2D/YGv/bXn/c37/eYL/i5T/jJX/lqD/pav/t73/u8L/xsn/1tn/3eD/5+n/
+ 7/D/9PT/+Pj//Pz///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
@@ -1144,464 +1464,24 @@
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
- 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
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACyxEXdAAAAGHRFWHRTb2Z0d2FyZQBQYWludC5ORVQg
- djMuMzap5+IlAAADtElEQVRIS32VD7tyTBDGt0hCFJHlkLBCq/axVt//m72z6nTq/HnvznXlXOa3M3PP
- ELr9JdGf8uvj+kV/Apxi1/Xj5vHvU38AvDv4TkZz38fFe5pfAcGOW8s9XTmUhX0/eU3zG8C7vbn2G8rH
- cRRjl+EAk/5x7zegb01rHTdND/GTeoIxzun97g9gZIeFZWUnKOgpIWiO8cfUzA+gr9aGQwih7F1XEmfy
- /jdgaPdrwydFQWj3qeskNmQfMuINAHdWuoGLPM8JpQ19USdE8gOQ7ujrjyyBT9Gcmhd1jIuP78BQmZrm
- JEkSyw85vUg2dIy+AX270LQgfiqDzh+CirrNyt4yCHsCfWWoeviqrHiooc3J3Aysxmz8BPp2q6nrMHhV
- mGUZtC+7ITNTiIGlF3EHpDuq5j4Cn0oy6D5ryInMNjfBLyyFmiTAu+1C1V3vruDx7Xmyk5wUhFjmKHh9
- ZimfgL5dLTU9cCfFgefG90sJJASK2phodSzL8yWF05F0Z1UZRl94juOGuqqqFlyBAugbhFd7W0HLFAA8
- AddCWWLNGEeWe7Eugdi1QE4QZFmc+Cjq+/NSwU+AHgCfG0Kw7mRZhq57U7zlegnU5M8qqJ/ZKC3rS4nP
- ALQRWpZzg/MrPQWu4ySWIWW5OczCQhWcdGa2Ypd1DTkuqI+QAoA+9l3TFHFIwjvgJmBsONsIcQF/MLLL
- sj5DCnRASmoDIBhtSAN/QRhYuu5kYLC5WYA/0C7DMxtqSnHK0QYpK9ueu7IikifFFcrygiwEWxfbvb1C
- diozmIqNIb4TKJohRVHma9Y1pyJL5Byg4w5sleX8S5W7oZEJx6Ytv6FiZyJlp871j4YUWRwGngNW5ZY1
- 2/SwPuVCkUCJ02i/pwPYSotDVB122nyuh3kSh54rgcSY+VxwGO5KAvXlgquKwmbc0HClHQNKIppM4IJL
- eqzNqGDgY7pFWPqT4v4fnC8HJ4Zh5Nf2jhiuTACAjpS9nFW6h67LGuOajzIegLskEk2FTdOODX0G2yAB
- 6Q/G5ecb9hOApe2qCVEhgRoagQa1AHCM4OHEx048wr6A28glYgECGTxNg+HWlzoFZH+4fsa/AoD0tDoA
- oqqOploSkG0f27af+p30BsifHSqzwI5HkdyGEtanHh79TvoGwNuJySy7qj0sljiV6yNfLl/6AUArjLaU
- dcUOHiyM02lcX/oJADJwAU/uYbda2il9/pTc9RswaWQwy2hP+5f6pf4EYJasbbv3ekD/A0A3fPh2/u32
- H6YwJdAl+mOdAAAAAElFTkSuQmCC
-
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAADAAAAApCAMAAABEBVrmAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6
- JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAADAFBMVEVMGwBhIgBoJAB2KQCALQCKMACZ
- NgCfOAChOACtPACyPgDAQwDERADJRgDPSADRSQDUSgDZTwXdUwneVQvhWA7kXhbnYxzpZiDsaybtbinx
- eDfzezrzfDz1gUP2hEb4ik/4jFH6lF37mmX9onL9qn3+roP+son/vJf/vZr/w6P/y7D/1sD/2MP/3sz/
- 59r/7OH/8er/9vH/+PX/+vj//fz///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD1zQOUAAAACXBIWXMAAA69AAAOvQFH+5CtAAAAGXRF
- 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
- RU5ErkJggg==
-
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAAA0AAAANCAMAAABFNRROAAAABGdBTUEAALGPC/xhBQAAAwBQTFRFRFqS
- R1yUSF2VSV6WSl+XS2CXTGGYV2qdXnGhYXOkZHalZ3inbn+qd4arjo+Pi5m7jJm6kJ29rrO5nafAo67I
- r7jPsLnRt7/Vub/QusHVvMPWxsjKxcnNysvMyczQy8/Vzc/Ryc/dzNDW1dXW1djc1dnd2trb29zc3N3e
- z9Ti3N/k3uDh3+Ll3uHp3+Lp4eLi4OLm5ubm5+fo6enq6+vs7O3t7e7u6uzw7e7x8vP08vP29PT09fX1
- 9vb2+Pj4+fn5+Pn6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARbOMIgAAAAlwSFlzAAAO
- vgAADr4B6kKxwAAAABl0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuND6NzHYAAAB/SURBVBhXY+BD
- Bgx81hBgZ29rDeIJgYCcMK+WDZgnLy+vZMHOIGEL5SkZiDJwGUFUquqoWHIwSqmDeTKKImaSzFx2ymCe
- Ng+jJjeruK0GmKegy8TMyulgrQ/mSZvzs7CJ2dsagnmyanoCglamJsZgnrW1jb2dDcg9QB4C8PEBAFWP
- FTAV/UJaAAAAAElFTkSuQmCC
-
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAAA0AAAANCAMAAABFNRROAAAABGdBTUEAALGPC/xhBQAAAwBQTFRFjo+P
- rrO5r7S6sre8tLm9uLu/u77BvL/CwcPFwsTGxsfIysvMzM3Ny8/VzdHWzdHX1NTV1NXW0NPY0NTZ0tXa
- 1Nfb1djc29vc2Nve2tzf3N3e3d/h4OHh4OHj4eLi4eLj4uPk4+Tl5OXl5ebm5ufn6Ojo6enp6enq6urq
- 6uvr6+vs6+zs7Ozs7e3t7+/v8PDw8vLy9PT09fX19vb2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkW0KowAAAAlwSFlzAAAO
- vgAADr4B6kKxwAAAABl0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuND6NzHYAAABrSURBVBhXXcdt
- F4EwFADgRaSIUmJ6w1rycnVn//+/mbvj7BzPt4f9Uc53Hpn4c7vY2BZ88ds6P5SnyG6T7Xgr5Io2LXgt
- nwApbVZehhciHmnBuQdUb9XQwh5GpbUWtGWyr7rb436lOWYOYx8cDA/QsvGKEgAAAABJRU5ErkJggg==
-
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAADAAAAApCAMAAABEBVrmAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6
- JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAADAFBMVEU9AAdPAAlUAApfAAtoAAxvAA18
- AA6BAA+MABCRABGeABKhABOlAxaoBhmrCButCh2wDSC2FCe6GCu7Gi2+HTDCJTfGKz3ILkDLNEbNN0nS
- RFTUR1fVSVnXT1/ZUmLcW2rdXWzgaXbicH3mfIjohpLpjJfrkZvun6juoarwqbLytbz1xMr2x8330NT5
- 3eD64+b87O798vP+9fb++fn//Pz///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- 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
- H6YwJdAl+mOdAAAAAElFTkSuQmCC
-
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAADAAAAApCAMAAABEBVrmAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6
- JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAADAFBMVEUAMQAAPwAAQwAATAAAUwAAWQAA
- YwACZwICaAIGcAYJdAkQgBARgRETgxMWhxYZihkbjRsdjx0gkiAnmCcrnCstnS0woDA3pTc9qT0/qz9F
- r0VJsUlUuFRYulhau1pfvl9jwGNrxGttxW13ynd9zX2J0omS1pKX2Jec2pyo36ir4Kuy47K9573K7MrN
- 7c3V8NXg9ODm9ubu+e7z+/P2/Pb5/fn8/vz///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB6Ra9RAAAAGHRFWHRTb2Z0d2FyZQBQYWludC5ORVQg
- djMuMzap5+IlAAADs0lEQVRIS32VDbt6TBDGt0haRRFZImGFVu0fq+//zZ5ZvZw6L8/dua6cy/x2Zu4Z
- Qre/JNpTen1cv+lPoGPEtt2wevz70h9A1xxcK2Gp65LsM82vgODHzdI+XTsoi7hu9J7mN6BrdnjlVqwb
- hkEMTUI8QtvHvd+AtsbLVVhVLcSPaikhJGX3uz+AgR9mSyM5QUEvCcFSQvZjMz+Atlhhi1LK+KeuNEzk
- /W9AX+9W2KVZRlnz1HUU75O9jPgAwJ2FjkmWpillrGJvaoSIfgDSHX21TyL4ZNWpelPDO7H/DvQF1jQr
- iqJQfujpTbKhY/ANaOuZpnnhSwl0/hBU1KwX5oZD2AtoC6zq/ruS7KGKVSe87nlJ+PAE2nqjqSvfe5ef
- JAm0L7uhEyxEz+OLuAPSHVWzH4EvRQl0n1T0RCfrm+guPIaaJNA1m5mq285d3uPbcWQnKc0oXeJBdOWZ
- x90ItPVirumePSr0HDu8X0ogolDUGqPFMc/PlxhOR9KdRYFxmzmWZfu6qqoGXIE86BtEFjtTQfMYADIC
- 10yZEw0PA0+dUJdAaBsgy/OSJIxcFLTtea6QF8AOgE/BBd6cDAPrujPGG7YTQU3upID6uYnivLzk5AxA
- HaB5PsVdd2Unz7asyMBShp3CLJaogJPO3FTMvCwhxwW1AVIA0Ie2qaos9Kl/B+wIjPUnayEu4A9BZp6X
- Z0iBDkiJTQAEZxWt4M/zPUPXrQQMxusZ+APtcjIxoaaYxB1aI2VhmlNbVkTTKLtCWY6X+GDrbLMzF8iM
- ZQasmATiG4GCCVIUZbriTXXKkkjOATpuwFZZzr9YuRsaYDg2rrsbyrYYKVt1qu8rmiWh7zkWWJUaxmTd
- wvrkM0UCOYmD3Y71YCvLDkFx2GrTqe6nUeg7tgQiPHE70cFwFxIoLxdSFAw244b6K2s4UBLRZAIbXNJD
- bcIEBx/jDSLSn5i0/+B8OTjR90N3re8ItmUCAHSk7OSs4h10nZeElN0g4wG4SyLBWNg47RDrE9gGCUh/
- CMmfb9gnAEvbFCOiQgLVx54GtQBwDODhJMdGPMK+gNvQSWQJCGRwNA2GW17KGJDd4fqMfwcAaVlxAERV
- LU1dSkC2fazrdux31Acgf3aYzAI7HgRyG3JYn7J/9DvqGwBvJy6zbIv6MJuTWK6PfLl86QcArXBWM95k
- W3iwCInHcX3pJwBI3wl4cg/bxdyM2eun5K7fgFEDh1kGO9a+1S/1JwCz5HXdfNYD+h8Auun6b+ffbv8B
- CV4lp0vtr3kAAAAASUVORK5CYII=
-
-
-
-
- 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
- SUwPzmIlAAAAAElFTkSuQmCC
-
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAADAAAAApCAMAAABEBVrmAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6
- JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAADAFBMVEUAE1MAGWsAGnEAHoEAIYwAI5cA
- J6cAKK0AKa4AK7kALL8ALcAGNc0HNs4JONAMO9UPPtgRQNwTQt4WReEdTOYiUekjUuomVe0tW/EzYPQ2
- Y/U9aPhAa/lLdf1PeP5Rev5Xfv9bgf9jh/9lif9wkf93l/+DoP+Mp/+Rq/+Wr/+juf+mu/+vwf+5yv/H
- 1P/K1v/T3f/e5v/l6//t8f/y9f/1+P/5+v/8/f////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcxoJWAAAACXBIWXMAAA69AAAOvQFH+5CtAAAAGXRF
- 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
+ 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
+ btT44/zb7T/qbgW9TfW/8QAAAABJRU5ErkJggg==
@@ -1640,13 +1520,13 @@
H6YwJdAl+mOdAAAAAElFTkSuQmCC
-
+
iVBORw0KGgoAAAANSUhEUgAAADAAAAApCAMAAABEBVrmAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6
- JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAADAFBMVEVgBgB9CACECQCXCgCkCwCwDADE
- DQDMDgDeDwDlDwD/AAD/AAL/AAX/BAD/AA3/CwD/DgD/AxP/BRX/DB35EQD+EAD/ESL/Hy3/IzL/JTT/
- LDv/Lj7/OUj/PUv/SVX/U2D/YGv/bXn/c37/eYL/i5T/jJX/lqD/pav/t73/u8L/xsn/1tn/3eD/5+n/
- 7/D/9PT/+Pj//Pz///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAADAFBMVEUlEg8wFxMzGRQ5HBc/HhlDIBpL
+ JB1NJR5OJh5UKCFXKiJfLiVgLiVhLyZjMCdmMShoNCpqNixtOS90PzZ4Qzp5RTx8SD+BT0aFVEuHVk2M
+ XFSOX1eXamKabWWbb2efdGyhd2+mfneogHmuiIGzjoe6mJPAoJvDpJ/FqaTNs6/PtrLTvLjZxsLh0c7j
+ 1NHn2tjt5OPx6ej28fD49PT69/f8+vn9/fz///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
@@ -1656,224 +1536,246 @@
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADRANgHAAAACXBIWXMAAA68AAAOvAGVvHJJAAAAGnRF
- WHRTb2Z0d2FyZQBQYWludC5ORVQgdjMuNS4xMDD0cqEAAAOkSURBVEhLfZWNlqo6DIWrILUCIoUiiEAR
- sGgPpfj+D3dT/BlnnLnbWUtmka9JdgKi21/Sw6m4Pq7f9CegBA0CN2kf/770B6D6g8tyUbguLb+n+RXQ
- 8riLg9NVQVnUddP3NL8Bqt8S5rZCTdOkpz6nHuXD495vwNCRmCVtO0D8rIFTSgtxv/sBTPKwiuP8BAW9
- pLUoKN3PzXwAQ80I45wL+V1XnuTm/g9g7LaMuLwsueifus6SY743Ed8AcGeNCS2LouBCtOJNvdbpB2Dc
- wWyfp/Ap21P7pl4qvf8JjDVxHJamaWI+/PQm09Ax+gEM3cpxvOSlHDp/CCrq2ZrtJIS9gKEmNg7flZcP
- taI9ETbKhsrpCQzdzrFZ6L0rzPMc2jfd8AXRepTZRd8B447tBI/Al9Icus9bfuILdtPqIjOoyQCq361s
- HPh3eY9v3zedFLzkPCaTVs1ZZmoGhm6NHewFsxLPD5L7pQFSDkUxgtbHqjpfMjgdGXfWNSFD6TMWhNi2
- 7RiuQB70DaLrLbMQzgCgM3AtLUwdMk2y8BNsgCSIQczz8jxJXRQNwxlb9AWIA+BLcEH2pzgmGPtzfBz4
- KdTkLmqoXzKUVc2lomcAugjhakmUuoqTFzCWxsQoDgqYRYxqOOksmcWqpoEcFzREyAIAT0PftmUS8vAO
- BCkYGy6Y1hfwhyJWVc0ZUqADsjIGgJai5S38eaEXY8xyMJiwFfgD7Uq6YFBTRjOFGLLWjC0DUxEv0vIK
- ZfleHoKtq92WrRHLTAZiMQrxvUbRAlmWtWSyb09lnpo5QMc92GrK+ZdZd0MjAsdmnbqhckOQtbGXeN/y
- Mk9Cz2dgVRHHCzbA+lQrywAVzaLtVoxgqygPUX3YOMslDos0Cf3AAClZuEorGO7aAM3lQutawGbc0HgV
- vQTKII5JEIBLOHEWQkvwMdshavzJ6PAPzjeD0+M4qWt3R0hgEgCAkbU1s8q20HXVUNqoycQDcJdBormw
- edoJwQvYBgMYfyitnm/YJwBL29czYkMCOySeA7UAcIzg4aTHXj/CvoDbpAwSAwIZfMeB4TaXJgNke7g+
- 498BQAZRHwCxbebYsQFM28euG+Z+Z30DzM+OMFlgx6PIbEMF69OMj35n/QDg7SRNlk3dHVaYZmZ9zMvl
- Sx8AtCJFJ2RfbuDBojSbx/WlTwCQUWl4cg+bNWaZeP2U3PUbMGuSMMtoK4a3+o3+BGCWsuv67/WA/geA
- btT44/zb7T/qbgW9TfW/8QAAAABJRU5ErkJggg==
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQA84tAAAACXBIWXMAAA69AAAOvQFH+5CtAAAAGXRF
+ WHRTb2Z0d2FyZQBQYWludC5ORVQgdjMuNS40Po3MdgAAA7NJREFUSEt9lQ27ekwQxrdIWkURWSJhhVbt
+ H6vv/82eWb2cOi/P3bmunMv8dmbuGUK3vyTaU3p9XL/pT6BjxLbdsHr8+9IfQNccXCthqeuS7DPNr4Dg
+ x83SPl07KIu4bvSe5jega3Z45VasG4ZBDE1CPELbx73fgLbGy1VYVS3Ej2opISRl97s/gIEfZksjOUFB
+ LwnBUkL2YzM/gLZYYYtSyvinrjRM5P1vQF/vVtilWUZZ89R1FO+TvYz4AMCdhY5JlqYpZaxib2qEiH4A
+ 0h19tU8i+GTVqXpTwzux/w70BdY0K4qiUH7o6U2yoWPwDWjrmaZ54UsJdP4QVNSsF+aGQ9gLaAus6v67
+ kuyhilUnvO55SfjwBNp6o6kr33uXnyQJtC+7oRMsRM/ji7gD0h1Vsx+BL0UJdJ9U9EQn65voLjyGmiTQ
+ NZuZqtvOXd7j23FkJynNKF3iQXTlmcfdCLT1Yq7pnj0q9Bw7vF9KIKJQ1BqjxTHPz5cYTkfSnUWBcZs5
+ lmX7uqqqBlyBPOgbRBY7U0HzGAAyAtdMmRMNDwNPnVCXQGgbIMvzkiSMXBS07XmukBfADoBPwQXenAwD
+ 67ozxhu2E0FN7qSA+rmJ4ry85OQMQB2geT7FXXdlJ8+2rMjAUoadwiyWqICTztxUzLwsIccFtQFSANCH
+ tqmqLPSpfwfsCIz1J2shLuAPQWael2dIgQ5IiU0ABGcVreDP8z1D160EDMbrGfgD7XIyMaGmmMQdWiNl
+ YZpTW1ZE0yi7QlmOl/hg62yzMxfIjGUGrJgE4huBgglSFGW64k11ypJIzgE6bsBWWc6/WLkbGmA4Nq67
+ G8q2GClbdarvK5oloe85FliVGsZk3cL65DNFAjmJg92O9WAryw5Bcdhq06nup1HoO7YEIjxxO9HBcBcS
+ KC8XUhQMNuOG+itrOFAS0WQCG1zSQ23CBAcf4w0i0p+YtP/gfDk40fdDd63vCLZlAgB0pOzkrOIddJ2X
+ hJTdIOMBuEsiwVjYOO0Q6xPYBglIfwjJn2/YJwBL2xQjokIC1ceeBrUAcAzg4STHRjzCvoDb0ElkCQhk
+ cDQNhlteyhiQ3eH6jH8HAGlZcQBEVS1NXUpAtn2s63bsd9QHIH92mMwCOx4EchtyWJ+yf/Q76hsAbycu
+ s2yL+jCbk1iuj3y5fOkHAK1wVjPeZFt4sAiJx3F96ScASN8JeHIP28XcjNnrp+Su34BRA4dZBjvWvtUv
+ 9ScAs+R13XzWA/ofALrp+m/n327/AQleJadL7a95AAAAAElFTkSuQmCC
-
+
- iVBORw0KGgoAAAANSUhEUgAAAD0AAAAUCAMAAAAJH8UlAAAABGdBTUEAALGPC/xhBQAAAwBQTFRFTExM
- WFhYW1tbYGBgY2NjZGRkZWVlZmZmZ2dnaWlpampqa2trbW1tbm5ucHBwcXFxcnJydHR0dXV1dnZ2d3d3
- eXl5e3t7fX19f39/gICAgYGBgoKCg4ODhISEhYWFhoaGh4eHiIiIiYmJioqKi4uLjIyMjo6Oj4+PkJCQ
- kZGRkpKSk5OTlJSUlZWVlpaWl5eXmJiYmZmZmpqam5ubnJycnp6en5+foKCgo6OjpKSkpqamp6enqKio
- qampqqqqq6urrq6usLCwsbGxsrKys7OztLS0tbW1tra2t7e3uLi4ubm5u7u7vLy8vb29vr6+wMDAwcHB
- wsLCw8PDxMTExcXFxsbGx8fHyMjIycnJy8vLzMzMzc3Nzs7Oz8/P0NDQ0dHR0tLS09PT1NTU1dXV1tbW
- 19fX2NjY2dnZ2tra29vb3Nzc3t7e39/f4ODg5eXl5ubm5+fn6Ojo6enp6urq6+vr7e3t7+/v8PDw8vLy
- 8/Pz9PT09vb29/f3+vr6+/v7/v7+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- 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
+ 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
-
+
- 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
+ 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
-
+
- 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
+ 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
-
+
- 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
+ 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
+ JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAADAFBMVEU9AAdPAAlUAApfAAtoAAxvAA18
+ AA6BAA+MABCRABGeABKhABOlAxaoBhmrCButCh2wDSC2FCe6GCu7Gi2+HTDCJTfGKz3ILkDLNEbNN0nS
+ RFTUR1fVSVnXT1/ZUmLcW2rdXWzgaXbicH3mfIjohpLpjJfrkZvun6juoarwqbLytbz1xMr2x8330NT5
+ 3eD64+b87O798vP+9fb++fn//Pz///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAq2/ciAAAACXBIWXMAAA68AAAOvAGVvHJJAAAAGXRF
+ WHRTb2Z0d2FyZQBQYWludC5ORVQgdjMuNS40Po3MdgAAA65JREFUSEt9lYuWsjoMhasgtQgKghQEESgC
+ Fu0PFN//1U6Kl9G5nO2sJbPI1yQ7AdHtL8nulF0f12/6E+g5dRwvqh//vvQH0LcHz0555nk0/0zzKyDF
+ cWM6p2sPZVHPi9/T/Ab07Y6svJr34zjKsU2pT1l3v/Ur0DXEXEV13UH8pI5RSjN+v/sDGMVhYZrpCQp6
+ SUqeUbqfmvkBdOWK2IwxLj51ZVGq7n8Dhma3Ih7Lc8bbp66TxJDuVcQHAO4sMaF5lmWM85q/qZUy/gEo
+ d/Bqn8bwyetT/aZW9HL/HRhKYhh2HMeR+rDTm1RDx/Ab0DULw/Cjl1Lo/CGoqF0vrY2AsBfQlUTHwbvS
+ /KGa1yeyHkRFxfgEumZj6KvAf1eQpim0r7phMyLlIJKLvAPKHd1wHoEvxSl0n9bsxGbrm+wvIoGaFNC3
+ m4WOHfcu//HtuqqTjOWMmWSUfXUWST8BXbPEBvadSZHvOtH9UgExg6LWBC2PRXG+JHA6Uu4sS0K63LVt
+ J8C6rptwBfKhbxBd7iwN4QQAOgHXXMPUIOMoMjfCCogcE2T7fppGsYfCrjtjjb4AfgB8Di6I9mSaBGN3
+ ijcdN4aavFkJ9QsLJUV1KegZgCZEuJiTvr/yk+/YdmwSJdPJYBYmKuGks7A0q6gqyHFBXYg0APDYtXWd
+ RwEL7oATg7HBbC3lBfyhyCqK6gwp0AFpiQWAFLxmNfz5gW9ibKdgMFkvwB9oV9CZBTUlNOnRGmlLy5o7
+ qiKWxfkVynL9NABbF5udtURWojIQzaIQ30oUzpCmafOVaOtTnsZqDtBxC7aqcv4l2t3QkMCxSdPfUL4l
+ SNvqc7yvWZ5Gge/aYFVmmrN1B+tTLDQFFDQJdzs+gK08P4TlYWvM5zjI4ihwHQXEZOb1sofhLhVQXS60
+ LDlsxg0NV94KoBRiqAQOuIQjY8alAB+TDaLKn4R2/+B8NTg5DGN/be4IcVQCADDSdmpWyQ66LipKq35U
+ 8QDcpZBwKmyadkTwDLZBAcofSovnG/YJwNK25YTokEAPiG9ALQAcQ3g46bGVj7Av4Db2CjEBgQyuYcBw
+ q0uVALI7XJ/x7wAgHS8PgOi6beimAlTbx6bppn4nfQDqZ4erLLDjYai2oYD1qYZHv5O+AfB2EirLtmwO
+ C0wTtT7q5fKlHwC0InjDRZtv4cGiNJnG9aWfACBDL+HJPWyX2Er466fkrt+ASaOAWYY73r3Vr/QnALMU
+ TdN+1gP6HwC66Ydv599u/wFxKBe9ZCaNnAAAAABJRU5ErkJggg==
-
+
- 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
+ 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
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADs2G/6AAAACXBIWXMAAA69AAAOvQFH+5CtAAAAGXRF
+ WHRTb2Z0d2FyZQBQYWludC5ORVQgdjMuNS40Po3MdgAAA7dJREFUSEt9lYuWsjoMhasgIqCgIEhBELkJ
+ WLQ/pfj+T3ZSvIwzzpztrCWzyNckOwHR7S/x7pReH9dv+hNgBNu2G9aPf1/6A2DtwbUSkrouzr6n+RXg
+ 9LhZ2qcrg7Kw60bvaX4DWLvTV25N2DAMfGgT7OGie9z7DegafbkK67qD+FFdgTFOyf3uBzDQw2xpJCco
+ 6CXOSYrxfmzmA+jKlWYVRUHod12LMBH3fwB9s1tpbpFlBWmfuo6ifbIXEd8AcGehajhL07QgpCZvajmP
+ PgDhjrraJxF8svpUv6mljO9/An2pK4oVRVEoPsXpTaKhY/AD6JqZonjhSwl0/hBU1K4X5oZC2AvoSk1W
+ /Xcl2UM1qU/6uqcVpsMT6JqNIq98711+kiTQvuimmOic9zS+8Dsg3JEV+xH4UpRA90ldnIrJ+sbZhcZQ
+ kwBYu5nJqu3c5T2+HUd0khZZUSz1gbPqTGM2Al2zmCuqZ48KPccO75cCiAooaq2jxTHPz5cYTkfCnUWp
+ aV3mWJbtq7IsG3AF8qBvEF7sTAnNYwDwCFwzaY4VbRho6oSqAELbAFmelyRh5KKg685zCb8AcgB8qnFO
+ 25NhaKrqjPGG7URQkzspoX5qojivLjk+A9AEaJ5PNcau5OTZlhUZmpBhpzCLJSrhpDM1JTOvKshxQV2A
+ JADUoWvrOgv9wr8DdgTG+pM15xfwByMzz6szpEAHJMUmAJySuqjhz/M9Q1WtBAzW1zPwB9qleGJCTTGO
+ GVojaWGaU1tUVKRRdoWyHC/xwdbZZmcukBmLDLpkYohvOQomSJKk6Yq29SlLIjEH6LgFW0U5/2Lpbmig
+ w7Fxw24o2+pI2spTdV8XWRL6nmOBValhTNYdrE8+kwSQ4zjY7UgPtpLsEJSHrTKdqn4ahb5jCyDSJi7j
+ DIa7EEB1ueCyJLAZN9RfSUuBEogiEtjgkhoqE8Ip+BhvEBb+xLj7B+eLwfG+H9i1uSOaLRIAoCJpJ2YV
+ 76DrvMK4YoOIB+AugQRjYeO0Q02dwDYIQPiDcf58wz4BWNq2HBEZEsi+5ilQCwDHAB5OfGz5I+wLuA1M
+ IEtAIIOjKDDc6lLFgOwO12f8OwBIR8oDILJsKfJSAKLtY9N0Y7+jvgHiZ4eILLDjQSC2IYf1qfpHv6N+
+ APB2oiLLtmwOszmOxfqIl8uXPgBohZKG0DbbwoOFcTyO60ufACA94/DkHraLuRmT10/JXb8BowYKswx2
+ pHurX+hPAGZJm6b9Xg/ofwDohvU/zr/d/gOjFSyLIyVhmAAAAABJRU5ErkJggg==
-
+
- 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
- AABJRU5ErkJggg==
-
-
-
-
- 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
- /wH43mXDvz/ONMu59lrKAAAAAElFTkSuQmCC
-
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAAD0AAAAUCAMAAAAJH8UlAAAABGdBTUEAALGPC/xhBQAAAwBQTFRF////
+ iVBORw0KGgoAAAANSUhEUgAAADAAAAApCAMAAABEBVrmAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6
+ JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAADAFBMVEVMGwBhIgBoJAB2KQCALQCKMACZ
+ NgCfOAChOACtPACyPgDAQwDERADJRgDPSADRSQDUSgDZTwXdUwneVQvhWA7kXhbnYxzpZiDsaybtbinx
+ eDfzezrzfDz1gUP2hEb4ik/4jFH6lF37mmX9onL9qn3+roP+son/vJf/vZr/w6P/y7D/1sD/2MP/3sz/
+ 59r/7OH/8er/9vH/+PX/+vj//fz///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
@@ -1883,517 +1785,24 @@
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACyO34QAAAAlwSFlzAAAO
- vAAADrwBlbxySQAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTAw9HKhAAAAE0lEQVQ4T2MY
- BaNgFIyCYQUYGAAE2AABE91XygAAAABJRU5ErkJggg==
-
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAAD0AAAAUCAYAAAA+wTUXAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
- vAAADrwBlbxySQAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTAw9HKhAAAGAUlEQVRYR82Y
- W2xURRjHW8QHIzHECz4osYKXREwgMRpjQjAkRhMSffCB+KAmxEgwUUgM8iKYJkZKwSgUKKVUoC3S0m6h
- tFVpt7ft/bpbdrddut3SvfSy3V7Zbu/t3/Ofdg7d3dPSIqgPv8z2nDkz+5vvm+/MNmK2+RhWQmfnDaSN
- 9KPcW4Nu1zXNPg+LqeY4jFjOad4btmdjvCVR814oy5YeaDuP68NeJPj9MExPo2lmBhmBALL6XTB5qzBx
- 66Tmcw8KCheWNQoajRZYrTY029pR3+xEmdmN/EYXshtt4rOE1/qsmWFjLUu6tcuAZJ8PySMjqFWER2Zn
- MTWPR5HXT02Je4x+n+uq5hj/hBlnCvyDVSj56ytkXIhC+rknkRr/lODSmadFm6X7XEhfaWpGWr0N6TUe
- pFa4UGu4HjbektKMnrG7HAmKMCOcq8jZFWmfIhoK5ZkBqRMTcHdc0RzvfuntLoWvR4/O20lwWPfDYf4U
- 5qqtaCp6DDf1kagvXI3TRWuxw/seNk1txQf2bxBzsRhJ+taVSfc7UkTqSuFERSZTkWakmdpaUJ73jV3F
- mmPeL862HAz0GDDgUdqui+h3H0WfbTO8TRHoMkfie886vDAdhY8nd0LXX4jECi8OJpXBUHAD3rr4sPE0
- pVs6S0Q6U5iyEkaR0Q6F6U1pRpv7fLnSAfuvmtdDofTMpBOBYTMsNXk4fWIP9u1+AonHI3FkcB3WT6/H
- 9t4oWN0J6On3I9kUwKHkGpgr8zTHC5JmOlM4we1WI6yFXADZUppkDg7CMjqK/MGOoEkW42zgMA7596DV
- GaN5X9Lemo07Q0aYnDroMn7AxfjtiI+JRHTOGiH88tRGnNU/jo5bp+AdCgjp6JQasUBa46nSajrfQ5gs
- jD5TntFOUZ5T9/bkWNhEWhwOfIfnZ18X+3ApeUY63xaLN/1v4ZPOd5Fd/RJKDI9iiz9KSB9zP4Py7FV3
- pY1+/JhmXFpaVmcKswoHSS6yAAvF2SfZ4UDO2FyxKxwfDZvIZ49Fw+0DQewb+1JIS7bMbtOUH/G3onuy
- ETtmPhL9tk2+gm/9z4nPO0dfhOv2alW6yzcspH/KmNsKC8eRRIy1nRNR4heX0eKXF3K8rsgI8YXMS7Pl
- YrGiX+vtFf2lNDNn4UQpQ9FBgkvx9uz7KBi6W4B4IGIha/Nexm7/TrXfq9ObUNC+Bp6GVSjVBUsvGWm7
- t0IVY7T4DmZREhGfFxTt/MKIv+dJ6+4Wi0RppjTHYbpzf3Phxu1n1YkY6eqO/UF8PfZFkOzG6Tewa3IX
- ynzHgw47spBNj1tRcCdJ9GP/DwMbMOGMEFU8VJp7etFCltphm5NWJGSk+b7llyeqvEQuggIXidWa0eUz
- HIcZwOLG6/c6pck9vZishMddSnd7KpCReQKfFb+DDaOvYW/zs0HS7bZTcHsHkVblwon0Kujya+E0hR+V
- I4SA1TonrsD3LCVk+kpJeSJjxA3KNRYs+Vpjf0ZX7av0Y0qGThbKL4GDS8pKWL3NdXGCutIDqNBvx8+m
- tcp7+BFxOCEluZtxtbgQefVOFcprHk7qBiwiKnnDnXMRpDxbKTwvIlCE8wcGRDaoW0C5xoxgpDkOx1uO
- MGHK3ysbCLeJv+0CLLdq0dRcAZPlDxiNpwT1jWcEyUUGcezk8VOy5DGUg3JyR5c+WF7u4wUtU5qylBTS
- 7KcsDFOaz4ZO8KDgDw6rrQWpBkc4ihzJKriJ37KqxcFk79FspKXnosd0OWyssBMZq/lNJVqUCJKX4vOZ
- IM/ZMht0ijCPiaHjPUgo7jAViAIlYYX+s6gaN0rNcLh8Iq3jijsRm9GIutpK8XPTY9YF/SQNk5YwnZiq
- MoWDUKRllaY4F2k5afqwKG2yiLN2rnkAcXXjgvPGUaQUWAVJ1X3ITUtQ+y8qLZHy3K/ldzzqIrBlseM9
- ref+LRj99LxSxJ5MR63Zjugsm+DIVQui43JEtGOSy1cmLZGRtPQ1qMWNi/BfRljCfxQQpnCD/hIq8s4L
- LIZ0sSg9lhz4W35X+y9beiGMvru38n8hvHKO4W9WZNbKBV7RMgAAAABJRU5ErkJggg==
-
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAAD0AAAAUCAMAAAAJH8UlAAAABGdBTUEAALGPC/xhBQAAAwBQTFRFTExM
- WFhYW1tbYGBgY2NjZGRkZWVlZmZmZ2dnaWlpampqa2trbW1tbm5ucHBwcXFxcnJydHR0dXV1dnZ2d3d3
- eXl5e3t7fX19f39/gICAgYGBgoKCg4ODhISEhYWFhoaGh4eHiIiIiYmJioqKi4uLjIyMjo6Oj4+PkJCQ
- kZGRkpKSk5OTlJSUlZWVlpaWl5eXmJiYmZmZmpqam5ubnJycnp6en5+foKCgo6OjpKSkpqamp6enqKio
- qampqqqqq6urrq6usLCwsbGxsrKys7OztLS0tbW1tra2t7e3uLi4ubm5u7u7vLy8vb29vr6+wMDAwcHB
- wsLCw8PDxMTExcXFxsbGx8fHyMjIycnJy8vLzMzMzc3Nzs7Oz8/P0NDQ0dHR0tLS09PT1NTU1dXV1tbW
- 19fX2NjY2dnZ2tra29vb3Nzc3t7e39/f4ODg5eXl5ubm5+fn6Ojo6enp6urq6+vr7e3t7+/v8PDw8vLy
- 8/Pz9PT09vb29/f3+vr6+/v7/v7+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/DPJbQAAAAlwSFlzAAAO
- vAAADrwBlbxySQAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTAw9HKhAAABlUlEQVQ4T52T
- 6zcCQRTAFxEljzxC2UjYapXXrrdED1t6SFa02tqdDSVKQp7/ui1z6NtOfp/u3Ht+M3PuuRcDTWR8IRGG
- aDTZvGcjXwgFUi1c8GeztvXbz6+vJy6YkGBKkV/7ZGIPPL/JvNduImmYVALa6fUpLyvel8rlh0rlNX/2
- k1Xkxz4xTXoZJgauZW4equFEI6tMw44OWrZ3ZXzJ8wuuIKxxsUZNGdlOrejmaYqmKIo+DMezafyuhto2
- DCQtGtpBuqxOh510+9mwU5u8zsKqElhumhh5SSzr2mfMJsId3HTkF8akS0QdEzpJ7UfZZ1s0DI9S7iXL
- c/VUwxdYtL9jY1pX71sxk/IS4yQ9a+wOXWVUQTaMaE9iqh4xF/dRuGtVv18icCCQxAGsKoHx3qhFbfZs
- 2g3jQzu1x51hvhjj0HsuSWIE79TjQ4b+nqMi0+WJoM5K3a7DB00dar21beX2bMvewpbCOZeEgFGl65vL
- Fo7BfzY0J0TP9wb8DAfPSPza8vtA3LWlkHe7TpMtI+VggAQA31EYtvsm5zkIAAAAAElFTkSuQmCC
-
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAAD0AAAAUCAMAAAAJH8UlAAAABGdBTUEAALGPC/xhBQAAAwBQTFRFmdXV
- mdramdvbmdzcmd3dmd7emd/fnt/fmeDgm+HhmeLimePjmeTkmeXlmebmmefnnuPjn+fnmejomenpmerq
- mevrmezsme3tme7ume/vnejonO3tnO/vmfDwmfHxmfLymfPzmfT0mfX1mfb2mff3nvPznfT0nPb2n/f3
- mfj4mfn5mfr6m/v7nPj4nPn5nfv7od3dod7eot/fpt7eoOLiouXlpubmp+fnoenpo+rqo+vroe7uoO/v
- purqqO3toPHxofLyofPzo/T0oPX1o/b2p/LypPT0pfb2p/f3ofj4ovn5ofr6oPv7ofz8pfj4pvn5p/v7
- qvT0q/f3rPDwrfPzrfT0rPX1qvj4qvn5qfv7qvz8rfj4r/v7rfz8serqsu3ts+/vuezsuu/vvunpve7u
- sfPzsfn5sfz8sv39tvn5tv39ufLyuvb2vPHxvPPzvvT0uvr6uP39vfr6vPv7vv39wurqxejoxuvrxezs
- xe3txu7uzOXlzObmzefny+rqyezsz+rqzezswfHxw/LywPPzwvj4wfv7wf39xfz8zvDwyfr6yPz8yP39
- z/z8zf7+0uPj0+Tk0ubm1eHh1eLi1ePj1OTk1OXl0urq0/f30f7+1f7+2Pv72/7+3/7+4vz84/7+5/39
- 5f7+5v//6fv76v7+6///7P//9f//+////P//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFkrd1wAAAAlwSFlzAAAO
- vAAADrwBlbxySQAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTAw9HKhAAABpUlEQVQ4T2OY
- hACT693i66Bs4gCS7uoQ1e7ecNeUfiifCIDQXWHj2LN85Yr5RZ4JDVAhggCme0qisHP63GUgsKjDqwwq
- SghAdE+usRNV0Y/t65sJBLMWdSeCRQkDsO7JpRaiKlpa3ulZQFA4c344KbonJAuIKYOApo+vr29JUfCM
- VIgkQQDUXWPLLaEIAZra2rExZosXtkFlCQGGSeVWnA6ycnLicrKyciqa+noyxplZxVBZQoBhmqC06ZJM
- OW4mMTFRSWUtBdvZcXwZBbVQaQKAoYpZ2mj5THdJWWF+IXllOfMFc1o5okrSpkLl8QMGEw4Zo6XtsZHu
- ksKSChIihkFZbay6kX5E6hZiYGXvytLRVRWztudtmmcpnFEsKenSCJUmABjyQlNFWKWUlWSFhXmSlsxy
- 5Ilqj8gmUjMwzKdNqQwUZuUV4xfiNvBr92RT9w+DyhEG4LQ2rcVDiIWDV5xRpj1AUdJtOliGGABJ55Mm
- trgLsXJxicWWeDeTk0MntkTnO3Fr6OVC+UQBuG5gXpncpCaRMwXKIwog6QaCiZ2kaJ40CQBLsmMl+qL9
- EAAAAABJRU5ErkJggg==
-
-
-
-
- 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
- QmCC
-
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAAD0AAAAUCAMAAAAJH8UlAAAABGdBTUEAALGPC/xhBQAAAwBQTFRF////
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACyO34QAAAAlwSFlzAAAO
- vAAADrwBlbxySQAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTAw9HKhAAAAE0lEQVQ4T2MY
- BaNgFIyCYQUYGAAE2AABE91XygAAAABJRU5ErkJggg==
-
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAAD0AAAAUCAYAAAA+wTUXAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6
- JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAA68AAAOvAGVvHJJAAAAGnRF
- WHRTb2Z0d2FyZQBQYWludC5ORVQgdjMuNS4xMDD0cqEAAAScSURBVFhH1ZhrTFNnGMcrJm7gMDLjUDd0
- cXNh++BI9mGLLotxyYzZlrgYcZpsccvUuEyHCkFianQQZgKrXSmiTUeBclGZeGeISBQEqhTaWMSutFxa
- bkG5WCqCNvzW83rJCPXybWcffjnJe877PPm/z+V9chTjzeO8ME3jDJwYoObzGmzbbAyfHxZrQb+VMS8s
- 2nfJR83aGs68ewZPtoeuoi5Mq0yYVpvoPtiNv9EfdJ8ceb7oQCQ7cjrIm5/HqcWn6DH24PcGBN4PvAvg
- tXqxK+3UraijbV8bI1Ujwe3IiGeK9lv9OH9zon5FTcWyCtpT2vFZfIy6Rycw1jXGiH0Ej86D+SuzKIFg
- 9uTCU0V7L3o5u/IsWTOyuLzsMrZvbbT90sbtU7fpP9fPwF8DDzk/wGDFIEOVQ9xz3KMzu5OuA11BbcqF
- yaID6dymb0O7QIs2XEvVkipqP6kVNK5pFNF2q9wT6Py9k8HyQe403uHq+qt0pHVMtCkzJoiWmpFD7WDf
- 7H0cevUQZYvKKI8un4B0CM0bm7m55Sb2H+044hx067pxap0cX3KcG7obXI+7jr9Zvo3tiWgpUsUrilGG
- KDGEGzg55yQnXjvByciHz8dI61LU61fWY11jpXVPK47dDtQxanrNvaK2OzQdPLjxYJIzuSBEuwvc6KJ1
- JE1LoiS6hPywfEFRZBG6GToKZxWSH5qPMdQo1i+8d4ErS6/QtKGJa6uvUfBGAQkLE7ApbXjUHlr3twZ1
- JhcUY41jZHyQgeEtA6lzUrnbchfrz1aORR0TUd88ZTOHZx7mYMhBtAotuS/nCtG1y2s5F3OO7KXZuP90
- Y/jCQPrr6bSnttOytwVfpS+oQzmg6C/uZ9usbeTG5JI4JxH/oF905aoVVeRF5FH0ZhGqEBWpilTSpqRR
- ElUiRB+df5SMDzMY/nsYr8mLZbeFxNBEnElOUeNNPzVxv+F+UKf/NQrVYhW7InZRuKiQpLlJ4t7tzenF
- tduFfbudS8svkROeg3q6GmOkkZJ5Jehn6NGEadgxewe139SKDt7yawtxU+KoW1mH7QcblvUW/Nfl2cwU
- migNsYpY4qbGkTAzAZfehTvNjTXWKjq1JFJK7YLoAorfLiZ5ajLlW8q5VX0L/UcB8YH9Ukq79rvE1JYT
- kSMOylch4/TuzOykakMVlh0WshZksXP6TjTvaKj8uJLShaUYw4yoFCoORBwgJTyF09+fZsQ1wtDlIUqX
- lZI8N1mktJQdDesa8Gg8YrAJ5kwuKKRhREpDCWl8bNjUgHaelu3TtpPyUgqZUzNFPaeHp7MnfA/xUfGY
- 1pqEyJrPasR30gGZV5tFHQdzIjcmTWTSvN1X0IfpaxOauRq2KrYSr4gXUdbP1LMxZCNHYo7Q80cPTZua
- KH2/lLxZeZhjzYyaRifYkiuTx9BHSJ23N7uX6lXVqGerRZNShipFtPUL9LiULtGlLess4pDk2qmD8VTR
- j5Hu8R5DD/Xf1ePUOLn45UX2hu2l+tNqcVd7Mj1B98mZ54p+wqM/JH1H+ihbWkZuZC6uVJdsr6Vn8eKi
- /8WoefThxPU//FU03jzOP376CcWMaSkEAAAAAElFTkSuQmCC
-
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAAD0AAAAUCAYAAAA+wTUXAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6
- JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAA68AAAOvAGVvHJJAAAAGnRF
- WHRTb2Z0d2FyZQBQYWludC5ORVQgdjMuNS4xMDD0cqEAAAYwSURBVFhH1Zh9TFV1HMaRhUvJlfkS2ItZ
- WuHMLa3m0j+KNZdUrJxWW2XjD63ZXC1qWTqbw0plxvKFNJ2jBUiIaCIaDBSJ1wui3psvcHmRNxEEuYIQ
- cu89T+f5Hs/xXu4B7tTa+uPZufdyz+/+Pr/n+3YIUM4o8FeuSiewNxd4MRxYshxK5mnT7/2bulrb6/We
- e+pp6PP5fCj5DY1cG5RFi+B8/BE4f9wG165dwHPhcM19GdiQAJR3md53p0S47HwrCsqrYDtTA7u9QXSy
- ugWFZxpx5FQTMi118lrX0VMNuGy76rOWX9DuxFT0TQ6Fa9o0YMvPUDodUK5f11RkAZZHwx02G4heC+RU
- ma5xW2pw4JqjAIf3RSFhy0Ts3BTso33py3CoolGUVlIvSixqQsmxap/1hoR227qhrI9Dy7hRUGY/L3AC
- WVvvrfpGKLazquNbxX0kHjVd71bV0VqAtqYcNFbvRPOvEbjyZiCaXgnE+XWBOJ0TgJKMQBxNuws5eduR
- nHsOm1OK8H1SCXbn1aE41+6z3uDQar5emj8frqAg/D19Jlzhr2uOqq5TSDsI/LZfu1IZWTfBVZmueYsi
- MHW5IR3dsVGyJ6rrkwA0l2siOA/lQlM7tuY24OttWcjLq4D9RJPPeqbQ7h3JqJ8yCa333Q33ozNFrofC
- tPxdsRL4ap23vlkv4K7yMu1w1sT7rGkmt7XD9POB6mz+C9d7zok649YY0DUfBKC/PgCt1hEGdFtHNxJO
- dGH17iJTYMoL2mW5KDlrmTgBbaOD4B413keEd7/6liEsjhJne9bFoid8jlbg3l2qpYbH2maq++4LtH+0
- DM6sMtO/62q9WCbAzQ15KI370oC2rRiBnppbhJZWpFZnhnNpsLbgkCI4Cxfzd+mncEd9DMusGeI0Q9wV
- E+uXi42fLZP1ekNDh4SvtqWgNP9b0cnUD4192KO1sNbz2hN6zS+WwaGlz+3Zj5Ynp8IyNkhakgGnio57
- vqc8HWfI9z08EX9MnwYlerWEO69c1/OHJIqSir3U+s7Cm+up18Hg6bK7v16uzspkYx/OdC286fZAaBay
- waHVzRTPmIGWkBCcnxoC5ex5cc41fpy4nhUcaID3jh1pbJJ5zk1an34Gyp49sEZGwHLvWA1cLXg44t26
- GmNjDLjhrqwnjpQU49625kIBZtvqrU9Cf2Qo+heMQPdJDdgsvId0Wkk8hOTgkagNC0P2lBCg44pUZWXO
- CwJ5LeQB2QjbFt8LuHog3GDJs7PkkMQZFZYHxANjjrsXvi/u6j8kTqutbKDTnsCUI3IButIyvGpCfVW6
- QPf3VIjTzlUPwrkyAFcPmUPvqOgbGpphmT1hjIS3QNtrtE1z82pBuqb2Z26KbusHwNdUxuQJEuIE1qGV
- 2fO0IjcvYthixlDWgc1gdTXYD0h4t7eWwRYXI/dQJUt8qzdb1vbCy9KyOL05bL7jaQAr9bbRAbJhwnPE
- 5GTFXJU2pS5Od7ufekzy3XZPoGxWOX5cnK5UXdehmSL8PgeZ4SoyVbtqORxvRAwKq4uFjLKWxaMs5m0D
- mtWbPbryTy2n80r3yViaXX4BmUV2pBTUoSzPZDihq52Ri8VZAhCcByH9+UboEbry/jGi2iXvadGgDiOs
- 4HSbDx9sdXSXldsfYIoh709rY59mXtsrD0uot2VtlMmssuQ1QweP/STTWGrxBdGwYygfFthiOGAwFwlP
- 5+kqoTmk8DULW9rkSQInU5fqKL/nfGKWtC/JY7VqD6zctyt9zYICba6mg54ztg7Iz+MzrNi497RU750H
- yk3z2ujT+geE50TGyYrOEoqwhGYes+gx/yXv2bJupIBMa8U1XovfSel7zC+slKetrMMWuXqKT1/MY30M
- 1UN7oAmmYygloUd4FcYTnmLucigRcBYs9Xv+jpR3SjoIr8es7fKQUVR1RYrYD/naleHO6NhbdgnFR84Z
- 95pCe56MtBrmK11V89Ux9yUBZz7TZYIPPMn/UgJd3YPPYzPlynZF7bK6JLwJzgNISygw7hnU6YFClVb6
- 6SqfuhjqnL78KUT/pgjNUM9K0fryhvjfsTYuTbRpc6r8EyExKRvWrFrjHr+hKf4AxdxlhdYP4v8lBf8A
- 2Zu+iiHUgUsAAAAASUVORK5CYII=
-
-
-
-
- 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
- YII=
-
-
-
-
- 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
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACyO34QAAAAlwSFlzAAAO
- vAAADrwBlbxySQAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTAw9HKhAAAAE0lEQVQ4T2MY
- BaNgFIyCYQUYGAAE2AABE91XygAAAABJRU5ErkJggg==
-
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAAD0AAAAUCAYAAAA+wTUXAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6
- JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAA68AAAOvAGVvHJJAAAAGnRF
- WHRTb2Z0d2FyZQBQYWludC5ORVQgdjMuNS4xMDD0cqEAAAZfSURBVFhHxZd9TNR1HMeRhSvJNUoNrDRL
- K521Rbm55R+NWjMrN0trs1mjJ+csszlXM2czNdRUJoqaZ6YkiIj4gKIgoiDi8SxHhxwPwnEgTyooDwJ3
- 3Lvf+3P+rjvud0g+1B/v/bjjft/f9/V9f55+PiXrjBioynUmXI84CLwegpszPodleZLm7+6bIoyoTKp2
- ++7SwWqY02pRcdKCkq2lbv/zpgFDX9GdgX3mTFifHQXrxkjYduwAJoXA9tqbuDovHKawfM377pkU4JQM
- AzLzylBsrER5eY2osKIe54wWHL9Qi2M5VfK3qrQLNSiKMXmsdVtoU8RfaN++B12jg2AbNw7YtB32llbY
- u7sdysqBfd4i9E54BZ2fLYFlTZrmOncjy2Ej2lszkXQgFLs2jYBuvb+HDiR8haMFFlG83izak1WLE3ty
- PNbrF5rA1pXr0BDwIKyTJgscIXHJ7K76BtiNpfJbut+4NFZzvTtV4+UsNNWmwlKhQ92f03Bthi9qp/qi
- dKUvilJ9oE/0RVr8A0g9sw0xqSWIiM0SbTvXjMSIsx7raUITtmFDChqnvIGmIX7ioi3kPQd0zH432eKO
- ipCYLOC9azejafZKjzXvRgSmmmsS0PZrKGx+fqIb3/qgLs8hgvNQqmuvYPOpGiyJTEZaah70+wwoDS9x
- W88DmsB1q3UwjxkpDvc+/RJsT453SMlfCeUlqzwk8Hm5cjgDhTZuyNX83lXcMJ3u7rgoaglf5oSu/NQH
- PWYfNBoGOaGbrrbht4IuLN2ZhfxE7TXdoAlMp3JGDHc4/NAwDxG+950PncKsULmHod0RMlkKXG/ofNRF
- uz9IS8bFX6Pmg9ko+TlR8/+qVGhes8O/d0IXfzMIHZWe0Lvyb9we2hRZisaIZNRPfQvZ/o4F+xXBlZBn
- /orzCmRO8ERxWkJccX4g0GWhc2S9zqAgr/B0uqI4FtkZq0SFcXOd+yhf5AhrNa9doZftzvEOTeDW3/eh
- /vmxyAnwk5bkhFNEx10/U66OE7zrqRE4MWEc7IuWCjCv7OluD/slHVUL4tzEQ5a1bq3rDZ4u9/aY5Wo1
- xTh/b01whDfd7gsdFq33Dt28Nx/nJ05EfWAgSscGOpxSnLMNe0xcT/b3dYJ3BgyWq4S6kuvcpOHFl6Wg
- GaZPQ84jAQJM96uWpbg9yPjdYudmVVBv19axo6SuqPeq4c221WmORs/0IPS8PQhthQ5grfDu1+mWsL2I
- 8R+MS+PHI2VMoLQfFiW2KEK2Bz4uG2FR42cBVw6EG9S/GiyH1JWcLbA8IB4Yc9z2/hxYtub98zDFver5
- 0W5ydZpXit8JsDKMiJR7zWUJAt3TUSBOW398AtYffHD9qDY0C1m/0AzLlOFDJbwJLf1Wmbi4efvHX+Dm
- BKV6K5ui2+oB8G8qfvRImdLE3VvQPCwpclOmueV137bBz8Z5jvajwlat/kOKqevvqJryQxLedLw4fIXc
- Q+k/8azebFnsz2xZnOCKdBc91vNhpY4c4iMbThw93AHMFqS0J+at6m7bC89Ivhc/7IvmBXNhT09HcXAw
- TIrrKjRTRCCUIte685THw/qK0IRltJVvKtT8DcVCRhlytyB3xUdOaFZv9mjTWUdOn8k+AP3Fehk/j2WV
- I+58tfZERsCW6bPEWQIQnlcpVLdCj9CmR4eKWHEZDRxGGAU8KDWk6S5bV9fBdI8HaUopbv3BqmowFYjL
- 5aYkCfWm5LUymZn07zp15PRWmcYIqsrrGMowk4FECcVuXbzkogpPVwnNfObfLGwMacJxBqejEtLPBTte
- PpR7B9Kq/q3YYdgNzmZWCkxsZpXbjK3O2dSWRAPW7i+S6q075JjI+q7nMZxw0zfXR8lkpcITVu3fLHrM
- f3FWyV1GBL/nQVyOPOeRu/dUSmE7lVwsucoRk1dX8e2Lb2HqGCouK/fw9dN1X15nb8JLFVZym2GtglPM
- XXy50BnSPKT74bCm1KrOd2flygg4WXBVXjCyyq5JEduQ4bgy3JPijdif2+D24qEJ7ZSyKPu4hLLiKvOV
- LyEEZ0hL3ivgWhX3vxKhT5e1Y+GKQwLPdkXtMNgkvAnOA9j+0xHnPf1Du4hO8gE9G3dLAWPLGui4eV+l
- OM4wjlmVJPm7ZsthLA+PF62PiIMhqgRRUSdwPCzDec+AoVURnMMI9b8D35GM+BtD6z86AGwUowAAAABJ
- RU5ErkJggg==
-
-
-
-
- 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
- AABJRU5ErkJggg==
-
-
-
-
- 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
- RK5CYII=
-
-
-
-
- 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
- fhwAAAAASUVORK5CYII=
-
-
-
-
- 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
+ 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
@@ -2502,612 +1911,6 @@
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
-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
- 1xe7R6QZxv8DiyxXTC5xLO8AAAAASUVORK5CYII=
-
-
-
-
- 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
- 1xe7R6QZxv8DiyxXTC5xLO8AAAAASUVORK5CYII=
@@ -3145,178 +1948,40 @@
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
-
+
- iVBORw0KGgoAAAANSUhEUgAAACoAAAAqCAYAAADFw8lbAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
- vgAADr4B6kKxwAAAABl0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuODc7gF0AABLHSURBVFhHtZcH
- VJTXuoaxgChIR4pIEEUsCZbEElFR7FgCEgVEUWMKchQ0InYFASEqEQtSpA29t6FNAwbpvQ8oRcSG1BkY
- UWeY92w8c0+ul+Qkueved6137X9mvv/fz+z/29/eW+LPpKliNN1ki1XqKftr3Ose0dwrbnHcc27x3DPu
- CVzH64lcR4//Zs8xJ/2r/SWR6/Igj3s9pKl76zcpJuLH/f9IR33X9AOWdtS42DjUd7xGOLUT/whtw+7Y
- 59iS/gab6f3YxBiAMbMfRqwBGOVxsaFwGFvKRmBW8Q6W1R9gUvkei/1buIYbY7eKH/t/q+XzH0556E/L
- rmvk4HXvAO7ktmPBd/GYciQGUmezIOXBhpRX4W/+tQhS90oh5VcBqdAaTIlrxnT6GygxejAr6QW+9q7n
- ut4sjTh3PpLi+LM/5czPfhQHBz+Krd0Dyo8/3qf8YOtLuXKNRrl6ucB9vtodGTHGn2uLYbieP6MVPrlP
- wGjqhiuzEz84M/HdrUc4FFwFm9gm2MQ3/+bEFtiktMImvR2WmR1YEl6HiffyMCmhHcqxXdCL7sSxsmGU
- vuSjd4CHvkEe2G0DuJrWCXOvaiy4UwnzlBe4T2uHjvolczHGn2uuusvUr7YF7vWNarQIS2yxCI9rsoim
- 1FlEh9ZZRETWW4TFNPzmWBIzZhLz0fEci4CoRkvNcwyGxO0cSAY/gUJQG6wKh1DVN4oPo4BwVITqHiEu
- ZPXAwLUKM9zLsSCgCXZ+bBiuCD4oxvhjJW2RlU00nW8YvWeNe+TO9WUJu405qXs2c6h7t3HSLUw4Gft3
- cjIP7OZk2Zhysg+Z/WYbMw7DZg/n0RFzTtF3e5rouxbWuBkarJI6GFgs4crEZJ9m7CsYQk3/KARjoCKg
- vFsIq/iXULBnQu5cAWbdrsTxwGLYWFN/HzR1vYRSkbnS3mbbL0Nbncyedrrbj3bfdcZAwHXwQm5hOPwO
- hmMegJ/wEG+TQ/A2LQwj1AiMpBNTwzGSEoqRpBDSBoOfHICWC9ZgbjUSZmyevERx4RWtyRa+HAlnOiwY
- r1Db8/7jaI7Bsp8LYBjUiqmHkyF9nAYN1zy4pjbDw61oPGiFk0Rmi4v025c3VdDtpYlubx1039VDt898
- dPsuQLffInQHfEFsQLyEeBm6/Yl9l6L7PvnsTX67ReJuzMPrG7p4fmkFei7uBdtslzBzi+SSsT6U5zvr
- Sdsldu2MqEIwvQLtrwbxrHcEQbU86LiVQ8rwFiR3eMM0uBZp9X2ICm8Yn6M9NAk+nkoAT4gfi9s24o4x
- T4CofSLQOhmix1JA8xSgcRpE9bJA7XSIquTJ+1MAKhSBGmUIq5Qx6LsDfdcOoXC/BQGV+gg6puUWKUtX
- 2TN8tTbdT19kHifa6V6C72+UQcckEtqKTu+3bAiMDIxrCKIkN7uSeTB+1vfQCWinBN6Wq4BXOB/9NFX0
- 0ZTQx1AglkMfXZZ8noa+bCn0ZRJTpdGXNhV9qTLoS5HFywhZ9KcqEXAVCKpVMBi4B4M3jqH0+8PCzG1T
- /g36X1q2LnzdfM8K0f1yMusbBvBzZCssj8QKV+7wY5isi9IUh41XTw4BfSWBrtSNEPRXgV/kj+Hsaxhm
- OGCIZYlhlhGxLoYYUhjOmoyhdGkMpcpiKE0evBQlvArVwsvYhWREVSGomgFu6H5w7/yMyhN2wqxtUz8B
- tTAL3nzyYgbHO6kD+TX9ePyMj0ccHjziq3AiqhGnnXK+F4eOV08BAe2TQLX3bFTfOAou2xk85inwsqyJ
- NxDrgZchC16aDHiJcuDFKoEXrQpejDqGknXwtsAYhQ5yQKU6BBVq4EYcwZD/RdQ6nRZmbZf5BPRmSDPF
- O78PvnndCGI8w82EJljYp2HLnmBhCKW2ICqkbrY4dLx6iiT4okEJ1NzTRqmrGUZfuAHPHEmuWuFdlTGG
- ijahL2MR3sSp4cVDDQxE60DEJiOYbwBR6Woy6qbI+W46yVUNCMrUwY2xBT/UDQ1XLwmzTT4FnbcmxGjO
- wnv1pIXV+Ue4G9WMtS75mKnvOrBplb+qOOz31VNMRvQjqCYB3YzRl8eBLiuMcr5GW/BJCNooeFdqj6c+
- MkjfPgORi9TReX8ORIylBHYthrLNkXOYgJZoQlCsSUbdHm+jvdDs4S7M3iE7PkeNI9fN96oW+dXywaof
- hGNsByzt0wSGuwIytORPqYnDxmtsRDE4ATV3ZxDQFRh9ZQo8/xrCRm10BGij2F0XzHPqoB1XQvp3qqAe
- UAPzlDbexi6FiGmEoQwCeoi8+iItCAtmkrw9g5FEHzy57SXM3in3Ceg+s+ANx8+l13vEtoFZ1ovW529R
- 1DKEX1MbccS/CFt3hP+HHC2awEf/RDT6q6A5eDFEfcYQvfoKotZlEDUux2jFSgiLCDh7DYQETJhlDCF1
- E0Tp2yDKMcVA/HawbAhowSwI8rXAo17Ae2og2n3vC2m7PgW9EcyheLF74ZP3BsGs57id3Azr0+nYti90
- NCSsriIiuG6uOHS8egomkl3CZPSXrERP2UrUesmi2mUqqs+T1lEO1ScVUH1CGdV2qqj+SQ1VRzVQdVgT
- VUdmouqHmWCaKoKxn7x6tjaEubMwlHkVH7LD0BkUQEAVPgHVN6IY637u0zTXMBgWZ/LgFdYEw8t50NJ3
- 7Tf+yk9ZHPb76smfxBe9kUI/WxF13lNQ6S6FyqukvSCNyrNTUek4DZWnZVB5ShaVJ6ej0l6OlB55VDoo
- oPJnYkdFtHioALmfQcD6DDzaNXxgRqMrLFRI2604LkeXbohYr3+zSuRfM4z8Fh5OxrTD/B8pgrW7ApJn
- Kpz+4wnVw55M6ugUDBXrgFe8Db0Zi9GbsAi9UfroDddFL2UWekNnoDdEHr1B09H7kLQBiugNVCLfKaPz
- tjL6I3UB5mwIGDoYorlBkBOHF1HhZEQ/Bd2z03/tCae0CjeSo9mlvWhqG0Lx4yH4pDfhqH8hNm2jHBWH
- jldPrhQfL6ahI2493nUXEuB74GZeBjfZjticeDXxLHATJcGNnQxulDSplbLgRspjMIrAxszG87AvALou
- BDRdDAZb4128N55HUMaBegZxwtxze3Evtxthuc9xP+0xDp3LwnZLCsnR2prI4Lp54tDx6smR5qOL5ONN
- PZRfPwh+hRtGSpwwwj6EkbyNxPMwkiOHETpxhhJGUlUxkqxBPBMjZDF4+2gL8n8g6332XAiy5mDQZxd6
- nHajwPwbsoRKfwK6ZHPEFv0lvh1660JhcS4fXhEcrLvKhtZCt4HdxqF/UkcZU8mmZDpqvOaQ8mRK6qgL
- KfinIHqyF++r1mK4eD36MxeiJ0Edr4I1wY2bTSYOKfhsA1I7ScFnmiHnAAHN1IMgcy64gZbou2IFpvE6
- YfqmCeNydNnmqHX6t2tFfiRHHz0ZgkPcU5jaJn9Yt9M/VkvhtIo4bLx66NP4aJdHza3PCOhGAnqMFPy9
- pOAvR1vISbxvuAd+gR067k0jBV8VUV+o4ZnPXIjopOCzxQXfmoBmzIMwQw9cyhH0Xz+K3O2bCeikT0B3
- b3uwys4xpcQ5qhU0UkcbW3kobh6CbwYHR3wLsH5T8H/I0WwZPloVUHNzJgEldfPVTlLwl0PYMAttftoo
- 8dBFzkVN0OxJwT88A2lWamCc1MZIDAFlrP9XwR8DTdeHMJ3sC6KPYdDrBPL37PiQsXnSJzk3lqPOJEdv
- 5b5BWN4L+Ge24vtLNOw6ED4aHFbXEBVaN18cOl49mbJ80WNFND+YifYEUuQHNkD0ejlEbcSNpNhXrIag
- cA0EbFLsmRtIwd8EQepWjKaZkJXJlFQGY7AsCWiqPgRpBDTOAbx7jmSbtyMha/v0CeJuPmr7QarJxp0x
- z5ZujYSFIxs3Qxqw5hKLrPXXBr7ZGPzHy+eYejKm80UcUmLYhuhiLEbxZSkUnZ6MwhNSKLSVRuH3Mig8
- Mh2FNvIotFZEoaUSCr9VRqGZCmlVkLVVHgxzAppIQBMJaMJpDPg58codti4Qd/FRBovM5piZnnE+f4Ee
- eTSwXhRV2od8sh89l9hBcpQ6cutmmbeXV4XHBSf2iS+0fKaIb/tNPWlyfDSooC9ZGS2/yoNzg9hTARx3
- RXBclcC5pgyOswo4V1TBuTwDnItq4JxXB+esBjhOxGc08MxVC4ghoDEENPEMnj84+Yv48R81W3e31tJv
- jrfs8clEde8HvCMnu3dCskY8+wCz0FasOcvEuju1sM58De/spyIdtcum4lt/U0+iPB/VqkChGkS5GgBL
- k+Qe6Zg2C8jShijjM4jSZkOUqgtR0lwgQQ+iuHkfwRBNHCk2uRZE6+FViF131aVvFcWPl9D5zFRxxbdn
- SuQvpWL/o0FU9o7+GzSr/T2W3G2E0sE4qF0swOehT/Cjbz6WL/Uff7jjuE6L63ogR+26I0/t8lKgdt1U
- pHbdUKJ2/ULsqUzt8lChdl1XpXa5zaB2uapRu66pU7tcNP5lZ+KrYpPPnS5q1Nrz6yzFj5bQ1Ngiu2af
- I13FhQotctq0IOf6sp4xUHx0Zsd7GNxphJxVDOTOsDHLpxY/PSzCgf1/cFz+PenPsJVcMNti7YLZVkZf
- LrA3WrbAwWjpfGJ9e6Ml+g5GS8j1//RiYgPy2yI9W6M52uZG68xOxGjfSodmWDuUA55gN5uUozejGBEA
- IwQ0ve09Ft2uh/yeSMiczIGGVwnOxTfgypVHfx1004qHc4sKKkFn5KGkogERrDr8SinCjfBieEaX4Xpc
- BdzjK+GeWAW35GpcTanBmeRa2BHvjyvHztA8LE5owMys15Dxa8KEyywsCa1BAtmIvBz8gG7uB4TWDUPX
- tRQzVvhhonkQDH1KkVTfP3ZcthBj/Lm2fh0+LSi0oqCxoxtt/e9wsZQHA5cSLHAvh753PfR8OZgb+Bhz
- yWjNie7E7IQuaCe/wMz0V9CgvYEmqwfqjDeQjmrBzNuFsLpfwv/CMqJVfftdrHbKwUGvCnzrUQLDQ6nQ
- NfDE9z8m4mF8Y3FoaktgdGj9v3P8L2nxwsuqTpdj81lFNXBIrceUw5GQPBgByZ/iIXkyDZJnMyF5hYHJ
- rjmY4MrABLdsTPiFiQleLEz0LYZsSBWMU5/gbnb7u4jIhv0rF/t+KW/o9Xj5KTb+EdSMa+QYsu1qPlba
- Jo4GxTWyyXleQdz139fqZQ+UfCMbcwLzX/BuRtTxvCg1vBtR9TzPxCaeZ0ozzzPtMe9a6mPeRs9CnpTJ
- rzyp7Td4c+xTeKeSHvNuszp5gfS2vvCoButoSv3H4v/1sqD1S+xoIu/SQTx6OoJtt4oxc/bVgXVL7/3x
- Ov9XFXS/cip5HepjjglrVI8KrVVPimlUT4xu0EiMadAg1xqu59nqtraZpx0u5qcs3+TnSLZsGlEknhyB
- PwIYfG6lunHT4Zs/2t5nnY1vRXplH5gVvbgS2YZvTtDen3cpTfrxGPP0ivmBUmPxqnLbpJevsnazPJUS
- smZ3stHYd39LFAplAo1Gm8hisSbRaTRJJpMhSafTJfeZhGuwqvrflr/8gM9Pp/O/0L2inZGRMZHBYEwk
- 8ZNMjziHOPtH4/mbAYhEQDtvFP5lPBz2fYKVJN/XRz1FQHE/Nm+Ntx7r58ulP5g63wpATE0vtPZH13/s
- /O9orGMmgzEGKE1aGSaTOZ18J2e1O2JJZTtf0ModxVduZSIjI4qtwbLbu+YtOLZr7jzr3eYXImqp7cMY
- FogIqAgdQ6O4VcjFMrcaKF4pxgxS+D0LB7HBIjVeba6LzbKvzgSWtr5BTCWZpJaRL8Td/3Xl5uRMInDS
- xPIsJnMGabWIdc45JGwILuoXeJQMQOUnKtY+aMBqMmGW3yuDwS/5OBLQgNxXQrwloGPqICN6IYfEnsmH
- HNmgyHvV4SrZWa3yLIVhSAtWOeXBp3IYG+6ysdA65u+D5rBYY699KoFTJaC6xIuJV3tdT7VecLVQqPxT
- Ehat/hX7zmSO2rjmCi0uMoSrbOKF+1xyRLROPvjvhRAKheD0fcDhtFeQ+SkdMsfpkHYugn1MDawuZAn3
- ns9+P9vowQfpE1RIm9zBwcNJfx90TOSVj42qnBj0a+JvQgPTT2rpuApMNvsj7GGVID216EFWxqMbxF5p
- KXm3j97Oa6fkN6ClrQNPn3Yiu4aUJr9yyJn7Q8EmHEt/YSO6rh/JGZXVdFpu0LEfQpK1dZ1xyi4NkcE1
- zeKu/74I7AQCO5ajnxEvI15/YM9DL0pAOTMptjyYxWSdJn/Ak/ghccy9cDr7FpXDo1d0vWNVPn+XUtr1
- Loj2mB8aVj0YElnTG5LS9Doso6mMTs/1JfFxaam0LPfLWe1xEVWc+Mjqw+Ju//fKycmZSB48mYBKEU8h
- 12PwKqTVJzYi3kdsR3yW+DyTwbpEfJn4IrEdsTmDnmNIp+XokfvUSIw28SLi5cRfsljMOSwmc+o/AaNI
- SUwPzmIlAAAAAElFTkSuQmCC
-
-
-
-
- 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
- SUwPzmIlAAAAAElFTkSuQmCC
+ iVBORw0KGgoAAAANSUhEUgAAADAAAAApCAMAAABEBVrmAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6
+ JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAADAFBMVEUAE1MAGWsAGnEAHoEAIYwAI5cA
+ J6cAKK0AKa4AK7kALL8ALcAGNc0HNs4JONAMO9UPPtgRQNwTQt4WReEdTOYiUekjUuomVe0tW/EzYPQ2
+ Y/U9aPhAa/lLdf1PeP5Rev5Xfv9bgf9jh/9lif9wkf93l/+DoP+Mp/+Rq/+Wr/+juf+mu/+vwf+5yv/H
+ 1P/K1v/T3f/e5v/l6//t8f/y9f/1+P/5+v/8/f////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcxoJWAAAACXBIWXMAAA6+AAAOvgHqQrHAAAAAGXRF
+ WHRTb2Z0d2FyZQBQYWludC5ORVQgdjMuNS40Po3MdgAAA7dJREFUSEt9lYuWsjoMhasgIqCgIEhBELkJ
+ WLQ/pfj+T3ZSvIwzzpztrCWzyNckOwHR7S/x7pReH9dv+hNgBNu2G9aPf1/6A2DtwbUSkrouzr6n+RXg
+ 9LhZ2qcrg7Kw60bvaX4DWLvTV25N2DAMfGgT7OGie9z7DegafbkK67qD+FFdgTFOyf3uBzDQw2xpJCco
+ 6CXOSYrxfmzmA+jKlWYVRUHod12LMBH3fwB9s1tpbpFlBWmfuo6ifbIXEd8AcGehajhL07QgpCZvajmP
+ PgDhjrraJxF8svpUv6mljO9/An2pK4oVRVEoPsXpTaKhY/AD6JqZonjhSwl0/hBU1K4X5oZC2AvoSk1W
+ /Xcl2UM1qU/6uqcVpsMT6JqNIq98711+kiTQvuimmOic9zS+8Dsg3JEV+xH4UpRA90ldnIrJ+sbZhcZQ
+ kwBYu5nJqu3c5T2+HUd0khZZUSz1gbPqTGM2Al2zmCuqZ48KPccO75cCiAooaq2jxTHPz5cYTkfCnUWp
+ aV3mWJbtq7IsG3AF8qBvEF7sTAnNYwDwCFwzaY4VbRho6oSqAELbAFmelyRh5KKg685zCb8AcgB8qnFO
+ 25NhaKrqjPGG7URQkzspoX5qojivLjk+A9AEaJ5PNcau5OTZlhUZmpBhpzCLJSrhpDM1JTOvKshxQV2A
+ JADUoWvrOgv9wr8DdgTG+pM15xfwByMzz6szpEAHJMUmAJySuqjhz/M9Q1WtBAzW1zPwB9qleGJCTTGO
+ GVojaWGaU1tUVKRRdoWyHC/xwdbZZmcukBmLDLpkYohvOQomSJKk6Yq29SlLIjEH6LgFW0U5/2Lpbmig
+ w7Fxw24o2+pI2spTdV8XWRL6nmOBValhTNYdrE8+kwSQ4zjY7UgPtpLsEJSHrTKdqn4ahb5jCyDSJi7j
+ DIa7EEB1ueCyJLAZN9RfSUuBEogiEtjgkhoqE8Ip+BhvEBb+xLj7B+eLwfG+H9i1uSOaLRIAoCJpJ2YV
+ 76DrvMK4YoOIB+AugQRjYeO0Q02dwDYIQPiDcf58wz4BWNq2HBEZEsi+5ilQCwDHAB5OfGz5I+wLuA1M
+ IEtAIIOjKDDc6lLFgOwO12f8OwBIR8oDILJsKfJSAKLtY9N0Y7+jvgHiZ4eILLDjQSC2IYf1qfpHv6N+
+ APB2oiLLtmwOszmOxfqIl8uXPgBohZKG0DbbwoOFcTyO60ufACA94/DkHraLuRmT10/JXb8BowYKswx2
+ pHurX+hPAGZJm6b9Xg/ofwDohvU/zr/d/gOjFSyLIyVhmAAAAABJRU5ErkJggg==
@@ -3761,73 +2426,199 @@
aFBnMzDoGOvU1RHns8OKwl29ev8Xjm0o4imHmBUAAAAASUVORK5CYII=
-
+
- iVBORw0KGgoAAAANSUhEUgAAADAAAAApCAMAAABEBVrmAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6
- JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAADAFBMVEUAE1MAGWsAGnEAHoEAIYwAI5cA
- J6cAKK0AKa4AK7kALL8ALcAGNc0HNs4JONAMO9UPPtgRQNwTQt4WReEdTOYiUekjUuomVe0tW/EzYPQ2
- Y/U9aPhAa/lLdf1PeP5Rev5Xfv9bgf9jh/9lif9wkf93l/+DoP+Mp/+Rq/+Wr/+juf+mu/+vwf+5yv/H
- 1P/K1v/T3f/e5v/l6//t8f/y9f/1+P/5+v/8/f////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ iVBORw0KGgoAAAANSUhEUgAAAD0AAAAUCAMAAAAJH8UlAAAABGdBTUEAALGPC/xhBQAAAwBQTFRFTExM
+ WFhYW1tbYGBgY2NjZGRkZWVlZmZmZ2dnaWlpampqa2trbW1tbm5ucHBwcXFxcnJydHR0dXV1dnZ2d3d3
+ eXl5e3t7fX19f39/gICAgYGBgoKCg4ODhISEhYWFhoaGh4eHiIiIiYmJioqKi4uLjIyMjo6Oj4+PkJCQ
+ kZGRkpKSk5OTlJSUlZWVlpaWl5eXmJiYmZmZmpqam5ubnJycnp6en5+foKCgo6OjpKSkpqamp6enqKio
+ qampqqqqq6urrq6usLCwsbGxsrKys7OztLS0tbW1tra2t7e3uLi4ubm5u7u7vLy8vb29vr6+wMDAwcHB
+ wsLCw8PDxMTExcXFxsbGx8fHyMjIycnJy8vLzMzMzc3Nzs7Oz8/P0NDQ0dHR0tLS09PT1NTU1dXV1tbW
+ 19fX2NjY2dnZ2tra29vb3Nzc3t7e39/f4ODg5eXl5ubm5+fn6Ojo6enp6urq6+vr7e3t7+/v8PDw8vLy
+ 8/Pz9PT09vb29/f3+vr6+/v7/v7+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcxoJWAAAACXBIWXMAAA6+AAAOvgHqQrHAAAAAGXRF
- WHRTb2Z0d2FyZQBQYWludC5ORVQgdjMuNS40Po3MdgAAA7dJREFUSEt9lYuWsjoMhasgIqCgIEhBELkJ
- WLQ/pfj+T3ZSvIwzzpztrCWzyNckOwHR7S/x7pReH9dv+hNgBNu2G9aPf1/6A2DtwbUSkrouzr6n+RXg
- 9LhZ2qcrg7Kw60bvaX4DWLvTV25N2DAMfGgT7OGie9z7DegafbkK67qD+FFdgTFOyf3uBzDQw2xpJCco
- 6CXOSYrxfmzmA+jKlWYVRUHod12LMBH3fwB9s1tpbpFlBWmfuo6ifbIXEd8AcGehajhL07QgpCZvajmP
- PgDhjrraJxF8svpUv6mljO9/An2pK4oVRVEoPsXpTaKhY/AD6JqZonjhSwl0/hBU1K4X5oZC2AvoSk1W
- /Xcl2UM1qU/6uqcVpsMT6JqNIq98711+kiTQvuimmOic9zS+8Dsg3JEV+xH4UpRA90ldnIrJ+sbZhcZQ
- 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
+ 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
-
+
- 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
+ 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
+ AABJRU5ErkJggg==
+
+
+
+
+ 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
+ /wH43mXDvz/ONMu59lrKAAAAAElFTkSuQmCC
@@ -3860,6 +2651,370 @@
PIhCbGtSBFiY+8JgLKo0G3POLUGhgbRsscvPrNXflMppJy7RyVxu8ETblhyaCBKzgccVpIgkrpk+NFTN
ZJsKDvm9uwunO6o0G/CKX1YpgisSgmcQqiohJbcE9X36i7c5ic9GDgb0Kei9tDnPs/EVEJ7OfNBAZMaI
7EvIPzRt7qkKSgHeq/9Lq6a7aUKpt+F/36xyQ/AuD/+B/0nohgbwF2YcNcxFyIn+AAAAAElFTkSuQmCC
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAAD0AAAAUCAMAAAAJH8UlAAAABGdBTUEAALGPC/xhBQAAAwBQTFRF////
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACyO34QAAAAlwSFlzAAAO
+ vAAADrwBlbxySQAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTAw9HKhAAAAE0lEQVQ4T2MY
+ BaNgFIyCYQUYGAAE2AABE91XygAAAABJRU5ErkJggg==
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAAD0AAAAUCAYAAAA+wTUXAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
+ vAAADrwBlbxySQAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTAw9HKhAAAGAUlEQVRYR82Y
+ W2xURRjHW8QHIzHECz4osYKXREwgMRpjQjAkRhMSffCB+KAmxEgwUUgM8iKYJkZKwSgUKKVUoC3S0m6h
+ tFVpt7ft/bpbdrddut3SvfSy3V7Zbu/t3/Ofdg7d3dPSIqgPv8z2nDkz+5vvm+/MNmK2+RhWQmfnDaSN
+ 9KPcW4Nu1zXNPg+LqeY4jFjOad4btmdjvCVR814oy5YeaDuP68NeJPj9MExPo2lmBhmBALL6XTB5qzBx
+ 66Tmcw8KCheWNQoajRZYrTY029pR3+xEmdmN/EYXshtt4rOE1/qsmWFjLUu6tcuAZJ8PySMjqFWER2Zn
+ MTWPR5HXT02Je4x+n+uq5hj/hBlnCvyDVSj56ytkXIhC+rknkRr/lODSmadFm6X7XEhfaWpGWr0N6TUe
+ pFa4UGu4HjbektKMnrG7HAmKMCOcq8jZFWmfIhoK5ZkBqRMTcHdc0RzvfuntLoWvR4/O20lwWPfDYf4U
+ 5qqtaCp6DDf1kagvXI3TRWuxw/seNk1txQf2bxBzsRhJ+taVSfc7UkTqSuFERSZTkWakmdpaUJ73jV3F
+ mmPeL862HAz0GDDgUdqui+h3H0WfbTO8TRHoMkfie886vDAdhY8nd0LXX4jECi8OJpXBUHAD3rr4sPE0
+ pVs6S0Q6U5iyEkaR0Q6F6U1pRpv7fLnSAfuvmtdDofTMpBOBYTMsNXk4fWIP9u1+AonHI3FkcB3WT6/H
+ 9t4oWN0J6On3I9kUwKHkGpgr8zTHC5JmOlM4we1WI6yFXADZUppkDg7CMjqK/MGOoEkW42zgMA7596DV
+ GaN5X9Lemo07Q0aYnDroMn7AxfjtiI+JRHTOGiH88tRGnNU/jo5bp+AdCgjp6JQasUBa46nSajrfQ5gs
+ jD5TntFOUZ5T9/bkWNhEWhwOfIfnZ18X+3ApeUY63xaLN/1v4ZPOd5Fd/RJKDI9iiz9KSB9zP4Py7FV3
+ pY1+/JhmXFpaVmcKswoHSS6yAAvF2SfZ4UDO2FyxKxwfDZvIZ49Fw+0DQewb+1JIS7bMbtOUH/G3onuy
+ ETtmPhL9tk2+gm/9z4nPO0dfhOv2alW6yzcspH/KmNsKC8eRRIy1nRNR4heX0eKXF3K8rsgI8YXMS7Pl
+ YrGiX+vtFf2lNDNn4UQpQ9FBgkvx9uz7KBi6W4B4IGIha/Nexm7/TrXfq9ObUNC+Bp6GVSjVBUsvGWm7
+ t0IVY7T4DmZREhGfFxTt/MKIv+dJ6+4Wi0RppjTHYbpzf3Phxu1n1YkY6eqO/UF8PfZFkOzG6Tewa3IX
+ ynzHgw47spBNj1tRcCdJ9GP/DwMbMOGMEFU8VJp7etFCltphm5NWJGSk+b7llyeqvEQuggIXidWa0eUz
+ HIcZwOLG6/c6pck9vZishMddSnd7KpCReQKfFb+DDaOvYW/zs0HS7bZTcHsHkVblwon0Kujya+E0hR+V
+ I4SA1TonrsD3LCVk+kpJeSJjxA3KNRYs+Vpjf0ZX7av0Y0qGThbKL4GDS8pKWL3NdXGCutIDqNBvx8+m
+ tcp7+BFxOCEluZtxtbgQefVOFcprHk7qBiwiKnnDnXMRpDxbKTwvIlCE8wcGRDaoW0C5xoxgpDkOx1uO
+ MGHK3ysbCLeJv+0CLLdq0dRcAZPlDxiNpwT1jWcEyUUGcezk8VOy5DGUg3JyR5c+WF7u4wUtU5qylBTS
+ 7KcsDFOaz4ZO8KDgDw6rrQWpBkc4ihzJKriJ37KqxcFk79FspKXnosd0OWyssBMZq/lNJVqUCJKX4vOZ
+ IM/ZMht0ijCPiaHjPUgo7jAViAIlYYX+s6gaN0rNcLh8Iq3jijsRm9GIutpK8XPTY9YF/SQNk5YwnZiq
+ MoWDUKRllaY4F2k5afqwKG2yiLN2rnkAcXXjgvPGUaQUWAVJ1X3ITUtQ+y8qLZHy3K/ldzzqIrBlseM9
+ ref+LRj99LxSxJ5MR63Zjugsm+DIVQui43JEtGOSy1cmLZGRtPQ1qMWNi/BfRljCfxQQpnCD/hIq8s4L
+ LIZ0sSg9lhz4W35X+y9beiGMvru38n8hvHKO4W9WZNbKBV7RMgAAAABJRU5ErkJggg==
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAAD0AAAAUCAMAAAAJH8UlAAAABGdBTUEAALGPC/xhBQAAAwBQTFRFTExM
+ WFhYW1tbYGBgY2NjZGRkZWVlZmZmZ2dnaWlpampqa2trbW1tbm5ucHBwcXFxcnJydHR0dXV1dnZ2d3d3
+ eXl5e3t7fX19f39/gICAgYGBgoKCg4ODhISEhYWFhoaGh4eHiIiIiYmJioqKi4uLjIyMjo6Oj4+PkJCQ
+ kZGRkpKSk5OTlJSUlZWVlpaWl5eXmJiYmZmZmpqam5ubnJycnp6en5+foKCgo6OjpKSkpqamp6enqKio
+ qampqqqqq6urrq6usLCwsbGxsrKys7OztLS0tbW1tra2t7e3uLi4ubm5u7u7vLy8vb29vr6+wMDAwcHB
+ wsLCw8PDxMTExcXFxsbGx8fHyMjIycnJy8vLzMzMzc3Nzs7Oz8/P0NDQ0dHR0tLS09PT1NTU1dXV1tbW
+ 19fX2NjY2dnZ2tra29vb3Nzc3t7e39/f4ODg5eXl5ubm5+fn6Ojo6enp6urq6+vr7e3t7+/v8PDw8vLy
+ 8/Pz9PT09vb29/f3+vr6+/v7/v7+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/DPJbQAAAAlwSFlzAAAO
+ vAAADrwBlbxySQAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTAw9HKhAAABlUlEQVQ4T52T
+ 6zcCQRTAFxEljzxC2UjYapXXrrdED1t6SFa02tqdDSVKQp7/ui1z6NtOfp/u3Ht+M3PuuRcDTWR8IRGG
+ aDTZvGcjXwgFUi1c8GeztvXbz6+vJy6YkGBKkV/7ZGIPPL/JvNduImmYVALa6fUpLyvel8rlh0rlNX/2
+ k1Xkxz4xTXoZJgauZW4equFEI6tMw44OWrZ3ZXzJ8wuuIKxxsUZNGdlOrejmaYqmKIo+DMezafyuhto2
+ DCQtGtpBuqxOh510+9mwU5u8zsKqElhumhh5SSzr2mfMJsId3HTkF8akS0QdEzpJ7UfZZ1s0DI9S7iXL
+ c/VUwxdYtL9jY1pX71sxk/IS4yQ9a+wOXWVUQTaMaE9iqh4xF/dRuGtVv18icCCQxAGsKoHx3qhFbfZs
+ 2g3jQzu1x51hvhjj0HsuSWIE79TjQ4b+nqMi0+WJoM5K3a7DB00dar21beX2bMvewpbCOZeEgFGl65vL
+ Fo7BfzY0J0TP9wb8DAfPSPza8vtA3LWlkHe7TpMtI+VggAQA31EYtvsm5zkIAAAAAElFTkSuQmCC
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAAD0AAAAUCAMAAAAJH8UlAAAABGdBTUEAALGPC/xhBQAAAwBQTFRFmdXV
+ mdramdvbmdzcmd3dmd7emd/fnt/fmeDgm+HhmeLimePjmeTkmeXlmebmmefnnuPjn+fnmejomenpmerq
+ mevrmezsme3tme7ume/vnejonO3tnO/vmfDwmfHxmfLymfPzmfT0mfX1mfb2mff3nvPznfT0nPb2n/f3
+ mfj4mfn5mfr6m/v7nPj4nPn5nfv7od3dod7eot/fpt7eoOLiouXlpubmp+fnoenpo+rqo+vroe7uoO/v
+ purqqO3toPHxofLyofPzo/T0oPX1o/b2p/LypPT0pfb2p/f3ofj4ovn5ofr6oPv7ofz8pfj4pvn5p/v7
+ qvT0q/f3rPDwrfPzrfT0rPX1qvj4qvn5qfv7qvz8rfj4r/v7rfz8serqsu3ts+/vuezsuu/vvunpve7u
+ sfPzsfn5sfz8sv39tvn5tv39ufLyuvb2vPHxvPPzvvT0uvr6uP39vfr6vPv7vv39wurqxejoxuvrxezs
+ xe3txu7uzOXlzObmzefny+rqyezsz+rqzezswfHxw/LywPPzwvj4wfv7wf39xfz8zvDwyfr6yPz8yP39
+ z/z8zf7+0uPj0+Tk0ubm1eHh1eLi1ePj1OTk1OXl0urq0/f30f7+1f7+2Pv72/7+3/7+4vz84/7+5/39
+ 5f7+5v//6fv76v7+6///7P//9f//+////P//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFkrd1wAAAAlwSFlzAAAO
+ vAAADrwBlbxySQAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTAw9HKhAAABpUlEQVQ4T2OY
+ hACT693i66Bs4gCS7uoQ1e7ecNeUfiifCIDQXWHj2LN85Yr5RZ4JDVAhggCme0qisHP63GUgsKjDqwwq
+ SghAdE+usRNV0Y/t65sJBLMWdSeCRQkDsO7JpRaiKlpa3ulZQFA4c344KbonJAuIKYOApo+vr29JUfCM
+ VIgkQQDUXWPLLaEIAZra2rExZosXtkFlCQGGSeVWnA6ycnLicrKyciqa+noyxplZxVBZQoBhmqC06ZJM
+ OW4mMTFRSWUtBdvZcXwZBbVQaQKAoYpZ2mj5THdJWWF+IXllOfMFc1o5okrSpkLl8QMGEw4Zo6XtsZHu
+ ksKSChIihkFZbay6kX5E6hZiYGXvytLRVRWztudtmmcpnFEsKenSCJUmABjyQlNFWKWUlWSFhXmSlsxy
+ 5Ilqj8gmUjMwzKdNqQwUZuUV4xfiNvBr92RT9w+DyhEG4LQ2rcVDiIWDV5xRpj1AUdJtOliGGABJ55Mm
+ trgLsXJxicWWeDeTk0MntkTnO3Fr6OVC+UQBuG5gXpncpCaRMwXKIwog6QaCiZ2kaJ40CQBLsmMl+qL9
+ EAAAAABJRU5ErkJggg==
+
+
+
+
+ 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
+ QmCC
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAAD0AAAAUCAMAAAAJH8UlAAAABGdBTUEAALGPC/xhBQAAAwBQTFRF////
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACyO34QAAAAlwSFlzAAAO
+ vAAADrwBlbxySQAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTAw9HKhAAAAE0lEQVQ4T2MY
+ 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
+ 2Zu+iiHUgUsAAAAASUVORK5CYII=
+
+
+
+
+ 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
+ YII=
+
+
+
+
+ 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
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACyO34QAAAAlwSFlzAAAO
+ vAAADrwBlbxySQAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTAw9HKhAAAAE0lEQVQ4T2MY
+ BaNgFIyCYQUYGAAE2AABE91XygAAAABJRU5ErkJggg==
@@ -3889,6 +3044,167 @@
hUPq3qd/fBNIvOyY/Jm2z1mDoPMmIWbodHIFr4ExG5s1zJ7c4s3twKYcF+AaCOQCJsXQ1N+iCpTr3ge0
yJRfxhgDz+5nsM4ZhfngWnzw7VTGEiztRDhItwLw7yEolmHiSCynzSs9BT4+/0k3YEq6By5esC9PjAXo
dxRklOT2WyEJAAAAAElFTkSuQmCC
+
+
+
+
+ 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
+ RU5ErkJggg==
+
+
+
+
+ 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
+ AABJRU5ErkJggg==
+
+
+
+
+ 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
+ RK5CYII=
+
+
+
+
+ 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
+ fhwAAAAASUVORK5CYII=
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAAD0AAAAUCAYAAAA+wTUXAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6
+ JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAA68AAAOvAGVvHJJAAAAGnRF
+ WHRTb2Z0d2FyZQBQYWludC5ORVQgdjMuNS4xMDD0cqEAAAP8SURBVFhH1ZdtaJVlGMevlevUiJW6XA1K
+ y4SKZphERSF+6EtG0If6UAxBbOIHwfZhEUlQQtmkdNNNJMnUoROyOZfOTcfGfJvbOOrE8AVBRefLfH+f
+ r/9+13NcnfRZ2qduP/w423POuZ/nf/3/13Xfx/6Q9F/4+epVDT18WB+cPKmq69fVGfOZ0Lln0dUIfPPg
+ QWXv3q3iS5f0Pbx47FjE55cvq+3mzdjvhchdRbuTP5w+rf5tbeq/c6eKcbqbaz23qKcYH589q0Hd3Sq4
+ cEG1N27ErhMS/yo6iXuTz5yRrV6tx/ft01sIruGaFyId/2wLTMbx3FOnVH7t2h1rhUSfon9D4PDOTllz
+ sx7q6lLi4kW9fuWKvsbJ7xBecosfoQwqwIV/gfAiiFszFGJFf8uQyqmrk61dKzt6VHbiRMQAXB9FMd7F
+ yXTeBxe/htd8Pv8ZMY9bNxT+IdqH0RR689FFiyKH7cABGcMrnX4MrgG4PpBBNhBH86CAvh5LQUZs2aIy
+ JvsYIp5MWzc0/hJd3dOjl1tbZQsWyDZvlu3Z0zfHj8sYbg+eO6cRRP4NijB42TK1I7yFwhVSiI60m4RG
+ JLoUZ/IaG5U5b55yduyQbd0q27Ytxbp1qf8hAyeja4cORcKziXGC2CeSST07c6bGcM2j/gkpuP1GIWHN
+ OPPY8uVKrF+v3KVL1U5U/eEzt2+XLVwomzZN1tKSoqlJ1tGRijp9764Poe9/Yct6u75ehtve8x+dP6/f
+ WSfuhiFgpTyklZSkRJeXq4uL05nQee4mAiN32bKspka2apWMvToSjePPV1drE99fTOEm+sCbM0cv0CZj
+ cXsUhfBpHnfT/xtzd/1hE+3tyq2oiPbdQlx6lYd/hV4d4uJ5LxLuLnMis40bZTj7xIwZGs777yF8Au5a
+ aamyGITD+HsYPR/qMLMHVqyQFRXJ6Mns2bP1JQ/7Dk5lMqQeZlJnubNEO8dPZB55ivQp+3c9fftkQ4OM
+ rW00w6yAAkXFAU/J4oBPZlaIoyM5bY1GYAYiMsrKlFVbm4rw/v1/x9ujvWSJPmSyJxH0E5HO3bVLVlmp
+ fNbwdLzEQBzP378G3M+OeZw9hs50HjafeLp7HlV3NdqvGXTmhWCweaSfoX9dpJ+3bdYsJSjQYAbba6Qj
+ 7iahcceJrBWm0KPPISxj5UoZIm3uXFlVlWzDBtnUqVH/j6MFhnof790b9bqLrsP929cLkdhjqOOHjGJ6
+ 9Wn608V77G3+/Ih+uO+HEp/Sg5jS3/C66T4R7PQpupdmKML5kfT8BOL7lDtLH2cfOaJHOJhMoofjvhcy
+ dxXdS+9PyK9wNcuFM9D893PIZ+y+uGfR6awhypXQW4j7C+lPYlYpfg7eUvYAAAAASUVORK5CYII=
@@ -3917,6 +3233,1144 @@
a+T9nV37IyRN3OcbFcu8vQm4fLhRjLt/N7b6k+ol1DTlzXkrjXOpDk1RaZBWDF7RWAUHf/ivSSPQiF9T
L0MnEoHuIFKUQI43Ae+JfWi8KK1gam+IUMXojn2A2D5QwspXfEH/A17q/SLsamD4DH1g++jCDancafj1
87e8EWiWR3/gfyItEMAfGSFv/tw5mZ0AAAAASUVORK5CYII=
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAAA0AAAANCAMAAABFNRROAAAABGdBTUEAALGPC/xhBQAAAwBQTFRF/w8n
+ /RMq/RMr/hQr9yI3+SM5+iU7/Sc89jBFznJ//EJV/ENW9VBh9mNy92p4+Wx64XuJjo+PvJihrrO5sre8
+ uLu/vL/CxYOOyqesy6it17W84o6a7pCZ75Ca5Kat6ayz77i/97m/xsfIzsPKzM3Ny8/VzdHX08XL1NXW
+ 1djc2tzf3N3e3d/h8s3R9c3R4OHh4eLi5ebm5ufn6Ojo6enq7e3t9OLk8vLy9PT09vb2AAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJD5aTwAAAAlwSFlzAAAO
+ vgAADr4B6kKxwAAAABl0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuND6NzHYAAAB0SURBVBhXTcnZ
+ GoFQGEbhzw4JYduRoQEJDWgu939j1d/Bts7eZ4H/B97IegkNphDb0bgieWzmnxg7DM/f4DyFexv0eDLA
+ zu8kIwiXWJXli7SLLWBe1xFp70Jd49okpKOivD9Y/NJe1QTON9NxKejJOsk4bwGhyBMzrrTmTgAAAABJ
+ RU5ErkJggg==
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAAA0AAAANCAMAAABFNRROAAAABGdBTUEAALGPC/xhBQAAAwBQTFRFRFqS
+ R1yUSF2VSV6WSl+XS2CXTGGYV2qdXnGhYXOkZHalZ3inbn+qd4arjo+Pi5m7jJm6kJ29rrO5nafAo67I
+ r7jPsLnRt7/Vub/QusHVvMPWxsjKxcnNysvMyczQy8/Vzc/Ryc/dzNDW1dXW1djc1dnd2trb29zc3N3e
+ z9Ti3N/k3uDh3+Ll3uHp3+Lp4eLi4OLm5ubm5+fo6enq6+vs7O3t7e7u6uzw7e7x8vP08vP29PT09fX1
+ 9vb2+Pj4+fn5+Pn6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARbOMIgAAAAlwSFlzAAAO
+ vgAADr4B6kKxwAAAABl0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuND6NzHYAAAB/SURBVBhXY+BD
+ Bgx81hBgZ29rDeIJgYCcMK+WDZgnLy+vZMHOIGEL5SkZiDJwGUFUquqoWHIwSqmDeTKKImaSzFx2ymCe
+ Ng+jJjeruK0GmKegy8TMyulgrQ/mSZvzs7CJ2dsagnmyanoCglamJsZgnrW1jb2dDcg9QB4C8PEBAFWP
+ FTAV/UJaAAAAAElFTkSuQmCC
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAAA0AAAANCAMAAABFNRROAAAABGdBTUEAALGPC/xhBQAAAwBQTFRFjo+P
+ rrO5r7S6sre8tLm9uLu/u77BvL/CwcPFwsTGxsfIysvMzM3Ny8/VzdHWzdHX1NTV1NXW0NPY0NTZ0tXa
+ 1Nfb1djc29vc2Nve2tzf3N3e3d/h4OHh4OHj4eLi4eLj4uPk4+Tl5OXl5ebm5ufn6Ojo6enp6enq6urq
+ 6uvr6+vs6+zs7Ozs7e3t7+/v8PDw8vLy9PT09fX19vb2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkW0KowAAAAlwSFlzAAAO
+ vgAADr4B6kKxwAAAABl0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuND6NzHYAAABrSURBVBhXXcdt
+ F4EwFADgRaSIUmJ6w1rycnVn//+/mbvj7BzPt4f9Uc53Hpn4c7vY2BZ88ds6P5SnyG6T7Xgr5Io2LXgt
+ nwApbVZehhciHmnBuQdUb9XQwh5GpbUWtGWyr7rb436lOWYOYx8cDA/QsvGKEgAAAABJRU5ErkJggg==
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAADAAAAApCAMAAABEBVrmAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6
+ JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAADAFBMVEU9AAdPAAlUAApfAAtoAAxvAA18
+ AA6BAA+MABCRABGeABKhABOlAxaoBhmrCButCh2wDSC2FCe6GCu7Gi2+HTDCJTfGKz3ILkDLNEbNN0nS
+ RFTUR1fVSVnXT1/ZUmLcW2rdXWzgaXbicH3mfIjohpLpjJfrkZvun6juoarwqbLytbz1xMr2x8330NT5
+ 3eD64+b87O798vP+9fb++fn//Pz///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ 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
+ H6YwJdAl+mOdAAAAAElFTkSuQmCC
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAADAAAAApCAMAAABEBVrmAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6
+ JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAADAFBMVEUAMQAAPwAAQwAATAAAUwAAWQAA
+ YwACZwICaAIGcAYJdAkQgBARgRETgxMWhxYZihkbjRsdjx0gkiAnmCcrnCstnS0woDA3pTc9qT0/qz9F
+ r0VJsUlUuFRYulhau1pfvl9jwGNrxGttxW13ynd9zX2J0omS1pKX2Jec2pyo36ir4Kuy47K9573K7MrN
+ 7c3V8NXg9ODm9ubu+e7z+/P2/Pb5/fn8/vz///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB6Ra9RAAAAGHRFWHRTb2Z0d2FyZQBQYWludC5ORVQg
+ djMuMzap5+IlAAADs0lEQVRIS32VDbt6TBDGt0haRRFZImGFVu0fq+//zZ5ZvZw6L8/dua6cy/x2Zu4Z
+ Qre/JNpTen1cv+lPoGPEtt2wevz70h9A1xxcK2Gp65LsM82vgODHzdI+XTsoi7hu9J7mN6BrdnjlVqwb
+ hkEMTUI8QtvHvd+AtsbLVVhVLcSPaikhJGX3uz+AgR9mSyM5QUEvCcFSQvZjMz+Atlhhi1LK+KeuNEzk
+ /W9AX+9W2KVZRlnz1HUU75O9jPgAwJ2FjkmWpillrGJvaoSIfgDSHX21TyL4ZNWpelPDO7H/DvQF1jQr
+ iqJQfujpTbKhY/ANaOuZpnnhSwl0/hBU1KwX5oZD2AtoC6zq/ruS7KGKVSe87nlJ+PAE2nqjqSvfe5ef
+ JAm0L7uhEyxEz+OLuAPSHVWzH4EvRQl0n1T0RCfrm+guPIaaJNA1m5mq285d3uPbcWQnKc0oXeJBdOWZ
+ x90ItPVirumePSr0HDu8X0ogolDUGqPFMc/PlxhOR9KdRYFxmzmWZfu6qqoGXIE86BtEFjtTQfMYADIC
+ 10yZEw0PA0+dUJdAaBsgy/OSJIxcFLTtea6QF8AOgE/BBd6cDAPrujPGG7YTQU3upID6uYnivLzk5AxA
+ HaB5PsVdd2Unz7asyMBShp3CLJaogJPO3FTMvCwhxwW1AVIA0Ie2qaos9Kl/B+wIjPUnayEu4A9BZp6X
+ Z0iBDkiJTQAEZxWt4M/zPUPXrQQMxusZ+APtcjIxoaaYxB1aI2VhmlNbVkTTKLtCWY6X+GDrbLMzF8iM
+ ZQasmATiG4GCCVIUZbriTXXKkkjOATpuwFZZzr9YuRsaYDg2rrsbyrYYKVt1qu8rmiWh7zkWWJUaxmTd
+ wvrkM0UCOYmD3Y71YCvLDkFx2GrTqe6nUeg7tgQiPHE70cFwFxIoLxdSFAw244b6K2s4UBLRZAIbXNJD
+ bcIEBx/jDSLSn5i0/+B8OTjR90N3re8ItmUCAHSk7OSs4h10nZeElN0g4wG4SyLBWNg47RDrE9gGCUh/
+ CMmfb9gnAEvbFCOiQgLVx54GtQBwDODhJMdGPMK+gNvQSWQJCGRwNA2GW17KGJDd4fqMfwcAaVlxAERV
+ LU1dSkC2fazrdux31Acgf3aYzAI7HgRyG3JYn7J/9DvqGwBvJy6zbIv6MJuTWK6PfLl86QcArXBWM95k
+ W3iwCInHcX3pJwBI3wl4cg/bxdyM2eun5K7fgFEDh1kGO9a+1S/1JwCz5HXdfNYD+h8Auun6b+ffbv8B
+ CV4lp0vtr3kAAAAASUVORK5CYII=
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAADAAAAApCAMAAABEBVrmAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6
+ JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAADAFBMVEUAE1MAGWsAGnEAHoEAIYwAI5cA
+ J6cAKK0AKa4AK7kALL8ALcAGNc0HNs4JONAMO9UPPtgRQNwTQt4WReEdTOYiUekjUuomVe0tW/EzYPQ2
+ Y/U9aPhAa/lLdf1PeP5Rev5Xfv9bgf9jh/9lif9wkf93l/+DoP+Mp/+Rq/+Wr/+juf+mu/+vwf+5yv/H
+ 1P/K1v/T3f/e5v/l6//t8f/y9f/1+P/5+v/8/f////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcxoJWAAAACXBIWXMAAA69AAAOvQFH+5CtAAAAGXRF
+ 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
+ SUwPzmIlAAAAAElFTkSuQmCC
+
+
+
+
+ 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
+ SUwPzmIlAAAAAElFTkSuQmCC
+
+
+
+
+ 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
+ SUwPzmIlAAAAAElFTkSuQmCC
+
+
+
+
+ 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
+ RU5ErkJggg==
+
+
+
+
+ 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
+ YII=
+
+
+
+
+ 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
+ JFzwq65RKR6VMtP7E120VNnFOeHVAAAAAElFTkSuQmCC
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAAC4AAAAuCAIAAADY27xgAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
+ wgAADsIBFShKgAAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTAw9HKhAAAAyUlEQVRYR+2S
+ SwrDMAwFff8zF1z6mIBVK82nVFGJZpeRhGeR1tNQKR6V4tEeaXiltARUisd7Cv9PIDxcKQYe/psU1EE4
+ 3g1nlWLgbH8Kah32KsXAXkCKC3sCNUi+PdgQqG9SWBIogQpLYUOgFrAxKYwFaoDBBGOBEqgTKcwEysLM
+ wkygFrC3S2EgUAMMAlKwAmVhdqMUlEBNMP5pCt8C5cHGiZRNOP54zoZAVcrxlBh4uFIMPJw65UIqxYOU
+ JFzwq65RKR6VMtP7E120VNnFOeHVAAAAAElFTkSuQmCC
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAAC4AAAAuCAIAAADY27xgAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
+ wgAADsIBFShKgAAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTAw9HKhAAAAyklEQVRYR+2Y
+ QQ6CUAwFuf8dPKr5xpchoVIVMNYa3uyYtvmzcOU02uCUDKdkTNc23FMuDXBKxmMKv59CeNgpAR7+mxTU
+ TjjeDGdOCXC2PQX1HPacEmCvICWFPYFaSL4z2BCoT1JYEiiBKkthQ6BmsDUpjAVqAYMVjAVKoA6kMBOo
+ CLMIM4GawZ4uhYFALWBQkIIVqAizE6WgBGoF46+m8C1QGWwcSHkLxy/P2RAop+xPqYGHnRLg4dYpP8Qp
+ GaQ0wf9QZjglo03KGDc9MBjKSzywjQAAAABJRU5ErkJggg==
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAAC4AAAAuCAIAAADY27xgAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
+ wgAADsIBFShKgAAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTAw9HKhAAAAyUlEQVRYR+2S
+ SwrDMAwFff8zF1z6mIBVK82nVFGJZpeRhGeR1tNQKR6V4tEeaXiltARUisd7Cv9PIDxcKQYe/psU1EE4
+ 3g1nlWLgbH8Kah32KsXAXkCKC3sCNUi+PdgQqG9SWBIogQpLYUOgFrAxKYwFaoDBBGOBEqgTKcwEysLM
+ wkygFrC3S2EgUAMMAlKwAmVhdqMUlEBNMP5pCt8C5cHGiZRNOP54zoZAVcrxlBh4uFIMPJw65UIqxYOU
+ JFzwq65RKR6VMtP7E120VNnFOeHVAAAAAElFTkSuQmCC
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAAC4AAAAuCAIAAADY27xgAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
+ wQAADsEBuJFr7QAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTAw9HKhAAAAy0lEQVRYR+2S
+ QQrDMAwEfetH+v8XFlyFLqoiqQqlxnHJDnuwJczOwa0vA1UyqJLRHsuwqbQFoEqGV8H/mQiKqbIDxf+t
+ crt/l0NQTJUdKP5F5RCqZAxQ0bKYeiux6ES3MQKKx6pY7FDPMQKKB6pY3NxeXQQU13/FPlB0aGMpVi/c
+ FsVDVCxuJXHEFYqvq5LOUTxTJR0KKL6iSpwoKJ6j4q4OFA9RqVM/EVBMlXcEFNcqc0AxVXageGmVE6FK
+ BlQW4YSv+gmqZFAl0vsTyV3d9o5XpoEAAAAASUVORK5CYII=
\ No newline at end of file
diff --git a/ROMVault2/rvTree.cs b/ROMVault2/rvTree.cs
index 72af6d3..9c87868 100644
--- a/ROMVault2/rvTree.cs
+++ b/ROMVault2/rvTree.cs
@@ -170,7 +170,7 @@ namespace ROMVault2
if (!pTree.Tree.RExpand.IsEmpty)
if (pTree.Tree.RExpand.IntersectsWith(t))
{
- g.DrawImage(pTree.Tree.TreeExpanded ? rvImages.ExpandBoxMinus : rvImages.ExpandBoxPlus, RSub(pTree.Tree.RExpand, _hScroll, _vScroll));
+ g.DrawImage(pTree.Tree.TreeExpanded ? rvImages1.ExpandBoxMinus : rvImages1.ExpandBoxPlus, RSub(pTree.Tree.RExpand, _hScroll, _vScroll));
}
@@ -179,13 +179,13 @@ namespace ROMVault2
switch (pTree.Tree.Checked)
{
case RvTreeRow.TreeSelect.Disabled:
- g.DrawImage(rvImages.TickBoxDisabled, RSub(pTree.Tree.RChecked, _hScroll, _vScroll));
+ g.DrawImage(rvImages1.TickBoxDisabled, RSub(pTree.Tree.RChecked, _hScroll, _vScroll));
break;
case RvTreeRow.TreeSelect.UnSelected:
- g.DrawImage(rvImages.TickBoxUnTicked, RSub(pTree.Tree.RChecked, _hScroll, _vScroll));
+ g.DrawImage(rvImages1.TickBoxUnTicked, RSub(pTree.Tree.RChecked, _hScroll, _vScroll));
break;
case RvTreeRow.TreeSelect.Selected:
- g.DrawImage(rvImages.TickBoxTicked, RSub(pTree.Tree.RChecked, _hScroll, _vScroll));
+ g.DrawImage(rvImages1.TickBoxTicked, RSub(pTree.Tree.RChecked, _hScroll, _vScroll));
break;
}
}