From e74bd45de5d4d78013cd5288b4d36c6e80649576 Mon Sep 17 00:00:00 2001 From: lsuper Date: Mon, 28 Mar 2022 17:13:16 +0800 Subject: [PATCH] Add 10.3.3 v26.0.36039.7899 Activator --- 10.3.3/Activator/Activator.bdsproj | 183 ++ 10.3.3/Activator/Activator.dpr | 32 + 10.3.3/Activator/Activator.res | Bin 0 -> 11852 bytes 10.3.3/Activator/Activator_0.inc | 20 + 10.3.3/Activator/Activator_1.inc | 9 + 10.3.3/Activator/Activator_2.inc | 4 + 10.3.3/Activator/Activator_3.inc | 4 + 10.3.3/Activator/Activator_4.inc | 4 + 10.3.3/Activator/Admin.res | Bin 0 -> 1432 bytes 10.3.3/Activator/FileUtils.pas | 65 + 10.3.3/Activator/MainFrm.dfm | 425 ++++ 10.3.3/Activator/MainFrm.pas | 736 ++++++ 10.3.3/Activator/MainFrm_1.inc | 49 + 10.3.3/Activator/PatchData.inc | 3415 +++++++++++++++++++++++++++ 10.3.3/Activator/PatchData.pas | 26 + 10.3.3/Activator/TMainForm.inc | 1 + 10.3.3/Activator/TMainFormclass.inc | 1 + 10.3.3/Activator/WinUtils.pas | 383 +++ 10.3.3/Activator/uses.inc | 9 + 10.3.3/Dcu/dirinfo.txt | 1 + 10.3.3/Keygen/AnsiStrings.pas | 7 + 10.3.3/Keygen/FGInt.pas | 2282 ++++++++++++++++++ 10.3.3/Keygen/RadKeygen.pas | 328 +++ 10.3.3/Keygen/RadLicense.pas | 248 ++ 10.3.3/Keygen/RadVersion.pas | 85 + 10.3.3/Keygen/Sha1.pas | 251 ++ 10.3.3/Release/Activator.exe | Bin 0 -> 219176 bytes 10.3.3/Release/Readme.txt | 41 + 28 files changed, 8609 insertions(+) create mode 100644 10.3.3/Activator/Activator.bdsproj create mode 100644 10.3.3/Activator/Activator.dpr create mode 100644 10.3.3/Activator/Activator.res create mode 100644 10.3.3/Activator/Activator_0.inc create mode 100644 10.3.3/Activator/Activator_1.inc create mode 100644 10.3.3/Activator/Activator_2.inc create mode 100644 10.3.3/Activator/Activator_3.inc create mode 100644 10.3.3/Activator/Activator_4.inc create mode 100644 10.3.3/Activator/Admin.res create mode 100644 10.3.3/Activator/FileUtils.pas create mode 100644 10.3.3/Activator/MainFrm.dfm create mode 100644 10.3.3/Activator/MainFrm.pas create mode 100644 10.3.3/Activator/MainFrm_1.inc create mode 100644 10.3.3/Activator/PatchData.inc create mode 100644 10.3.3/Activator/PatchData.pas create mode 100644 10.3.3/Activator/TMainForm.inc create mode 100644 10.3.3/Activator/TMainFormclass.inc create mode 100644 10.3.3/Activator/WinUtils.pas create mode 100644 10.3.3/Activator/uses.inc create mode 100644 10.3.3/Dcu/dirinfo.txt create mode 100644 10.3.3/Keygen/AnsiStrings.pas create mode 100644 10.3.3/Keygen/FGInt.pas create mode 100644 10.3.3/Keygen/RadKeygen.pas create mode 100644 10.3.3/Keygen/RadLicense.pas create mode 100644 10.3.3/Keygen/RadVersion.pas create mode 100644 10.3.3/Keygen/Sha1.pas create mode 100644 10.3.3/Release/Activator.exe create mode 100644 10.3.3/Release/Readme.txt diff --git a/10.3.3/Activator/Activator.bdsproj b/10.3.3/Activator/Activator.bdsproj new file mode 100644 index 0000000..295953f --- /dev/null +++ b/10.3.3/Activator/Activator.bdsproj @@ -0,0 +1,183 @@ + + + + + + + + + + + + Activator.dpr + + + 7.0 + + + 8 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 0 + 1 + True + True + Classes=;mirror= + + False + + False + True + False + True + True + False + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + ..\Release + ..\Dcu + + + ..\KOL + vcl;rtl + KOL_MCK;NOT_USE_RICHEDIT;USE_MHTOOLTIP;xDEBUGMODE + + False + + + + + + False + + + True + False + + + False + + + True + False + 26 + 0 + 36039 + 7899 + False + False + False + False + False + 1033 + 1252 + + + Lsuper + + 26.0.36039.7899 + + + + Activator.exe + + 26.0 + + + + + diff --git a/10.3.3/Activator/Activator.dpr b/10.3.3/Activator/Activator.dpr new file mode 100644 index 0000000..c9992d9 --- /dev/null +++ b/10.3.3/Activator/Activator.dpr @@ -0,0 +1,32 @@ +{ KOL MCK } // Do not remove this line! +program Activator; + +uses +KOL, + FileUtils in 'FileUtils.pas', + PatchData in 'PatchData.pas', + WinUtils in 'WinUtils.pas', + + AnsiStrings in '..\Keygen\AnsiStrings.pas', + FGInt in '..\Keygen\FGInt.pas', + RadKeygen in '..\Keygen\RadKeygen.pas', + RadLicense in '..\Keygen\RadLicense.pas', + RadVersion in '..\Keygen\RadVersion.pas', + Sha1 in '..\Keygen\Sha1.pas', + + MainFrm in 'MainFrm.pas' {MainForm}; + +{$R *.res} + +begin // PROGRAM START HERE -- Please do not remove this comment + +{$IF Defined(KOL_MCK)} {$I Activator_0.inc} {$ELSE} + + Application.Initialize; + Application.MainFormOnTaskbar := True; + Application.CreateForm(TMainForm, MainForm); + Application.Run; + +{$IFEND} + +end. diff --git a/10.3.3/Activator/Activator.res b/10.3.3/Activator/Activator.res new file mode 100644 index 0000000000000000000000000000000000000000..360d12415c3033a975e1436850a534dbf3f20b07 GIT binary patch literal 11852 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 pi!~O4W+S1 statement, which prevents running of application + in some cases. TIP: always use Applet for such checks + and make it invisible until final decision if to run + application or not. } + diff --git a/10.3.3/Activator/Activator_2.inc b/10.3.3/Activator/Activator_2.inc new file mode 100644 index 0000000..830ed7f --- /dev/null +++ b/10.3.3/Activator/Activator_2.inc @@ -0,0 +1,4 @@ +{ KOL MCK } // Do not remove this line! +{ Activator_2.inc + Do not modify this file manually - it is generated automatically. } + diff --git a/10.3.3/Activator/Activator_3.inc b/10.3.3/Activator/Activator_3.inc new file mode 100644 index 0000000..5f758d7 --- /dev/null +++ b/10.3.3/Activator/Activator_3.inc @@ -0,0 +1,4 @@ +{ Activator_3.inc + This file is for you. Place here any code to run it + after forms creating, but before Run call, if necessary. } + diff --git a/10.3.3/Activator/Activator_4.inc b/10.3.3/Activator/Activator_4.inc new file mode 100644 index 0000000..3e4c27b --- /dev/null +++ b/10.3.3/Activator/Activator_4.inc @@ -0,0 +1,4 @@ +{ Activator_4.inc + This file is for you. Place here any code to be inserted + after Run call, if necessary. } + diff --git a/10.3.3/Activator/Admin.res b/10.3.3/Activator/Admin.res new file mode 100644 index 0000000000000000000000000000000000000000..5e2a64c62a540aec70de607e5da17b56da031951 GIT binary patch literal 1432 zcma)6U2oGc6fF`wFlp~RMtMYX^PMJBx@np~ngD^c4W1qQy0b{^U_0F^#BU#V+jI$g zD2~!3KG)~ob9~*|Y&P@k{q(fE?dxRRy&3R#Hs;k93ukX%4?)$%W7~LZP?}4z^rLy` zdmxCUT&$M<-R(zI_?|XcP~1oXOMe5}zc@cVsj$}2*3HJV1VS(UUWqeJ?xDpRwVWua zB{PV~_6+NGzK(pa#ey@?=KDC?nChB>Fx+fTPdqyWZf(Asz5_MCv0M*Wfxm+~B?)LP z)ukf$+yF7Xva#>?@Ig*I58bt&Hk-}{J#dl4e&F&_&_wahSn21}JXJ8pwxJyeTOQfi zg|0fgcsFA%_eSi2EjXAnRpcNy#)a(IcJqVgFN1yaA6!uRpyyYzZKXh0QWzy0y%#jB zI_S+OdI$K3TZgc|ZaDb_n_Kx4Y%kRzrudpSumU}Tw^bcNK0I0ixAC80 z4UN~h-=*(huHcfkTySj^Hd6Us&o7BZly~1T_=^b;_HofO_%;}h{GsKvjvK>G)HMd zGK4b*C=3e<00~W4_-Cr@1xJ!aNl}*=Wwf*$tfr`dm?9jfX&A>DD-(Q-BgHX`3rJ9w z)Fn#OG(t5l38HyPQ=H-)lHwRg#PUT>7C9)}; +{$ELSE} +{$I uses.inc} + Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, mirror; +{$ENDIF} + +type + {$IF Defined(KOL_MCK)} + {$I MCKfakeClasses.inc} + {$IFDEF KOLCLASSES} {$I TMainFormclass.inc} {$ELSE OBJECTS} PMainForm = ^TMainForm; {$ENDIF CLASSES/OBJECTS} + {$IFDEF KOLCLASSES}{$I TMainForm.inc}{$ELSE} TMainForm = object(TObj) {$ENDIF} + Form: PControl; + {$ELSE not_KOL_MCK} + TMainForm = class(TForm) + {$IFEND KOL_MCK} + btnAbout: TKOLButton; + btnActive: TKOLButton; + btnExit: TKOLButton; + btnReset: TKOLButton; + btnRunBds: TKOLButton; + kolActivator: TKOLProject; + kolMainForm: TKOLForm; + procedure btnAboutClick(Sender: PObj); + procedure btnActiveClick(Sender: PObj); + procedure btnExitClick(Sender: PObj); + procedure btnResetClick(Sender: PObj); + procedure btnRunBdsClick(Sender: PObj); + procedure kolMainFormDestroy(Sender: PObj); + procedure kolMainFormFormCreate(Sender: PObj); + function kolMainFormMessage(var Msg: TMsg; var Rslt: Integer): Boolean; + procedure kolMainFormShow(Sender: PObj); + private + FAppPath, + FBdsPath: string; + FCurFileBuild: Integer; + FSerialNumber, + FRegCode, + FInformation: string; + private + function FindBdsPath: Boolean; + + function GetSystemHostsFile: string; + + procedure BeginCursor; + procedure EndCursor; + + procedure CopyFile(const ASrcFile, ADestFile: string); + + procedure DeleteFile(const AFile: string); + procedure DeleteFiles(const AFileMask: string); + private + procedure BuildNormalCglmFile; + procedure BuildNormalSlipFile; + + procedure GenerateRegistrationCode; + procedure GenerateKeyGenLicense; + + procedure PatchLicenseHostsFile; + procedure RestoreLicenseHostsFile; + + procedure PatchBdsFile; + procedure RestoreBdsFile; + + procedure DeleteTrialFiles; + procedure DeleteTrialRegKeys; + private + procedure DoActive; + procedure DoReset; + procedure DoRunBds; + + procedure ShowAboutMessage; + + procedure Execute; + end; + +var + MainForm {$IFDEF KOL_MCK} : PMainForm {$ELSE} : TMainForm {$ENDIF} ; + +{$IFDEF KOL_MCK} +procedure NewMainForm( var Result: PMainForm; AParent: PControl ); +{$ENDIF} + +implementation + +{.$DEFINE DEBUGMODE} + +uses + SysUtils, ShellAPI, Registry, FileUtils, PatchData, WinUtils, RadKeygen, RadVersion; + +{$IF Defined(KOL_MCK)}{$ELSE}{$R *.DFM}{$IFEND} + +{$IFDEF KOL_MCK} +{$I MainFrm_1.inc} +{$ENDIF} + +const + CSIDL_APPDATA = $001A; // Application Data, new for NT4, \Application Data + CSIDL_COMMON_APPDATA = $0023; // All Users\Application Data + + UM_SHOWABOUT = 100; + +const + defAppMessage = 'Many thanks to elseif, tonzi, freecat, unis, x-force, cjack and others who worked for this keygen!'; + defAppVersion = '15.3'; + + defAppHelperFileName = 'SHFolder.dll'; + + defBdsVersion = '20.0'; + + defBdsLicenseFile = 'RADStudio10_2.slip'; + defBdsLicenseManager = '"%s" -reg -skey 8220_21 -loadKey 2026 -a'; + + defBdsPatchFileName = 'SHFolder.dll'; + + defLicenseHosts: array[0..17] of string = ( + '127.0.0.1 appanalytics.embarcadero.com', + '127.0.0.1 comapi.embarcadero.com', + '127.0.0.1 embt.usertility.com', + '127.0.0.1 external.ws.sanctx.embarcadero.com', + '127.0.0.1 getit.embarcadero.com', + '127.0.0.1 installers.codegear.com', + '127.0.0.1 installers.embarcadero.com', + '127.0.0.1 license-stage.codegear.com', + '127.0.0.1 license.codegear.com', + '127.0.0.1 license.embarcadero.com', + '127.0.0.1 object.ws.sanctx.embarcadero.com', + '127.0.0.1 services.server.v8.srs.sanctuary.codegear.com', + '127.0.0.1 themindelectric.com', + '127.0.0.1 track.embarcadero.com', + '127.0.0.1 www.themindelectric.com', + + '127.0.0.1 LicenseRenewalServicesImpl.services.server.v8.srs.sanctuary.codegear.com', + '127.0.0.1 LicenseUsageServicesImpl.services.server.v8.srs.sanctuary.codegear.com', + '127.0.0.1 RegistrationServicesImpl.services.server.v8.srs.sanctuary.codegear.com' + ); + +{ TMainForm } + +procedure TMainForm.BeginCursor; +begin + SetCursor(LoadCursor(0, IDC_WAIT)); +end; + +procedure TMainForm.btnAboutClick(Sender: PObj); +begin +{$IFDEF DEBUGMODE} + LogMessage('About'); +{$ENDIF} + ShowAboutMessage; +end; + +procedure TMainForm.btnActiveClick(Sender: PObj); +begin +{$IFDEF DEBUGMODE} + LogMessage('Active'); +{$ENDIF} + BeginCursor; + try + DoActive; + finally + EndCursor; + end; +end; + +procedure TMainForm.btnExitClick(Sender: PObj); +begin +{$IFDEF DEBUGMODE} + LogMessage('Exit'); +{$ENDIF} + Self.Form.Close; +end; + +procedure TMainForm.btnResetClick(Sender: PObj); +begin +{$IFDEF DEBUGMODE} + LogMessage('Reset'); +{$ENDIF} + BeginCursor; + try + DoReset; + finally + EndCursor; + end; +end; + +procedure TMainForm.btnRunBdsClick(Sender: PObj); +begin +{$IFDEF DEBUGMODE} + LogMessage('Run'); +{$ENDIF} + BeginCursor; + try + DoRunBds; + finally + EndCursor; + end; +end; + +procedure TMainForm.BuildNormalCglmFile; +var + S: string; +begin + S := FBdsPath + 'Bin\cglm.ini'; + SaveDataToFile(S, defCglmFileDatas, Length(defCglmFileDatas)); + S := GetShellFolderPath(CSIDL_COMMON_APPDATA) + 'Embarcadero\Studio\' + defBdsVersion + '\cglm.ini'; + SaveDataToFile(S, defCglmFileDatas, Length(defCglmFileDatas)); +end; + +procedure TMainForm.BuildNormalSlipFile; +var + S: string; +begin + S := FBdsPath + 'License\*.slip'; + DeleteFiles(S); + S := FBdsPath + 'License\' + defBdsLicenseFile; + SaveDataToFile(S, defSlipFileDatas, Length(defSlipFileDatas)); +end; + +procedure TMainForm.CopyFile(const ASrcFile, ADestFile: string); +{$IFDEF DEBUGMODE} +var + bRet: Boolean; +{$ENDIF} +begin +{$IFDEF DEBUGMODE} + bRet := Windows.CopyFile(PChar(ASrcFile), PChar(ADestFile), False); + if bRet then + LogMessage('CopyFile.OK: ' + ADestFile) + else LogMessage('CopyFile.Error: ' + ADestFile + ', ' + SysErrorMessage(GetLastError)); +{$ELSE} + Windows.CopyFile(PChar(ASrcFile), PChar(ADestFile), False); +{$ENDIF} +end; + +procedure TMainForm.DeleteFile(const AFile: string); +{$IFDEF DEBUGMODE} +var + bRet: Boolean; +{$ENDIF} +begin +{$IFDEF DEBUGMODE} + LogMessage('DeleteFile: ' + AFile + ' ...'); + bRet := Windows.DeleteFile(PChar(AFile)); + if bRet then + LogMessage('DeleteFile.OK: ' + AFile) + else LogMessage('DeleteFile.Error: ' + AFile + ', ' + SysErrorMessage(GetLastError)); +{$ELSE} + Windows.DeleteFile(PChar(AFile)); +{$ENDIF} +end; + +procedure TMainForm.DeleteFiles(const AFileMask: string); + //////////////////////////////////////////////////////////////////////////////// + //: Lsuper 2005.09.21 + //: жļ + // + //////////////////////////////////////////////////////////////////////////////// + function IsDirNotation(const AName: string): Boolean; + begin + Result := (AName = '.') or (AName = '..'); + end; +var + cSearchRec: TSearchRec; + strFilePath: string; +begin +{$IFDEF DEBUGMODE} + LogMessage('DeleteFiles: ' + AFileMask + ' ...'); +{$ENDIF} + strFilePath := ExtractFilePath(AFileMask); + if FindFirst(AFileMask, faAnyFile, cSearchRec) = 0 then + repeat + if (cSearchRec.Name <> '') and not IsDirNotation(cSearchRec.Name) then + begin +{$IFDEF DEBUGMODE} + LogMessage('DeleteFiles, File: ' + strFilePath + cSearchRec.Name); +{$ENDIF} + SysUtils.DeleteFile(strFilePath + cSearchRec.Name); + end; + until FindNext(cSearchRec) <> 0; + SysUtils.FindClose(cSearchRec); +end; + +//////////////////////////////////////////////////////////////////////////////// +//ƣLsuper 2011.01.05 +//ܣȨϢ +// +//////////////////////////////////////////////////////////////////////////////// +procedure TMainForm.DeleteTrialFiles; +var + AllUsersPath, UserPath: string; +begin +{$IFDEF DEBUGMODE} + LogMessage('DeleteTrialFiles'); +{$ENDIF} + AllUsersPath := GetShellFolderPath(CSIDL_COMMON_APPDATA) + 'Embarcadero\'; + UserPath := GetShellFolderPath(CSIDL_APPDATA) + 'Embarcadero\'; + +{$IFDEF DEBUGMODE} + LogMessage('DeleteTrialFiles.AllUsersPath: ' + AllUsersPath); + LogMessage('DeleteTrialFiles.UserPath: ' + UserPath); +{$ENDIF} + + DeleteFile(UserPath + '.cgb_license'); + DeleteFile(AllUsersPath + '.cgb_license'); + + DeleteFile(UserPath + '.licenses\.cg_license'); + DeleteFile(AllUsersPath + '.licenses\.cg_license'); + + DeleteFile(AllUsersPath + 'RAD Studio Activation.slip'); + + DeleteFiles(AllUsersPath + '.82*.slip'); +end; + +procedure TMainForm.DeleteTrialRegKeys; +begin +{$IFDEF DEBUGMODE} + LogMessage('DeleteTrialRegKeys'); +{$ENDIF} +end; + +procedure TMainForm.DoActive; +var + S: string; + nBuild: Integer; +begin +{$IFDEF DEBUGMODE} + LogMessage('DoActive'); +{$ENDIF} + if not FindBdsPath then + begin + ShowError('No BDS find!'); + Exit; + end; + S := FBdsPath + 'Bin\bds.exe'; + nBuild := GetFileBuildVersion(S); + if nBuild <> FCurFileBuild then + begin + ShowError('BDS version not support!'); + Exit; + end; + BuildNormalCglmFile; + BuildNormalSlipFile; + RestoreBdsFile; + + GenerateRegistrationCode; + GenerateKeyGenLicense; + PatchBdsFile; + PatchLicenseHostsFile; +{ + ShowMessage('Active', 'OK!'); +} + ShowMessage('Active', 'OK! Code: ' + FRegCode + ', Serial: ' + FSerialNumber); +end; + +procedure TMainForm.DoReset; +begin +{$IFDEF DEBUGMODE} + LogMessage('DoReset'); +{$ENDIF} + if not FindBdsPath then + begin + ShowError('No BDS find!'); + Exit; + end; + DeleteTrialFiles; + DeleteTrialRegKeys; + BuildNormalCglmFile; + BuildNormalSlipFile; + RestoreBdsFile; + RestoreLicenseHostsFile; + ShowMessage('Reset', 'OK!'); +end; + +procedure TMainForm.DoRunBds; +var + BdsExe: string; +begin +{$IFDEF DEBUGMODE} + LogMessage('DoRunBds'); +{$ENDIF} + if not FindBdsPath then + begin + ShowError('No BDS find!'); + Exit; + end; + FBdsPath := FBdsPath + 'Bin'; + BdsExe := FBdsPath + '\bds.exe'; + ShellExecute(0, 'open', PChar(BdsExe), '-pDelphi', PChar(FBdsPath), SW_NORMAL); + Delay(20); +end; + +procedure TMainForm.EndCursor; +begin + SetCursor(LoadCursor(0, IDC_ARROW)); +end; + +//////////////////////////////////////////////////////////////////////////////// +//ƣLsuper 2011.09.20 +//ܣֱִ Lite İװ +// +//////////////////////////////////////////////////////////////////////////////// +procedure TMainForm.Execute; +var + S: string; + nBuild: Integer; +begin + if not FindBdsPath then + begin + LogMessage('No BDS find!'); + Exit; + end; + S := FBdsPath + 'Bin\bds.exe'; + nBuild := GetFileBuildVersion(S); + if nBuild <> FCurFileBuild then + begin + LogMessage('BDS version not support!'); + Exit; + end; + + GenerateRegistrationCode; + GenerateKeyGenLicense; + BuildNormalCglmFile; + BuildNormalSlipFile; + PatchBdsFile; + PatchLicenseHostsFile; +{ + LogMessage('Done.'); +} + LogMessage('Done. Code: ' + FRegCode + ', Serial: ' + FSerialNumber); +end; + +//////////////////////////////////////////////////////////////////////////////// +//ƣLsuper 2013.02.15 +//ܣ Delphi +// +//////////////////////////////////////////////////////////////////////////////// +function TMainForm.FindBdsPath: Boolean; +begin + Result := False; + with TRegistry.Create do + try + Access := KEY_READ; + RootKey := HKEY_LOCAL_MACHINE; + if OpenKeyReadOnly('SOFTWARE\Embarcadero\BDS\' + defBdsVersion) then + begin + FBdsPath := ReadString('RootDir'); + CloseKey; + end; + finally + Free; + end; + if FBdsPath <> '' then + begin + FBdsPath := IncludeTrailingPathDelimiter(FBdsPath); + Result := FileExists(FBdsPath + 'Bin\bds.exe'); + end; +end; + +//////////////////////////////////////////////////////////////////////////////// +//ƣLsuper 2013.05.01 +//ܣ +// +//ע⣺û IPC ֪ͨͨѶ +//////////////////////////////////////////////////////////////////////////////// +procedure TMainForm.GenerateKeyGenLicense; + + function CurrentRadStudioVersion: PRadStudioVersion; inline; + begin + Assert(RadStudioVersionList.Count > 0); + Result := PRadStudioVersion(RadStudioVersionList.Objects[0]); + end; +begin +{$IFDEF DEBUGMODE} + LogMessage('GenerateKeyGenLicense'); +{$ENDIF} + FSerialNumber := RadKeygen.GenerateSerialNumber; + FRegCode := RadKeygen.GetRegistrationCode; + RadKeygen.GenerateLicenseFile(FSerialNumber, FRegCode, CurrentRadStudioVersion, FInformation); +end; + +//////////////////////////////////////////////////////////////////////////////// +//: Lsuper 2006.09.19 +//: ע +// +//ע⣺û IPC ֪ͨͨѶ +//////////////////////////////////////////////////////////////////////////////// +procedure TMainForm.GenerateRegistrationCode; +var + si: TStartupInfo; + pi: TProcessInformation; + nExitCode: LongWord; + strHelper, strCommandLine, strWorkDir: string; +begin +{$IFDEF DEBUGMODE} + LogMessage('GenerateRegistrationCode'); +{$ENDIF} + strHelper := FAppPath + defAppHelperFileName; + if not FileExists(strHelper) then + SaveDataToFile(strHelper, defHelperDatas, Length(defHelperDatas)); + strWorkDir := FBdsPath + 'Bin'; + strCommandLine := Format('%s\LicenseManager.exe', [strWorkDir]); + if not FileExists(strCommandLine) then + raise Exception.CreateFmt('File %s not exists!', [strCommandLine]); + strCommandLine := Format(defBdsLicenseManager, [strCommandLine]); + FillChar(si, SizeOf(TStartupInfo), 0); + with si do + begin + cb := SizeOf(TStartupInfo); + dwFlags := STARTF_USESHOWWINDOW + STARTF_FORCEONFEEDBACK; + wShowWindow := SW_HIDE; + end; + if CreateProcessEx(nil, PChar(strCommandLine), nil, nil, False, 0, nil, PChar(strWorkDir), si, pi, AnsiString(strHelper)) then + try + WaitForSingleObject(pi.hProcess, INFINITE); + GetExitCodeProcess(pi.hProcess, nExitCode); + if nExitCode <> 0 then + raise Exception.Create('BdsReg error!'); + finally + CloseHandle(pi.hThread); + CloseHandle(pi.hProcess); + end + else RaiseLastOSError; +end; + +//////////////////////////////////////////////////////////////////////////////// +//ƣLsuper 2009.01.30 +//ܣȡWindowsϵͳĿ¼ +// +//////////////////////////////////////////////////////////////////////////////// +function TMainForm.GetSystemHostsFile: string; +const + defHostsFilePath = 'drivers\etc\hosts'; +var + nRet: LongWord; +begin + SetLength(Result, MAX_PATH); + nRet := GetSystemDirectory(PChar(Result), MAX_PATH); + if nRet = 0 then + Result := '' + else begin + SetLength(Result, nRet); + Result := IncludeTrailingPathDelimiter(Result) + defHostsFilePath; + end; +end; + +procedure TMainForm.kolMainFormDestroy(Sender: PObj); +begin + LogMessage('Destroy'); +{$IFNDEF DEBUGMODE} + DeleteFiles(FAppPath + '*.*'); + RemoveDirectory(PChar(FAppPath)); +{$ENDIF} +end; + +procedure TMainForm.kolMainFormFormCreate(Sender: PObj); +var + S: string; +begin + LogMessage('Create'); + + FAppPath := GetShellFolderPath(CSIDL_APPDATA); + FAppPath := IncludeTrailingPathDelimiter(FAppPath) + 'Activator\' + defAppVersion + '\'; + ForceDirectories(FAppPath); + S := GetModuleName(HInstance); + FCurFileBuild := GetFileBuildVersion(S); + + SetEnvironmentVariable('SESSIONNAME', 'Conso1e'); + + if ParamStr(1) = '-process' then + begin + Execute; + Halt(1); + end; +end; + +//////////////////////////////////////////////////////////////////////////////// +//ƣLsuper 2003.09.21 +//ܣϵͳ˵ +// +//////////////////////////////////////////////////////////////////////////////// +function TMainForm.kolMainFormMessage(var Msg: TMsg; + var Rslt: Integer): Boolean; +begin + if (Msg.message = WM_SYSCOMMAND) and (Msg.WParam = UM_SHOWABOUT) then + ShowAboutMessage; + Result := False; +end; + +procedure TMainForm.kolMainFormShow(Sender: PObj); +var + hMain : HMENU; +begin + LogMessage('Show'); + + hMain := GetSystemMenu(Self.Form.Handle, False); + AppendMenu(hMain, MF_SEPARATOR, 0, nil); + AppendMenu(hMain, MF_STRING{ or MF_CHECKED}, UM_SHOWABOUT, 'About ...'); + SetMainFormHandle(Self.Form.Handle); +end; + +//////////////////////////////////////////////////////////////////////////////// +//ƣLsuper 2011.09.21 +//ܣ޸ BDS.exe ļ +// +//////////////////////////////////////////////////////////////////////////////// +procedure TMainForm.PatchBdsFile; +var + S: string; +begin +{$IFDEF DEBUGMODE} + LogMessage('PatchBdsFile'); +{$ENDIF} + S := FBdsPath + 'Bin\' + defBdsPatchFileName; +{$IFDEF DEBUGMODE} + LogMessage('Patch: ' + S); +{$ENDIF} + SaveDataToFile(S, defBdsPatchDllDatas, SizeOf(defBdsPatchDllDatas)); +end; + +procedure TMainForm.PatchLicenseHostsFile; +var + F, S: string; + nIndex, I: Integer; + pList, pHosts: PStrListEx; +begin +{$IFDEF DEBUGMODE} + LogMessage('PatchLicenseHostsFile'); +{$ENDIF} + F := GetSystemHostsFile; + pHosts := NewStrListEx; + with pHosts^ do + try + if FileExists(F) then + LoadFromFile(F); + pList := NewStrListEx; + for S in defLicenseHosts do + pList.Add(S); + for I := 0 to Count - 1 do + begin + S := Trim(Items[I]); + nIndex := pList.IndexOf(S); + if nIndex >= 0 then + pList.Delete(nIndex); + end; + if pList.Count > 0 then + try +{$IFDEF DEBUGMODE} + LogMessage('PatchLicenseHostsFile, SaveToFile: ' + F); +{$ENDIF} + AddStrings(pList); + FileSetReadOnly(F, False); + SaveToFile(F); + except + on E: Exception do + LogMessage('Disable Hosts Error: ' + E.Message); + end; + pList.Free; + finally + Free; + end; +end; + +procedure TMainForm.RestoreBdsFile; +var + S: string; +begin +{$IFDEF DEBUGMODE} + LogMessage('RestoreBdsFile'); +{$ENDIF} + S := FBdsPath + 'Bin\' + defBdsPatchFileName; +{$IFDEF DEBUGMODE} + LogMessage('Restore: ' + S); +{$ENDIF} + Self.DeleteFile(S);; +end; + +procedure TMainForm.RestoreLicenseHostsFile; +var + F, S: string; + nIndex, nRet, I: Integer; + pList, pHosts: PStrListEx; +begin +{$IFDEF DEBUGMODE} + LogMessage('RestoreLicenseHostsFile'); +{$ENDIF} + F := GetSystemHostsFile; + if not FileExists(F) then + Exit; + pHosts := NewStrListEx; + with pHosts^ do + try + LoadFromFile(F); + pList := NewStrListEx; + for S in defLicenseHosts do + pList.Add(S); + nRet := 0; + for I := Count - 1 downto 0 do + begin + S := Trim(Items[I]); + nIndex := pList.IndexOf(S); + if nIndex < 0 then + Continue; + pHosts.Delete(I); + Inc(nRet); + end; + if nRet > 0 then + try +{$IFDEF DEBUGMODE} + LogMessage('RestoreLicenseHostsFile, SaveToFile: ' + F); +{$ENDIF} + FileSetReadOnly(F, False); + SaveToFile(F); + except + on E: Exception do + LogMessage('Disable Hosts Error: ' + E.Message); + end; + pList.Free; + finally + Free; + end; +end; + +procedure TMainForm.ShowAboutMessage; +begin + with Self.Form^ do + ShellAbout(Handle, PChar(string(Caption) + ', Lsuper'), PAnsiChar(AnsiString(defAppMessage)), Icon); +end; + +end. diff --git a/10.3.3/Activator/MainFrm_1.inc b/10.3.3/Activator/MainFrm_1.inc new file mode 100644 index 0000000..c8c0c90 --- /dev/null +++ b/10.3.3/Activator/MainFrm_1.inc @@ -0,0 +1,49 @@ +{ KOL MCK } // Do not remove this line! + +procedure NewMainForm( var Result: PMainForm; AParent: PControl ); +begin + + {$IFDEF KOLCLASSES} + Result := PMainForm.Create; + {$ELSE OBJECTS} + New( Result, Create ); + {$ENDIF KOL CLASSES/OBJECTS} + Result.Form := NewForm( AParent, 'Delphi 10.3.3 Activator' ).SetPosition( 8, 8 ); + Applet := Result.Form; + Result.Form.Add2AutoFree( Result ); + Result.Form.Style := Result.Form.Style and not (WS_MINIMIZEBOX or WS_MAXIMIZEBOX); + Result.Form.SetClientSize( 534, 122 ); + Result.Form.OnMessage := Result.kolMainFormMessage; + Result.Form.OnShow := Result.kolMainFormShow; + Result.Form.OnDestroy := Result.kolMainFormDestroy; + Result.btnAbout := NewButton( Result.Form, '&About' ).SetPosition( 325, 16 ).SetSize( 90, 90 ); + {$IFDEF USE_MHTOOLTIP} + Result.btnAbout.Hint.Text := 'About'; + {$ENDIF USE_MHTOOLTIP} + Result.btnReset := NewButton( Result.Form, 'Re&set' ).SetPosition( 222, 16 ).SetSize( 90, 90 ); + {$IFDEF USE_MHTOOLTIP} + Result.btnReset.Hint.Text := 'Reset Delphi 10.3.2'; + {$ENDIF USE_MHTOOLTIP} + Result.btnExit := NewButton( Result.Form, '&Exit' ).SetPosition( 428, 16 ).SetSize( 90, 90 ); + {$IFDEF USE_MHTOOLTIP} + Result.btnExit.Hint.Text := 'Exit'; + {$ENDIF USE_MHTOOLTIP} + Result.btnRunBds := NewButton( Result.Form, '&Run' ).SetPosition( 119, 16 ).SetSize( 90, 90 ); + {$IFDEF USE_MHTOOLTIP} + Result.btnRunBds.Hint.Text := 'Run Delphi 10.3.2'; + {$ENDIF USE_MHTOOLTIP} + Result.btnActive := NewButton( Result.Form, '&Active' ).SetPosition( 16, 16 ).SetSize( 90, 90 ); + {$IFDEF USE_MHTOOLTIP} + Result.btnActive.Hint.Text := 'Active Delphi 10.3.2'; + {$ENDIF USE_MHTOOLTIP} + Result.btnAbout.OnClick := Result.btnAboutClick; + Result.btnReset.OnClick := Result.btnResetClick; + Result.btnExit.OnClick := Result.btnExitClick; + Result.btnRunBds.OnClick := Result.btnRunBdsClick; + Result.btnActive.OnClick := Result.btnActiveClick; + Result.Form.CenterOnParent.CanResize := False; + Result.Form.Perform( WM_INITMENU, 0, 0 ); + Result.kolMainFormFormCreate( Result ); + +end; + diff --git a/10.3.3/Activator/PatchData.inc b/10.3.3/Activator/PatchData.inc new file mode 100644 index 0000000..eda62b4 --- /dev/null +++ b/10.3.3/Activator/PatchData.inc @@ -0,0 +1,3415 @@ + defCglmFileDatas: array[0..255] of Byte = ( + $5B, $45, $6D, $62, $61, $72, $63, $61, $64, $65, $72, $6F, $20, $4C, $69, $63, + $65, $6E, $73, $65, $20, $4D, $61, $6E, $61, $67, $65, $6D, $65, $6E, $74, $5D, + $0D, $0A, $52, $6F, $6F, $74, $44, $69, $72, $3D, $24, $7B, $4D, $4F, $44, $55, + $4C, $45, $5F, $44, $49, $52, $7D, $5C, $2E, $2E, $0D, $0A, $4C, $69, $63, $65, + $6E, $73, $65, $44, $69, $72, $3D, $24, $7B, $52, $4F, $4F, $54, $44, $49, $52, + $7D, $5C, $4C, $69, $63, $65, $6E, $73, $65, $0D, $0A, $49, $6E, $66, $6F, $44, + $69, $72, $3D, $24, $7B, $43, $4F, $4D, $4D, $4F, $4E, $5F, $41, $50, $50, $44, + $41, $54, $41, $7D, $5C, $45, $6D, $62, $61, $72, $63, $61, $64, $65, $72, $6F, + $5C, $2E, $6C, $69, $63, $65, $6E, $73, $65, $73, $0D, $0A, $53, $6C, $69, $70, + $44, $69, $72, $3D, $24, $7B, $43, $4F, $4D, $4D, $4F, $4E, $5F, $41, $50, $50, + $44, $41, $54, $41, $7D, $5C, $45, $6D, $62, $61, $72, $63, $61, $64, $65, $72, + $6F, $5C, $0D, $0A, $52, $65, $67, $45, $78, $65, $3D, $4C, $69, $63, $65, $6E, + $73, $65, $4D, $61, $6E, $61, $67, $65, $72, $2E, $65, $78, $65, $0D, $0A, $4C, + $6F, $63, $6B, $54, $79, $70, $65, $3D, $35, $0D, $0A, $5B, $45, $6D, $62, $61, + $72, $63, $61, $64, $65, $72, $6F, $20, $53, $4C, $49, $50, $20, $46, $69, $6C, + $65, $73, $5D, $0D, $0A, $53, $4C, $49, $50, $46, $69, $6C, $65, $3D, $0D, $0A + ); + + defSlipFileDatas: array[0..1919] of Byte = ( + $CC, $8F, $F6, $42, $00, $00, $07, $78, $D6, $E1, $23, $6F, $D7, $83, $D2, $45, + $8F, $73, $42, $E9, $D6, $CF, $61, $F1, $5D, $6B, $8B, $F9, $9C, $46, $CC, $77, + $1E, $DF, $BB, $D4, $40, $F4, $70, $2B, $CA, $EB, $BB, $5D, $BD, $52, $59, $99, + $C3, $E9, $17, $E8, $3B, $49, $92, $A3, $91, $44, $8B, $34, $03, $DF, $B3, $9A, + $25, $A2, $09, $54, $85, $AC, $A4, $2D, $DC, $0E, $5C, $B4, $F6, $8B, $09, $C4, + $5B, $67, $F3, $B3, $F8, $6E, $9F, $49, $7C, $F8, $C1, $FC, $52, $DD, $7D, $51, + $A6, $9B, $8D, $39, $F3, $30, $64, $93, $FC, $A9, $16, $9A, $2C, $5F, $97, $D4, + $F1, $38, $88, $40, $05, $AC, $82, $BC, $68, $D6, $59, $20, $B1, $AF, $B1, $61, + $9B, $4B, $07, $A6, $AD, $EC, $28, $A2, $07, $39, $99, $EB, $A2, $5D, $CD, $08, + $63, $BC, $9B, $CC, $46, $E2, $14, $5C, $8B, $E2, $86, $1C, $84, $77, $46, $9B, + $C0, $F9, $6C, $A7, $17, $51, $A2, $A4, $B0, $1B, $88, $00, $7C, $BD, $8B, $AD, + $39, $CE, $74, $7F, $DA, $D1, $D3, $61, $F9, $5A, $69, $AD, $85, $83, $3F, $F5, + $21, $43, $E8, $DB, $AC, $5A, $EB, $78, $04, $B7, $8F, $86, $74, $C1, $15, $5C, + $AF, $83, $A0, $0E, $FC, $75, $11, $F0, $A7, $D5, $44, $F0, $55, $7D, $AE, $BC, + $95, $3E, $A6, $28, $1C, $B9, $D0, $83, $1E, $C5, $51, $71, $95, $F7, $DD, $5B, + $DD, $49, $4B, $C7, $FD, $A2, $5E, $8F, $35, $65, $FA, $AC, $D0, $3C, $BD, $6E, + $6A, $DF, $FA, $EA, $3F, $9C, $06, $37, $97, $A4, $E6, $44, $D6, $7D, $6C, $8B, + $E9, $F2, $09, $DD, $63, $0A, $C5, $FF, $B4, $1A, $E3, $7D, $5E, $FD, $EB, $E0, + $76, $F3, $7E, $62, $A7, $B9, $D3, $0C, $FB, $68, $06, $E4, $9D, $99, $36, $AB, + $08, $53, $B1, $88, $FD, $00, $C3, $0D, $41, $F4, $E5, $D0, $7C, $EE, $78, $53, + $8D, $E4, $B5, $02, $AC, $17, $77, $96, $8A, $94, $3D, $80, $34, $5E, $83, $E8, + $A4, $14, $83, $09, $7C, $98, $89, $F8, $35, $E8, $60, $04, $FA, $8C, $A2, $3A, + $9B, $28, $1A, $BA, $A0, $CB, $25, $F1, $63, $15, $D8, $9B, $9F, $2E, $B2, $0C, + $76, $B6, $84, $8E, $07, $DA, $19, $50, $9E, $CB, $E1, $14, $F1, $1B, $57, $FF, + $AD, $96, $0A, $9B, $62, $24, $D1, $C2, $B8, $5B, $E5, $6A, $02, $97, $A4, $AF, + $2B, $AE, $10, $7A, $F2, $C9, $91, $57, $CC, $6F, $1D, $A7, $D9, $D7, $7D, $B6, + $6E, $50, $F7, $D6, $E0, $3A, $C1, $0D, $1D, $DC, $FD, $E4, $05, $C5, $0A, $2D, + $82, $FB, $D8, $49, $D9, $3B, $4B, $9D, $EA, $89, $6F, $F8, $5F, $32, $CA, $AC, + $81, $39, $BC, $26, $48, $8E, $E1, $CC, $27, $FA, $56, $55, $E6, $B7, $F5, $55, + $8F, $33, $33, $D4, $84, $D0, $5B, $D2, $59, $72, $B2, $FB, $C6, $2A, $A9, $78, + $41, $8C, $DE, $DB, $7D, $B7, $33, $77, $F4, $B9, $92, $6F, $83, $0A, $2C, $C5, + $92, $D2, $03, $E5, $5B, $1B, $D5, $BC, $80, $29, $8D, $52, $6F, $8E, $ED, $AF, + $15, $A6, $7D, $1F, $90, $EF, $EA, $7C, $ED, $1C, $31, $95, $B0, $C2, $7F, $D1, + $6A, $74, $AB, $A3, $DD, $42, $8E, $7A, $55, $94, $F4, $D9, $38, $C0, $71, $52, + $F5, $B0, $DC, $04, $AF, $37, $61, $8A, $CD, $86, $6C, $C2, $3D, $16, $9B, $FB, + $B9, $78, $B4, $16, $40, $B0, $89, $A5, $7C, $81, $05, $0B, $8E, $CD, $CF, $6C, + $8E, $70, $48, $D1, $EE, $E5, $73, $E7, $5E, $3D, $EE, $9D, $D9, $61, $E9, $53, + $4B, $D6, $B4, $F9, $7A, $DC, $5B, $75, $AE, $E2, $96, $4B, $BE, $13, $62, $90, + $B6, $97, $53, $D7, $3F, $23, $C5, $FE, $EA, $11, $A1, $52, $6B, $BD, $94, $87, + $4C, $CD, $0A, $6A, $9D, $DC, $87, $43, $A3, $46, $5D, $B4, $81, $FE, $73, $9F, + $10, $70, $EC, $88, $91, $21, $9A, $15, $40, $F0, $EB, $F5, $21, $EF, $7B, $7F, + $A1, $96, $FB, $26, $C6, $2F, $3E, $E6, $F1, $B3, $3D, $E2, $5F, $08, $86, $D8, + $B0, $1E, $FF, $06, $48, $F6, $B9, $BB, $4F, $AF, $49, $6F, $E5, $FF, $DB, $75, + $B3, $5A, $04, $FC, $D1, $C9, $50, $96, $73, $0E, $93, $9B, $86, $10, $B7, $78, + $7E, $AB, $DE, $F4, $34, $9B, $41, $6D, $C9, $D7, $B6, $18, $9F, $79, $57, $90, + $98, $99, $63, $A2, $32, $37, $9B, $CE, $B0, $2D, $B1, $7A, $64, $81, $DC, $80, + $5A, $F9, $32, $41, $F7, $9E, $E1, $5E, $FD, $29, $2D, $AA, $B2, $AB, $06, $F1, + $1A, $41, $EE, $87, $FA, $28, $8B, $1B, $7D, $DD, $86, $9A, $4C, $BD, $25, $2A, + $E2, $97, $CA, $37, $E1, $68, $0E, $D4, $B0, $FC, $46, $85, $0D, $18, $AD, $8D, + $FB, $51, $B1, $31, $06, $A4, $BA, $F0, $1D, $A3, $15, $7C, $BB, $A7, $8D, $35, + $F2, $43, $01, $9E, $E7, $82, $58, $C6, $25, $7F, $F0, $E6, $B4, $6B, $E4, $43, + $1C, $97, $AF, $A6, $4E, $C7, $62, $31, $89, $A5, $D6, $6B, $DF, $3F, $03, $EC, + $A7, $D1, $2B, $F4, $2A, $58, $B1, $DB, $9C, $0D, $82, $59, $78, $F1, $9D, $87, + $09, $E9, $5D, $2C, $8E, $B1, $9F, $46, $D7, $30, $30, $BA, $F8, $F5, $62, $87, + $0D, $03, $8D, $9D, $F3, $1F, $8E, $79, $04, $FF, $AB, $D4, $44, $90, $79, $65, + $DF, $D2, $A1, $17, $B5, $73, $0F, $FB, $B9, $FD, $5B, $E2, $3E, $41, $B5, $D2, + $95, $09, $82, $41, $0C, $D4, $BA, $A3, $48, $D2, $7E, $14, $86, $AE, $9D, $13, + $9C, $49, $60, $E0, $95, $B1, $7F, $96, $26, $39, $C2, $A5, $F1, $03, $A2, $54, + $66, $87, $F2, $D8, $67, $EE, $2D, $4B, $95, $8E, $DF, $1A, $E5, $4F, $6E, $D7, + $A8, $C1, $38, $95, $77, $03, $C6, $FA, $F3, $63, $A8, $13, $00, $89, $C2, $F3, + $7C, $A8, $48, $2B, $8E, $84, $EE, $18, $A4, $01, $08, $BF, $CB, $A7, $3B, $CA, + $54, $59, $BA, $C2, $A4, $64, $A9, $61, $3F, $B5, $F3, $C2, $55, $F6, $36, $2B, + $A0, $CB, $F5, $74, $92, $37, $68, $EE, $A9, $B4, $21, $AD, $02, $6C, $C3, $F1, + $87, $40, $DB, $35, $3B, $90, $ED, $EA, $5C, $86, $12, $58, $C1, $8D, $FA, $71, + $B5, $71, $3B, $9A, $D2, $85, $68, $D6, $67, $18, $BD, $D0, $A0, $3F, $A4, $0F, + $58, $FD, $84, $92, $65, $E0, $2B, $4D, $91, $B3, $AC, $4A, $FF, $3D, $1D, $A4, + $CE, $E0, $47, $B5, $32, $59, $C2, $BC, $8C, $6F, $DF, $68, $5F, $E5, $B7, $B4, + $04, $FF, $60, $6E, $F1, $F7, $CC, $06, $D3, $62, $39, $EC, $CC, $FD, $26, $E6, + $54, $47, $FA, $8B, $89, $21, $B4, $3B, $32, $F6, $B5, $CA, $58, $DF, $45, $51, + $D2, $A1, $8F, $46, $E7, $52, $67, $FA, $DA, $D3, $6B, $DD, $02, $74, $AD, $FE, + $86, $31, $AF, $55, $47, $E4, $EB, $B9, $02, $CB, $39, $3C, $94, $84, $99, $68, + $EB, $34, $2E, $81, $F7, $E7, $75, $AE, $39, $64, $C4, $83, $A5, $4E, $C1, $00, + $49, $CB, $FB, $DD, $1C, $8B, $77, $59, $B4, $C1, $C4, $75, $9B, $7E, $0F, $D4, + $8E, $F5, $65, $E6, $25, $49, $98, $DC, $93, $28, $B9, $46, $52, $99, $F0, $F7, + $7C, $96, $56, $3D, $D0, $AB, $F3, $4A, $D1, $1F, $73, $9F, $DF, $BB, $01, $B6, + $56, $41, $A8, $E6, $C1, $19, $D7, $25, $7B, $90, $C9, $CA, $60, $FA, $47, $3A, + $8E, $BE, $9B, $58, $F9, $24, $24, $DD, $D9, $A2, $42, $C0, $29, $26, $F5, $B4, + $B6, $43, $AA, $01, $13, $FA, $9D, $EC, $0E, $E4, $7C, $1C, $ED, $E6, $84, $14, + $EE, $62, $79, $85, $DD, $A2, $57, $94, $4D, $51, $BD, $B3, $AD, $1F, $C8, $24, + $6A, $D7, $90, $8C, $2B, $B4, $59, $5F, $D1, $E1, $C0, $4B, $E8, $21, $31, $F8, + $A0, $DE, $0F, $FC, $3B, $29, $BD, $CB, $D4, $51, $AE, $1F, $3A, $A2, $D8, $EB, + $5B, $D8, $76, $48, $DA, $AE, $E3, $4B, $B4, $45, $4E, $E5, $EF, $9F, $74, $90, + $30, $2E, $BA, $C8, $B6, $2F, $E6, $16, $33, $B7, $F4, $A8, $3B, $D9, $4B, $60, + $F3, $9F, $CA, $7D, $F8, $07, $2E, $88, $9A, $95, $27, $F5, $09, $5A, $AC, $B4, + $F7, $5C, $D4, $71, $0E, $D6, $EF, $FE, $3C, $C2, $17, $20, $E9, $B4, $88, $6D, + $CC, $58, $4E, $F4, $F9, $FE, $2E, $A4, $6A, $26, $EC, $9E, $CD, $23, $8E, $40, + $08, $C1, $90, $CF, $2B, $C8, $0F, $65, $F5, $C4, $86, $76, $F7, $41, $1C, $8E, + $8C, $A2, $06, $C8, $22, $59, $F7, $8F, $E7, $4F, $C6, $35, $39, $8C, $E2, $E8, + $24, $D0, $59, $77, $CE, $B7, $91, $04, $D9, $48, $6F, $CC, $8A, $D5, $4D, $D0, + $1F, $3E, $CB, $F7, $E0, $4A, $83, $4A, $3B, $CC, $D8, $95, $05, $FA, $71, $77, + $F7, $8D, $C3, $7F, $EE, $6F, $0D, $D6, $C9, $AB, $66, $A7, $44, $22, $DA, $AF, + $CC, $52, $D6, $71, $5A, $C4, $FB, $89, $0F, $C5, $63, $62, $DD, $B8, $E8, $3E, + $DC, $09, $56, $98, $92, $FD, $5F, $F0, $7E, $46, $B8, $90, $D1, $2A, $C8, $4B, + $13, $D8, $83, $CC, $5C, $B3, $4D, $01, $8E, $E9, $A4, $1E, $C4, $1B, $05, $E1, + $D9, $EB, $10, $FC, $70, $56, $AB, $8C, $9F, $5B, $A7, $6D, $6B, $A3, $B0, $E1, + $3B, $E2, $44, $27, $C3, $A0, $F3, $44, $E5, $42, $27, $E2, $C0, $9A, $26, $DF, + $52, $3D, $B2, $F7, $81, $1F, $FA, $11, $61, $F9, $E9, $87, $4C, $FA, $7F, $33, + $8C, $85, $D8, $66, $F2, $48, $38, $F0, $BD, $84, $2B, $FF, $7F, $6B, $D5, $9E, + $BF, $69, $B6, $3E, $57, $CA, $96, $93, $09, $BB, $7D, $3C, $D9, $DC, $D1, $58, + $83, $12, $7C, $C7, $E8, $C9, $13, $B4, $53, $64, $FB, $8C, $C9, $63, $E6, $14, + $26, $C4, $C9, $F7, $56, $AE, $6B, $26, $D6, $C2, $B2, $77, $D0, $13, $1A, $E8, + $C4, $B5, $0E, $D8, $66, $44, $D0, $B7, $CB, $63, $94, $68, $0F, $E2, $E3, $9E, + $5D, $A0, $6B, $2C, $EB, $88, $BB, $33, $9F, $28, $7F, $A8, $A2, $B9, $33, $EC, + $54, $62, $D9, $BE, $86, $1A, $8E, $08, $55, $F5, $B6, $A8, $5C, $DD, $3E, $6E, + $B7, $9C, $97, $40, $FB, $31, $17, $DD, $F7, $9C, $21, $AD, $5E, $2B, $AE, $D1, + $8E, $6B, $8C, $60, $1B, $C7, $F0, $85, $13, $F3, $6D, $62, $BE, $C6, $B3, $76, + $87, $09, $7B, $A3, $ED, $AC, $2D, $D9, $7C, $18, $DE, $FC, $97, $00, $A0, $32, + $64, $99, $F7, $CA, $38, $A8, $58, $6E, $AA, $C9, $AC, $58, $A6, $59, $68, $9D, + $C5, $F2, $5F, $9C, $53, $68, $A8, $B3, $95, $64, $8B, $3F, $07, $ED, $BF, $F4, + $0E, $8C, $44, $12, $81, $E5, $A6, $16, $8A, $17, $11, $A7, $F6, $81, $14, $D8, + $14, $55, $C8, $E5, $9E, $60, $FA, $79, $24, $BD, $AA, $AB, $79, $FC, $06, $3C, + $FC, $DC, $98, $7B, $E5, $2F, $7D, $DA, $9B, $CA, $7B, $83, $44, $29, $E9, $BC, + $D3, $05, $C1, $14, $68, $87, $8B, $A5, $0B, $EC, $2E, $57, $E5, $CB, $90, $45, + $DE, $47, $62, $9B, $C8, $93, $3C, $C7, $3C, $08, $AE, $BC, $FE, $5D, $FC, $6A, + $4E, $A8, $A4, $DF, $06, $F5, $52, $29, $95, $A5, $D8, $1D, $F4, $16, $4E, $B5, + $A6, $C8, $10, $EF, $77, $34, $C9, $99, $A4, $7E, $A2, $3C, $22, $A2, $85, $FB, + $65, $D8, $68, $1E, $EC, $F6, $DD, $3E, $D7, $70, $62, $83, $E9, $E1, $27, $AF, + $2F, $39, $F4, $BD, $80, $3E, $F3, $3A, $0F, $C1, $F0, $F0, $16, $CE, $45, $42, + $B1, $BA, $C1, $57, $B1, $7C, $27, $EA, $F4, $9E, $15, $E1, $2A, $29, $9D, $FA, + $C0, $16, $DD, $3D, $70, $CB, $C2, $94, $7B, $FE, $4F, $0A, $9B, $DA, $9A, $0B + ); + + defBdsPatchDllDatas: array[0..13823] of Byte = ( + $4D, $5A, $90, $00, $03, $00, $00, $00, $04, $00, $00, $00, $FF, $FF, $00, $00, + $B8, $00, $00, $00, $00, $00, $00, $00, $40, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $D8, $00, $00, $00, + $0E, $1F, $BA, $0E, $00, $B4, $09, $CD, $21, $B8, $01, $4C, $CD, $21, $54, $68, + $69, $73, $20, $70, $72, $6F, $67, $72, $61, $6D, $20, $63, $61, $6E, $6E, $6F, + $74, $20, $62, $65, $20, $72, $75, $6E, $20, $69, $6E, $20, $44, $4F, $53, $20, + $6D, $6F, $64, $65, $2E, $0D, $0D, $0A, $24, $00, $00, $00, $00, $00, $00, $00, + $C9, $E7, $94, $1A, $8D, $86, $FA, $49, $8D, $86, $FA, $49, $8D, $86, $FA, $49, + $68, $DF, $FE, $48, $88, $86, $FA, $49, $84, $FE, $69, $49, $88, $86, $FA, $49, + $8D, $86, $FB, $49, $A7, $86, $FA, $49, $7F, $DF, $F3, $48, $8A, $86, $FA, $49, + $7F, $DF, $FA, $48, $8C, $86, $FA, $49, $7F, $DF, $05, $49, $8C, $86, $FA, $49, + $7F, $DF, $F8, $48, $8C, $86, $FA, $49, $52, $69, $63, $68, $8D, $86, $FA, $49, + $00, $00, $00, $00, $00, $00, $00, $00, $50, $45, $00, $00, $4C, $01, $05, $00, + $E1, $70, $F1, $55, $00, $00, $00, $00, $00, $00, $00, $00, $E0, $00, $02, $21, + $0B, $01, $0E, $00, $00, $1C, $00, $00, $00, $18, $00, $00, $00, $00, $00, $00, + $80, $18, $00, $00, $00, $10, $00, $00, $00, $30, $00, $00, $00, $00, $00, $10, + $00, $10, $00, $00, $00, $02, $00, $00, $05, $00, $01, $00, $00, $00, $00, $00, + $05, $00, $01, $00, $00, $00, $00, $00, $00, $70, $00, $00, $00, $04, $00, $00, + $FD, $77, $00, $00, $02, $00, $40, $05, $00, $00, $10, $00, $00, $10, $00, $00, + $00, $00, $10, $00, $00, $10, $00, $00, $00, $00, $00, $00, $10, $00, $00, $00, + $B0, $36, $00, $00, $6B, $00, $00, $00, $28, $38, $00, $00, $3C, $00, $00, $00, + $00, $50, $00, $00, $E0, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $60, $00, $00, $E0, $01, $00, $00, + $30, $36, $00, $00, $1C, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $50, $36, $00, $00, $40, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $30, $00, $00, $B0, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $2E, $74, $65, $78, $74, $00, $00, $00, $0D, $1A, $00, $00, $00, $10, $00, $00, + $00, $1C, $00, $00, $00, $04, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $20, $00, $00, $60, $2E, $72, $64, $61, $74, $61, $00, $00, + $32, $0C, $00, $00, $00, $30, $00, $00, $00, $0E, $00, $00, $00, $20, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $40, $00, $00, $40, + $2E, $64, $61, $74, $61, $00, $00, $00, $8C, $05, $00, $00, $00, $40, $00, $00, + $00, $04, $00, $00, $00, $2E, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $40, $00, $00, $C0, $2E, $72, $73, $72, $63, $00, $00, $00, + $E0, $01, $00, $00, $00, $50, $00, $00, $00, $02, $00, $00, $00, $32, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $40, $00, $00, $40, + $2E, $72, $65, $6C, $6F, $63, $00, $00, $E0, $01, $00, $00, $00, $60, $00, $00, + $00, $02, $00, $00, $00, $34, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $40, $00, $00, $42, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $51, $53, $56, $33, $F6, $56, $68, $80, $00, $00, $00, $6A, $03, $56, $6A, $01, + $68, $00, $00, $00, $80, $51, $FF, $15, $00, $30, $00, $10, $8B, $D8, $83, $FB, + $FF, $0F, $84, $81, $00, $00, $00, $57, $8D, $44, $24, $0C, $89, $74, $24, $0C, + $50, $53, $FF, $15, $04, $30, $00, $10, $8B, $F8, $83, $FF, $FF, $74, $61, $39, + $74, $24, $0C, $75, $5B, $55, $56, $56, $56, $6A, $02, $56, $53, $FF, $15, $08, + $30, $00, $10, $8B, $E8, $83, $FD, $FF, $74, $45, $56, $56, $56, $6A, $04, $55, + $FF, $15, $0C, $30, $00, $10, $8B, $D0, $85, $D2, $74, $2C, $83, $CE, $FF, $8B, + $CA, $85, $FF, $74, $1A, $0F, $B6, $01, $8D, $49, $01, $33, $C6, $C1, $EE, $08, + $0F, $B6, $C0, $33, $34, $85, $D0, $30, $00, $10, $83, $EF, $01, $75, $E6, $52, + $F7, $D6, $FF, $15, $10, $30, $00, $10, $55, $FF, $15, $14, $30, $00, $10, $5D, + $53, $FF, $15, $14, $30, $00, $10, $5F, $8B, $C6, $5E, $5B, $59, $C3, $CC, $CC, + $C7, $44, $24, $10, $00, $00, $00, $00, $C7, $44, $24, $0C, $00, $00, $00, $00, + $FF, $25, $A4, $30, $00, $10, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, + $FF, $25, $A8, $30, $00, $10, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, + $33, $C0, $40, $C2, $04, $00, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, + $51, $81, $B9, $F0, $0F, $00, $00, $78, $56, $34, $12, $53, $8D, $99, $F0, $0F, + $00, $00, $74, $52, $56, $57, $8B, $3D, $18, $30, $00, $10, $8D, $44, $24, $0C, + $50, $6A, $40, $8D, $B1, $40, $F6, $02, $00, $6A, $02, $56, $FF, $D7, $B8, $B3, + $01, $00, $00, $66, $89, $06, $8D, $44, $24, $0C, $50, $FF, $74, $24, $10, $6A, + $02, $56, $FF, $D7, $8D, $44, $24, $0C, $50, $6A, $40, $6A, $04, $53, $FF, $D7, + $8D, $44, $24, $0C, $C7, $03, $78, $56, $34, $12, $50, $FF, $74, $24, $10, $6A, + $04, $53, $FF, $D7, $5F, $5E, $5B, $59, $C3, $CC, $CC, $CC, $CC, $CC, $CC, $CC, + $53, $8B, $5C, $24, $14, $56, $57, $8B, $7C, $24, $18, $53, $57, $FF, $74, $24, + $1C, $FF, $74, $24, $1C, $FF, $15, $44, $45, $00, $10, $8B, $F0, $85, $F6, $75, + $5C, $85, $DB, $74, $58, $F7, $C7, $00, $00, $FF, $FF, $74, $50, $66, $39, $07, + $74, $4B, $8B, $57, $04, $F7, $C2, $00, $00, $FF, $FF, $74, $40, $8B, $CA, $66, + $39, $02, $74, $13, $66, $8B, $01, $83, $C1, $02, $66, $83, $F8, $5C, $0F, $44, + $D1, $66, $83, $39, $00, $75, $ED, $0F, $B7, $02, $83, $F8, $73, $74, $05, $83, + $F8, $53, $75, $17, $68, $D0, $34, $00, $10, $52, $FF, $15, $1C, $30, $00, $10, + $85, $C0, $75, $07, $8B, $0B, $E8, $15, $FF, $FF, $FF, $8B, $C6, $5F, $5E, $5B, + $C2, $10, $00, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, + $50, $A1, $54, $45, $00, $10, $3B, $44, $24, $04, $75, $06, $8B, $45, $2C, $C6, + $00, $01, $58, $FF, $25, $58, $45, $00, $10, $CC, $CC, $CC, $CC, $CC, $CC, $CC, + $53, $8B, $5C, $24, $08, $56, $8B, $74, $24, $10, $57, $56, $53, $FF, $15, $3C, + $45, $00, $10, $8B, $F8, $85, $FF, $75, $77, $3B, $1D, $5C, $45, $00, $10, $75, + $6F, $F7, $C6, $00, $00, $FF, $FF, $74, $67, $B9, $F4, $34, $00, $10, $8B, $C6, + $8A, $10, $3A, $11, $75, $1A, $84, $D2, $74, $12, $8A, $50, $01, $3A, $51, $01, + $75, $0E, $83, $C0, $02, $83, $C1, $02, $84, $D2, $75, $E4, $33, $C0, $EB, $05, + $1B, $C0, $83, $C8, $01, $85, $C0, $74, $32, $B8, $10, $35, $00, $10, $66, $90, + $8A, $0E, $3A, $08, $75, $1A, $84, $C9, $74, $12, $8A, $4E, $01, $3A, $48, $01, + $75, $0E, $83, $C6, $02, $83, $C0, $02, $84, $C9, $75, $E4, $33, $C0, $EB, $05, + $1B, $C0, $83, $C8, $01, $85, $C0, $8B, $C7, $75, $05, $B8, $E0, $10, $00, $10, + $5F, $5E, $5B, $C2, $08, $00, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, + $53, $55, $8B, $6C, $24, $0C, $8B, $5C, $24, $10, $8B, $4C, $24, $14, $8B, $44, + $24, $18, $8B, $54, $24, $1C, $F0, $0F, $C7, $4D, $00, $5D, $5B, $C2, $14, $00, + $74, $67, $60, $8B, $4D, $0C, $03, $C8, $8D, $51, $02, $81, $3A, $49, $6E, $74, + $65, $75, $4F, $81, $7A, $04, $72, $6C, $6F, $63, $75, $46, $81, $7A, $08, $6B, + $65, $64, $43, $75, $3D, $81, $7A, $0C, $6F, $6D, $70, $61, $75, $34, $81, $7A, + $10, $72, $65, $45, $78, $75, $2B, $81, $7A, $14, $63, $68, $61, $6E, $75, $22, + $81, $7A, $18, $67, $65, $36, $34, $75, $19, $80, $7A, $1C, $00, $75, $13, $B8, + $B0, $12, $00, $10, $8B, $55, $14, $89, $02, $61, $33, $C0, $FF, $25, $4C, $45, + $00, $10, $61, $FF, $25, $50, $45, $00, $10, $B8, $7A, $00, $00, $C0, $FF, $25, + $4C, $45, $00, $10, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, + $51, $56, $8B, $35, $24, $30, $00, $10, $68, $30, $35, $00, $10, $FF, $D6, $68, + $4C, $35, $00, $10, $A3, $60, $45, $00, $10, $FF, $D6, $8B, $35, $28, $30, $00, + $10, $68, $3C, $45, $00, $10, $68, $64, $35, $00, $10, $FF, $35, $60, $45, $00, + $10, $A3, $5C, $45, $00, $10, $FF, $D6, $BA, $10, $12, $00, $10, $8B, $C8, $E8, + $1A, $0B, $00, $00, $68, $74, $35, $00, $10, $FF, $35, $64, $45, $00, $10, $FF, + $D6, $85, $C0, $0F, $84, $6F, $01, $00, $00, $83, $3D, $60, $45, $00, $10, $00, + $0F, $84, $62, $01, $00, $00, $8B, $0D, $64, $45, $00, $10, $53, $55, $8D, $98, + $00, $FC, $FF, $FF, $8B, $51, $3C, $57, $8D, $78, $C0, $8B, $6C, $0A, $2C, $03, + $E9, $8B, $4C, $0A, $1C, $03, $CD, $3B, $DD, $89, $4C, $24, $10, $0F, $42, $DD, + $3B, $FB, $0F, $86, $2D, $01, $00, $00, $8D, $77, $03, $0F, $1F, $44, $00, $00, + $8B, $07, $25, $FF, $F8, $FF, $00, $3D, $C1, $E8, $1F, $00, $0F, $85, $E4, $00, + $00, $00, $8D, $56, $08, $8B, $CE, $3B, $F2, $0F, $83, $D7, $00, $00, $00, $90, + $8B, $01, $25, $FF, $F8, $FF, $00, $3D, $80, $E0, $01, $00, $74, $0A, $41, $3B, + $CA, $72, $ED, $E9, $BE, $00, $00, $00, $3B, $CA, $0F, $83, $B6, $00, $00, $00, + $83, $C1, $03, $8D, $51, $08, $3B, $CA, $0F, $83, $A8, $00, $00, $00, $66, $90, + $8B, $01, $25, $FF, $C7, $FF, $00, $3D, $88, $45, $13, $00, $74, $0A, $41, $3B, + $CA, $72, $ED, $E9, $8E, $00, $00, $00, $3B, $CA, $0F, $83, $86, $00, $00, $00, + $83, $C1, $03, $8D, $41, $08, $3B, $C8, $0F, $83, $78, $00, $00, $00, $BA, $0F, + $85, $00, $00, $66, $39, $11, $74, $07, $41, $3B, $C8, $72, $F6, $EB, $67, $3B, + $C8, $73, $63, $83, $C1, $06, $8D, $51, $08, $3B, $CA, $73, $59, $0F, $1F, $00, + $8B, $01, $25, $FF, $C7, $FF, $00, $3D, $8B, $45, $0C, $00, $74, $07, $41, $3B, + $CA, $72, $ED, $EB, $41, $3B, $CA, $73, $3D, $83, $C1, $03, $8D, $41, $08, $3B, + $C8, $73, $33, $BA, $0F, $84, $00, $00, $66, $39, $11, $74, $07, $41, $3B, $C8, + $72, $F6, $EB, $22, $3B, $C8, $73, $1E, $8D, $51, $06, $03, $51, $02, $3B, $D5, + $72, $14, $3B, $54, $24, $10, $73, $0E, $80, $3A, $B8, $75, $09, $81, $7A, $01, + $7A, $00, $00, $C0, $74, $10, $4F, $4E, $3B, $FB, $0F, $87, $00, $FF, $FF, $FF, + $5F, $5D, $5B, $5E, $59, $C3, $8D, $41, $06, $A3, $50, $45, $00, $10, $8D, $42, + $05, $68, $40, $45, $00, $10, $BA, $D0, $12, $00, $10, $A3, $4C, $45, $00, $10, + $E8, $99, $09, $00, $00, $5F, $5D, $5B, $5E, $59, $C3, $CC, $CC, $CC, $CC, $CC, + $81, $EC, $14, $01, $00, $00, $53, $8B, $1D, $50, $30, $00, $10, $55, $56, $57, + $33, $FF, $33, $ED, $57, $6A, $01, $68, $68, $45, $00, $10, $FF, $D3, $8B, $35, + $6C, $30, $00, $10, $85, $C0, $74, $1D, $83, $FF, $20, $73, $04, $6A, $00, $EB, + $02, $6A, $01, $FF, $D6, $6A, $00, $6A, $01, $68, $68, $45, $00, $10, $47, $FF, + $D3, $85, $C0, $75, $E3, $39, $2D, $6C, $45, $00, $10, $75, $1A, $6A, $00, $6A, + $00, $6A, $00, $FF, $15, $44, $30, $00, $10, $A3, $6C, $45, $00, $10, $85, $C0, + $75, $0A, $8D, $68, $09, $EB, $05, $BD, $01, $00, $00, $00, $6A, $00, $68, $68, + $45, $00, $10, $FF, $15, $40, $30, $00, $10, $85, $ED, $0F, $85, $BC, $00, $00, + $00, $68, $8C, $35, $00, $10, $FF, $15, $24, $30, $00, $10, $68, $44, $45, $00, + $10, $68, $A0, $35, $00, $10, $50, $A3, $64, $45, $00, $10, $FF, $15, $28, $30, + $00, $10, $BA, $60, $11, $00, $10, $8B, $C8, $E8, $E0, $08, $00, $00, $85, $C0, + $0F, $85, $87, $00, $00, $00, $32, $C0, $8D, $7C, $24, $10, $B9, $14, $01, $00, + $00, $F3, $AA, $8D, $44, $24, $10, $C7, $44, $24, $10, $14, $01, $00, $00, $50, + $FF, $15, $20, $30, $00, $10, $85, $C0, $74, $13, $83, $7C, $24, $20, $02, $75, + $07, $83, $7C, $24, $14, $05, $77, $05, $E8, $43, $FD, $FF, $FF, $33, $FF, $57, + $6A, $01, $68, $68, $45, $00, $10, $FF, $D3, $85, $C0, $74, $20, $0F, $1F, $00, + $83, $FF, $20, $73, $04, $6A, $00, $EB, $02, $6A, $01, $FF, $D6, $6A, $00, $6A, + $01, $68, $68, $45, $00, $10, $47, $FF, $D3, $85, $C0, $75, $E3, $83, $3D, $6C, + $45, $00, $10, $00, $74, $0A, $B9, $01, $00, $00, $00, $E8, $ED, $06, $00, $00, + $6A, $00, $68, $68, $45, $00, $10, $FF, $15, $40, $30, $00, $10, $5F, $5E, $5D, + $5B, $81, $C4, $14, $01, $00, $00, $C3, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, + $53, $8B, $1D, $50, $30, $00, $10, $56, $33, $F6, $56, $6A, $01, $68, $68, $45, + $00, $10, $FF, $D3, $85, $C0, $74, $26, $57, $8B, $3D, $6C, $30, $00, $10, $90, + $83, $FE, $20, $73, $04, $6A, $00, $EB, $02, $6A, $01, $FF, $D7, $6A, $00, $6A, + $01, $68, $68, $45, $00, $10, $46, $FF, $D3, $85, $C0, $75, $E3, $5F, $83, $3D, + $6C, $45, $00, $10, $00, $5E, $5B, $74, $07, $33, $C9, $E8, $7D, $06, $00, $00, + $6A, $00, $68, $68, $45, $00, $10, $FF, $15, $40, $30, $00, $10, $E9, $51, $07, + $00, $00, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, + $51, $57, $68, $AC, $35, $00, $10, $FF, $15, $2C, $30, $00, $10, $8B, $F8, $85, + $FF, $0F, $84, $80, $00, $00, $00, $53, $56, $68, $C8, $35, $00, $10, $57, $FF, + $15, $28, $30, $00, $10, $8B, $1D, $18, $30, $00, $10, $8B, $F0, $85, $F6, $74, + $24, $8D, $44, $24, $0C, $50, $6A, $40, $6A, $05, $56, $FF, $D3, $8D, $44, $24, + $0C, $C7, $06, $33, $C0, $C2, $0C, $50, $FF, $74, $24, $10, $C6, $46, $04, $00, + $6A, $FF, $56, $FF, $D3, $68, $D8, $35, $00, $10, $57, $FF, $15, $28, $30, $00, + $10, $8B, $F0, $85, $F6, $74, $24, $8D, $44, $24, $0C, $50, $6A, $40, $6A, $05, + $56, $FF, $D3, $8D, $44, $24, $0C, $C7, $06, $33, $C0, $C2, $0C, $50, $FF, $74, + $24, $10, $C6, $46, $04, $00, $6A, $FF, $56, $FF, $D3, $5E, $5B, $C6, $05, $48, + $45, $00, $10, $00, $5F, $59, $C3, $C6, $05, $48, $45, $00, $10, $01, $5F, $59, + $C3, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, + $81, $EC, $14, $04, $00, $00, $53, $56, $57, $6A, $00, $FF, $15, $24, $30, $00, + $10, $8B, $D8, $8D, $44, $24, $10, $68, $08, $02, $00, $00, $50, $53, $FF, $15, + $30, $30, $00, $10, $66, $83, $7C, $24, $10, $00, $8D, $4C, $24, $10, $8B, $F1, + $74, $13, $66, $8B, $01, $83, $C1, $02, $66, $83, $F8, $5C, $0F, $44, $F1, $66, + $83, $39, $00, $75, $ED, $8B, $3D, $1C, $30, $00, $10, $68, $EC, $35, $00, $10, + $56, $FF, $D7, $85, $C0, $75, $25, $8D, $4C, $24, $10, $E8, $10, $F8, $FF, $FF, + $3D, $CE, $3E, $ED, $D4, $74, $07, $3D, $E2, $F5, $99, $11, $75, $72, $8D, $83, + $6C, $F7, $01, $00, $8D, $BB, $FC, $3F, $12, $00, $EB, $28, $68, $FC, $35, $00, + $10, $56, $FF, $D7, $85, $C0, $75, $58, $8D, $4C, $24, $10, $E8, $DF, $F7, $FF, + $FF, $3D, $F0, $16, $41, $5B, $75, $48, $8D, $83, $50, $B1, $1F, $00, $8D, $BB, + $30, $38, $63, $00, $8B, $35, $18, $30, $00, $10, $A3, $54, $45, $00, $10, $8B, + $07, $A3, $58, $45, $00, $10, $8D, $44, $24, $0C, $50, $6A, $40, $6A, $04, $57, + $FF, $D6, $8D, $44, $24, $0C, $C7, $07, $F0, $11, $00, $10, $50, $FF, $74, $24, + $10, $6A, $04, $57, $FF, $D6, $E8, $75, $FE, $FF, $FF, $E8, $B0, $FC, $FF, $FF, + $5F, $5E, $5B, $81, $C4, $14, $04, $00, $00, $C3, $CC, $CC, $CC, $CC, $CC, $CC, + $8B, $44, $24, $08, $83, $F8, $03, $77, $2F, $FF, $24, $85, $C0, $18, $00, $10, + $E8, $FB, $FE, $FF, $FF, $B8, $01, $00, $00, $00, $C2, $0C, $00, $80, $3D, $48, + $45, $00, $10, $00, $74, $12, $E8, $35, $FE, $FF, $FF, $B8, $01, $00, $00, $00, + $C2, $0C, $00, $E8, $B8, $FD, $FF, $FF, $B8, $01, $00, $00, $00, $C2, $0C, $00, + $B3, $18, $00, $10, $90, $18, $00, $10, $9D, $18, $00, $10, $9D, $18, $00, $10, + $56, $8B, $35, $88, $45, $00, $10, $33, $C0, $85, $F6, $74, $12, $8B, $15, $80, + $45, $00, $10, $3B, $0A, $74, $0B, $40, $83, $C2, $28, $3B, $C6, $72, $F4, $83, + $C8, $FF, $5E, $C3, $8B, $0D, $80, $45, $00, $10, $85, $C9, $75, $2B, $68, $00, + $05, $00, $00, $51, $FF, $35, $6C, $45, $00, $10, $C7, $05, $84, $45, $00, $10, + $20, $00, $00, $00, $FF, $15, $74, $30, $00, $10, $8B, $C8, $89, $0D, $80, $45, + $00, $10, $85, $C9, $75, $3D, $33, $C0, $C3, $8B, $15, $88, $45, $00, $10, $A1, + $84, $45, $00, $10, $3B, $D0, $72, $31, $6B, $C0, $50, $50, $51, $6A, $00, $FF, + $35, $6C, $45, $00, $10, $FF, $15, $70, $30, $00, $10, $8B, $C8, $85, $C9, $74, + $D5, $A1, $84, $45, $00, $10, $03, $C0, $89, $0D, $80, $45, $00, $10, $A3, $84, + $45, $00, $10, $8B, $15, $88, $45, $00, $10, $6B, $C2, $28, $03, $C1, $42, $89, + $15, $88, $45, $00, $10, $C3, $55, $8B, $EC, $81, $EC, $D8, $02, $00, $00, $A1, + $04, $40, $00, $10, $33, $C5, $89, $45, $FC, $8B, $C1, $C7, $85, $30, $FD, $FF, + $FF, $01, $00, $01, $00, $56, $8D, $8D, $30, $FD, $FF, $FF, $89, $85, $28, $FD, + $FF, $FF, $51, $50, $8B, $F2, $FF, $15, $7C, $30, $00, $10, $85, $C0, $0F, $84, + $C3, $00, $00, $00, $53, $83, $FE, $FF, $75, $0A, $8B, $1D, $88, $45, $00, $10, + $33, $F6, $EB, $03, $8D, $5E, $01, $3B, $F3, $0F, $83, $A7, $00, $00, $00, $6B, + $D6, $28, $2B, $DE, $57, $8B, $BD, $28, $FD, $FF, $FF, $89, $95, $2C, $FD, $FF, + $FF, $8B, $35, $80, $45, $00, $10, $8B, $45, $08, $03, $F2, $83, $E8, $00, $74, + $1A, $83, $E8, $01, $74, $10, $83, $E8, $01, $75, $12, $8B, $7E, $14, $C1, $E7, + $1D, $C1, $FF, $1F, $EB, $07, $33, $FF, $47, $EB, $02, $33, $FF, $8B, $56, $14, + $8B, $C2, $C1, $E0, $1E, $C1, $F8, $1F, $3B, $C7, $74, $41, $85, $FF, $74, $70, + $C1, $EA, $03, $33, $C9, $83, $E2, $0F, $76, $14, $0F, $B6, $44, $0E, $18, $03, + $06, $39, $85, $E8, $FD, $FF, $FF, $74, $4D, $41, $3B, $CA, $72, $EC, $33, $C9, + $85, $C9, $74, $19, $8D, $85, $30, $FD, $FF, $FF, $89, $8D, $E8, $FD, $FF, $FF, + $50, $FF, $B5, $28, $FD, $FF, $FF, $FF, $15, $88, $30, $00, $10, $8B, $95, $2C, + $FD, $FF, $FF, $83, $C2, $28, $89, $95, $2C, $FD, $FF, $FF, $83, $EB, $01, $0F, + $85, $6C, $FF, $FF, $FF, $5F, $5B, $8B, $4D, $FC, $33, $CD, $5E, $E8, $50, $0E, + $00, $00, $8B, $E5, $5D, $C3, $0F, $B6, $4C, $31, $20, $03, $4E, $08, $EB, $B0, + $F6, $C2, $01, $74, $0D, $8B, $0E, $8D, $41, $FB, $39, $85, $E8, $FD, $FF, $FF, + $74, $9E, $C1, $EA, $03, $33, $C9, $83, $E2, $0F, $76, $92, $0F, $B6, $44, $0E, + $20, $03, $46, $08, $39, $85, $E8, $FD, $FF, $FF, $74, $0A, $41, $3B, $CA, $72, + $EB, $E9, $78, $FF, $FF, $FF, $0F, $B6, $4C, $31, $18, $03, $0E, $E9, $6E, $FF, + $FF, $FF, $55, $8B, $EC, $83, $EC, $20, $A1, $04, $40, $00, $10, $33, $C5, $89, + $45, $FC, $56, $57, $6A, $00, $6A, $04, $8B, $F1, $FF, $15, $68, $30, $00, $10, + $8B, $F8, $83, $FF, $FF, $0F, $84, $AE, $00, $00, $00, $8D, $45, $E0, $C7, $45, + $E0, $1C, $00, $00, $00, $50, $57, $FF, $15, $58, $30, $00, $10, $E9, $88, $00, + $00, $00, $83, $7D, $E0, $10, $72, $70, $FF, $15, $80, $30, $00, $10, $39, $45, + $EC, $75, $65, $FF, $15, $5C, $30, $00, $10, $39, $45, $E8, $74, $5A, $83, $3E, + $00, $75, $22, $68, $00, $02, $00, $00, $6A, $00, $FF, $35, $6C, $45, $00, $10, + $C7, $46, $04, $80, $00, $00, $00, $FF, $15, $74, $30, $00, $10, $89, $06, $85, + $C0, $74, $4F, $EB, $25, $8B, $46, $04, $39, $46, $08, $72, $1D, $C1, $E0, $03, + $50, $FF, $36, $6A, $00, $FF, $35, $6C, $45, $00, $10, $FF, $15, $70, $30, $00, + $10, $85, $C0, $74, $2D, $D1, $66, $04, $89, $06, $8B, $56, $08, $8B, $0E, $8B, + $45, $E8, $89, $04, $91, $FF, $46, $08, $8D, $45, $E0, $C7, $45, $E0, $1C, $00, + $00, $00, $50, $57, $FF, $15, $54, $30, $00, $10, $85, $C0, $0F, $85, $70, $FF, + $FF, $FF, $57, $FF, $15, $14, $30, $00, $10, $8B, $4D, $FC, $5F, $33, $CD, $5E, + $E8, $1D, $0D, $00, $00, $8B, $E5, $5D, $C3, $55, $8B, $EC, $51, $53, $56, $8B, + $F1, $89, $55, $FC, $33, $DB, $89, $1E, $89, $5E, $04, $89, $5E, $08, $E8, $FF, + $FE, $FF, $FF, $39, $1E, $74, $42, $57, $8B, $FB, $39, $5E, $08, $76, $39, $8B, + $06, $FF, $34, $B8, $53, $6A, $5A, $FF, $15, $8C, $30, $00, $10, $8B, $D8, $85, + $DB, $74, $1C, $53, $FF, $15, $60, $30, $00, $10, $FF, $75, $08, $8B, $55, $FC, + $8B, $CB, $E8, $6F, $FD, $FF, $FF, $59, $53, $FF, $15, $14, $30, $00, $10, $47, + $6A, $00, $5B, $3B, $7E, $08, $72, $C7, $5F, $5E, $5B, $8B, $E5, $5D, $C3, $56, + $8B, $F1, $83, $3E, $00, $74, $44, $57, $33, $FF, $39, $7E, $08, $76, $2B, $53, + $8B, $06, $FF, $34, $B8, $6A, $00, $6A, $5A, $FF, $15, $8C, $30, $00, $10, $8B, + $D8, $85, $DB, $74, $0E, $53, $FF, $15, $64, $30, $00, $10, $53, $FF, $15, $14, + $30, $00, $10, $47, $3B, $7E, $08, $72, $D7, $5B, $FF, $36, $6A, $00, $FF, $35, + $6C, $45, $00, $10, $FF, $15, $48, $30, $00, $10, $5F, $5E, $C3, $55, $8B, $EC, + $83, $EC, $10, $53, $6B, $D9, $28, $56, $57, $6A, $05, $8B, $F2, $03, $1D, $80, + $45, $00, $10, $58, $89, $75, $F0, $89, $45, $FC, $F6, $43, $14, $01, $8B, $3B, + $89, $7D, $F8, $74, $0B, $2B, $F8, $6A, $07, $58, $89, $7D, $F8, $89, $45, $FC, + $8D, $4D, $F4, $51, $6A, $40, $50, $57, $FF, $15, $18, $30, $00, $10, $85, $C0, + $75, $05, $6A, $0A, $58, $EB, $7F, $85, $F6, $74, $1D, $C6, $07, $E9, $8B, $43, + $04, $2B, $C7, $83, $E8, $05, $89, $47, $01, $F6, $43, $14, $01, $74, $29, $8B, + $03, $66, $C7, $00, $EB, $F9, $EB, $20, $F6, $43, $14, $01, $74, $0F, $8D, $73, + $0C, $A5, $66, $A5, $A4, $8B, $7D, $F8, $8B, $75, $F0, $EB, $0B, $8B, $43, $0C, + $89, $07, $8A, $43, $10, $88, $47, $04, $8D, $45, $F4, $50, $FF, $75, $F4, $FF, + $75, $FC, $57, $FF, $15, $18, $30, $00, $10, $FF, $75, $FC, $57, $FF, $15, $4C, + $30, $00, $10, $50, $FF, $15, $84, $30, $00, $10, $83, $E6, $01, $8B, $CE, $83, + $E1, $FD, $8D, $04, $36, $0B, $C8, $8B, $43, $14, $03, $C9, $83, $E0, $F9, $0B, + $C8, $33, $C0, $89, $4B, $14, $5F, $5E, $5B, $8B, $E5, $5D, $C3, $55, $8B, $EC, + $83, $EC, $10, $53, $8B, $1D, $88, $45, $00, $10, $8B, $D1, $56, $57, $33, $FF, + $89, $55, $FC, $8B, $F7, $85, $DB, $0F, $84, $83, $00, $00, $00, $8B, $0D, $80, + $45, $00, $10, $83, $C1, $14, $8B, $01, $C1, $E0, $1E, $C1, $F8, $1F, $3B, $C2, + $75, $0A, $46, $83, $C1, $28, $3B, $F3, $72, $EC, $EB, $64, $83, $FE, $FF, $74, + $5F, $33, $C0, $8D, $4D, $F0, $85, $D2, $0F, $95, $C0, $83, $CA, $FF, $50, $E8, + $25, $FE, $FF, $FF, $8B, $15, $88, $45, $00, $10, $59, $3B, $F2, $73, $39, $8B, + $4D, $FC, $6B, $DE, $28, $A1, $80, $45, $00, $10, $8B, $44, $03, $14, $C1, $E0, + $1E, $C1, $F8, $1F, $3B, $C1, $74, $18, $8B, $D1, $8B, $CE, $E8, $AC, $FE, $FF, + $FF, $8B, $F8, $85, $FF, $75, $11, $8B, $15, $88, $45, $00, $10, $8B, $4D, $FC, + $46, $83, $C3, $28, $3B, $F2, $72, $CD, $8D, $4D, $F0, $E8, $3F, $FE, $FF, $FF, + $8B, $C7, $5F, $5E, $5B, $8B, $E5, $5D, $C3, $56, $33, $F6, $EB, $12, $83, $FE, + $20, $73, $04, $6A, $00, $EB, $02, $6A, $01, $FF, $15, $6C, $30, $00, $10, $46, + $6A, $00, $6A, $01, $68, $68, $45, $00, $10, $FF, $15, $50, $30, $00, $10, $85, + $C0, $75, $DB, $5E, $C3, $6A, $00, $68, $68, $45, $00, $10, $FF, $15, $40, $30, + $00, $10, $C3, $57, $E8, $C0, $FF, $FF, $FF, $83, $3D, $6C, $45, $00, $10, $00, + $74, $70, $33, $C9, $E8, $04, $FF, $FF, $FF, $8B, $F8, $85, $FF, $75, $66, $A1, + $74, $45, $00, $10, $53, $33, $DB, $89, $1D, $74, $45, $00, $10, $85, $C0, $74, + $17, $56, $8B, $30, $68, $00, $80, $00, $00, $53, $50, $FF, $15, $90, $30, $00, + $10, $8B, $C6, $85, $F6, $75, $EB, $5E, $FF, $35, $80, $45, $00, $10, $53, $FF, + $35, $6C, $45, $00, $10, $FF, $15, $48, $30, $00, $10, $FF, $35, $6C, $45, $00, + $10, $FF, $15, $78, $30, $00, $10, $89, $1D, $6C, $45, $00, $10, $89, $1D, $80, + $45, $00, $10, $89, $1D, $84, $45, $00, $10, $89, $1D, $88, $45, $00, $10, $5B, + $EB, $03, $6A, $02, $5F, $E8, $6B, $FF, $FF, $FF, $8B, $C7, $5F, $C3, $55, $8B, + $EC, $83, $EC, $30, $A1, $04, $40, $00, $10, $33, $C5, $89, $45, $FC, $8B, $45, + $08, $53, $56, $57, $8B, $FA, $89, $45, $D0, $89, $7D, $D4, $8B, $F1, $33, $DB, + $E8, $14, $FF, $FF, $FF, $39, $1D, $6C, $45, $00, $10, $0F, $84, $EB, $00, $00, + $00, $8B, $CE, $E8, $8A, $04, $00, $00, $85, $C0, $0F, $84, $D8, $00, $00, $00, + $8B, $CF, $E8, $7B, $04, $00, $00, $85, $C0, $0F, $84, $C9, $00, $00, $00, $8B, + $CE, $E8, $CA, $F9, $FF, $FF, $83, $F8, $FF, $0F, $85, $B5, $00, $00, $00, $E8, + $9D, $03, $00, $00, $8B, $F8, $85, $FF, $0F, $84, $A2, $00, $00, $00, $8B, $45, + $D4, $8D, $4D, $D8, $89, $75, $D8, $89, $45, $DC, $89, $7D, $E0, $E8, $E2, $00, + $00, $00, $85, $C0, $74, $7E, $E8, $B9, $F9, $FF, $FF, $8B, $D0, $85, $D2, $74, + $6F, $8B, $45, $D8, $8B, $4D, $E8, $8B, $7D, $E0, $83, $E1, $0F, $89, $02, $8B, + $45, $DC, $89, $42, $04, $8B, $45, $E4, $83, $E0, $01, $C1, $E1, $03, $0B, $C8, + $89, $7A, $08, $8B, $42, $14, $83, $E0, $80, $0B, $C8, $8B, $45, $EC, $89, $42, + $18, $8B, $45, $F0, $89, $42, $1C, $8B, $45, $F4, $89, $42, $20, $8B, $45, $F8, + $89, $4A, $14, $89, $42, $24, $39, $5D, $E4, $74, $0F, $83, $C6, $FB, $8D, $7A, + $0C, $A5, $66, $A5, $A4, $8B, $7D, $E0, $EB, $0B, $8B, $06, $89, $42, $0C, $8A, + $46, $04, $88, $42, $10, $8B, $45, $D0, $85, $C0, $74, $23, $89, $38, $EB, $1F, + $6A, $09, $EB, $02, $6A, $08, $5B, $8B, $CF, $E8, $67, $03, $00, $00, $EB, $0F, + $6A, $09, $EB, $0A, $6A, $03, $EB, $06, $6A, $07, $EB, $02, $6A, $02, $5B, $E8, + $41, $FE, $FF, $FF, $8B, $4D, $FC, $8B, $C3, $5F, $5E, $33, $CD, $5B, $E8, $EF, + $08, $00, $00, $8B, $E5, $5D, $C2, $04, $00, $56, $8B, $F1, $8A, $06, $84, $C0, + $74, $0C, $3C, $90, $74, $08, $3C, $CC, $74, $04, $33, $C0, $5E, $C3, $33, $C9, + $41, $3B, $D1, $76, $0A, $38, $04, $31, $75, $F0, $41, $3B, $CA, $72, $F6, $33, + $C0, $40, $5E, $C3, $55, $8B, $EC, $83, $EC, $58, $A1, $04, $40, $00, $10, $33, + $C5, $89, $45, $FC, $53, $33, $DB, $C6, $45, $AC, $E8, $56, $8B, $F1, $89, $5D, + $AD, $8A, $C3, $89, $75, $C4, $57, $C6, $45, $BC, $E9, $89, $5D, $BD, $66, $C7, + $45, $B4, $0F, $80, $89, $5D, $B6, $88, $45, $DF, $89, $5D, $D8, $89, $5D, $D4, + $89, $5E, $0C, $89, $5E, $10, $0F, $B6, $C8, $8D, $55, $E0, $8B, $46, $08, $0F, + $B6, $FB, $03, $C1, $03, $3E, $89, $4D, $A8, $8B, $CF, $89, $45, $C8, $E8, $2C, + $03, $00, $00, $F7, $45, $F8, $00, $10, $00, $00, $8B, $C8, $89, $4D, $D0, $0F, + $85, $19, $02, $00, $00, $89, $7D, $CC, $80, $FB, $05, $0F, $82, $84, $00, $00, + $00, $8B, $C7, $33, $D2, $2B, $45, $C8, $83, $E8, $05, $42, $6A, $05, $89, $45, + $BD, $8D, $45, $BC, $59, $89, $45, $CC, $89, $4D, $D0, $89, $55, $D4, $8B, $45, + $D8, $3B, $F8, $73, $0C, $0F, $B6, $45, $E0, $3B, $C8, $0F, $85, $DD, $01, $00, + $00, $8B, $45, $A8, $03, $C1, $83, $F8, $20, $0F, $87, $CF, $01, $00, $00, $8B, + $46, $10, $83, $F8, $08, $0F, $83, $C3, $01, $00, $00, $8A, $55, $DF, $88, $5C, + $30, $14, $8B, $46, $10, $02, $5D, $E0, $88, $54, $30, $1C, $8A, $C2, $8B, $7E, + $08, $FF, $46, $10, $03, $7D, $A8, $02, $45, $D0, $8B, $75, $CC, $8B, $55, $D4, + $88, $45, $DF, $F3, $A4, $85, $D2, $0F, $85, $2E, $01, $00, $00, $8B, $75, $C4, + $E9, $41, $FF, $FF, $FF, $8A, $55, $E6, $80, $FA, $E8, $75, $23, $0F, $B6, $45, + $E0, $2B, $45, $C8, $83, $C0, $FB, $03, $45, $F0, $03, $C7, $89, $45, $AD, $8D, + $45, $AC, $6A, $05, $59, $89, $45, $CC, $89, $4D, $D0, $E9, $6E, $FF, $FF, $FF, + $8A, $C2, $24, $FD, $3C, $E9, $75, $50, $0F, $B6, $4D, $E0, $03, $CF, $80, $FA, + $EB, $75, $08, $0F, $BE, $45, $F0, $03, $C8, $EB, $03, $03, $4D, $F0, $8B, $06, + $3B, $C1, $77, $1D, $83, $C0, $05, $3B, $C8, $73, $16, $8B, $45, $D8, $3B, $C1, + $0F, $83, $BD, $00, $00, $00, $89, $4D, $D8, $8B, $4D, $D0, $E9, $2D, $FF, $FF, + $FF, $2B, $4D, $C8, $8D, $45, $BC, $83, $E9, $05, $89, $45, $CC, $6A, $05, $89, + $4D, $BD, $59, $89, $4D, $D0, $EB, $29, $8A, $75, $E7, $8A, $E2, $80, $E4, $F0, + $80, $FC, $70, $74, $2C, $8A, $C2, $24, $FC, $3C, $E0, $74, $24, $8A, $C6, $24, + $F0, $3C, $80, $74, $1C, $80, $E2, $FE, $80, $FA, $C2, $0F, $85, $ED, $FE, $FF, + $FF, $8B, $45, $D8, $3B, $F8, $1B, $D2, $42, $89, $55, $D4, $E9, $E0, $FE, $FF, + $FF, $8A, $45, $E0, $0F, $B6, $C8, $03, $CF, $80, $FC, $70, $74, $0D, $8A, $C2, + $24, $FC, $3C, $E0, $74, $05, $03, $4D, $F0, $EB, $06, $0F, $BE, $45, $F0, $03, + $C8, $8B, $06, $3B, $C1, $77, $0B, $83, $C0, $05, $3B, $C8, $0F, $82, $69, $FF, + $FF, $FF, $8A, $C2, $24, $FC, $3C, $E0, $0F, $84, $90, $00, $00, $00, $0F, $B6, + $C2, $80, $FA, $0F, $75, $03, $0F, $B6, $C6, $2B, $4D, $C8, $24, $0F, $0C, $80, + $83, $E9, $06, $88, $45, $B5, $8D, $45, $B4, $89, $4D, $B6, $6A, $06, $E9, $01, + $FF, $FF, $FF, $8B, $4D, $D0, $E9, $76, $FE, $FF, $FF, $80, $FB, $05, $73, $59, + $8B, $7D, $C4, $0F, $B6, $F3, $6A, $05, $5A, $8B, $07, $2B, $D6, $03, $C6, $8B, + $C8, $89, $45, $C4, $E8, $90, $FD, $FF, $FF, $85, $C0, $75, $3C, $80, $FB, $02, + $73, $11, $8B, $4D, $C4, $6A, $02, $5A, $2B, $D6, $E8, $7A, $FD, $FF, $FF, $85, + $C0, $74, $2B, $8B, $0F, $83, $C1, $FB, $E8, $F5, $00, $00, $00, $85, $C0, $74, + $1D, $8B, $0F, $6A, $05, $83, $E9, $05, $5A, $E8, $5B, $FD, $FF, $FF, $85, $C0, + $74, $0C, $C7, $47, $0C, $01, $00, $00, $00, $33, $C0, $40, $EB, $02, $33, $C0, + $8B, $4D, $FC, $5F, $5E, $33, $CD, $5B, $E8, $25, $06, $00, $00, $8B, $E5, $5D, + $C3, $8B, $15, $74, $45, $00, $10, $56, $33, $F6, $EB, $07, $39, $72, $04, $75, + $4F, $8B, $12, $85, $D2, $75, $F5, $6A, $40, $68, $00, $30, $00, $00, $68, $00, + $10, $00, $00, $56, $FF, $15, $94, $30, $00, $10, $8B, $D0, $85, $D2, $74, $41, + $8D, $4A, $20, $89, $72, $04, $89, $72, $08, $8B, $F1, $2B, $F2, $8B, $42, $04, + $83, $C6, $20, $89, $01, $89, $4A, $04, $83, $C1, $20, $81, $FE, $E0, $0F, $00, + $00, $76, $EA, $A1, $74, $45, $00, $10, $89, $02, $89, $15, $74, $45, $00, $10, + $85, $D2, $74, $0D, $8B, $42, $04, $5E, $8B, $08, $FF, $42, $08, $89, $4A, $04, + $C3, $33, $C0, $5E, $C3, $8B, $15, $74, $45, $00, $10, $8B, $C1, $56, $33, $F6, + $25, $00, $F0, $FF, $FF, $EB, $08, $3B, $D0, $74, $0A, $8B, $F2, $8B, $12, $85, + $D2, $75, $F4, $5E, $C3, $8B, $42, $04, $89, $01, $83, $6A, $08, $01, $89, $4A, + $04, $75, $1D, $8B, $02, $85, $F6, $74, $04, $89, $06, $EB, $05, $A3, $74, $45, + $00, $10, $68, $00, $80, $00, $00, $6A, $00, $52, $FF, $15, $90, $30, $00, $10, + $5E, $C3, $55, $8B, $EC, $83, $EC, $1C, $6A, $1C, $8D, $45, $E4, $50, $51, $FF, + $15, $98, $30, $00, $10, $81, $7D, $F4, $00, $10, $00, $00, $75, $0B, $F6, $45, + $F8, $F0, $74, $05, $33, $C0, $40, $EB, $02, $33, $C0, $8B, $E5, $5D, $C3, $55, + $8B, $EC, $83, $EC, $24, $8B, $C1, $89, $55, $E8, $53, $57, $89, $45, $DC, $8B, + $D8, $33, $C0, $C7, $45, $EC, $10, $40, $00, $10, $6A, $1C, $89, $45, $F0, $8B, + $FA, $88, $45, $FF, $32, $C0, $59, $F3, $AA, $B5, $10, $8A, $0B, $43, $0F, $B6, + $C1, $88, $4D, $FE, $83, $F8, $66, $7F, $30, $74, $25, $83, $F8, $26, $74, $17, + $83, $F8, $2E, $74, $12, $83, $F8, $36, $74, $0D, $83, $F8, $3E, $74, $08, $83, + $C0, $9C, $83, $F8, $01, $77, $50, $80, $4D, $FF, $40, $88, $4A, $03, $EB, $42, + $80, $4D, $FF, $08, $88, $4A, $04, $EB, $39, $83, $E8, $67, $74, $2D, $2D, $89, + $00, $00, $00, $74, $1D, $48, $83, $E8, $01, $74, $0E, $83, $E8, $01, $75, $27, + $80, $4D, $FF, $04, $88, $4A, $01, $EB, $19, $80, $4D, $FF, $02, $88, $4A, $01, + $EB, $10, $80, $4D, $FF, $20, $88, $4A, $02, $EB, $07, $80, $4D, $FF, $10, $88, + $4A, $05, $80, $ED, $01, $75, $84, $8A, $6D, $FF, $0F, $B6, $C5, $C1, $E0, $17, + $89, $42, $18, $84, $ED, $75, $05, $FE, $C5, $88, $6D, $FF, $88, $4A, $06, $80, + $F9, $0F, $75, $12, $8A, $0B, $43, $88, $4D, $FE, $88, $4A, $07, $C7, $45, $EC, + $5A, $40, $00, $10, $EB, $18, $8A, $C1, $04, $60, $3C, $03, $77, $10, $F6, $C5, + $10, $74, $05, $80, $CD, $08, $EB, $03, $80, $E5, $F7, $88, $6D, $FF, $0F, $B6, + $F9, $56, $8B, $F7, $8B, $C7, $C1, $EE, $02, $25, $03, $00, $00, $80, $79, $05, + $48, $83, $C8, $FC, $40, $8B, $55, $EC, $89, $45, $E4, $8B, $45, $EC, $0F, $B6, + $04, $06, $03, $45, $E4, $8A, $04, $10, $8B, $55, $E8, $89, $45, $F4, $3C, $FF, + $75, $1F, $81, $4A, $18, $00, $30, $00, $00, $8B, $C7, $83, $E0, $FD, $C6, $45, + $F4, $00, $83, $F8, $24, $75, $07, $B0, $01, $89, $45, $F4, $EB, $03, $8B, $45, + $F4, $C6, $45, $E0, $00, $84, $C0, $79, $19, $8B, $55, $EC, $0F, $B6, $C0, $83, + $E0, $7F, $0F, $B7, $04, $10, $8B, $55, $E8, $89, $45, $F4, $C1, $E8, $08, $89, + $45, $E0, $8A, $42, $07, $84, $C0, $74, $1A, $0F, $B6, $86, $40, $41, $00, $10, + $8B, $75, $E4, $84, $AC, $30, $40, $41, $00, $10, $74, $07, $81, $4A, $18, $00, + $30, $00, $00, $8B, $45, $F4, $A8, $01, $0F, $84, $C2, $02, $00, $00, $83, $4A, + $18, $01, $8A, $03, $8A, $E0, $88, $42, $08, $C0, $EC, $06, $88, $65, $FB, $88, + $62, $09, $8A, $E0, $C0, $E8, $03, $80, $E4, $07, $24, $07, $88, $65, $FC, $88, + $62, $0B, $88, $45, $FD, $88, $42, $0A, $8B, $45, $E0, $84, $C0, $74, $16, $8A, + $4D, $FD, $0F, $B6, $C0, $D3, $E0, $8A, $4D, $FE, $84, $C0, $79, $07, $81, $4A, + $18, $00, $30, $00, $00, $8A, $62, $07, $84, $E4, $75, $43, $8A, $C1, $04, $27, + $3C, $06, $77, $3B, $80, $C1, $27, $80, $7D, $FB, $03, $75, $13, $0F, $B6, $45, + $FD, $0F, $B6, $C9, $8A, $84, $C8, $08, $41, $00, $10, $8A, $4D, $FC, $EB, $0C, + $0F, $B6, $C1, $8A, $4D, $FD, $8A, $80, $01, $41, $00, $10, $8A, $6D, $FF, $8A, + $62, $07, $D2, $E0, $84, $C0, $79, $07, $81, $4A, $18, $00, $30, $00, $00, $BE, + $DB, $41, $00, $10, $F6, $C5, $20, $74, $5E, $80, $7D, $FB, $03, $75, $09, $81, + $4A, $18, $00, $90, $00, $00, $EB, $4F, $8A, $45, $FE, $8A, $C8, $84, $E4, $74, + $0E, $BE, $C9, $41, $00, $10, $C7, $45, $E0, $DB, $41, $00, $10, $EB, $11, $8A, + $C8, $C7, $45, $E0, $C9, $41, $00, $10, $BE, $B1, $41, $00, $10, $80, $E1, $FE, + $38, $0E, $74, $0A, $83, $C6, $02, $3B, $75, $E0, $75, $F4, $EB, $0D, $0F, $B6, + $46, $01, $8A, $4D, $FD, $D3, $E0, $84, $C0, $79, $07, $81, $4A, $18, $00, $90, + $00, $00, $BE, $DB, $41, $00, $10, $8A, $4A, $07, $8B, $C7, $84, $C9, $74, $43, + $83, $E8, $20, $74, $22, $83, $E8, $01, $74, $0A, $83, $E8, $01, $74, $18, $83, + $E8, $01, $75, $3C, $8A, $45, $FD, $C6, $45, $FB, $03, $3C, $04, $0F, $84, $A6, + $00, $00, $00, $3C, $05, $EB, $11, $8A, $45, $FD, $C6, $45, $FB, $03, $3C, $04, + $0F, $87, $93, $00, $00, $00, $3C, $01, $0F, $85, $92, $00, $00, $00, $E9, $86, + $00, $00, $00, $2D, $8C, $00, $00, $00, $74, $79, $48, $83, $E8, $01, $74, $68, + $80, $7D, $FB, $03, $75, $39, $84, $C9, $74, $0C, $BE, $EA, $41, $00, $10, $BF, + $14, $42, $00, $10, $EB, $05, $BF, $EA, $41, $00, $10, $8A, $4D, $FE, $38, $0E, + $74, $09, $83, $C6, $03, $3B, $F7, $75, $F5, $EB, $58, $84, $6E, $01, $74, $53, + $0F, $B6, $46, $02, $8A, $4D, $FD, $D3, $E0, $84, $C0, $79, $3C, $EB, $41, $84, + $C9, $74, $3D, $83, $EF, $50, $74, $14, $83, $EF, $75, $74, $2C, $83, $EF, $11, + $74, $0F, $83, $EF, $01, $74, $05, $83, $EF, $20, $75, $24, $F6, $C5, $09, $EB, + $03, $F6, $C5, $06, $75, $13, $EB, $18, $8A, $45, $FD, $3C, $01, $74, $0A, $3C, + $05, $EB, $04, $80, $7D, $FD, $05, $76, $07, $81, $4A, $18, $00, $10, $01, $00, + $8A, $4D, $FE, $8A, $43, $01, $83, $C3, $02, $80, $7D, $FD, $01, $88, $45, $FA, + $77, $14, $80, $F9, $F6, $75, $06, $80, $4D, $F4, $02, $EB, $09, $80, $F9, $F7, + $75, $04, $80, $4D, $F4, $10, $8A, $4D, $FB, $0F, $B6, $C1, $83, $E8, $00, $74, + $65, $83, $E8, $01, $74, $57, $83, $E8, $01, $8A, $45, $FC, $75, $0D, $C6, $45, + $F0, $02, $F6, $C5, $10, $75, $04, $C6, $45, $F0, $04, $80, $F9, $03, $74, $5C, + $3C, $04, $75, $58, $F6, $C5, $10, $75, $53, $8A, $4D, $FA, $83, $4A, $18, $02, + $8A, $C1, $C0, $E8, $06, $43, $88, $42, $0D, $8A, $C1, $C0, $E8, $03, $24, $07, + $88, $4A, $0C, $88, $42, $0E, $0F, $B6, $C1, $83, $E0, $07, $88, $42, $0F, $3C, + $05, $75, $29, $F6, $45, $FB, $01, $75, $23, $FE, $C8, $EB, $22, $8A, $45, $FC, + $C6, $45, $F0, $01, $EB, $B5, $8A, $45, $FC, $F6, $C5, $10, $74, $0A, $3C, $06, + $75, $A9, $C6, $45, $F0, $02, $EB, $A3, $3C, $05, $EB, $99, $8B, $45, $F0, $0F, + $B6, $F0, $4B, $8B, $C6, $83, $E8, $01, $74, $26, $83, $E8, $01, $74, $14, $48, + $83, $E8, $01, $75, $24, $81, $4A, $18, $80, $00, $00, $00, $8B, $03, $89, $42, + $14, $EB, $16, $83, $4A, $18, $40, $66, $8B, $03, $66, $89, $42, $14, $EB, $09, + $83, $4A, $18, $20, $8A, $03, $88, $42, $14, $8B, $45, $F4, $03, $DE, $EB, $0C, + $F6, $C5, $20, $74, $07, $81, $4A, $18, $00, $90, $00, $00, $5E, $A8, $10, $74, + $44, $A8, $40, $74, $1F, $F6, $C5, $08, $0F, $84, $84, $00, $00, $00, $81, $4A, + $18, $08, $01, $00, $00, $66, $8B, $03, $83, $C3, $02, $66, $89, $42, $10, $E9, + $91, $00, $00, $00, $F6, $C5, $08, $74, $10, $83, $4A, $18, $08, $66, $8B, $03, + $83, $C3, $02, $66, $89, $42, $10, $EB, $0C, $83, $4A, $18, $10, $8B, $03, $83, + $C3, $04, $89, $42, $10, $8B, $4D, $F4, $F6, $C1, $04, $74, $31, $8B, $42, $18, + $A8, $10, $74, $05, $83, $C8, $08, $EB, $09, $A8, $08, $74, $11, $0D, $00, $08, + $00, $00, $89, $42, $18, $66, $8B, $03, $66, $89, $42, $14, $EB, $0D, $83, $C8, + $08, $89, $42, $18, $66, $8B, $03, $66, $89, $42, $10, $83, $C3, $02, $F6, $C1, + $02, $74, $0A, $83, $4A, $18, $04, $8A, $03, $43, $88, $42, $10, $F6, $C1, $40, + $74, $11, $81, $4A, $18, $10, $01, $00, $00, $8B, $03, $83, $C3, $04, $89, $42, + $10, $EB, $12, $F6, $C1, $20, $74, $0D, $81, $4A, $18, $04, $01, $00, $00, $8A, + $03, $43, $88, $42, $10, $2B, $5D, $DC, $5F, $88, $1A, $80, $FB, $0F, $5B, $76, + $0A, $81, $4A, $18, $00, $50, $00, $00, $C6, $02, $0F, $0F, $B6, $02, $8B, $E5, + $5D, $C3, $3B, $0D, $04, $40, $00, $10, $F2, $75, $02, $F2, $C3, $F2, $E9, $28, + $00, $00, $00, $55, $8B, $EC, $6A, $00, $FF, $15, $38, $30, $00, $10, $FF, $75, + $08, $FF, $15, $3C, $30, $00, $10, $68, $09, $04, $00, $C0, $FF, $15, $4C, $30, + $00, $10, $50, $FF, $15, $34, $30, $00, $10, $5D, $C3, $55, $8B, $EC, $81, $EC, + $24, $03, $00, $00, $6A, $17, $E8, $EB, $00, $00, $00, $85, $C0, $74, $05, $6A, + $02, $59, $CD, $29, $A3, $20, $43, $00, $10, $89, $0D, $1C, $43, $00, $10, $89, + $15, $18, $43, $00, $10, $89, $1D, $14, $43, $00, $10, $89, $35, $10, $43, $00, + $10, $89, $3D, $0C, $43, $00, $10, $66, $8C, $15, $38, $43, $00, $10, $66, $8C, + $0D, $2C, $43, $00, $10, $66, $8C, $1D, $08, $43, $00, $10, $66, $8C, $05, $04, + $43, $00, $10, $66, $8C, $25, $00, $43, $00, $10, $66, $8C, $2D, $FC, $42, $00, + $10, $9C, $8F, $05, $30, $43, $00, $10, $8B, $45, $00, $A3, $24, $43, $00, $10, + $8B, $45, $04, $A3, $28, $43, $00, $10, $8D, $45, $08, $A3, $34, $43, $00, $10, + $8B, $85, $DC, $FC, $FF, $FF, $C7, $05, $70, $42, $00, $10, $01, $00, $01, $00, + $A1, $28, $43, $00, $10, $A3, $2C, $42, $00, $10, $C7, $05, $20, $42, $00, $10, + $09, $04, $00, $C0, $C7, $05, $24, $42, $00, $10, $01, $00, $00, $00, $C7, $05, + $30, $42, $00, $10, $01, $00, $00, $00, $6A, $04, $58, $6B, $C0, $00, $C7, $80, + $34, $42, $00, $10, $02, $00, $00, $00, $6A, $04, $58, $6B, $C0, $00, $8B, $0D, + $04, $40, $00, $10, $89, $4C, $05, $F8, $6A, $04, $58, $C1, $E0, $00, $8B, $0D, + $00, $40, $00, $10, $89, $4C, $05, $F8, $68, $C0, $30, $00, $10, $E8, $E1, $FE, + $FF, $FF, $8B, $E5, $5D, $C3, $FF, $25, $9C, $30, $00, $10, $C3, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $14, $39, $00, $00, $22, $39, $00, $00, $30, $39, $00, $00, $46, $39, $00, $00, + $56, $39, $00, $00, $68, $39, $00, $00, $76, $39, $00, $00, $88, $39, $00, $00, + $94, $39, $00, $00, $A4, $39, $00, $00, $B8, $39, $00, $00, $CA, $39, $00, $00, + $DA, $39, $00, $00, $02, $3C, $00, $00, $E4, $3B, $00, $00, $C8, $3B, $00, $00, + $32, $3A, $00, $00, $48, $3A, $00, $00, $56, $3A, $00, $00, $62, $3A, $00, $00, + $76, $3A, $00, $00, $94, $3A, $00, $00, $A4, $3A, $00, $00, $B4, $3A, $00, $00, + $CA, $3A, $00, $00, $DA, $3A, $00, $00, $EA, $3A, $00, $00, $06, $3B, $00, $00, + $0E, $3B, $00, $00, $1C, $3B, $00, $00, $28, $3B, $00, $00, $36, $3B, $00, $00, + $4A, $3B, $00, $00, $60, $3B, $00, $00, $78, $3B, $00, $00, $8C, $3B, $00, $00, + $9A, $3B, $00, $00, $A8, $3B, $00, $00, $B8, $3B, $00, $00, $16, $3C, $00, $00, + $00, $00, $00, $00, $FE, $39, $00, $00, $12, $3A, $00, $00, $00, $00, $00, $00, + $0C, $2A, $00, $10, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $20, $42, $00, $10, $70, $42, $00, $10, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $96, $30, $07, $77, $2C, $61, $0E, $EE, $BA, $51, $09, $99, + $19, $C4, $6D, $07, $8F, $F4, $6A, $70, $35, $A5, $63, $E9, $A3, $95, $64, $9E, + $32, $88, $DB, $0E, $A4, $B8, $DC, $79, $1E, $E9, $D5, $E0, $88, $D9, $D2, $97, + $2B, $4C, $B6, $09, $BD, $7C, $B1, $7E, $07, $2D, $B8, $E7, $91, $1D, $BF, $90, + $64, $10, $B7, $1D, $F2, $20, $B0, $6A, $48, $71, $B9, $F3, $DE, $41, $BE, $84, + $7D, $D4, $DA, $1A, $EB, $E4, $DD, $6D, $51, $B5, $D4, $F4, $C7, $85, $D3, $83, + $56, $98, $6C, $13, $C0, $A8, $6B, $64, $7A, $F9, $62, $FD, $EC, $C9, $65, $8A, + $4F, $5C, $01, $14, $D9, $6C, $06, $63, $63, $3D, $0F, $FA, $F5, $0D, $08, $8D, + $C8, $20, $6E, $3B, $5E, $10, $69, $4C, $E4, $41, $60, $D5, $72, $71, $67, $A2, + $D1, $E4, $03, $3C, $47, $D4, $04, $4B, $FD, $85, $0D, $D2, $6B, $B5, $0A, $A5, + $FA, $A8, $B5, $35, $6C, $98, $B2, $42, $D6, $C9, $BB, $DB, $40, $F9, $BC, $AC, + $E3, $6C, $D8, $32, $75, $5C, $DF, $45, $CF, $0D, $D6, $DC, $59, $3D, $D1, $AB, + $AC, $30, $D9, $26, $3A, $00, $DE, $51, $80, $51, $D7, $C8, $16, $61, $D0, $BF, + $B5, $F4, $B4, $21, $23, $C4, $B3, $56, $99, $95, $BA, $CF, $0F, $A5, $BD, $B8, + $9E, $B8, $02, $28, $08, $88, $05, $5F, $B2, $D9, $0C, $C6, $24, $E9, $0B, $B1, + $87, $7C, $6F, $2F, $11, $4C, $68, $58, $AB, $1D, $61, $C1, $3D, $2D, $66, $B6, + $90, $41, $DC, $76, $06, $71, $DB, $01, $BC, $20, $D2, $98, $2A, $10, $D5, $EF, + $89, $85, $B1, $71, $1F, $B5, $B6, $06, $A5, $E4, $BF, $9F, $33, $D4, $B8, $E8, + $A2, $C9, $07, $78, $34, $F9, $00, $0F, $8E, $A8, $09, $96, $18, $98, $0E, $E1, + $BB, $0D, $6A, $7F, $2D, $3D, $6D, $08, $97, $6C, $64, $91, $01, $5C, $63, $E6, + $F4, $51, $6B, $6B, $62, $61, $6C, $1C, $D8, $30, $65, $85, $4E, $00, $62, $F2, + $ED, $95, $06, $6C, $7B, $A5, $01, $1B, $C1, $F4, $08, $82, $57, $C4, $0F, $F5, + $C6, $D9, $B0, $65, $50, $E9, $B7, $12, $EA, $B8, $BE, $8B, $7C, $88, $B9, $FC, + $DF, $1D, $DD, $62, $49, $2D, $DA, $15, $F3, $7C, $D3, $8C, $65, $4C, $D4, $FB, + $58, $61, $B2, $4D, $CE, $51, $B5, $3A, $74, $00, $BC, $A3, $E2, $30, $BB, $D4, + $41, $A5, $DF, $4A, $D7, $95, $D8, $3D, $6D, $C4, $D1, $A4, $FB, $F4, $D6, $D3, + $6A, $E9, $69, $43, $FC, $D9, $6E, $34, $46, $88, $67, $AD, $D0, $B8, $60, $DA, + $73, $2D, $04, $44, $E5, $1D, $03, $33, $5F, $4C, $0A, $AA, $C9, $7C, $0D, $DD, + $3C, $71, $05, $50, $AA, $41, $02, $27, $10, $10, $0B, $BE, $86, $20, $0C, $C9, + $25, $B5, $68, $57, $B3, $85, $6F, $20, $09, $D4, $66, $B9, $9F, $E4, $61, $CE, + $0E, $F9, $DE, $5E, $98, $C9, $D9, $29, $22, $98, $D0, $B0, $B4, $A8, $D7, $C7, + $17, $3D, $B3, $59, $81, $0D, $B4, $2E, $3B, $5C, $BD, $B7, $AD, $6C, $BA, $C0, + $20, $83, $B8, $ED, $B6, $B3, $BF, $9A, $0C, $E2, $B6, $03, $9A, $D2, $B1, $74, + $39, $47, $D5, $EA, $AF, $77, $D2, $9D, $15, $26, $DB, $04, $83, $16, $DC, $73, + $12, $0B, $63, $E3, $84, $3B, $64, $94, $3E, $6A, $6D, $0D, $A8, $5A, $6A, $7A, + $0B, $CF, $0E, $E4, $9D, $FF, $09, $93, $27, $AE, $00, $0A, $B1, $9E, $07, $7D, + $44, $93, $0F, $F0, $D2, $A3, $08, $87, $68, $F2, $01, $1E, $FE, $C2, $06, $69, + $5D, $57, $62, $F7, $CB, $67, $65, $80, $71, $36, $6C, $19, $E7, $06, $6B, $6E, + $76, $1B, $D4, $FE, $E0, $2B, $D3, $89, $5A, $7A, $DA, $10, $CC, $4A, $DD, $67, + $6F, $DF, $B9, $F9, $F9, $EF, $BE, $8E, $43, $BE, $B7, $17, $D5, $8E, $B0, $60, + $E8, $A3, $D6, $D6, $7E, $93, $D1, $A1, $C4, $C2, $D8, $38, $52, $F2, $DF, $4F, + $F1, $67, $BB, $D1, $67, $57, $BC, $A6, $DD, $06, $B5, $3F, $4B, $36, $B2, $48, + $DA, $2B, $0D, $D8, $4C, $1B, $0A, $AF, $F6, $4A, $03, $36, $60, $7A, $04, $41, + $C3, $EF, $60, $DF, $55, $DF, $67, $A8, $EF, $8E, $6E, $31, $79, $BE, $69, $46, + $8C, $B3, $61, $CB, $1A, $83, $66, $BC, $A0, $D2, $6F, $25, $36, $E2, $68, $52, + $95, $77, $0C, $CC, $03, $47, $0B, $BB, $B9, $16, $02, $22, $2F, $26, $05, $55, + $BE, $3B, $BA, $C5, $28, $0B, $BD, $B2, $92, $5A, $B4, $2B, $04, $6A, $B3, $5C, + $A7, $FF, $D7, $C2, $31, $CF, $D0, $B5, $8B, $9E, $D9, $2C, $1D, $AE, $DE, $5B, + $B0, $C2, $64, $9B, $26, $F2, $63, $EC, $9C, $A3, $6A, $75, $0A, $93, $6D, $02, + $A9, $06, $09, $9C, $3F, $36, $0E, $EB, $85, $67, $07, $72, $13, $57, $00, $05, + $82, $4A, $BF, $95, $14, $7A, $B8, $E2, $AE, $2B, $B1, $7B, $38, $1B, $B6, $0C, + $9B, $8E, $D2, $92, $0D, $BE, $D5, $E5, $B7, $EF, $DC, $7C, $21, $DF, $DB, $0B, + $D4, $D2, $D3, $86, $42, $E2, $D4, $F1, $F8, $B3, $DD, $68, $6E, $83, $DA, $1F, + $CD, $16, $BE, $81, $5B, $26, $B9, $F6, $E1, $77, $B0, $6F, $77, $47, $B7, $18, + $E6, $5A, $08, $88, $70, $6A, $0F, $FF, $CA, $3B, $06, $66, $5C, $0B, $01, $11, + $FF, $9E, $65, $8F, $69, $AE, $62, $F8, $D3, $FF, $6B, $61, $45, $CF, $6C, $16, + $78, $E2, $0A, $A0, $EE, $D2, $0D, $D7, $54, $83, $04, $4E, $C2, $B3, $03, $39, + $61, $26, $67, $A7, $F7, $16, $60, $D0, $4D, $47, $69, $49, $DB, $77, $6E, $3E, + $4A, $6A, $D1, $AE, $DC, $5A, $D6, $D9, $66, $0B, $DF, $40, $F0, $3B, $D8, $37, + $53, $AE, $BC, $A9, $C5, $9E, $BB, $DE, $7F, $CF, $B2, $47, $E9, $FF, $B5, $30, + $1C, $F2, $BD, $BD, $8A, $C2, $BA, $CA, $30, $93, $B3, $53, $A6, $A3, $B4, $24, + $05, $36, $D0, $BA, $93, $06, $D7, $CD, $29, $57, $DE, $54, $BF, $67, $D9, $23, + $2E, $7A, $66, $B3, $B8, $4A, $61, $C4, $02, $1B, $68, $5D, $94, $2B, $6F, $2A, + $37, $BE, $0B, $B4, $A1, $8E, $0C, $C3, $1B, $DF, $05, $5A, $8D, $EF, $02, $2D, + $73, $00, $61, $00, $6E, $00, $63, $00, $74, $00, $75, $00, $61, $00, $72, $00, + $79, $00, $6C, $00, $69, $00, $62, $00, $2E, $00, $64, $00, $6C, $00, $6C, $00, + $00, $00, $00, $00, $41, $64, $64, $43, $6C, $69, $70, $62, $6F, $61, $72, $64, + $46, $6F, $72, $6D, $61, $74, $4C, $69, $73, $74, $65, $6E, $65, $72, $00, $00, + $52, $65, $6D, $6F, $76, $65, $43, $6C, $69, $70, $62, $6F, $61, $72, $64, $46, + $6F, $72, $6D, $61, $74, $4C, $69, $73, $74, $65, $6E, $65, $72, $00, $00, $00, + $6B, $00, $65, $00, $72, $00, $6E, $00, $65, $00, $6C, $00, $33, $00, $32, $00, + $2E, $00, $64, $00, $6C, $00, $6C, $00, $00, $00, $00, $00, $75, $00, $73, $00, + $65, $00, $72, $00, $33, $00, $32, $00, $2E, $00, $64, $00, $6C, $00, $6C, $00, + $00, $00, $00, $00, $47, $65, $74, $50, $72, $6F, $63, $41, $64, $64, $72, $65, + $73, $73, $00, $00, $4C, $64, $72, $47, $65, $74, $50, $72, $6F, $63, $65, $64, + $75, $72, $65, $41, $64, $64, $72, $65, $73, $73, $00, $00, $6E, $00, $74, $00, + $64, $00, $6C, $00, $6C, $00, $2E, $00, $64, $00, $6C, $00, $6C, $00, $00, $00, + $4C, $64, $72, $4C, $6F, $61, $64, $44, $6C, $6C, $00, $00, $77, $00, $69, $00, + $6E, $00, $74, $00, $72, $00, $75, $00, $73, $00, $74, $00, $2E, $00, $64, $00, + $6C, $00, $6C, $00, $00, $00, $00, $00, $57, $69, $6E, $56, $65, $72, $69, $66, + $79, $54, $72, $75, $73, $74, $00, $00, $57, $69, $6E, $56, $65, $72, $69, $66, + $79, $54, $72, $75, $73, $74, $45, $78, $00, $00, $00, $00, $62, $00, $64, $00, + $73, $00, $2E, $00, $65, $00, $78, $00, $65, $00, $00, $00, $4C, $00, $69, $00, + $63, $00, $65, $00, $6E, $00, $73, $00, $65, $00, $4D, $00, $61, $00, $6E, $00, + $61, $00, $67, $00, $65, $00, $72, $00, $2E, $00, $65, $00, $78, $00, $65, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $E1, $70, $F1, $55, $00, $00, $00, $00, $0D, $00, $00, $00, + $0C, $01, $00, $00, $1C, $37, $00, $00, $1C, $27, $00, $00, $00, $00, $00, $00, + $5C, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $04, $40, $00, $10, + $00, $00, $00, $00, $00, $00, $00, $00, $B0, $30, $00, $10, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $E1, $70, $F1, $55, $00, $00, $00, $00, $EC, $36, $00, $00, + $01, $00, $00, $00, $02, $00, $00, $00, $02, $00, $00, $00, $D8, $36, $00, $00, + $E0, $36, $00, $00, $E8, $36, $00, $00, $B0, $10, $00, $00, $D0, $10, $00, $00, + $F9, $36, $00, $00, $0A, $37, $00, $00, $00, $00, $01, $00, $73, $68, $66, $6F, + $6C, $64, $65, $72, $2E, $64, $6C, $6C, $00, $53, $48, $47, $65, $74, $46, $6F, + $6C, $64, $65, $72, $50, $61, $74, $68, $41, $00, $53, $48, $47, $65, $74, $46, + $6F, $6C, $64, $65, $72, $50, $61, $74, $68, $57, $00, $00, $47, $43, $54, $4C, + $00, $10, $00, $00, $0D, $1A, $00, $00, $2E, $74, $65, $78, $74, $24, $6D, $6E, + $00, $00, $00, $00, $00, $30, $00, $00, $B0, $00, $00, $00, $2E, $69, $64, $61, + $74, $61, $24, $35, $00, $00, $00, $00, $B0, $30, $00, $00, $04, $00, $00, $00, + $2E, $30, $30, $63, $66, $67, $00, $00, $C0, $30, $00, $00, $EC, $05, $00, $00, + $2E, $72, $64, $61, $74, $61, $00, $00, $B0, $36, $00, $00, $6B, $00, $00, $00, + $2E, $65, $64, $61, $74, $61, $00, $00, $1C, $37, $00, $00, $0C, $01, $00, $00, + $2E, $72, $64, $61, $74, $61, $24, $7A, $7A, $7A, $64, $62, $67, $00, $00, $00, + $28, $38, $00, $00, $28, $00, $00, $00, $2E, $69, $64, $61, $74, $61, $24, $32, + $00, $00, $00, $00, $50, $38, $00, $00, $14, $00, $00, $00, $2E, $69, $64, $61, + $74, $61, $24, $33, $00, $00, $00, $00, $64, $38, $00, $00, $B0, $00, $00, $00, + $2E, $69, $64, $61, $74, $61, $24, $34, $00, $00, $00, $00, $14, $39, $00, $00, + $1E, $03, $00, $00, $2E, $69, $64, $61, $74, $61, $24, $36, $00, $00, $00, $00, + $00, $40, $00, $00, $14, $02, $00, $00, $2E, $64, $61, $74, $61, $00, $00, $00, + $20, $42, $00, $00, $6C, $03, $00, $00, $2E, $62, $73, $73, $00, $00, $00, $00, + $00, $50, $00, $00, $58, $00, $00, $00, $2E, $72, $73, $72, $63, $24, $30, $31, + $00, $00, $00, $00, $60, $50, $00, $00, $80, $01, $00, $00, $2E, $72, $73, $72, + $63, $24, $30, $32, $00, $00, $00, $00, $64, $38, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $F0, $39, $00, $00, $00, $30, $00, $00, $08, $39, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $26, $3A, $00, $00, $A4, $30, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $14, $39, $00, $00, $22, $39, $00, $00, $30, $39, $00, $00, + $46, $39, $00, $00, $56, $39, $00, $00, $68, $39, $00, $00, $76, $39, $00, $00, + $88, $39, $00, $00, $94, $39, $00, $00, $A4, $39, $00, $00, $B8, $39, $00, $00, + $CA, $39, $00, $00, $DA, $39, $00, $00, $02, $3C, $00, $00, $E4, $3B, $00, $00, + $C8, $3B, $00, $00, $32, $3A, $00, $00, $48, $3A, $00, $00, $56, $3A, $00, $00, + $62, $3A, $00, $00, $76, $3A, $00, $00, $94, $3A, $00, $00, $A4, $3A, $00, $00, + $B4, $3A, $00, $00, $CA, $3A, $00, $00, $DA, $3A, $00, $00, $EA, $3A, $00, $00, + $06, $3B, $00, $00, $0E, $3B, $00, $00, $1C, $3B, $00, $00, $28, $3B, $00, $00, + $36, $3B, $00, $00, $4A, $3B, $00, $00, $60, $3B, $00, $00, $78, $3B, $00, $00, + $8C, $3B, $00, $00, $9A, $3B, $00, $00, $A8, $3B, $00, $00, $B8, $3B, $00, $00, + $16, $3C, $00, $00, $00, $00, $00, $00, $FE, $39, $00, $00, $12, $3A, $00, $00, + $00, $00, $00, $00, $8F, $00, $43, $72, $65, $61, $74, $65, $46, $69, $6C, $65, + $57, $00, $F0, $01, $47, $65, $74, $46, $69, $6C, $65, $53, $69, $7A, $65, $00, + $8C, $00, $43, $72, $65, $61, $74, $65, $46, $69, $6C, $65, $4D, $61, $70, $70, + $69, $6E, $67, $57, $00, $00, $57, $03, $4D, $61, $70, $56, $69, $65, $77, $4F, + $66, $46, $69, $6C, $65, $00, $D6, $04, $55, $6E, $6D, $61, $70, $56, $69, $65, + $77, $4F, $66, $46, $69, $6C, $65, $00, $52, $00, $43, $6C, $6F, $73, $65, $48, + $61, $6E, $64, $6C, $65, $00, $EF, $04, $56, $69, $72, $74, $75, $61, $6C, $50, + $72, $6F, $74, $65, $63, $74, $00, $00, $45, $05, $6C, $73, $74, $72, $63, $6D, + $70, $69, $57, $00, $A4, $02, $47, $65, $74, $56, $65, $72, $73, $69, $6F, $6E, + $45, $78, $57, $00, $18, $02, $47, $65, $74, $4D, $6F, $64, $75, $6C, $65, $48, + $61, $6E, $64, $6C, $65, $57, $00, $00, $45, $02, $47, $65, $74, $50, $72, $6F, + $63, $41, $64, $64, $72, $65, $73, $73, $00, $00, $3F, $03, $4C, $6F, $61, $64, + $4C, $69, $62, $72, $61, $72, $79, $57, $00, $00, $14, $02, $47, $65, $74, $4D, + $6F, $64, $75, $6C, $65, $46, $69, $6C, $65, $4E, $61, $6D, $65, $57, $00, $00, + $4B, $45, $52, $4E, $45, $4C, $33, $32, $2E, $64, $6C, $6C, $00, $00, $BF, $00, + $53, $48, $47, $65, $74, $46, $6F, $6C, $64, $65, $72, $50, $61, $74, $68, $41, + $00, $00, $C3, $00, $53, $48, $47, $65, $74, $46, $6F, $6C, $64, $65, $72, $50, + $61, $74, $68, $57, $00, $00, $53, $48, $45, $4C, $4C, $33, $32, $2E, $64, $6C, + $6C, $00, $EC, $02, $49, $6E, $74, $65, $72, $6C, $6F, $63, $6B, $65, $64, $45, + $78, $63, $68, $61, $6E, $67, $65, $00, $CD, $02, $48, $65, $61, $70, $43, $72, + $65, $61, $74, $65, $00, $00, $CF, $02, $48, $65, $61, $70, $46, $72, $65, $65, + $00, $00, $C0, $01, $47, $65, $74, $43, $75, $72, $72, $65, $6E, $74, $50, $72, + $6F, $63, $65, $73, $73, $00, $E9, $02, $49, $6E, $74, $65, $72, $6C, $6F, $63, + $6B, $65, $64, $43, $6F, $6D, $70, $61, $72, $65, $45, $78, $63, $68, $61, $6E, + $67, $65, $00, $00, $C4, $04, $54, $68, $72, $65, $61, $64, $33, $32, $4E, $65, + $78, $74, $00, $00, $C3, $04, $54, $68, $72, $65, $61, $64, $33, $32, $46, $69, + $72, $73, $74, $00, $C5, $01, $47, $65, $74, $43, $75, $72, $72, $65, $6E, $74, + $54, $68, $72, $65, $61, $64, $49, $64, $00, $00, $BA, $04, $53, $75, $73, $70, + $65, $6E, $64, $54, $68, $72, $65, $61, $64, $00, $13, $04, $52, $65, $73, $75, + $6D, $65, $54, $68, $72, $65, $61, $64, $00, $00, $BE, $00, $43, $72, $65, $61, + $74, $65, $54, $6F, $6F, $6C, $68, $65, $6C, $70, $33, $32, $53, $6E, $61, $70, + $73, $68, $6F, $74, $00, $00, $B2, $04, $53, $6C, $65, $65, $70, $00, $D2, $02, + $48, $65, $61, $70, $52, $65, $41, $6C, $6C, $6F, $63, $00, $CB, $02, $48, $65, + $61, $70, $41, $6C, $6C, $6F, $63, $00, $CE, $02, $48, $65, $61, $70, $44, $65, + $73, $74, $72, $6F, $79, $00, $86, $02, $47, $65, $74, $54, $68, $72, $65, $61, + $64, $43, $6F, $6E, $74, $65, $78, $74, $00, $00, $C1, $01, $47, $65, $74, $43, + $75, $72, $72, $65, $6E, $74, $50, $72, $6F, $63, $65, $73, $73, $49, $64, $00, + $58, $01, $46, $6C, $75, $73, $68, $49, $6E, $73, $74, $72, $75, $63, $74, $69, + $6F, $6E, $43, $61, $63, $68, $65, $00, $91, $04, $53, $65, $74, $54, $68, $72, + $65, $61, $64, $43, $6F, $6E, $74, $65, $78, $74, $00, $00, $85, $03, $4F, $70, + $65, $6E, $54, $68, $72, $65, $61, $64, $00, $00, $EC, $04, $56, $69, $72, $74, + $75, $61, $6C, $46, $72, $65, $65, $00, $E9, $04, $56, $69, $72, $74, $75, $61, + $6C, $41, $6C, $6C, $6F, $63, $00, $00, $F1, $04, $56, $69, $72, $74, $75, $61, + $6C, $51, $75, $65, $72, $79, $00, $00, $D3, $04, $55, $6E, $68, $61, $6E, $64, + $6C, $65, $64, $45, $78, $63, $65, $70, $74, $69, $6F, $6E, $46, $69, $6C, $74, + $65, $72, $00, $00, $A5, $04, $53, $65, $74, $55, $6E, $68, $61, $6E, $64, $6C, + $65, $64, $45, $78, $63, $65, $70, $74, $69, $6F, $6E, $46, $69, $6C, $74, $65, + $72, $00, $C0, $04, $54, $65, $72, $6D, $69, $6E, $61, $74, $65, $50, $72, $6F, + $63, $65, $73, $73, $00, $00, $04, $03, $49, $73, $50, $72, $6F, $63, $65, $73, + $73, $6F, $72, $46, $65, $61, $74, $75, $72, $65, $50, $72, $65, $73, $65, $6E, + $74, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $B1, $19, $BF, $44, $4E, $E6, $40, $BB, $00, $00, $00, $00, $00, $00, $00, $00, + $A3, $A8, $A3, $A8, $A3, $A8, $A3, $A8, $A3, $A8, $A3, $A8, $A3, $A8, $A3, $A8, + $AA, $AA, $AA, $AA, $AA, $AA, $AA, $AA, $AC, $AA, $B2, $AA, $9F, $9F, $9F, $9F, + $B5, $A3, $A3, $A4, $AA, $AA, $BA, $AA, $96, $AA, $A8, $AA, $C3, $C3, $96, $96, + $B7, $AE, $D6, $BD, $A3, $C5, $A3, $A3, $9F, $C3, $9C, $AA, $AA, $AC, $AA, $BF, + $03, $7F, $11, $7F, $01, $7F, $01, $3F, $01, $01, $90, $82, $7D, $97, $59, $59, + $59, $59, $59, $7F, $59, $59, $60, $7D, $7F, $7F, $59, $59, $59, $59, $59, $59, + $59, $59, $59, $59, $59, $59, $9A, $88, $7D, $59, $50, $50, $50, $50, $59, $59, + $59, $59, $61, $94, $61, $9E, $59, $59, $85, $59, $92, $A3, $60, $60, $59, $59, + $59, $59, $59, $59, $59, $59, $59, $59, $59, $9F, $01, $03, $01, $04, $03, $D5, + $03, $CC, $01, $BC, $03, $F0, $10, $10, $10, $10, $50, $50, $50, $50, $14, $20, + $20, $20, $20, $01, $01, $01, $01, $C4, $02, $10, $00, $00, $00, $00, $01, $01, + $C0, $C2, $10, $11, $02, $03, $11, $03, $03, $04, $00, $00, $14, $00, $02, $00, + $00, $C6, $C8, $02, $02, $02, $02, $00, $00, $FF, $FF, $FF, $FF, $00, $00, $00, + $FF, $CA, $01, $01, $01, $00, $06, $00, $04, $00, $C0, $C2, $01, $01, $03, $01, + $FF, $FF, $01, $00, $03, $C4, $C4, $C6, $03, $01, $01, $01, $FF, $03, $03, $03, + $C8, $40, $00, $0A, $00, $04, $00, $00, $00, $00, $7F, $00, $33, $01, $00, $00, + $00, $00, $00, $00, $FF, $BF, $FF, $FF, $00, $00, $00, $00, $07, $00, $00, $FF, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $FF, $FF, + $00, $00, $00, $BF, $00, $00, $00, $00, $00, $00, $00, $00, $7F, $00, $00, $FF, + $4A, $4A, $4A, $4A, $4B, $52, $4A, $4A, $4A, $4A, $4F, $4C, $4A, $4A, $4A, $4A, + $4A, $4A, $4A, $4A, $55, $45, $40, $4A, $4A, $4A, $45, $59, $4D, $46, $4A, $5D, + $4A, $4A, $4A, $4A, $4A, $4A, $4A, $4A, $4A, $4A, $4A, $4A, $4A, $4A, $61, $63, + $67, $4E, $4A, $4A, $6B, $6D, $4A, $4A, $45, $6D, $4A, $4A, $44, $45, $4A, $4A, + $00, $00, $00, $02, $0D, $06, $06, $06, $06, $0E, $00, $00, $00, $00, $06, $06, + $06, $00, $06, $06, $02, $06, $00, $0A, $0A, $07, $07, $06, $02, $05, $05, $02, + $02, $00, $00, $04, $04, $04, $04, $00, $00, $00, $0E, $05, $06, $06, $06, $01, + $06, $00, $00, $08, $00, $10, $00, $18, $00, $20, $00, $28, $00, $30, $00, $80, + $01, $82, $01, $86, $00, $F6, $CF, $FE, $3F, $AB, $00, $B0, $00, $B1, $00, $B3, + $00, $BA, $F8, $BB, $00, $C0, $00, $C1, $00, $C7, $BF, $62, $FF, $00, $8D, $FF, + $00, $C4, $FF, $00, $C5, $FF, $00, $FF, $FF, $EB, $01, $FF, $0E, $12, $08, $00, + $13, $09, $00, $16, $08, $00, $17, $09, $00, $2B, $09, $00, $AE, $FF, $07, $B2, + $FF, $00, $B4, $FF, $00, $B5, $FF, $00, $C3, $01, $00, $C7, $FF, $BF, $E7, $08, + $00, $F0, $02, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, + $18, $00, $00, $00, $18, $00, $00, $80, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $01, $00, $02, $00, $00, $00, $30, $00, $00, $80, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, + $09, $04, $00, $00, $48, $00, $00, $00, $60, $50, $00, $00, $7D, $01, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $3C, $3F, $78, $6D, $6C, $20, $76, $65, $72, $73, $69, $6F, $6E, $3D, $27, $31, + $2E, $30, $27, $20, $65, $6E, $63, $6F, $64, $69, $6E, $67, $3D, $27, $55, $54, + $46, $2D, $38, $27, $20, $73, $74, $61, $6E, $64, $61, $6C, $6F, $6E, $65, $3D, + $27, $79, $65, $73, $27, $3F, $3E, $0D, $0A, $3C, $61, $73, $73, $65, $6D, $62, + $6C, $79, $20, $78, $6D, $6C, $6E, $73, $3D, $27, $75, $72, $6E, $3A, $73, $63, + $68, $65, $6D, $61, $73, $2D, $6D, $69, $63, $72, $6F, $73, $6F, $66, $74, $2D, + $63, $6F, $6D, $3A, $61, $73, $6D, $2E, $76, $31, $27, $20, $6D, $61, $6E, $69, + $66, $65, $73, $74, $56, $65, $72, $73, $69, $6F, $6E, $3D, $27, $31, $2E, $30, + $27, $3E, $0D, $0A, $20, $20, $3C, $74, $72, $75, $73, $74, $49, $6E, $66, $6F, + $20, $78, $6D, $6C, $6E, $73, $3D, $22, $75, $72, $6E, $3A, $73, $63, $68, $65, + $6D, $61, $73, $2D, $6D, $69, $63, $72, $6F, $73, $6F, $66, $74, $2D, $63, $6F, + $6D, $3A, $61, $73, $6D, $2E, $76, $33, $22, $3E, $0D, $0A, $20, $20, $20, $20, + $3C, $73, $65, $63, $75, $72, $69, $74, $79, $3E, $0D, $0A, $20, $20, $20, $20, + $20, $20, $3C, $72, $65, $71, $75, $65, $73, $74, $65, $64, $50, $72, $69, $76, + $69, $6C, $65, $67, $65, $73, $3E, $0D, $0A, $20, $20, $20, $20, $20, $20, $20, + $20, $3C, $72, $65, $71, $75, $65, $73, $74, $65, $64, $45, $78, $65, $63, $75, + $74, $69, $6F, $6E, $4C, $65, $76, $65, $6C, $20, $6C, $65, $76, $65, $6C, $3D, + $27, $61, $73, $49, $6E, $76, $6F, $6B, $65, $72, $27, $20, $75, $69, $41, $63, + $63, $65, $73, $73, $3D, $27, $66, $61, $6C, $73, $65, $27, $20, $2F, $3E, $0D, + $0A, $20, $20, $20, $20, $20, $20, $3C, $2F, $72, $65, $71, $75, $65, $73, $74, + $65, $64, $50, $72, $69, $76, $69, $6C, $65, $67, $65, $73, $3E, $0D, $0A, $20, + $20, $20, $20, $3C, $2F, $73, $65, $63, $75, $72, $69, $74, $79, $3E, $0D, $0A, + $20, $20, $3C, $2F, $74, $72, $75, $73, $74, $49, $6E, $66, $6F, $3E, $0D, $0A, + $3C, $2F, $61, $73, $73, $65, $6D, $62, $6C, $79, $3E, $0D, $0A, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $10, $00, $00, $54, $01, $00, $00, $18, $30, $34, $30, $4F, $30, $62, $30, + $86, $30, $94, $30, $9B, $30, $A3, $30, $C2, $30, $D2, $30, $08, $31, $77, $31, + $C5, $31, $CC, $31, $F2, $31, $05, $32, $1F, $32, $2B, $32, $3A, $32, $6A, $32, + $9C, $32, $20, $33, $2E, $33, $35, $33, $40, $33, $54, $33, $59, $33, $60, $33, + $65, $33, $6D, $33, $72, $33, $77, $33, $7D, $33, $82, $33, $89, $33, $95, $33, + $9B, $33, $AB, $33, $B8, $33, $FA, $34, $02, $35, $07, $35, $0C, $35, $29, $35, + $38, $35, $40, $35, $5A, $35, $67, $35, $75, $35, $7A, $35, $8F, $35, $95, $35, + $A2, $35, $A8, $35, $AD, $35, $B2, $35, $B8, $35, $BE, $35, $C3, $35, $F2, $35, + $13, $36, $32, $36, $3F, $36, $53, $36, $59, $36, $73, $36, $7E, $36, $8B, $36, + $A2, $36, $B0, $36, $C3, $36, $C9, $36, $E3, $36, $E9, $36, $FA, $36, $01, $37, + $07, $37, $36, $37, $3D, $37, $6F, $37, $79, $37, $9D, $37, $B0, $37, $D7, $37, + $DC, $37, $0D, $38, $36, $38, $3B, $38, $42, $38, $58, $38, $8C, $38, $9F, $38, + $C0, $38, $C4, $38, $C8, $38, $CC, $38, $D3, $38, $DF, $38, $F6, $38, $06, $39, + $0C, $39, $16, $39, $1E, $39, $2B, $39, $30, $39, $41, $39, $47, $39, $52, $39, + $5A, $39, $5F, $39, $65, $39, $71, $39, $80, $39, $A8, $39, $BC, $39, $E3, $39, + $59, $3A, $D9, $3A, $EC, $3A, $09, $3B, $1A, $3B, $25, $3B, $3C, $3B, $49, $3B, + $67, $3B, $6D, $3B, $96, $3B, $A5, $3B, $E9, $3B, $F6, $3B, $0B, $3C, $3B, $3C, + $48, $3C, $4F, $3C, $60, $3C, $66, $3C, $7F, $3C, $AA, $3C, $05, $3D, $0F, $3D, + $16, $3D, $46, $3D, $5F, $3D, $96, $3D, $A6, $3D, $C9, $3D, $FB, $3D, $05, $3E, + $0B, $3E, $18, $3E, $1E, $3E, $2B, $3E, $40, $3E, $49, $3E, $5D, $3E, $6A, $3E, + $71, $3E, $77, $3E, $7D, $3E, $83, $3E, $89, $3E, $8F, $3E, $95, $3E, $9B, $3E, + $B5, $3E, $D7, $3E, $00, $20, $00, $00, $78, $00, $00, $00, $1B, $30, $B3, $32, + $D6, $32, $04, $33, $0C, $33, $27, $33, $5E, $33, $6C, $33, $81, $33, $B6, $33, + $70, $34, $0C, $35, $16, $35, $97, $35, $A8, $35, $C0, $35, $E2, $35, $E9, $35, + $F4, $35, $F9, $35, $23, $36, $8B, $36, $90, $36, $97, $36, $D4, $38, $EA, $38, + $F3, $38, $FE, $38, $05, $39, $25, $39, $2B, $39, $31, $39, $37, $39, $3D, $39, + $43, $39, $4A, $39, $51, $39, $58, $39, $5F, $39, $66, $39, $6D, $39, $74, $39, + $7C, $39, $84, $39, $8C, $39, $98, $39, $A1, $39, $A6, $39, $AC, $39, $B6, $39, + $C0, $39, $D0, $39, $E0, $39, $F0, $39, $F9, $39, $08, $3A, $00, $30, $00, $00, + $14, $00, $00, $00, $B0, $30, $C0, $30, $C4, $30, $8C, $36, $98, $36, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 + ); + + defHelperDatas: array[0..38439] of Byte = ( + $4D, $5A, $50, $00, $02, $00, $00, $00, $04, $00, $0F, $00, $FF, $FF, $00, $00, + $B8, $00, $00, $00, $00, $00, $00, $00, $40, $00, $1A, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, + $BA, $10, $00, $0E, $1F, $B4, $09, $CD, $21, $B8, $01, $4C, $CD, $21, $90, $90, + $54, $68, $69, $73, $20, $70, $72, $6F, $67, $72, $61, $6D, $20, $6D, $75, $73, + $74, $20, $62, $65, $20, $72, $75, $6E, $20, $75, $6E, $64, $65, $72, $20, $57, + $69, $6E, $33, $32, $0D, $0A, $24, $37, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $50, $45, $00, $00, $4C, $01, $08, $00, $E5, $FD, $D3, $5D, $00, $00, $00, $00, + $00, $00, $00, $00, $E0, $00, $8E, $A1, $0B, $01, $02, $19, $00, $46, $00, $00, + $00, $24, $00, $00, $00, $00, $00, $00, $D4, $60, $00, $00, $00, $10, $00, $00, + $00, $70, $00, $00, $00, $00, $40, $00, $00, $10, $00, $00, $00, $02, $00, $00, + $04, $00, $00, $00, $00, $00, $00, $00, $04, $00, $00, $00, $00, $00, $00, $00, + $00, $F0, $00, $00, $00, $04, $00, $00, $6B, $9B, $00, $00, $02, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $10, $00, $00, $10, $00, $00, + $00, $00, $00, $00, $10, $00, $00, $00, $00, $C0, $00, $00, $6B, $00, $00, $00, + $00, $B0, $00, $00, $12, $06, $00, $00, $00, $E0, $00, $00, $00, $06, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $6E, $00, $00, $28, $28, $00, $00, + $00, $D0, $00, $00, $38, $04, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $74, $B1, $00, $00, $E8, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $2E, $74, $65, $78, $74, $00, $00, $00, + $48, $42, $00, $00, $00, $10, $00, $00, $00, $44, $00, $00, $00, $04, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $20, $00, $00, $60, + $2E, $69, $74, $65, $78, $74, $00, $00, $EC, $00, $00, $00, $00, $60, $00, $00, + $00, $02, $00, $00, $00, $48, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $20, $00, $00, $60, $2E, $64, $61, $74, $61, $00, $00, $00, + $04, $0D, $00, $00, $00, $70, $00, $00, $00, $0E, $00, $00, $00, $4A, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $40, $00, $00, $C0, + $2E, $62, $73, $73, $00, $00, $00, $00, $1C, $28, $00, $00, $00, $80, $00, $00, + $00, $00, $00, $00, $00, $58, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $C0, $2E, $69, $64, $61, $74, $61, $00, $00, + $12, $06, $00, $00, $00, $B0, $00, $00, $00, $08, $00, $00, $00, $58, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $40, $00, $00, $C0, + $2E, $65, $64, $61, $74, $61, $00, $00, $6B, $00, $00, $00, $00, $C0, $00, $00, + $00, $02, $00, $00, $00, $60, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $40, $00, $00, $40, $2E, $72, $65, $6C, $6F, $63, $00, $00, + $38, $04, $00, $00, $00, $D0, $00, $00, $00, $06, $00, $00, $00, $62, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $40, $00, $00, $42, + $2E, $72, $73, $72, $63, $00, $00, $00, $00, $06, $00, $00, $00, $E0, $00, $00, + $00, $06, $00, $00, $00, $68, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $40, $00, $00, $40, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $F0, $00, $00, $00, $00, $00, $00, $00, $6E, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $40, $00, $00, $40, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $FF, $25, $CC, $B1, $40, $00, $8B, $C0, $FF, $25, $C8, $B1, $40, $00, $8B, $C0, + $FF, $25, $C4, $B1, $40, $00, $8B, $C0, $FF, $25, $C0, $B1, $40, $00, $8B, $C0, + $FF, $25, $BC, $B1, $40, $00, $8B, $C0, $FF, $25, $B8, $B1, $40, $00, $8B, $C0, + $FF, $25, $8C, $B1, $40, $00, $8B, $C0, $FF, $25, $B4, $B1, $40, $00, $8B, $C0, + $FF, $25, $B0, $B1, $40, $00, $8B, $C0, $FF, $25, $AC, $B1, $40, $00, $8B, $C0, + $FF, $25, $7C, $B1, $40, $00, $8B, $C0, $FF, $25, $78, $B1, $40, $00, $8B, $C0, + $FF, $25, $74, $B1, $40, $00, $8B, $C0, $FF, $25, $A8, $B1, $40, $00, $8B, $C0, + $FF, $25, $A4, $B1, $40, $00, $8B, $C0, $53, $83, $C4, $BC, $BB, $0A, $00, $00, + $00, $54, $E8, $C1, $FF, $FF, $FF, $F6, $44, $24, $2C, $01, $74, $05, $0F, $B7, + $5C, $24, $30, $8B, $C3, $83, $C4, $44, $5B, $C3, $8B, $C0, $FF, $25, $A0, $B1, + $40, $00, $8B, $C0, $FF, $25, $9C, $B1, $40, $00, $8B, $C0, $FF, $25, $98, $B1, + $40, $00, $8B, $C0, $FF, $25, $88, $B1, $40, $00, $8B, $C0, $FF, $FF, $FF, $FF, + $57, $00, $00, $00, $46, $61, $73, $74, $4D, $4D, $20, $42, $6F, $72, $6C, $61, + $6E, $64, $20, $45, $64, $69, $74, $69, $6F, $6E, $20, $A9, $20, $32, $30, $30, + $34, $2C, $20, $32, $30, $30, $35, $20, $50, $69, $65, $72, $72, $65, $20, $6C, + $65, $20, $52, $69, $63, $68, $65, $20, $2F, $20, $50, $72, $6F, $66, $65, $73, + $73, $69, $6F, $6E, $61, $6C, $20, $53, $6F, $66, $74, $77, $61, $72, $65, $20, + $44, $65, $76, $65, $6C, $6F, $70, $6D, $65, $6E, $74, $00, $F0, $0F, $B0, $11, + $C3, $8D, $40, $00, $8B, $08, $89, $0A, $8B, $48, $04, $8B, $40, $08, $89, $4A, + $04, $89, $42, $08, $C3, $8D, $40, $00, $8B, $08, $89, $0A, $8B, $48, $04, $89, + $4A, $04, $8B, $48, $08, $89, $4A, $08, $8B, $48, $0C, $8B, $40, $10, $89, $4A, + $0C, $89, $42, $10, $C3, $8D, $40, $00, $8B, $08, $89, $0A, $8B, $48, $04, $89, + $4A, $04, $8B, $48, $08, $89, $4A, $08, $8B, $48, $0C, $89, $4A, $0C, $8B, $48, + $10, $89, $4A, $10, $8B, $48, $14, $8B, $40, $18, $89, $4A, $14, $89, $42, $18, + $C3, $8D, $40, $00, $DF, $28, $DF, $68, $08, $DF, $68, $10, $DF, $68, $18, $8B, + $48, $20, $89, $4A, $20, $DF, $7A, $18, $DF, $7A, $10, $DF, $7A, $08, $DF, $3A, + $C3, $8D, $40, $00, $DF, $28, $DF, $68, $08, $DF, $68, $10, $DF, $68, $18, $DF, + $68, $20, $8B, $48, $28, $89, $4A, $28, $DF, $7A, $20, $DF, $7A, $18, $DF, $7A, + $10, $DF, $7A, $08, $DF, $3A, $C3, $90, $DF, $28, $DF, $68, $08, $DF, $68, $10, + $DF, $68, $18, $DF, $68, $20, $DF, $68, $28, $8B, $48, $30, $89, $4A, $30, $DF, + $7A, $28, $DF, $7A, $20, $DF, $7A, $18, $DF, $7A, $10, $DF, $7A, $08, $DF, $3A, + $C3, $8D, $40, $00, $DF, $28, $DF, $68, $08, $DF, $68, $10, $DF, $68, $18, $DF, + $68, $20, $DF, $68, $28, $DF, $68, $30, $8B, $48, $38, $89, $4A, $38, $DF, $7A, + $30, $DF, $7A, $28, $DF, $7A, $20, $DF, $7A, $18, $DF, $7A, $10, $DF, $7A, $08, + $DF, $3A, $C3, $90, $DF, $28, $DF, $68, $08, $DF, $68, $10, $DF, $68, $18, $DF, + $68, $20, $DF, $68, $28, $DF, $68, $30, $DF, $68, $38, $8B, $48, $40, $89, $4A, + $40, $DF, $7A, $38, $DF, $7A, $30, $DF, $7A, $28, $DF, $7A, $20, $DF, $7A, $18, + $DF, $7A, $10, $DF, $7A, $08, $DF, $3A, $C3, $8D, $40, $00, $83, $E9, $0C, $01, + $C8, $01, $CA, $F7, $D9, $79, $13, $DF, $2C, $01, $DF, $6C, $01, $08, $DF, $7C, + $11, $08, $DF, $3C, $11, $83, $C1, $10, $78, $ED, $DF, $2C, $01, $DF, $3C, $11, + $8B, $44, $01, $08, $89, $44, $11, $08, $C3, $8D, $40, $00, $83, $E9, $04, $01, + $C8, $01, $CA, $F7, $D9, $DF, $2C, $01, $DF, $3C, $11, $83, $C1, $08, $78, $F5, + $8B, $04, $01, $89, $04, $11, $C3, $90, $8B, $48, $04, $8B, $10, $39, $D1, $89, + $11, $89, $4A, $04, $74, $02, $C3, $90, $81, $E9, $90, $87, $40, $00, $89, $CA, + $C1, $E9, $03, $0F, $B6, $D6, $B8, $FE, $FF, $FF, $FF, $D3, $C0, $21, $04, $95, + $10, $87, $40, $00, $75, $E0, $B8, $FE, $FF, $FF, $FF, $89, $D1, $D3, $C0, $21, + $05, $0C, $87, $40, $00, $C3, $8B, $C0, $81, $EA, $30, $0B, $00, $00, $C1, $EA, + $08, $81, $EA, $FF, $03, $00, $00, $19, $C9, $21, $CA, $81, $C2, $FF, $03, $00, + $00, $8D, $0C, $D5, $90, $87, $40, $00, $8B, $51, $04, $39, $CA, $89, $08, $89, + $50, $04, $89, $02, $89, $41, $04, $74, $03, $C3, $90, $90, $81, $E9, $90, $87, + $40, $00, $89, $CA, $C1, $E9, $03, $0F, $B6, $D6, $B8, $01, $00, $00, $00, $D3, + $E0, $09, $04, $95, $10, $87, $40, $00, $B8, $01, $00, $00, $00, $89, $D1, $D3, + $E0, $09, $05, $0C, $87, $40, $00, $C3, $83, $3D, $08, $87, $40, $00, $00, $75, + $03, $C3, $90, $90, $A1, $04, $87, $40, $00, $F6, $40, $FC, $01, $75, $25, $83, + $48, $FC, $08, $8B, $15, $08, $87, $40, $00, $29, $D0, $8D, $4A, $03, $89, $48, + $FC, $89, $54, $02, $F8, $81, $FA, $30, $0B, $00, $00, $0F, $83, $67, $FF, $FF, + $FF, $C3, $90, $90, $BA, $F0, $FF, $FF, $FF, $23, $50, $FC, $81, $FA, $30, $0B, + $00, $00, $72, $12, $E8, $0F, $FF, $FF, $FF, $A1, $04, $87, $40, $00, $BA, $F0, + $FF, $FF, $FF, $23, $50, $FC, $8B, $0D, $08, $87, $40, $00, $29, $C8, $01, $CA, + $EB, $B9, $C3, $90, $53, $8B, $D8, $E8, $8C, $FF, $FF, $FF, $6A, $04, $68, $00, + $10, $00, $00, $68, $F0, $FF, $13, $00, $6A, $00, $E8, $CD, $FC, $FF, $FF, $85, + $C0, $74, $4D, $8B, $15, $F4, $86, $40, $00, $8B, $C8, $C7, $01, $F0, $86, $40, + $00, $A3, $F4, $86, $40, $00, $89, $51, $04, $89, $02, $8B, $D0, $81, $C2, $F0, + $FF, $13, $00, $8B, $CA, $83, $E9, $04, $C7, $01, $02, $00, $00, $00, $B9, $E0, + $FF, $13, $00, $2B, $CB, $89, $0D, $08, $87, $40, $00, $2B, $D3, $8B, $C2, $A3, + $04, $87, $40, $00, $83, $CB, $02, $8B, $D0, $83, $EA, $04, $89, $1A, $5B, $C3, + $33, $C0, $A3, $08, $87, $40, $00, $33, $C0, $5B, $C3, $90, $80, $3D, $35, $80, + $40, $00, $00, $74, $3D, $EB, $29, $80, $3D, $9D, $85, $40, $00, $00, $75, $20, + $6A, $00, $E8, $65, $FC, $FF, $FF, $B9, $90, $A7, $40, $00, $B2, $01, $33, $C0, + $E8, $C7, $FC, $FF, $FF, $84, $C0, $74, $19, $6A, $0A, $E8, $4C, $FC, $FF, $FF, + $B9, $90, $A7, $40, $00, $B2, $01, $33, $C0, $E8, $AE, $FC, $FF, $FF, $84, $C0, + $75, $C5, $C3, $90, $53, $56, $57, $55, $8B, $E8, $8D, $B5, $10, $00, $01, $00, + $4E, $83, $C6, $04, $81, $E6, $00, $00, $FF, $FF, $6A, $04, $68, $00, $10, $10, + $00, $56, $6A, $00, $E8, $03, $FC, $FF, $FF, $8B, $D8, $85, $DB, $74, $30, $8B, + $FB, $89, $6F, $08, $83, $CE, $04, $89, $77, $0C, $E8, $7D, $FF, $FF, $FF, $A1, + $98, $A7, $40, $00, $C7, $07, $94, $A7, $40, $00, $89, $1D, $98, $A7, $40, $00, + $89, $47, $04, $89, $18, $C6, $05, $90, $A7, $40, $00, $00, $83, $C3, $10, $8B, + $C3, $5D, $5F, $5E, $5B, $C3, $8B, $C0, $53, $56, $57, $55, $83, $C4, $DC, $8B, + $F0, $83, $EE, $10, $E8, $43, $FF, $FF, $FF, $8B, $C6, $8B, $10, $89, $14, $24, + $8B, $50, $04, $89, $54, $24, $04, $8B, $50, $0C, $F6, $C2, $08, $75, $1A, $68, + $00, $80, $00, $00, $6A, $00, $56, $E8, $98, $FB, $FF, $FF, $85, $C0, $74, $04, + $33, $FF, $EB, $3F, $83, $CF, $FF, $EB, $3A, $8B, $DE, $8B, $EA, $83, $E5, $F0, + $33, $FF, $6A, $1C, $8D, $44, $24, $0C, $50, $53, $E8, $39, $FB, $FF, $FF, $68, + $00, $80, $00, $00, $6A, $00, $53, $E8, $68, $FB, $FF, $FF, $85, $C0, $75, $05, + $83, $CF, $FF, $EB, $0E, $8B, $74, $24, $14, $3B, $EE, $76, $06, $2B, $EE, $01, + $F3, $EB, $CF, $85, $FF, $75, $13, $8B, $44, $24, $04, $8B, $14, $24, $89, $10, + $8B, $04, $24, $8B, $54, $24, $04, $89, $50, $04, $C6, $05, $90, $A7, $40, $00, + $00, $8B, $C7, $83, $C4, $24, $5D, $5F, $5E, $5B, $C3, $90, $53, $56, $57, $55, + $83, $C4, $E0, $8B, $F2, $8B, $F8, $8B, $C7, $83, $E8, $04, $8B, $00, $8B, $D8, + $83, $E3, $F0, $83, $EB, $14, $3B, $DE, $0F, $83, $E1, $00, $00, $00, $8B, $D3, + $C1, $EA, $02, $03, $D3, $3B, $D6, $76, $04, $8B, $EA, $EB, $02, $8B, $EE, $8B, + $D7, $83, $EA, $10, $83, $E0, $F0, $03, $D0, $89, $14, $24, $6A, $1C, $8D, $44, + $24, $08, $50, $8B, $44, $24, $08, $50, $E8, $9B, $FA, $FF, $FF, $81, $7C, $24, + $14, $00, $00, $01, $00, $75, $70, $81, $64, $24, $10, $00, $00, $FF, $FF, $8B, + $D6, $2B, $D3, $8B, $44, $24, $10, $3B, $D0, $73, $5C, $8B, $D5, $2B, $D3, $81, + $C2, $00, $00, $01, $00, $4A, $81, $E2, $00, $00, $FF, $FF, $8B, $DA, $3B, $C3, + $73, $02, $8B, $D8, $6A, $04, $68, $00, $20, $00, $00, $53, $8B, $44, $24, $0C, + $50, $E8, $86, $FA, $FF, $FF, $85, $C0, $74, $2D, $6A, $04, $68, $00, $10, $00, + $00, $53, $8B, $44, $24, $0C, $50, $E8, $70, $FA, $FF, $FF, $85, $C0, $74, $17, + $8B, $C7, $83, $E8, $10, $89, $70, $08, $8B, $D0, $03, $5A, $0C, $83, $CB, $08, + $89, $5A, $0C, $8B, $DF, $EB, $77, $8B, $C5, $E8, $7A, $00, $00, $00, $8B, $D8, + $85, $DB, $74, $6A, $81, $FD, $2C, $0A, $04, $00, $76, $08, $8B, $C3, $83, $E8, + $10, $89, $70, $08, $8B, $C7, $83, $E8, $10, $8B, $40, $08, $8B, $D3, $8B, $CF, + $91, $E8, $E6, $FB, $FF, $FF, $8B, $C7, $E8, $CF, $03, $00, $00, $EB, $3F, $D1, + $EB, $3B, $F3, $72, $0A, $8B, $DF, $83, $EF, $10, $89, $77, $08, $EB, $2F, $8B, + $C6, $E8, $32, $00, $00, $00, $8B, $D8, $85, $DB, $74, $22, $81, $FE, $2C, $0A, + $04, $00, $76, $08, $8B, $C7, $83, $E8, $10, $89, $70, $08, $8B, $D3, $8B, $C7, + $8B, $CE, $E8, $D5, $FB, $FF, $FF, $8B, $C7, $E8, $8E, $03, $00, $00, $8B, $C3, + $83, $C4, $20, $5D, $5F, $5E, $5B, $C3, $8D, $50, $03, $C1, $EA, $03, $3D, $2C, + $0A, $00, $00, $53, $8A, $0D, $35, $80, $40, $00, $0F, $87, $48, $02, $00, $00, + $84, $C9, $0F, $B6, $82, $A8, $85, $40, $00, $8D, $1C, $C5, $28, $70, $40, $00, + $75, $56, $8B, $53, $04, $8B, $42, $08, $B9, $F8, $FF, $FF, $FF, $39, $DA, $74, + $17, $83, $42, $0C, $01, $23, $48, $FC, $89, $4A, $08, $89, $50, $FC, $74, $28, + $C6, $03, $00, $5B, $C3, $90, $90, $90, $8B, $53, $10, $0F, $B7, $4B, $02, $01, + $C1, $3B, $43, $0C, $77, $76, $83, $42, $0C, $01, $89, $4B, $08, $C6, $03, $00, + $89, $50, $FC, $5B, $C3, $90, $90, $90, $8B, $4A, $04, $89, $59, $14, $89, $4B, + $04, $C6, $03, $00, $5B, $C3, $90, $90, $B8, $00, $01, $00, $00, $F0, $0F, $B0, + $23, $74, $9F, $83, $C3, $20, $B8, $00, $01, $00, $00, $F0, $0F, $B0, $23, $74, + $91, $83, $C3, $20, $B8, $00, $01, $00, $00, $F0, $0F, $B0, $23, $74, $83, $83, + $EB, $40, $F3, $90, $80, $3D, $9D, $85, $40, $00, $00, $75, $CB, $6A, $00, $E8, + $28, $F9, $FF, $FF, $B8, $00, $01, $00, $00, $F0, $0F, $B0, $23, $0F, $84, $5F, + $FF, $FF, $FF, $6A, $0A, $E8, $12, $F9, $FF, $FF, $EB, $AC, $56, $57, $80, $3D, + $35, $80, $40, $00, $00, $74, $39, $B8, $00, $01, $00, $00, $F0, $0F, $B0, $25, + $00, $87, $40, $00, $74, $2A, $F3, $90, $80, $3D, $9D, $85, $40, $00, $00, $75, + $E6, $6A, $00, $E8, $E4, $F8, $FF, $FF, $B8, $00, $01, $00, $00, $F0, $0F, $B0, + $25, $00, $87, $40, $00, $74, $09, $6A, $0A, $E8, $CE, $F8, $FF, $FF, $EB, $C7, + $0F, $BE, $73, $01, $23, $35, $0C, $87, $40, $00, $74, $70, $0F, $BC, $C6, $8D, + $34, $C5, $00, $00, $00, $00, $8B, $0C, $85, $10, $87, $40, $00, $0F, $BC, $C9, + $8D, $0C, $B1, $8D, $3C, $CD, $90, $87, $40, $00, $8B, $77, $04, $8B, $56, $04, + $89, $57, $04, $89, $3A, $39, $D7, $75, $17, $BA, $FE, $FF, $FF, $FF, $D3, $C2, + $21, $14, $85, $10, $87, $40, $00, $75, $07, $0F, $B3, $05, $0C, $87, $40, $00, + $BF, $F0, $FF, $FF, $FF, $23, $7E, $FC, $81, $FF, $60, $0A, $01, $00, $72, $6C, + $89, $FA, $0F, $B7, $7B, $1A, $29, $FA, $8D, $04, $37, $8D, $4A, $03, $89, $48, + $FC, $89, $54, $02, $F8, $E8, $8E, $FA, $FF, $FF, $EB, $55, $0F, $B7, $4B, $18, + $8B, $3D, $08, $87, $40, $00, $39, $CF, $72, $26, $8B, $35, $04, $87, $40, $00, + $0F, $B7, $4B, $1A, $8D, $91, $30, $0B, $00, $00, $39, $D7, $72, $02, $89, $CF, + $29, $FE, $29, $3D, $08, $87, $40, $00, $89, $35, $04, $87, $40, $00, $EB, $21, + $0F, $B7, $43, $1A, $89, $C7, $E8, $19, $FB, $FF, $FF, $89, $C6, $85, $C0, $75, + $10, $A2, $00, $87, $40, $00, $88, $03, $5F, $5E, $5B, $C3, $80, $64, $37, $FC, + $F7, $8D, $4F, $06, $89, $4E, $FC, $31, $C0, $A2, $00, $87, $40, $00, $89, $1E, + $89, $46, $08, $C7, $46, $0C, $01, $00, $00, $00, $89, $73, $10, $8D, $46, $20, + $0F, $B7, $4B, $02, $8D, $14, $01, $89, $53, $08, $01, $F7, $29, $CF, $89, $7B, + $0C, $C6, $03, $00, $89, $70, $FC, $5F, $5E, $5B, $C3, $90, $B8, $00, $01, $00, + $00, $F0, $0F, $B0, $25, $00, $87, $40, $00, $74, $4B, $F3, $90, $80, $3D, $9D, + $85, $40, $00, $00, $75, $E6, $6A, $00, $E8, $9F, $F7, $FF, $FF, $B8, $00, $01, + $00, $00, $F0, $0F, $B0, $25, $00, $87, $40, $00, $74, $2A, $6A, $0A, $E8, $89, + $F7, $FF, $FF, $EB, $C7, $90, $90, $90, $3D, $2C, $0A, $04, $00, $0F, $87, $0D, + $01, $00, $00, $8D, $98, $D3, $00, $00, $00, $81, $E3, $00, $FF, $FF, $FF, $83, + $C3, $30, $84, $C9, $75, $A6, $8D, $93, $D0, $F4, $FF, $FF, $89, $D1, $C1, $EA, + $0D, $C1, $E9, $08, $B8, $FF, $FF, $FF, $FF, $D3, $E0, $23, $04, $95, $10, $87, + $40, $00, $74, $0C, $83, $E1, $E0, $0F, $BC, $C0, $09, $C1, $EB, $5E, $90, $90, + $B8, $FE, $FF, $FF, $FF, $89, $D1, $D3, $E0, $23, $05, $0C, $87, $40, $00, $74, + $17, $0F, $BC, $D0, $8B, $04, $95, $10, $87, $40, $00, $0F, $BC, $C8, $89, $D0, + $C1, $E0, $05, $09, $C1, $EB, $35, $90, $8B, $0D, $08, $87, $40, $00, $29, $D9, + $72, $1A, $A1, $04, $87, $40, $00, $29, $D8, $A3, $04, $87, $40, $00, $89, $0D, + $08, $87, $40, $00, $83, $CB, $02, $89, $58, $FC, $EB, $07, $89, $D8, $E8, $F1, + $F9, $FF, $FF, $C6, $05, $00, $87, $40, $00, $00, $5B, $C3, $56, $57, $8D, $3C, + $CD, $90, $87, $40, $00, $8B, $77, $04, $8B, $46, $04, $89, $47, $04, $89, $38, + $39, $C7, $75, $17, $B8, $FE, $FF, $FF, $FF, $D3, $C0, $21, $04, $95, $10, $87, + $40, $00, $75, $07, $0F, $B3, $15, $0C, $87, $40, $00, $BF, $F0, $FF, $FF, $FF, + $23, $7E, $FC, $89, $FA, $29, $DA, $74, $1F, $8D, $04, $33, $8D, $4A, $03, $89, + $48, $FC, $89, $54, $02, $F8, $81, $FA, $30, $0B, $00, $00, $72, $0F, $E8, $C5, + $F8, $FF, $FF, $EB, $08, $90, $90, $90, $80, $64, $37, $FC, $F7, $8D, $4B, $02, + $89, $4E, $FC, $C6, $05, $00, $87, $40, $00, $00, $89, $F0, $5F, $5E, $5B, $C3, + $5B, $85, $C0, $0F, $89, $2B, $FA, $FF, $FF, $31, $C0, $C3, $8B, $50, $FC, $F6, + $C2, $07, $89, $C1, $53, $8A, $1D, $35, $80, $40, $00, $0F, $85, $E3, $00, $00, + $00, $84, $DB, $8B, $1A, $75, $61, $83, $6A, $0C, $01, $8B, $42, $08, $74, $2C, + $85, $C0, $89, $4A, $08, $8D, $40, $01, $89, $41, $FC, $74, $07, $31, $C0, $88, + $03, $5B, $C3, $90, $8B, $4B, $04, $89, $5A, $14, $89, $4A, $04, $89, $51, $14, + $89, $53, $04, $C6, $03, $00, $31, $C0, $5B, $C3, $90, $90, $85, $C0, $74, $13, + $8B, $42, $14, $8B, $4A, $04, $89, $48, $04, $89, $41, $14, $31, $C0, $39, $53, + $10, $75, $03, $89, $43, $0C, $88, $03, $89, $D0, $8B, $52, $FC, $8A, $1D, $35, + $80, $40, $00, $E9, $85, $00, $00, $00, $B8, $00, $01, $00, $00, $F0, $0F, $B0, + $23, $74, $94, $F3, $90, $80, $3D, $9D, $85, $40, $00, $00, $75, $EA, $51, $52, + $6A, $00, $E8, $C5, $F5, $FF, $FF, $5A, $59, $B8, $00, $01, $00, $00, $F0, $0F, + $B0, $23, $0F, $84, $6F, $FF, $FF, $FF, $51, $52, $6A, $0A, $E8, $AB, $F5, $FF, + $FF, $5A, $59, $EB, $C3, $90, $90, $90, $B8, $00, $01, $00, $00, $F0, $0F, $B0, + $25, $00, $87, $40, $00, $74, $42, $F3, $90, $80, $3D, $9D, $85, $40, $00, $00, + $75, $E6, $6A, $00, $E8, $83, $F5, $FF, $FF, $B8, $00, $01, $00, $00, $F0, $0F, + $B0, $25, $00, $87, $40, $00, $74, $21, $6A, $0A, $E8, $6D, $F5, $FF, $FF, $EB, + $C7, $90, $90, $90, $F6, $C2, $05, $0F, $85, $E7, $00, $00, $00, $83, $E2, $F0, + $84, $DB, $89, $D3, $56, $89, $C6, $75, $AF, $F7, $44, $33, $FC, $01, $00, $00, + $00, $8B, $4C, $33, $FC, $75, $35, $83, $C9, $08, $89, $4C, $33, $FC, $F6, $46, + $FC, $08, $75, $40, $81, $FB, $E0, $FF, $13, $00, $74, $50, $8D, $43, $03, $89, + $46, $FC, $89, $5C, $33, $F8, $89, $F0, $89, $DA, $E8, $59, $F7, $FF, $FF, $C6, + $05, $00, $87, $40, $00, $00, $31, $C0, $5E, $5B, $C3, $90, $8D, $04, $33, $83, + $E1, $F0, $01, $CB, $81, $F9, $30, $0B, $00, $00, $72, $C2, $E8, $F7, $F6, $FF, + $FF, $EB, $BB, $90, $8B, $4E, $F8, $29, $CE, $01, $CB, $81, $F9, $30, $0B, $00, + $00, $72, $B1, $89, $F0, $E8, $DE, $F6, $FF, $FF, $EB, $A8, $81, $3D, $08, $87, + $40, $00, $E0, $FF, $13, $00, $75, $2C, $83, $EE, $10, $8B, $06, $8B, $56, $04, + $89, $50, $04, $89, $02, $C6, $05, $00, $87, $40, $00, $00, $68, $00, $80, $00, + $00, $6A, $00, $56, $E8, $AB, $F4, $FF, $FF, $83, $F8, $01, $19, $C0, $5E, $5B, + $C3, $90, $90, $90, $8D, $9E, $E0, $FF, $13, $00, $E8, $39, $F7, $FF, $FF, $C7, + $43, $FC, $02, $00, $00, $00, $C7, $05, $08, $87, $40, $00, $E0, $FF, $13, $00, + $89, $1D, $04, $87, $40, $00, $C6, $05, $00, $87, $40, $00, $00, $31, $C0, $5E, + $5B, $C3, $90, $90, $5B, $F6, $C2, $03, $0F, $84, $9A, $F8, $FF, $FF, $B8, $FF, + $FF, $FF, $FF, $C3, $8B, $48, $FC, $F6, $C1, $07, $53, $56, $89, $C6, $0F, $85, + $88, $00, $00, $00, $8B, $19, $0F, $B7, $4B, $02, $83, $E9, $04, $39, $D1, $72, + $37, $8D, $1C, $95, $40, $00, $00, $00, $39, $CB, $72, $04, $5E, $5B, $C3, $90, + $89, $D3, $89, $D0, $E8, $4F, $FA, $FF, $FF, $85, $C0, $74, $16, $89, $D9, $89, + $C2, $89, $C3, $89, $F0, $E8, $02, $F6, $FF, $FF, $89, $F0, $E8, $BB, $FD, $FF, + $FF, $89, $D8, $5E, $5B, $C3, $90, $90, $8D, $4C, $09, $20, $57, $89, $D7, $31, + $C0, $29, $D1, $83, $D0, $FF, $21, $C8, $01, $D0, $E8, $19, $FA, $FF, $FF, $85, + $C0, $74, $24, $81, $FF, $2C, $0A, $04, $00, $76, $03, $89, $78, $F8, $0F, $B7, + $4B, $02, $83, $E9, $04, $89, $C2, $89, $C7, $89, $F0, $FF, $53, $1C, $89, $F0, + $E8, $77, $FD, $FF, $FF, $89, $F8, $5F, $5E, $5B, $C3, $90, $F6, $C1, $05, $0F, + $85, $67, $02, $00, $00, $89, $CB, $83, $E1, $F0, $57, $8D, $3C, $01, $83, $E9, + $04, $83, $E3, $0F, $39, $CA, $55, $0F, $87, $0F, $01, $00, $00, $8D, $2C, $12, + $39, $CD, $72, $08, $5D, $5F, $5E, $5B, $C3, $90, $90, $90, $81, $FA, $2C, $0B, + $00, $00, $73, $15, $81, $FA, $CC, $02, $00, $00, $0F, $82, $C4, $00, $00, $00, + $BA, $2C, $0B, $00, $00, $39, $D1, $76, $DB, $8D, $AA, $D3, $00, $00, $00, $81, + $E5, $00, $FF, $FF, $FF, $83, $C5, $30, $83, $C1, $04, $29, $E9, $80, $3D, $35, + $80, $40, $00, $00, $74, $46, $B8, $00, $01, $00, $00, $F0, $0F, $B0, $25, $00, + $87, $40, $00, $74, $2F, $F3, $90, $80, $3D, $9D, $85, $40, $00, $00, $75, $E6, + $51, $6A, $00, $E8, $44, $F3, $FF, $FF, $59, $B8, $00, $01, $00, $00, $F0, $0F, + $B0, $25, $00, $87, $40, $00, $74, $0C, $51, $6A, $0A, $E8, $2C, $F3, $FF, $FF, + $59, $EB, $C3, $90, $BB, $0F, $00, $00, $00, $23, $5E, $FC, $09, $EB, $89, $5E, + $FC, $89, $CB, $8B, $57, $FC, $F6, $C2, $01, $75, $09, $83, $CA, $08, $89, $57, + $FC, $EB, $17, $90, $89, $F8, $83, $E2, $F0, $01, $D3, $01, $D7, $81, $FA, $30, + $0B, $00, $00, $72, $05, $E8, $EE, $F4, $FF, $FF, $89, $5F, $F8, $8D, $43, $03, + $89, $44, $2E, $FC, $81, $FB, $30, $0B, $00, $00, $72, $0A, $8D, $04, $2E, $89, + $DA, $E8, $12, $F5, $FF, $FF, $C6, $05, $00, $87, $40, $00, $00, $89, $F0, $5D, + $5F, $5E, $5B, $C3, $89, $D7, $89, $D0, $E8, $DB, $F8, $FF, $FF, $85, $C0, $74, + $16, $89, $C5, $89, $C2, $89, $F0, $89, $F9, $E8, $8E, $F4, $FF, $FF, $89, $F0, + $E8, $47, $FC, $FF, $FF, $89, $E8, $5D, $5F, $5E, $5B, $C3, $8B, $47, $FC, $A8, + $01, $0F, $84, $ED, $00, $00, $00, $83, $E0, $F0, $8D, $2C, $01, $39, $EA, $0F, + $87, $DF, $00, $00, $00, $80, $3D, $35, $80, $40, $00, $00, $74, $5B, $B8, $00, + $01, $00, $00, $F0, $0F, $B0, $25, $00, $87, $40, $00, $74, $33, $F3, $90, $80, + $3D, $9D, $85, $40, $00, $00, $75, $E6, $51, $52, $6A, $00, $E8, $5B, $F2, $FF, + $FF, $5A, $59, $B8, $00, $01, $00, $00, $F0, $0F, $B0, $25, $00, $87, $40, $00, + $74, $0E, $51, $52, $6A, $0A, $E8, $41, $F2, $FF, $FF, $5A, $59, $EB, $BF, $90, + $BB, $0F, $00, $00, $00, $23, $5E, $FC, $8B, $47, $FC, $A8, $01, $74, $7E, $83, + $E0, $F0, $8D, $2C, $01, $39, $EA, $77, $74, $3D, $30, $0B, $00, $00, $72, $0B, + $89, $F8, $51, $52, $E8, $0F, $F4, $FF, $FF, $5A, $59, $89, $C8, $C1, $E8, $02, + $01, $C8, $31, $FF, $29, $D0, $83, $D7, $FF, $21, $F8, $8D, $84, $02, $D3, $00, + $00, $00, $25, $00, $FF, $FF, $FF, $83, $C0, $30, $8D, $55, $04, $29, $C2, $77, + $0B, $83, $24, $2E, $F7, $83, $C5, $04, $EB, $1E, $90, $90, $89, $54, $2E, $FC, + $8D, $7A, $03, $89, $7C, $30, $FC, $89, $C5, $81, $FA, $30, $0B, $00, $00, $72, + $07, $01, $F0, $E8, $00, $F4, $FF, $FF, $09, $DD, $89, $6E, $FC, $C6, $05, $00, + $87, $40, $00, $00, $89, $F0, $5D, $5F, $5E, $5B, $C3, $90, $90, $C6, $05, $00, + $87, $40, $00, $00, $89, $C8, $C1, $E8, $02, $01, $C8, $31, $FF, $29, $D0, $83, + $D7, $FF, $21, $F8, $01, $D0, $89, $C5, $89, $CF, $52, $E8, $A8, $F7, $FF, $FF, + $5A, $85, $C0, $74, $D1, $81, $FD, $2C, $0A, $04, $00, $76, $03, $89, $50, $F8, + $89, $C5, $89, $C2, $89, $F0, $89, $F9, $E8, $1F, $F3, $FF, $FF, $89, $F0, $E8, + $08, $FB, $FF, $FF, $89, $E8, $5D, $5F, $5E, $5B, $C3, $90, $5E, $5B, $F6, $C1, + $03, $0F, $84, $25, $F6, $FF, $FF, $31, $C0, $C3, $8B, $C0, $53, $8D, $58, $FF, + $83, $E3, $FC, $E8, $60, $F7, $FF, $FF, $83, $F8, $01, $19, $C9, $8D, $14, $03, + $09, $CB, $81, $FB, $2C, $0A, $04, $00, $73, $10, $F7, $DB, $D9, $EE, $DD, $14, + $13, $83, $C3, $08, $78, $F8, $89, $0A, $DD, $C0, $5B, $C3, $8B, $C8, $8B, $D1, + $83, $EA, $04, $8B, $12, $83, $E2, $F0, $03, $D1, $8B, $C2, $8B, $D0, $83, $EA, + $04, $8B, $12, $83, $E2, $F0, $85, $D2, $75, $02, $33, $C0, $C3, $8D, $40, $00, + $83, $3D, $08, $87, $40, $00, $00, $74, $1A, $8B, $15, $04, $87, $40, $00, $3B, + $D0, $72, $10, $8B, $D0, $81, $C2, $F0, $FF, $13, $00, $3B, $15, $04, $87, $40, + $00, $73, $04, $83, $C0, $10, $C3, $81, $3D, $08, $87, $40, $00, $E0, $FF, $13, + $00, $74, $07, $A1, $04, $87, $40, $00, $EB, $02, $33, $C0, $C3, $8D, $40, $00, + $53, $56, $8B, $D8, $83, $C3, $20, $89, $1A, $8B, $10, $3B, $42, $10, $75, $08, + $8B, $5A, $08, $3B, $5A, $0C, $76, $19, $8B, $F0, $8B, $DE, $83, $EB, $04, $8B, + $1B, $83, $E3, $F0, $03, $DE, $0F, $B7, $42, $02, $2B, $D8, $89, $19, $5E, $5B, + $C3, $8B, $42, $08, $48, $89, $01, $5E, $5B, $C3, $8B, $C0, $57, $89, $D7, $83, + $C0, $01, $BA, $41, $5F, $70, $89, $F7, $E2, $C1, $E8, $1E, $89, $D1, $81, $E2, + $FF, $FF, $FF, $1F, $C1, $E9, $1D, $8D, $14, $92, $01, $C2, $89, $C8, $83, $C8, + $30, $88, $07, $89, $D0, $83, $F9, $01, $83, $DF, $FF, $C1, $E8, $1C, $81, $E2, + $FF, $FF, $FF, $0F, $09, $C1, $83, $C8, $30, $88, $07, $8D, $04, $92, $8D, $14, + $92, $83, $F9, $01, $83, $DF, $FF, $C1, $E8, $1B, $81, $E2, $FF, $FF, $FF, $07, + $09, $C1, $83, $C8, $30, $88, $07, $8D, $04, $92, $8D, $14, $92, $83, $F9, $01, + $83, $DF, $FF, $C1, $E8, $1A, $81, $E2, $FF, $FF, $FF, $03, $09, $C1, $83, $C8, + $30, $88, $07, $8D, $04, $92, $8D, $14, $92, $83, $F9, $01, $83, $DF, $FF, $C1, + $E8, $19, $81, $E2, $FF, $FF, $FF, $01, $09, $C1, $83, $C8, $30, $88, $07, $8D, + $04, $92, $8D, $14, $92, $83, $F9, $01, $83, $DF, $FF, $C1, $E8, $18, $81, $E2, + $FF, $FF, $FF, $00, $09, $C1, $83, $C8, $30, $88, $07, $8D, $04, $92, $8D, $14, + $92, $83, $F9, $01, $83, $DF, $FF, $C1, $E8, $17, $81, $E2, $FF, $FF, $7F, $00, + $09, $C1, $83, $C8, $30, $88, $07, $8D, $04, $92, $8D, $14, $92, $83, $F9, $01, + $83, $DF, $FF, $C1, $E8, $16, $81, $E2, $FF, $FF, $3F, $00, $09, $C1, $83, $C8, + $30, $88, $07, $8D, $04, $92, $8D, $14, $92, $83, $F9, $01, $83, $DF, $FF, $C1, + $E8, $15, $81, $E2, $FF, $FF, $1F, $00, $09, $C1, $83, $C8, $30, $88, $07, $8D, + $04, $92, $83, $F9, $01, $83, $DF, $FF, $C1, $E8, $14, $83, $C8, $30, $88, $07, + $8D, $47, $01, $5F, $C3, $8D, $40, $00, $53, $56, $8B, $F1, $8B, $DA, $8B, $D3, + $8B, $CE, $E8, $45, $0B, $00, $00, $8B, $C3, $03, $C6, $5E, $5B, $C3, $8B, $C0, + $55, $8B, $EC, $53, $8B, $D0, $81, $FA, $FF, $FF, $00, $00, $76, $68, $F6, $C2, + $03, $75, $63, $8B, $55, $08, $8B, $52, $E4, $8B, $C8, $3B, $D1, $77, $10, $8B, + $5D, $08, $8B, $5D, $08, $03, $53, $F0, $83, $C1, $04, $3B, $D1, $73, $17, $8B, + $55, $08, $33, $C9, $89, $4A, $F0, $6A, $1C, $8B, $55, $08, $83, $C2, $E4, $52, + $50, $E8, $C2, $EE, $FF, $FF, $8B, $45, $08, $83, $78, $F0, $04, $72, $1E, $8B, + $45, $08, $81, $78, $F4, $00, $10, $00, $00, $75, $12, $8B, $45, $08, $F6, $40, + $F8, $F6, $74, $09, $8B, $45, $08, $F6, $40, $F9, $01, $74, $04, $33, $C0, $EB, + $07, $B0, $01, $5B, $5D, $C3, $33, $C0, $5B, $5D, $C3, $90, $55, $8B, $EC, $53, + $56, $57, $8B, $FA, $8B, $D8, $81, $FF, $E8, $03, $00, $00, $7D, $65, $8B, $45, + $08, $50, $8B, $C3, $83, $C0, $B4, $E8, $64, $FF, $FF, $FF, $59, $84, $C0, $74, + $52, $8B, $45, $08, $50, $8B, $C3, $83, $C0, $DC, $E8, $51, $FF, $FF, $FF, $59, + $84, $C0, $74, $3F, $8B, $C3, $83, $C0, $DC, $8B, $30, $8B, $C3, $83, $C0, $B4, + $3B, $18, $75, $27, $85, $F6, $74, $27, $8B, $45, $08, $50, $8B, $C6, $E8, $2D, + $FF, $FF, $FF, $59, $84, $C0, $74, $13, $8B, $45, $08, $50, $8D, $57, $01, $8B, + $06, $E8, $96, $FF, $FF, $FF, $59, $84, $C0, $75, $04, $33, $C0, $EB, $06, $B0, + $01, $EB, $02, $33, $C0, $5F, $5E, $5B, $5D, $C3, $8B, $C0, $55, $8B, $EC, $83, + $C4, $E4, $53, $8B, $18, $33, $C0, $89, $45, $F0, $55, $33, $D2, $8B, $C3, $E8, + $68, $FF, $FF, $FF, $59, $84, $C0, $75, $02, $33, $DB, $8B, $C3, $5B, $8B, $E5, + $5D, $C3, $8B, $C0, $80, $3D, $35, $80, $40, $00, $00, $74, $3D, $EB, $29, $80, + $3D, $9D, $85, $40, $00, $00, $75, $20, $6A, $00, $E8, $0D, $EE, $FF, $FF, $B9, + $A8, $A7, $40, $00, $B2, $01, $33, $C0, $E8, $6F, $EE, $FF, $FF, $84, $C0, $74, + $19, $6A, $0A, $E8, $F4, $ED, $FF, $FF, $B9, $A8, $A7, $40, $00, $B2, $01, $33, + $C0, $E8, $56, $EE, $FF, $FF, $84, $C0, $75, $C5, $83, $3D, $A4, $A7, $40, $00, + $00, $75, $18, $6A, $04, $68, $00, $10, $00, $00, $68, $00, $00, $01, $00, $6A, + $00, $E8, $B6, $ED, $FF, $FF, $A3, $A4, $A7, $40, $00, $83, $3D, $A4, $A7, $40, + $00, $00, $0F, $95, $C0, $C3, $8B, $C0, $53, $8B, $D8, $E8, $84, $FF, $FF, $FF, + $84, $C0, $74, $29, $A1, $A4, $A7, $40, $00, $81, $38, $FE, $3F, $00, $00, $7D, + $1C, $A1, $A4, $A7, $40, $00, $8B, $00, $8B, $15, $A4, $A7, $40, $00, $89, $5C, + $82, $04, $A1, $A4, $A7, $40, $00, $FF, $00, $B0, $01, $EB, $02, $33, $C0, $C6, + $05, $A8, $A7, $40, $00, $00, $5B, $C3, $53, $56, $57, $8B, $F0, $BF, $A4, $A7, + $40, $00, $33, $DB, $83, $3F, $00, $74, $3F, $E8, $36, $FF, $FF, $FF, $84, $C0, + $74, $36, $8B, $07, $8B, $10, $4A, $85, $D2, $7C, $26, $42, $33, $C0, $8B, $0F, + $3B, $74, $81, $04, $75, $17, $8B, $17, $8B, $12, $8B, $0F, $8B, $14, $91, $8B, + $0F, $89, $54, $81, $04, $8B, $17, $FF, $0A, $B3, $01, $EB, $04, $40, $4A, $75, + $DD, $C6, $05, $A8, $A7, $40, $00, $00, $8B, $C3, $5F, $5E, $5B, $C3, $8B, $C0, + $55, $8B, $EC, $83, $C4, $E0, $53, $56, $57, $89, $45, $FC, $8B, $45, $FC, $8B, + $00, $81, $E8, $28, $70, $40, $00, $C1, $E8, $05, $C1, $E0, $08, $8B, $55, $08, + $8D, $B4, $C2, $00, $48, $FE, $FF, $8D, $4D, $E4, $8D, $55, $E8, $8B, $45, $FC, + $E8, $2B, $FC, $FF, $FF, $E9, $FD, $00, $00, $00, $8B, $45, $E8, $83, $E8, $04, + $F6, $00, $01, $0F, $85, $E2, $00, $00, $00, $8B, $45, $E8, $E8, $57, $FF, $FF, + $FF, $84, $C0, $0F, $85, $D2, $00, $00, $00, $8B, $45, $08, $C6, $80, $FF, $47, + $FE, $FF, $00, $33, $DB, $8B, $45, $E8, $E8, $5F, $FE, $FF, $FF, $8B, $F8, $85, + $FF, $0F, $85, $88, $00, $00, $00, $8B, $45, $E8, $81, $38, $00, $01, $00, $00, + $0F, $83, $A1, $00, $00, $00, $8B, $45, $E8, $83, $C0, $04, $8B, $00, $89, $45, + $F4, $83, $7D, $F4, $00, $0F, $8E, $8C, $00, $00, $00, $8B, $45, $FC, $8B, $00, + $0F, $B7, $40, $02, $83, $E8, $0D, $3B, $45, $F4, $7C, $7B, $8B, $45, $E8, $83, + $C0, $08, $89, $45, $F0, $C6, $45, $EF, $01, $8B, $45, $F4, $85, $C0, $7E, $2A, + $89, $45, $E0, $80, $7D, $EF, $00, $74, $10, $8B, $45, $F0, $80, $38, $20, $72, + $08, $8B, $45, $F0, $80, $38, $80, $72, $04, $33, $C0, $EB, $02, $B0, $01, $88, + $45, $EF, $FF, $45, $F0, $FF, $4D, $E0, $75, $D9, $80, $7D, $EF, $00, $74, $37, + $8B, $45, $F0, $80, $38, $00, $75, $2F, $BB, $01, $00, $00, $00, $EB, $28, $BB, + $02, $00, $00, $00, $3B, $3C, $DE, $74, $0F, $83, $3C, $DE, $00, $74, $09, $43, + $81, $FB, $FF, $00, $00, $00, $7E, $EC, $81, $FB, $FF, $00, $00, $00, $7F, $05, + $89, $3C, $DE, $EB, $02, $33, $DB, $FF, $44, $DE, $04, $8B, $45, $FC, $8B, $00, + $0F, $B7, $40, $02, $01, $45, $E8, $8B, $45, $E8, $3B, $45, $E4, $0F, $86, $F7, + $FE, $FF, $FF, $5F, $5E, $5B, $8B, $E5, $5D, $C3, $8B, $C0, $55, $8B, $EC, $50, + $B8, $27, $00, $00, $00, $81, $C4, $04, $F0, $FF, $FF, $50, $48, $75, $F6, $8B, + $45, $FC, $81, $C4, $DC, $F6, $FF, $FF, $53, $56, $57, $8D, $85, $00, $48, $FE, + $FF, $33, $C9, $BA, $00, $B8, $01, $00, $E8, $E7, $08, $00, $00, $8D, $85, $D8, + $07, $FE, $FF, $33, $C9, $BA, $00, $40, $00, $00, $E8, $D5, $08, $00, $00, $33, + $C0, $89, $85, $F8, $47, $FE, $FF, $C6, $85, $FF, $47, $FE, $FF, $01, $8B, $3D, + $F4, $86, $40, $00, $E9, $82, $00, $00, $00, $8B, $C7, $E8, $70, $FA, $FF, $FF, + $8B, $D8, $85, $DB, $74, $72, $8B, $C3, $83, $E8, $04, $8B, $30, $F7, $C6, $01, + $00, $00, $00, $75, $56, $F7, $C6, $04, $00, $00, $00, $74, $0B, $55, $8B, $C3, + $E8, $2B, $FE, $FF, $FF, $59, $EB, $43, $81, $BD, $F8, $47, $FE, $FF, $00, $10, + $00, $00, $7D, $37, $83, $E6, $F0, $83, $EE, $04, $89, $B5, $EC, $47, $FE, $FF, + $8B, $C3, $E8, $B1, $FD, $FF, $FF, $84, $C0, $75, $20, $C6, $85, $FF, $47, $FE, + $FF, $00, $8B, $85, $F8, $47, $FE, $FF, $8B, $95, $EC, $47, $FE, $FF, $89, $94, + $85, $D8, $07, $FE, $FF, $FF, $85, $F8, $47, $FE, $FF, $8B, $C3, $E8, $DA, $F9, + $FF, $FF, $8B, $D8, $85, $DB, $75, $8E, $8B, $7F, $04, $81, $FF, $F0, $86, $40, + $00, $0F, $85, $72, $FF, $FF, $FF, $8B, $1D, $98, $A7, $40, $00, $EB, $37, $8B, + $C3, $83, $C0, $10, $E8, $5F, $FD, $FF, $FF, $84, $C0, $75, $26, $C6, $85, $FF, + $47, $FE, $FF, $00, $8B, $73, $0C, $83, $E6, $F0, $83, $EE, $04, $83, $EE, $10, + $8B, $85, $F8, $47, $FE, $FF, $89, $B4, $85, $D8, $07, $FE, $FF, $FF, $85, $F8, + $47, $FE, $FF, $8B, $5B, $04, $81, $FB, $94, $A7, $40, $00, $74, $0C, $81, $BD, + $F8, $47, $FE, $FF, $00, $10, $00, $00, $7C, $B5, $80, $BD, $FF, $47, $FE, $FF, + $00, $0F, $85, $58, $02, $00, $00, $C6, $85, $F7, $47, $FE, $FF, $00, $33, $C0, + $89, $85, $E8, $47, $FE, $FF, $8D, $95, $D8, $87, $FD, $FF, $B8, $88, $28, $40, + $00, $B9, $28, $00, $00, $00, $E8, $FD, $FA, $FF, $FF, $8B, $D8, $C7, $85, $F0, + $47, $FE, $FF, $37, $00, $00, $00, $C7, $85, $DC, $47, $FE, $FF, $2A, $70, $40, + $00, $8D, $85, $FC, $4F, $FE, $FF, $89, $85, $D8, $47, $FE, $FF, $8B, $85, $DC, + $47, $FE, $FF, $0F, $B7, $00, $83, $E8, $04, $89, $85, $E4, $47, $FE, $FF, $C6, + $85, $F6, $47, $FE, $FF, $00, $BF, $FF, $00, $00, $00, $8B, $85, $D8, $47, $FE, + $FF, $8B, $F0, $8D, $85, $D7, $FF, $FD, $FF, $3B, $D8, $0F, $87, $09, $01, $00, + $00, $83, $3E, $00, $0F, $86, $F3, $00, $00, $00, $80, $BD, $F7, $47, $FE, $FF, + $00, $75, $1A, $B8, $B4, $28, $40, $00, $B9, $27, $00, $00, $00, $8B, $D3, $E8, + $84, $FA, $FF, $FF, $8B, $D8, $C6, $85, $F7, $47, $FE, $FF, $01, $80, $BD, $F6, + $47, $FE, $FF, $00, $75, $4F, $C6, $03, $0D, $43, $C6, $03, $0A, $43, $8B, $85, + $E8, $47, $FE, $FF, $40, $8B, $D3, $E8, $40, $F9, $FF, $FF, $8B, $D8, $C6, $03, + $20, $43, $C6, $03, $2D, $43, $C6, $03, $20, $43, $8B, $D3, $8B, $85, $E4, $47, + $FE, $FF, $E8, $25, $F9, $FF, $FF, $8B, $D8, $B8, $DC, $28, $40, $00, $B9, $08, + $00, $00, $00, $8B, $D3, $E8, $2E, $FA, $FF, $FF, $8B, $D8, $C6, $85, $F6, $47, + $FE, $FF, $01, $EB, $08, $C6, $03, $2C, $43, $C6, $03, $20, $43, $8B, $C7, $83, + $E8, $01, $72, $04, $74, $17, $EB, $2A, $B8, $E8, $28, $40, $00, $B9, $07, $00, + $00, $00, $8B, $D3, $E8, $FF, $F9, $FF, $FF, $8B, $D8, $EB, $39, $B8, $F0, $28, + $40, $00, $B9, $06, $00, $00, $00, $8B, $D3, $E8, $EA, $F9, $FF, $FF, $8B, $D8, + $EB, $24, $8D, $95, $D8, $86, $FD, $FF, $8B, $46, $FC, $E8, $38, $08, $00, $00, + $0F, $B6, $8D, $D8, $86, $FD, $FF, $8D, $85, $D9, $86, $FD, $FF, $8B, $D3, $E8, + $C4, $F9, $FF, $FF, $8B, $D8, $C6, $03, $20, $43, $C6, $03, $78, $43, $C6, $03, + $20, $43, $8B, $06, $8B, $D3, $E8, $91, $F8, $FF, $FF, $8B, $D8, $4F, $83, $EE, + $08, $83, $FF, $FF, $0F, $85, $E9, $FE, $FF, $FF, $8B, $85, $E4, $47, $FE, $FF, + $89, $85, $E8, $47, $FE, $FF, $81, $85, $D8, $47, $FE, $FF, $00, $08, $00, $00, + $83, $85, $DC, $47, $FE, $FF, $20, $FF, $8D, $F0, $47, $FE, $FF, $0F, $85, $9A, + $FE, $FF, $FF, $83, $BD, $F8, $47, $FE, $FF, $00, $7E, $7A, $80, $BD, $F7, $47, + $FE, $FF, $00, $74, $10, $C6, $03, $0D, $43, $C6, $03, $0A, $43, $C6, $03, $0D, + $43, $C6, $03, $0A, $43, $B8, $F8, $28, $40, $00, $B9, $3C, $00, $00, $00, $8B, + $D3, $E8, $42, $F9, $FF, $FF, $8B, $D8, $8B, $BD, $F8, $47, $FE, $FF, $4F, $85, + $FF, $72, $43, $47, $C7, $85, $E0, $47, $FE, $FF, $00, $00, $00, $00, $8D, $B5, + $D8, $07, $FE, $FF, $83, $BD, $E0, $47, $FE, $FF, $00, $74, $08, $C6, $03, $2C, + $43, $C6, $03, $20, $43, $8B, $06, $8B, $D3, $E8, $EE, $F7, $FF, $FF, $8B, $D8, + $8D, $85, $D7, $FF, $FD, $FF, $3B, $D8, $77, $0C, $FF, $85, $E0, $47, $FE, $FF, + $83, $C6, $04, $4F, $75, $CE, $B8, $38, $29, $40, $00, $B9, $03, $00, $00, $00, + $8B, $D3, $E8, $E1, $F8, $FF, $FF, $68, $10, $20, $00, $00, $68, $3C, $29, $40, + $00, $8D, $85, $D8, $87, $FD, $FF, $50, $6A, $00, $E8, $B1, $E7, $FF, $FF, $5F, + $5E, $5B, $8B, $E5, $5D, $C3, $00, $00, $41, $6E, $20, $75, $6E, $65, $78, $70, + $65, $63, $74, $65, $64, $20, $6D, $65, $6D, $6F, $72, $79, $20, $6C, $65, $61, + $6B, $20, $68, $61, $73, $20, $6F, $63, $63, $75, $72, $72, $65, $64, $2E, $20, + $00, $00, $00, $00, $54, $68, $65, $20, $75, $6E, $65, $78, $70, $65, $63, $74, + $65, $64, $20, $73, $6D, $61, $6C, $6C, $20, $62, $6C, $6F, $63, $6B, $20, $6C, + $65, $61, $6B, $73, $20, $61, $72, $65, $3A, $0D, $0A, $00, $20, $62, $79, $74, + $65, $73, $3A, $20, $00, $00, $00, $00, $55, $6E, $6B, $6E, $6F, $77, $6E, $00, + $53, $74, $72, $69, $6E, $67, $00, $00, $54, $68, $65, $20, $73, $69, $7A, $65, + $73, $20, $6F, $66, $20, $75, $6E, $65, $78, $70, $65, $63, $74, $65, $64, $20, + $6C, $65, $61, $6B, $65, $64, $20, $6D, $65, $64, $69, $75, $6D, $20, $61, $6E, + $64, $20, $6C, $61, $72, $67, $65, $20, $62, $6C, $6F, $63, $6B, $73, $20, $61, + $72, $65, $3A, $20, $00, $00, $00, $00, $0D, $0A, $00, $00, $55, $6E, $65, $78, + $70, $65, $63, $74, $65, $64, $20, $4D, $65, $6D, $6F, $72, $79, $20, $4C, $65, + $61, $6B, $00, $00, $56, $57, $33, $C0, $33, $F6, $BA, $2A, $70, $40, $00, $80, + $3D, $EE, $86, $40, $00, $00, $74, $05, $F6, $02, $0F, $75, $1D, $0F, $B7, $3A, + $C1, $EF, $03, $8B, $CE, $03, $C9, $03, $C9, $3B, $F8, $76, $0B, $88, $88, $A8, + $85, $40, $00, $40, $3B, $F8, $77, $F5, $8B, $C7, $46, $83, $C2, $20, $83, $FE, + $37, $75, $CC, $5F, $5E, $C3, $8B, $C0, $53, $56, $57, $BE, $37, $00, $00, $00, + $BB, $44, $70, $40, $00, $83, $3B, $00, $75, $06, $C7, $03, $5C, $12, $40, $00, + $8D, $43, $E4, $89, $43, $F8, $8D, $43, $E4, $89, $43, $E8, $33, $C0, $89, $43, + $F0, $C7, $43, $EC, $01, $00, $00, $00, $0F, $B7, $43, $E6, $03, $C0, $03, $C0, + $8D, $04, $40, $05, $EF, $00, $00, $00, $25, $00, $FF, $FF, $FF, $83, $C0, $30, + $3D, $30, $0B, $00, $00, $73, $05, $B8, $30, $0B, $00, $00, $05, $D0, $04, $00, + $00, $C1, $E8, $0D, $83, $F8, $07, $76, $05, $B8, $07, $00, $00, $00, $8B, $C8, + $B2, $FF, $D2, $E2, $88, $53, $E5, $C1, $E0, $0D, $66, $05, $30, $0B, $66, $89, + $43, $FC, $0F, $B7, $7B, $E6, $0F, $B7, $C7, $8B, $C8, $C1, $E1, $04, $8D, $0C, + $49, $81, $C1, $EF, $00, $00, $00, $81, $E1, $00, $FF, $FF, $FF, $83, $C1, $30, + $81, $F9, $30, $73, $00, $00, $73, $05, $B9, $30, $73, $00, $00, $81, $F9, $30, + $FF, $00, $00, $76, $05, $B9, $30, $FF, $00, $00, $8B, $C1, $83, $E8, $20, $0F, + $B7, $D7, $8B, $CA, $33, $D2, $F7, $F1, $66, $F7, $EF, $66, $05, $EF, $00, $66, + $25, $00, $FF, $66, $83, $C0, $30, $66, $89, $43, $FE, $83, $C3, $20, $4E, $0F, + $85, $30, $FF, $FF, $FF, $E8, $DA, $FE, $FF, $FF, $C7, $05, $F0, $86, $40, $00, + $F0, $86, $40, $00, $C7, $05, $F4, $86, $40, $00, $F0, $86, $40, $00, $BE, $00, + $04, $00, $00, $BA, $90, $87, $40, $00, $8B, $C2, $89, $00, $89, $40, $04, $83, + $C2, $08, $4E, $75, $F3, $C7, $05, $94, $A7, $40, $00, $94, $A7, $40, $00, $C7, + $05, $98, $A7, $40, $00, $94, $A7, $40, $00, $5F, $5E, $5B, $C3, $8D, $40, $00, + $53, $56, $57, $55, $BB, $F0, $86, $40, $00, $BE, $94, $A7, $40, $00, $8B, $7B, + $04, $EB, $12, $8B, $6F, $04, $68, $00, $80, $00, $00, $6A, $00, $57, $E8, $C1, + $E5, $FF, $FF, $8B, $FD, $3B, $FB, $75, $EA, $BA, $37, $00, $00, $00, $B8, $28, + $70, $40, $00, $8B, $C8, $89, $48, $14, $8B, $C8, $89, $48, $04, $C7, $40, $08, + $01, $00, $00, $00, $33, $C9, $89, $48, $0C, $83, $C0, $20, $4A, $75, $E4, $89, + $1B, $89, $5B, $04, $BA, $00, $04, $00, $00, $B9, $90, $87, $40, $00, $8B, $C1, + $89, $00, $89, $40, $04, $83, $C1, $08, $4A, $75, $F3, $8B, $5E, $04, $EB, $12, + $8B, $7B, $04, $68, $00, $80, $00, $00, $6A, $00, $53, $E8, $64, $E5, $FF, $FF, + $8B, $DF, $3B, $DE, $75, $EA, $89, $36, $89, $76, $04, $5D, $5F, $5E, $5B, $C3, + $83, $3D, $AC, $A7, $40, $00, $00, $74, $12, $A1, $AC, $A7, $40, $00, $50, $E8, + $50, $E5, $FF, $FF, $33, $C0, $A3, $AC, $A7, $40, $00, $80, $3D, $9C, $85, $40, + $00, $00, $74, $05, $E8, $63, $F9, $FF, $FF, $83, $3D, $A4, $A7, $40, $00, $00, + $74, $19, $68, $00, $80, $00, $00, $6A, $00, $A1, $A4, $A7, $40, $00, $50, $E8, + $10, $E5, $FF, $FF, $33, $C0, $A3, $A4, $A7, $40, $00, $E8, $20, $FF, $FF, $FF, + $C3, $8D, $40, $00, $85, $C0, $7E, $13, $FF, $15, $08, $77, $40, $00, $85, $C0, + $74, $02, $F3, $C3, $B0, $01, $E9, $C5, $00, $00, $00, $31, $C0, $F3, $C3, $90, + $85, $C0, $74, $0A, $FF, $15, $0C, $77, $40, $00, $85, $C0, $75, $02, $F3, $C3, + $B0, $02, $E9, $A9, $00, $00, $00, $C3, $8B, $08, $85, $C9, $74, $32, $85, $D2, + $74, $18, $50, $89, $C8, $FF, $15, $10, $77, $40, $00, $59, $09, $C0, $74, $19, + $89, $01, $C3, $B0, $02, $E9, $86, $00, $00, $00, $89, $10, $89, $C8, $FF, $15, + $0C, $77, $40, $00, $09, $C0, $75, $EB, $C3, $B0, $01, $E9, $70, $00, $00, $00, + $85, $D2, $74, $10, $50, $89, $D0, $FF, $15, $08, $77, $40, $00, $59, $09, $C0, + $74, $E7, $89, $01, $C3, $8D, $40, $00, $89, $15, $04, $70, $40, $00, $E8, $95, + $0C, $00, $00, $C3, $53, $56, $8B, $F2, $8B, $D8, $80, $E3, $7F, $83, $3D, $08, + $80, $40, $00, $00, $74, $0A, $8B, $D6, $8B, $C3, $FF, $15, $08, $80, $40, $00, + $84, $DB, $75, $0D, $E8, $33, $13, $00, $00, $8B, $98, $04, $00, $00, $00, $EB, + $0F, $80, $FB, $18, $77, $0A, $0F, $B6, $C3, $0F, $B6, $98, $20, $77, $40, $00, + $0F, $B6, $C3, $8B, $D6, $E8, $AE, $FF, $FF, $FF, $5E, $5B, $C3, $8D, $40, $00, + $83, $E0, $7F, $8B, $14, $24, $E9, $A9, $FF, $FF, $FF, $C3, $53, $8B, $D8, $E8, + $F8, $12, $00, $00, $89, $98, $04, $00, $00, $00, $5B, $C3, $39, $D0, $74, $31, + $83, $F9, $20, $77, $7C, $83, $E9, $08, $7F, $07, $FF, $24, $8D, $F4, $2C, $40, + $00, $DF, $2C, $01, $DF, $28, $83, $F9, $08, $7E, $11, $DF, $68, $08, $83, $F9, + $10, $7E, $06, $DF, $68, $10, $DF, $7A, $10, $DF, $7A, $08, $DF, $3A, $DF, $3C, + $11, $C3, $90, $90, $D1, $2C, $40, $00, $52, $2D, $40, $00, $58, $2D, $40, $00, + $5F, $2D, $40, $00, $6C, $2D, $40, $00, $71, $2D, $40, $00, $7C, $2D, $40, $00, + $89, $2D, $40, $00, $94, $2D, $40, $00, $52, $DF, $28, $8D, $44, $01, $F8, $8D, + $4C, $0A, $F8, $DF, $28, $51, $F7, $D9, $83, $E2, $F8, $8D, $4C, $0A, $08, $5A, + $DF, $2C, $01, $DF, $3C, $11, $83, $C1, $08, $7C, $F5, $DF, $3A, $5A, $DF, $3A, + $C3, $7E, $2E, $39, $D0, $77, $D1, $29, $CA, $39, $D0, $8D, $14, $11, $76, $C8, + $83, $E9, $08, $51, $DF, $2C, $01, $DF, $28, $01, $D1, $83, $E1, $F8, $29, $D1, + $DF, $2C, $01, $DF, $3C, $11, $83, $E9, $08, $7F, $F5, $59, $DF, $3A, $DF, $3C, + $11, $C3, $0F, $B6, $08, $88, $0A, $C3, $0F, $B7, $08, $66, $89, $0A, $C3, $66, + $8B, $08, $8A, $40, $02, $66, $89, $0A, $88, $42, $02, $C3, $8B, $08, $89, $0A, + $C3, $8B, $08, $8A, $40, $04, $89, $0A, $88, $42, $04, $C3, $8B, $08, $66, $8B, + $40, $04, $89, $0A, $66, $89, $42, $04, $C3, $8B, $08, $8B, $40, $03, $89, $0A, + $89, $42, $03, $C3, $DF, $28, $DF, $3A, $C3, $8D, $40, $00, $53, $56, $8B, $D8, + $33, $F6, $0F, $B7, $43, $04, $66, $3D, $B1, $D7, $72, $2F, $66, $3D, $B3, $D7, + $77, $29, $66, $25, $B2, $D7, $66, $3D, $B2, $D7, $75, $07, $8B, $C3, $FF, $53, + $1C, $8B, $F0, $85, $F6, $75, $07, $8B, $C3, $FF, $53, $24, $8B, $F0, $85, $F6, + $74, $1B, $8B, $C6, $E8, $B3, $FE, $FF, $FF, $EB, $12, $81, $FB, $38, $80, $40, + $00, $74, $0A, $B8, $67, $00, $00, $00, $E8, $9F, $FE, $FF, $FF, $8B, $C6, $5E, + $5B, $C3, $8B, $C0, $83, $FA, $20, $88, $CD, $7C, $3D, $66, $89, $08, $66, $89, + $48, $02, $66, $89, $48, $04, $66, $89, $48, $06, $83, $EA, $10, $DD, $00, $DD, + $14, $02, $DD, $54, $02, $08, $89, $C1, $83, $E1, $07, $83, $E9, $08, $29, $C8, + $01, $CA, $01, $D0, $F7, $DA, $DD, $14, $02, $DD, $54, $02, $08, $83, $C2, $10, + $7C, $F4, $DD, $C0, $C3, $90, $90, $90, $85, $D2, $7E, $50, $88, $4C, $02, $FF, + $83, $E2, $FE, $F7, $DA, $8D, $14, $55, $8C, $2E, $40, $00, $FF, $E2, $90, $90, + $66, $89, $48, $1C, $66, $89, $48, $1A, $66, $89, $48, $18, $66, $89, $48, $16, + $66, $89, $48, $14, $66, $89, $48, $12, $66, $89, $48, $10, $66, $89, $48, $0E, + $66, $89, $48, $0C, $66, $89, $48, $0A, $66, $89, $48, $08, $66, $89, $48, $06, + $66, $89, $48, $04, $66, $89, $48, $02, $66, $89, $08, $C3, $C3, $8D, $40, $00, + $FF, $25, $84, $B1, $40, $00, $8B, $C0, $53, $33, $DB, $6A, $00, $E8, $EE, $FF, + $FF, $FF, $83, $F8, $07, $75, $1C, $6A, $01, $E8, $E2, $FF, $FF, $FF, $25, $00, + $FF, $00, $00, $3D, $00, $0D, $00, $00, $74, $07, $3D, $00, $04, $00, $00, $75, + $02, $B3, $01, $8B, $C3, $5B, $C3, $90, $55, $8B, $EC, $83, $C4, $F4, $0F, $B7, + $05, $0C, $70, $40, $00, $89, $45, $F8, $8D, $45, $FC, $50, $6A, $01, $6A, $00, + $68, $60, $2F, $40, $00, $68, $02, $00, $00, $80, $E8, $69, $E1, $FF, $FF, $85, + $C0, $75, $4D, $33, $C0, $55, $68, $39, $2F, $40, $00, $64, $FF, $30, $64, $89, + $20, $C7, $45, $F4, $04, $00, $00, $00, $8D, $45, $F4, $50, $8D, $45, $F8, $50, + $6A, $00, $6A, $00, $68, $7C, $2F, $40, $00, $8B, $45, $FC, $50, $E8, $3E, $E1, + $FF, $FF, $33, $C0, $5A, $59, $59, $64, $89, $10, $68, $40, $2F, $40, $00, $8B, + $45, $FC, $50, $E8, $18, $E1, $FF, $FF, $C3, $E9, $F6, $02, $00, $00, $EB, $EF, + $0F, $B7, $05, $0C, $70, $40, $00, $66, $25, $C0, $FF, $0F, $B7, $55, $F8, $66, + $83, $E2, $3F, $66, $0B, $C2, $66, $A3, $0C, $70, $40, $00, $8B, $E5, $5D, $C3, + $53, $4F, $46, $54, $57, $41, $52, $45, $5C, $42, $6F, $72, $6C, $61, $6E, $64, + $5C, $44, $65, $6C, $70, $68, $69, $5C, $52, $54, $4C, $00, $46, $50, $55, $4D, + $61, $73, $6B, $56, $61, $6C, $75, $65, $00, $00, $00, $00, $DB, $E3, $9B, $D9, + $2D, $0C, $70, $40, $00, $C3, $8B, $C0, $B0, $05, $E9, $E1, $FC, $FF, $FF, $C3, + $8B, $00, $89, $C2, $8B, $C2, $C3, $90, $56, $57, $89, $D7, $8B, $70, $D4, $31, + $C9, $8A, $0E, $41, $F3, $A4, $5F, $5E, $C3, $8D, $40, $00, $85, $C0, $74, $07, + $B2, $01, $8B, $08, $FF, $51, $FC, $C3, $53, $56, $57, $31, $C9, $31, $FF, $8A, + $1A, $EB, $02, $8B, $00, $8B, $70, $CC, $85, $F6, $74, $15, $66, $8B, $3E, $83, + $C6, $02, $8A, $4E, $06, $38, $D9, $74, $15, $66, $8B, $0E, $01, $CE, $4F, $75, + $F1, $8B, $40, $DC, $85, $C0, $75, $DB, $EB, $18, $8A, $1A, $EB, $EB, $B5, $00, + $8A, $5C, $31, $06, $32, $1C, $11, $80, $E3, $DF, $75, $EE, $49, $75, $F1, $8B, + $46, $02, $5F, $5E, $5B, $C3, $8B, $C0, $80, $3D, $10, $70, $40, $00, $01, $76, + $11, $6A, $00, $6A, $00, $6A, $00, $68, $DF, $FA, $ED, $0E, $FF, $15, $10, $80, + $40, $00, $C3, $90, $80, $3D, $10, $70, $40, $00, $00, $74, $17, $50, $50, $52, + $54, $6A, $02, $6A, $00, $68, $E4, $FA, $ED, $0E, $FF, $15, $10, $80, $40, $00, + $83, $C4, $08, $58, $C3, $8D, $40, $00, $54, $6A, $01, $6A, $00, $68, $E0, $FA, + $ED, $0E, $FF, $15, $10, $80, $40, $00, $83, $C4, $04, $58, $C3, $8D, $40, $00, + $80, $3D, $10, $70, $40, $00, $01, $76, $07, $50, $53, $E9, $D8, $FF, $FF, $FF, + $C3, $8D, $40, $00, $85, $C9, $74, $19, $8B, $41, $01, $80, $39, $E9, $74, $0C, + $80, $39, $EB, $75, $0C, $0F, $BE, $C0, $41, $41, $EB, $03, $83, $C1, $05, $01, + $C1, $C3, $8B, $C0, $80, $3D, $10, $70, $40, $00, $01, $76, $1D, $50, $52, $51, + $E8, $CF, $FF, $FF, $FF, $51, $54, $6A, $01, $6A, $00, $68, $E1, $FA, $ED, $0E, + $FF, $15, $10, $80, $40, $00, $59, $59, $5A, $58, $C3, $90, $80, $3D, $10, $70, + $40, $00, $01, $76, $12, $52, $54, $6A, $01, $6A, $00, $68, $E2, $FA, $ED, $0E, + $FF, $15, $10, $80, $40, $00, $5A, $C3, $50, $52, $80, $3D, $10, $70, $40, $00, + $01, $76, $10, $54, $6A, $02, $6A, $00, $68, $E3, $FA, $ED, $0E, $FF, $15, $10, + $80, $40, $00, $5A, $58, $C3, $8B, $C0, $8B, $44, $24, $04, $F7, $40, $04, $06, + $00, $00, $00, $0F, $85, $13, $01, $00, $00, $81, $38, $DE, $FA, $ED, $0E, $8B, + $50, $18, $8B, $48, $14, $74, $6E, $FC, $E8, $5F, $FE, $FF, $FF, $8B, $15, $0C, + $80, $40, $00, $85, $D2, $0F, $84, $F1, $00, $00, $00, $FF, $D2, $85, $C0, $0F, + $84, $E7, $00, $00, $00, $8B, $54, $24, $0C, $8B, $4C, $24, $04, $81, $39, $CE, + $FA, $EF, $0E, $74, $37, $E8, $DA, $FE, $FF, $FF, $80, $3D, $14, $70, $40, $00, + $00, $76, $29, $80, $3D, $10, $70, $40, $00, $00, $77, $20, $8D, $4C, $24, $04, + $50, $51, $E8, $A1, $DE, $FF, $FF, $83, $F8, $00, $58, $0F, $84, $AB, $00, $00, + $00, $89, $C2, $8B, $44, $24, $04, $8B, $48, $0C, $EB, $30, $89, $C2, $8B, $44, + $24, $04, $8B, $48, $0C, $80, $3D, $14, $70, $40, $00, $01, $76, $1E, $80, $3D, + $10, $70, $40, $00, $00, $77, $15, $50, $8D, $44, $24, $08, $52, $51, $50, $E8, + $64, $DE, $FF, $FF, $83, $F8, $00, $59, $5A, $58, $74, $70, $83, $48, $04, $02, + $53, $31, $DB, $56, $57, $55, $64, $8B, $1B, $53, $50, $52, $51, $8B, $54, $24, + $28, $6A, $00, $50, $68, $E0, $31, $40, $00, $52, $FF, $15, $14, $80, $40, $00, + $8B, $7C, $24, $28, $E8, $A3, $0D, $00, $00, $FF, $B0, $00, $00, $00, $00, $89, + $A0, $00, $00, $00, $00, $8B, $6F, $08, $8B, $5F, $04, $C7, $47, $04, $0C, $32, + $40, $00, $83, $C3, $05, $E8, $66, $FE, $FF, $FF, $FF, $E3, $E9, $CB, $00, $00, + $00, $E8, $76, $0D, $00, $00, $8B, $88, $00, $00, $00, $00, $8B, $11, $89, $90, + $00, $00, $00, $00, $8B, $41, $08, $E9, $90, $FD, $FF, $FF, $B8, $01, $00, $00, + $00, $C3, $8B, $C0, $8B, $44, $24, $04, $F7, $40, $04, $06, $00, $00, $00, $0F, + $84, $8F, $00, $00, $00, $53, $31, $DB, $56, $57, $55, $55, $68, $B4, $32, $40, + $00, $64, $FF, $33, $64, $89, $23, $64, $8B, $1B, $8B, $50, $18, $8B, $48, $14, + $53, $50, $52, $51, $8B, $7C, $24, $34, $E8, $1F, $0D, $00, $00, $FF, $B0, $00, + $00, $00, $00, $89, $A0, $00, $00, $00, $00, $8B, $4F, $04, $8B, $6F, $08, $C7, + $47, $04, $B4, $32, $40, $00, $83, $C1, $05, $E8, $16, $FE, $FF, $FF, $FF, $D1, + $E8, $F7, $0C, $00, $00, $8B, $88, $00, $00, $00, $00, $8B, $11, $89, $90, $00, + $00, $00, $00, $83, $C4, $14, $31, $C0, $5A, $59, $59, $64, $89, $10, $5D, $5F, + $5E, $5B, $EB, $20, $E9, $23, $00, $00, $00, $E8, $CE, $0C, $00, $00, $8B, $88, + $00, $00, $00, $00, $8B, $11, $89, $90, $00, $00, $00, $00, $8B, $41, $08, $E9, + $E8, $FC, $FF, $FF, $B8, $01, $00, $00, $00, $C3, $8B, $C0, $8B, $44, $24, $04, + $8B, $54, $24, $08, $F7, $40, $04, $06, $00, $00, $00, $74, $1F, $8B, $4A, $04, + $C7, $42, $04, $0C, $33, $40, $00, $53, $56, $57, $55, $8B, $6A, $08, $83, $C1, + $05, $E8, $9E, $FD, $FF, $FF, $FF, $D1, $5D, $5F, $5E, $5B, $B8, $01, $00, $00, + $00, $C3, $8B, $C0, $8B, $44, $24, $30, $C7, $40, $04, $5F, $33, $40, $00, $E8, + $68, $0C, $00, $00, $8B, $90, $00, $00, $00, $00, $8B, $0A, $89, $88, $00, $00, + $00, $00, $8B, $42, $0C, $83, $60, $04, $FD, $81, $38, $DE, $FA, $ED, $0E, $74, + $0D, $8B, $42, $08, $E8, $73, $FC, $FF, $FF, $E8, $CA, $FC, $FF, $FF, $31, $C0, + $83, $C4, $14, $64, $8B, $10, $59, $8B, $12, $89, $11, $5D, $5F, $5E, $5B, $B8, + $01, $00, $00, $00, $C3, $8D, $40, $00, $E8, $1F, $0C, $00, $00, $8B, $90, $00, + $00, $00, $00, $8B, $0A, $89, $88, $00, $00, $00, $00, $8B, $42, $08, $E8, $39, + $FC, $FF, $FF, $5A, $8B, $64, $24, $2C, $31, $C0, $59, $64, $89, $08, $58, $5D, + $E8, $37, $FD, $FF, $FF, $FF, $E2, $C3, $31, $D2, $8B, $4C, $24, $08, $8B, $44, + $24, $04, $83, $C1, $05, $64, $89, $02, $FF, $D1, $C2, $0C, $00, $C3, $8B, $C0, + $55, $8B, $EC, $8B, $55, $08, $8B, $02, $3D, $92, $00, $00, $C0, $7F, $2C, $74, + $5C, $3D, $8E, $00, $00, $C0, $7F, $15, $74, $57, $2D, $05, $00, $00, $C0, $74, + $5C, $2D, $87, $00, $00, $00, $74, $3D, $48, $74, $4E, $EB, $60, $05, $71, $FF, + $FF, $3F, $83, $E8, $02, $72, $36, $74, $30, $EB, $52, $3D, $96, $00, $00, $C0, + $7F, $11, $74, $3D, $2D, $93, $00, $00, $C0, $74, $2E, $48, $74, $13, $48, $74, + $24, $EB, $3A, $2D, $FD, $00, $00, $C0, $74, $2F, $83, $E8, $3D, $74, $26, $EB, + $2C, $B0, $C8, $EB, $2A, $B0, $C9, $EB, $26, $B0, $CD, $EB, $22, $B0, $CF, $EB, + $1E, $B0, $C8, $EB, $1A, $B0, $D7, $EB, $16, $B0, $CE, $EB, $12, $B0, $D8, $EB, + $0E, $B0, $DA, $EB, $0A, $B0, $D9, $EB, $06, $B0, $CA, $EB, $02, $B0, $FF, $0F, + $B6, $C0, $8B, $52, $0C, $E8, $DE, $F7, $FF, $FF, $5D, $C2, $04, $00, $8B, $C0, + $8B, $44, $24, $04, $F7, $40, $04, $06, $00, $00, $00, $0F, $85, $89, $00, $00, + $00, $80, $3D, $10, $70, $40, $00, $00, $77, $0F, $8D, $44, $24, $04, $50, $E8, + $A4, $DB, $FF, $FF, $83, $F8, $00, $74, $71, $8B, $44, $24, $04, $FC, $E8, $09, + $FB, $FF, $FF, $8B, $54, $24, $08, $6A, $00, $50, $68, $96, $34, $40, $00, $52, + $FF, $15, $14, $80, $40, $00, $8B, $5C, $24, $04, $81, $3B, $DE, $FA, $ED, $0E, + $8B, $53, $14, $8B, $43, $18, $74, $1D, $8B, $15, $0C, $80, $40, $00, $85, $D2, + $0F, $84, $FA, $FE, $FF, $FF, $89, $D8, $FF, $D2, $85, $C0, $0F, $84, $EE, $FE, + $FF, $FF, $8B, $53, $0C, $E8, $1E, $FC, $FF, $FF, $8B, $0D, $04, $80, $40, $00, + $85, $C9, $74, $02, $FF, $D1, $8B, $4C, $24, $04, $B8, $D9, $00, $00, $00, $8B, + $51, $14, $89, $14, $24, $E9, $EA, $03, $00, $00, $31, $C0, $C3, $8D, $40, $00, + $31, $D2, $8D, $45, $F4, $64, $8B, $0A, $64, $89, $02, $89, $08, $C7, $40, $04, + $50, $34, $40, $00, $89, $68, $08, $A3, $B4, $A7, $40, $00, $C3, $8D, $40, $00, + $31, $D2, $A1, $B4, $A7, $40, $00, $85, $C0, $74, $1C, $64, $8B, $0A, $39, $C8, + $75, $08, $8B, $00, $64, $89, $02, $C3, $8B, $09, $83, $F9, $FF, $74, $08, $39, + $01, $75, $F5, $8B, $00, $89, $01, $C3, $55, $8B, $EC, $53, $56, $57, $A1, $B8, + $A7, $40, $00, $85, $C0, $74, $4E, $8B, $1D, $BC, $A7, $40, $00, $8B, $78, $04, + $33, $C0, $55, $68, $81, $35, $40, $00, $64, $FF, $30, $64, $89, $20, $85, $DB, + $7E, $15, $4B, $89, $1D, $BC, $A7, $40, $00, $8B, $74, $DF, $04, $85, $F6, $74, + $02, $FF, $D6, $85, $DB, $7F, $EB, $33, $C0, $5A, $59, $59, $64, $89, $10, $EB, + $14, $E9, $82, $FB, $FF, $FF, $E8, $AD, $FF, $FF, $FF, $E8, $84, $FD, $FF, $FF, + $E8, $D3, $FD, $FF, $FF, $5F, $5E, $5B, $5D, $C3, $8B, $C0, $55, $8B, $EC, $51, + $53, $56, $57, $A1, $B8, $A7, $40, $00, $85, $C0, $74, $51, $8B, $38, $33, $DB, + $8B, $40, $04, $89, $45, $FC, $33, $C0, $55, $68, $E9, $35, $40, $00, $64, $FF, + $30, $64, $89, $20, $3B, $FB, $7E, $17, $8B, $45, $FC, $8B, $34, $D8, $43, $89, + $1D, $BC, $A7, $40, $00, $85, $F6, $74, $02, $FF, $D6, $3B, $FB, $7F, $E9, $33, + $C0, $5A, $59, $59, $64, $89, $10, $EB, $14, $E9, $1A, $FB, $FF, $FF, $E8, $45, + $FF, $FF, $FF, $E8, $1C, $FD, $FF, $FF, $E8, $6B, $FD, $FF, $FF, $5F, $5E, $5B, + $59, $5D, $C3, $90, $51, $56, $57, $BE, $B0, $A7, $40, $00, $8D, $7D, $C4, $B9, + $0B, $00, $00, $00, $F3, $A5, $8F, $05, $D0, $A7, $40, $00, $8F, $05, $CC, $A7, + $40, $00, $89, $2D, $C4, $A7, $40, $00, $89, $1D, $C8, $A7, $40, $00, $A3, $B8, + $A7, $40, $00, $89, $15, $C0, $A7, $40, $00, $8D, $4D, $C4, $89, $0D, $B0, $A7, + $40, $00, $31, $C9, $83, $7D, $0C, $00, $75, $02, $8B, $08, $89, $0D, $BC, $A7, + $40, $00, $B8, $08, $10, $40, $00, $A3, $10, $80, $40, $00, $B8, $10, $10, $40, + $00, $A3, $14, $80, $40, $00, $E8, $85, $FE, $FF, $FF, $8B, $45, $0C, $40, $A2, + $D8, $A7, $40, $00, $48, $59, $8B, $11, $89, $15, $D4, $A7, $40, $00, $74, $07, + $3C, $03, $7D, $03, $FF, $14, $81, $51, $8B, $4C, $24, $08, $85, $C9, $74, $08, + $8B, $45, $0C, $8B, $55, $10, $FF, $D1, $59, $8B, $45, $0C, $3C, $03, $7C, $03, + $FF, $14, $81, $83, $3D, $1C, $80, $40, $00, $00, $75, $0D, $C6, $05, $24, $80, + $40, $00, $01, $D9, $3D, $0C, $70, $40, $00, $8B, $45, $0C, $48, $0F, $85, $29, + $01, $00, $00, $E8, $D4, $FE, $FF, $FF, $C2, $04, $00, $C3, $53, $56, $57, $BF, + $44, $77, $40, $00, $B3, $10, $8B, $35, $00, $70, $40, $00, $8B, $C6, $B9, $0A, + $00, $00, $00, $99, $F7, $F9, $80, $C2, $30, $0F, $B6, $C3, $88, $14, $07, $B9, + $0A, $00, $00, $00, $8B, $C6, $99, $F7, $F9, $89, $C6, $4B, $85, $F6, $75, $DC, + $B3, $1C, $8B, $35, $04, $70, $40, $00, $8B, $C6, $83, $E0, $0F, $0F, $B6, $80, + $64, $77, $40, $00, $0F, $B6, $D3, $88, $04, $17, $B9, $10, $00, $00, $00, $8B, + $C6, $33, $D2, $F7, $F1, $89, $C6, $4B, $85, $F6, $75, $DC, $5F, $5E, $5B, $C3, + $31, $C0, $87, $05, $00, $70, $40, $00, $F7, $D8, $19, $C0, $40, $BF, $B0, $A7, + $40, $00, $8B, $5F, $18, $8B, $6F, $14, $FF, $77, $1C, $FF, $77, $20, $8B, $37, + $B9, $0B, $00, $00, $00, $F3, $A5, $5F, $5E, $C9, $C2, $0C, $00, $C3, $8B, $C0, + $51, $80, $3D, $34, $80, $40, $00, $00, $74, $57, $66, $81, $3D, $08, $82, $40, + $00, $B2, $D7, $75, $14, $83, $3D, $10, $82, $40, $00, $00, $76, $0B, $B8, $04, + $82, $40, $00, $FF, $15, $20, $82, $40, $00, $6A, $00, $8D, $44, $24, $04, $50, + $6A, $1E, $68, $44, $77, $40, $00, $6A, $F5, $E8, $62, $D8, $FF, $FF, $50, $E8, + $7C, $D8, $FF, $FF, $6A, $00, $8D, $44, $24, $04, $50, $6A, $02, $68, $E8, $37, + $40, $00, $6A, $F5, $E8, $47, $D8, $FF, $FF, $50, $E8, $61, $D8, $FF, $FF, $5A, + $C3, $80, $3D, $18, $70, $40, $00, $00, $75, $13, $6A, $00, $68, $3C, $77, $40, + $00, $68, $44, $77, $40, $00, $6A, $00, $E8, $53, $D8, $FF, $FF, $5A, $C3, $00, + $FF, $FF, $FF, $FF, $02, $00, $00, $00, $0D, $0A, $00, $00, $53, $56, $57, $55, + $BB, $B0, $A7, $40, $00, $BF, $30, $80, $40, $00, $80, $7B, $28, $00, $75, $14, + $83, $3F, $00, $74, $0F, $8B, $07, $89, $C6, $33, $C0, $89, $07, $FF, $D6, $83, + $3F, $00, $75, $F1, $83, $3D, $04, $70, $40, $00, $00, $74, $11, $E8, $AA, $FE, + $FF, $FF, $E8, $39, $FF, $FF, $FF, $33, $C0, $A3, $04, $70, $40, $00, $80, $7B, + $28, $02, $75, $0E, $83, $3D, $00, $70, $40, $00, $00, $75, $05, $33, $C0, $89, + $43, $0C, $E8, $F1, $FC, $FF, $FF, $80, $7B, $28, $01, $76, $09, $83, $3D, $00, + $70, $40, $00, $00, $74, $23, $8B, $7B, $10, $85, $FF, $74, $1C, $8B, $C7, $E8, + $40, $05, $00, $00, $8B, $6B, $10, $8B, $75, $10, $3B, $75, $04, $74, $0A, $85, + $F6, $74, $06, $56, $E8, $BF, $D7, $FF, $FF, $E8, $92, $FC, $FF, $FF, $80, $7B, + $28, $01, $75, $03, $FF, $53, $24, $80, $7B, $28, $00, $74, $05, $E8, $9E, $FE, + $FF, $FF, $83, $3B, $00, $75, $1A, $83, $3D, $18, $80, $40, $00, $00, $74, $06, + $FF, $15, $18, $80, $40, $00, $A1, $00, $70, $40, $00, $50, $E8, $77, $D7, $FF, + $FF, $8B, $03, $8B, $F0, $8B, $FB, $B9, $0B, $00, $00, $00, $F3, $A5, $E9, $6B, + $FF, $FF, $FF, $5D, $5F, $5E, $5B, $C3, $A3, $00, $70, $40, $00, $E8, $1A, $FF, + $FF, $FF, $C3, $90, $8F, $05, $04, $70, $40, $00, $E9, $E9, $FF, $FF, $FF, $C3, + $8B, $10, $85, $D2, $74, $1C, $C7, $00, $00, $00, $00, $00, $8B, $4A, $F8, $49, + $7C, $10, $F0, $FF, $4A, $F8, $75, $0A, $50, $8D, $42, $F8, $E8, $BF, $F2, $FF, + $FF, $58, $C3, $90, $53, $56, $89, $C3, $89, $D6, $8B, $13, $85, $D2, $74, $1A, + $C7, $03, $00, $00, $00, $00, $8B, $4A, $F8, $49, $7C, $0E, $F0, $FF, $4A, $F8, + $75, $08, $8D, $42, $F8, $E8, $96, $F2, $FF, $FF, $83, $C3, $04, $4E, $75, $DA, + $5E, $5B, $C3, $90, $85, $D2, $74, $24, $8B, $4A, $F8, $41, $7F, $1A, $50, $52, + $8B, $42, $FC, $E8, $30, $00, $00, $00, $89, $C2, $58, $52, $8B, $48, $FC, $E8, + $48, $F3, $FF, $FF, $5A, $58, $EB, $04, $F0, $FF, $42, $F8, $87, $10, $85, $D2, + $74, $14, $8B, $4A, $F8, $49, $7C, $0E, $F0, $FF, $4A, $F8, $75, $08, $8D, $42, + $F8, $E8, $4A, $F2, $FF, $FF, $C3, $90, $85, $C0, $7E, $24, $50, $83, $C0, $0A, + $83, $E0, $FE, $50, $E8, $1B, $F2, $FF, $FF, $5A, $66, $C7, $44, $02, $FE, $00, + $00, $83, $C0, $08, $5A, $89, $50, $FC, $C7, $40, $F8, $01, $00, $00, $00, $C3, + $31, $C0, $C3, $90, $53, $56, $57, $89, $C3, $89, $D6, $89, $CF, $89, $F8, $E8, + $C4, $FF, $FF, $FF, $89, $F9, $89, $C7, $85, $F6, $74, $09, $89, $C2, $89, $F0, + $E8, $D7, $F2, $FF, $FF, $89, $D8, $E8, $14, $FF, $FF, $FF, $89, $3B, $5F, $5E, + $5B, $C3, $8B, $C0, $52, $89, $E2, $B9, $01, $00, $00, $00, $E8, $C3, $FF, $FF, + $FF, $5A, $C3, $90, $57, $50, $51, $89, $D7, $31, $C0, $F2, $AE, $75, $02, $F7, + $D1, $58, $01, $C1, $58, $5F, $E9, $A9, $FF, $FF, $FF, $C3, $85, $D2, $74, $46, + $8B, $08, $85, $C9, $0F, $84, $2A, $FF, $FF, $FF, $53, $56, $57, $89, $C3, $89, + $D6, $8B, $79, $FC, $8B, $56, $FC, $01, $FA, $70, $26, $39, $CE, $74, $17, $E8, + $A8, $02, $00, $00, $89, $F0, $8B, $4E, $FC, $8B, $13, $01, $FA, $E8, $6A, $F2, + $FF, $FF, $5F, $5E, $5B, $C3, $E8, $91, $02, $00, $00, $8B, $03, $89, $F9, $EB, + $E8, $E9, $52, $F5, $FF, $FF, $C3, $90, $53, $56, $57, $52, $50, $89, $D3, $31, + $FF, $8B, $4C, $94, $14, $85, $C9, $74, $0C, $39, $08, $75, $08, $89, $CF, $8B, + $41, $FC, $4A, $EB, $02, $31, $C0, $8B, $4C, $94, $14, $85, $C9, $74, $0B, $03, + $41, $FC, $70, $5F, $39, $CF, $75, $02, $31, $FF, $4A, $75, $EA, $85, $FF, $74, + $17, $89, $C2, $8B, $04, $24, $8B, $77, $FC, $E8, $3E, $02, $00, $00, $8B, $3C, + $24, $FF, $37, $03, $37, $4B, $EB, $08, $E8, $DB, $FE, $FF, $FF, $50, $89, $C6, + $8B, $44, $9C, $18, $89, $F2, $85, $C0, $74, $0A, $8B, $48, $FC, $01, $CE, $E8, + $E8, $F1, $FF, $FF, $4B, $75, $E9, $5A, $58, $85, $FF, $75, $0C, $85, $D2, $74, + $03, $FF, $4A, $F8, $E8, $6B, $FE, $FF, $FF, $5A, $5F, $5E, $5B, $58, $8D, $24, + $94, $FF, $E0, $E9, $C0, $F4, $FF, $FF, $C3, $8D, $40, $00, $39, $D0, $74, $30, + $85, $D0, $74, $40, $0F, $B6, $08, $2A, $0A, $75, $25, $53, $8B, $58, $FC, $2B, + $5A, $FC, $53, $83, $D1, $FF, $21, $D9, $2B, $48, $FC, $29, $C8, $29, $CA, $8B, + $1C, $01, $33, $1C, $11, $75, $0A, $83, $C1, $04, $78, $F3, $58, $01, $C0, $5B, + $C3, $0F, $BC, $DB, $C1, $EB, $03, $01, $D9, $79, $F1, $8A, $04, $01, $3A, $04, + $11, $5B, $5B, $C3, $85, $C0, $74, $08, $85, $D2, $75, $B8, $39, $50, $FC, $C3, + $3B, $42, $FC, $C3, $85, $C0, $74, $0A, $C3, $FF, $FF, $FF, $FF, $00, $00, $00, + $00, $00, $B8, $41, $3B, $40, $00, $C3, $53, $85, $C0, $74, $2D, $8B, $58, $FC, + $85, $DB, $74, $26, $4A, $7C, $1B, $39, $DA, $7D, $1F, $29, $D3, $85, $C9, $7C, + $19, $39, $D9, $7F, $11, $01, $C2, $8B, $44, $24, $08, $E8, $34, $FE, $FF, $FF, + $EB, $11, $31, $D2, $EB, $E5, $89, $D9, $EB, $EB, $8B, $44, $24, $08, $E8, $5D, + $FD, $FF, $FF, $5B, $C2, $04, $00, $C3, $53, $56, $83, $C4, $F0, $85, $D2, $74, + $4E, $85, $C0, $74, $4A, $8B, $72, $FC, $8B, $58, $FC, $39, $DE, $7C, $40, $85, + $DB, $7E, $3C, $4B, $01, $D6, $01, $DA, $89, $74, $24, $08, $01, $D8, $89, $54, + $24, $04, $F7, $DB, $0F, $B6, $08, $89, $1C, $24, $0F, $85, $99, $00, $00, $00, + $83, $EE, $02, $89, $74, $24, $0C, $3A, $0A, $74, $41, $3A, $4A, $01, $74, $4C, + $83, $C2, $02, $3B, $54, $24, $0C, $72, $0A, $3B, $54, $24, $08, $72, $E8, $31, + $C0, $EB, $30, $3A, $0A, $74, $25, $3A, $4A, $01, $74, $30, $3A, $4A, $02, $74, + $18, $3A, $4A, $03, $74, $23, $83, $C2, $04, $3B, $54, $24, $0C, $72, $E4, $3B, + $54, $24, $08, $72, $C2, $31, $C0, $EB, $0A, $83, $C2, $02, $42, $89, $D0, $2B, + $44, $24, $04, $83, $C4, $10, $5E, $5B, $C3, $83, $C2, $02, $83, $C2, $02, $31, + $C0, $3B, $54, $24, $08, $77, $06, $89, $D0, $2B, $44, $24, $04, $83, $C4, $10, + $5E, $5B, $C3, $3A, $0A, $74, $75, $3A, $4A, $01, $74, $43, $3A, $4A, $02, $74, + $68, $3A, $4A, $03, $74, $36, $83, $C2, $04, $3B, $54, $24, $0C, $72, $E4, $3B, + $54, $24, $08, $72, $0B, $31, $C0, $EB, $4A, $83, $EE, $02, $89, $74, $24, $0C, + $3A, $0A, $74, $48, $3A, $4A, $01, $74, $16, $83, $C2, $02, $3B, $54, $24, $0C, + $72, $C1, $3B, $54, $24, $08, $72, $E8, $31, $C0, $EB, $27, $83, $C2, $02, $8B, + $34, $24, $0F, $B7, $1C, $30, $66, $3B, $5C, $32, $01, $75, $DC, $83, $C6, $02, + $7C, $F0, $83, $C2, $02, $31, $C0, $3B, $54, $24, $08, $77, $06, $89, $D0, $2B, + $44, $24, $04, $83, $C4, $10, $5E, $5B, $C3, $83, $C2, $02, $8B, $34, $24, $0F, + $B7, $1C, $30, $66, $3B, $1C, $32, $75, $AB, $83, $C6, $02, $7C, $F1, $42, $89, + $D0, $2B, $44, $24, $04, $83, $C4, $10, $5E, $5B, $C3, $90, $53, $56, $57, $89, + $C3, $89, $D6, $31, $FF, $85, $D2, $7E, $48, $8B, $03, $85, $C0, $74, $23, $83, + $78, $F8, $01, $75, $1D, $83, $E8, $08, $83, $C2, $09, $50, $89, $E0, $E8, $E5, + $EE, $FF, $FF, $58, $83, $C0, $08, $89, $03, $89, $70, $FC, $C6, $04, $06, $00, + $EB, $28, $89, $D0, $E8, $6F, $FC, $FF, $FF, $89, $C7, $8B, $03, $85, $C0, $74, + $10, $89, $FA, $8B, $48, $FC, $39, $F1, $7C, $02, $89, $F1, $E8, $7B, $EF, $FF, + $FF, $89, $D8, $E8, $B8, $FB, $FF, $FF, $89, $3B, $5F, $5E, $5B, $C3, $8B, $C0, + $B0, $11, $E9, $49, $EF, $FF, $FF, $C3, $55, $8B, $EC, $83, $C4, $F8, $53, $56, + $57, $89, $45, $FC, $A1, $20, $70, $40, $00, $89, $45, $F8, $83, $7D, $F8, $00, + $74, $39, $33, $C0, $55, $68, $73, $3D, $40, $00, $64, $FF, $30, $64, $89, $20, + $8B, $5D, $F8, $8B, $45, $FC, $FF, $53, $04, $33, $C0, $5A, $59, $59, $64, $89, + $10, $EB, $0A, $E9, $90, $F3, $FF, $FF, $E8, $EB, $F5, $FF, $FF, $8B, $45, $F8, + $8B, $00, $89, $45, $F8, $83, $7D, $F8, $00, $75, $C7, $5F, $5E, $5B, $59, $59, + $5D, $C3, $8B, $C0, $8B, $15, $1C, $70, $40, $00, $89, $10, $A3, $1C, $70, $40, + $00, $C3, $8B, $C0, $55, $8B, $EC, $51, $89, $45, $FC, $33, $D2, $55, $68, $08, + $3E, $40, $00, $64, $FF, $32, $64, $89, $22, $8B, $45, $FC, $8B, $40, $04, $E8, + $74, $FF, $FF, $FF, $33, $C0, $5A, $59, $59, $64, $89, $10, $68, $0F, $3E, $40, + $00, $8B, $45, $FC, $3B, $05, $1C, $70, $40, $00, $75, $0C, $8B, $45, $FC, $8B, + $00, $A3, $1C, $70, $40, $00, $EB, $1F, $A1, $1C, $70, $40, $00, $85, $C0, $74, + $16, $8B, $10, $3B, $55, $FC, $75, $09, $8B, $55, $FC, $8B, $12, $89, $10, $EB, + $06, $8B, $00, $85, $C0, $75, $EA, $C3, $E9, $27, $F4, $FF, $FF, $EB, $C2, $59, + $5D, $C3, $8B, $C0, $FF, $25, $94, $B1, $40, $00, $8B, $C0, $55, $8B, $EC, $33, + $C0, $55, $68, $70, $3E, $40, $00, $64, $FF, $30, $64, $89, $20, $FF, $05, $A0, + $85, $40, $00, $75, $2D, $B8, $38, $80, $40, $00, $E8, $5D, $EF, $FF, $FF, $B8, + $04, $82, $40, $00, $E8, $53, $EF, $FF, $FF, $B8, $D0, $83, $40, $00, $E8, $49, + $EF, $FF, $FF, $E8, $F8, $EC, $FF, $FF, $B8, $24, $70, $40, $00, $E8, $7E, $FA, + $FF, $FF, $33, $C0, $5A, $59, $59, $64, $89, $10, $68, $77, $3E, $40, $00, $C3, + $E9, $BF, $F3, $FF, $FF, $EB, $F8, $5D, $C3, $8D, $40, $00, $FF, $25, $E8, $B1, + $40, $00, $8B, $C0, $FF, $25, $E4, $B1, $40, $00, $8B, $C0, $FF, $25, $E0, $B1, + $40, $00, $8B, $C0, $FF, $25, $DC, $B1, $40, $00, $8B, $C0, $FF, $25, $D8, $B1, + $40, $00, $8B, $C0, $FF, $25, $D4, $B1, $40, $00, $8B, $C0, $50, $6A, $40, $E8, + $C8, $FF, $FF, $FF, $C3, $8D, $40, $00, $B8, $08, $00, $00, $00, $C3, $8B, $C0, + $53, $E8, $F2, $FF, $FF, $FF, $8B, $D8, $85, $DB, $74, $36, $83, $3D, $74, $77, + $40, $00, $FF, $75, $0A, $B8, $E2, $00, $00, $00, $E8, $F5, $F9, $FF, $FF, $8B, + $C3, $E8, $C6, $FF, $FF, $FF, $85, $C0, $75, $0C, $B8, $E2, $00, $00, $00, $E8, + $E0, $F9, $FF, $FF, $EB, $0C, $50, $A1, $74, $77, $40, $00, $50, $E8, $A2, $FF, + $FF, $FF, $5B, $C3, $B8, $08, $00, $00, $00, $85, $C0, $74, $1F, $E8, $7A, $FF, + $FF, $FF, $A3, $74, $77, $40, $00, $E8, $A4, $FF, $FF, $FF, $A1, $74, $77, $40, + $00, $50, $E8, $75, $FF, $FF, $FF, $A3, $E8, $A7, $40, $00, $C3, $8D, $40, $00, + $B8, $08, $00, $00, $00, $85, $C0, $74, $2B, $83, $3D, $74, $77, $40, $00, $FF, + $74, $22, $A1, $74, $77, $40, $00, $50, $E8, $4F, $FF, $FF, $FF, $85, $C0, $74, + $13, $50, $E8, $2D, $FF, $FF, $FF, $6A, $00, $A1, $74, $77, $40, $00, $50, $E8, + $40, $FF, $FF, $FF, $C3, $8D, $40, $00, $B8, $08, $00, $00, $00, $85, $C0, $74, + $19, $E8, $BA, $FF, $FF, $FF, $83, $3D, $74, $77, $40, $00, $FF, $74, $0B, $A1, + $74, $77, $40, $00, $50, $E8, $0A, $FF, $FF, $FF, $C3, $90, $8A, $0D, $DC, $A7, + $40, $00, $A1, $74, $77, $40, $00, $84, $C9, $75, $26, $64, $8B, $15, $2C, $00, + $00, $00, $8B, $04, $82, $C3, $E8, $15, $FF, $FF, $FF, $A1, $74, $77, $40, $00, + $50, $E8, $E6, $FE, $FF, $FF, $85, $C0, $74, $01, $C3, $A1, $E8, $A7, $40, $00, + $C3, $50, $E8, $D5, $FE, $FF, $FF, $85, $C0, $74, $DB, $C3, $B8, $78, $77, $40, + $00, $E8, $BE, $FD, $FF, $FF, $C3, $90, $BA, $78, $77, $40, $00, $83, $7D, $0C, + $01, $75, $2A, $50, $52, $C6, $05, $DC, $A7, $40, $00, $01, $8B, $4D, $08, $89, + $0D, $E0, $A7, $40, $00, $89, $4A, $04, $C7, $42, $08, $00, $00, $00, $00, $C7, + $42, $0C, $00, $00, $00, $00, $E8, $C1, $FF, $FF, $FF, $5A, $58, $FF, $35, $E4, + $A7, $40, $00, $B9, $90, $77, $40, $00, $E8, $E7, $F5, $FF, $FF, $C3, $8B, $C0, + $FF, $25, $54, $B2, $40, $00, $8B, $C0, $FF, $25, $50, $B2, $40, $00, $8B, $C0, + $FF, $25, $4C, $B2, $40, $00, $8B, $C0, $FF, $25, $48, $B2, $40, $00, $8B, $C0, + $FF, $25, $44, $B2, $40, $00, $8B, $C0, $FF, $25, $40, $B2, $40, $00, $8B, $C0, + $FF, $25, $3C, $B2, $40, $00, $8B, $C0, $FF, $25, $38, $B2, $40, $00, $8B, $C0, + $FF, $25, $34, $B2, $40, $00, $8B, $C0, $FF, $25, $30, $B2, $40, $00, $8B, $C0, + $FF, $25, $2C, $B2, $40, $00, $8B, $C0, $FF, $25, $28, $B2, $40, $00, $8B, $C0, + $FF, $25, $24, $B2, $40, $00, $8B, $C0, $FF, $25, $20, $B2, $40, $00, $8B, $C0, + $FF, $25, $1C, $B2, $40, $00, $8B, $C0, $FF, $25, $18, $B2, $40, $00, $8B, $C0, + $FF, $25, $14, $B2, $40, $00, $8B, $C0, $FF, $25, $10, $B2, $40, $00, $8B, $C0, + $FF, $25, $08, $B2, $40, $00, $8B, $C0, $FF, $25, $04, $B2, $40, $00, $8B, $C0, + $FF, $25, $00, $B2, $40, $00, $8B, $C0, $FF, $25, $FC, $B1, $40, $00, $8B, $C0, + $FF, $25, $F8, $B1, $40, $00, $8B, $C0, $FF, $25, $F4, $B1, $40, $00, $8B, $C0, + $FF, $25, $F0, $B1, $40, $00, $8B, $C0, $92, $E8, $AE, $EB, $FF, $FF, $C3, $90, + $55, $8B, $EC, $33, $C0, $55, $68, $2B, $41, $40, $00, $64, $FF, $30, $64, $89, + $20, $FF, $05, $EC, $A7, $40, $00, $75, $14, $83, $3D, $F0, $A7, $40, $00, $00, + $74, $0B, $A1, $F0, $A7, $40, $00, $50, $E8, $0B, $FF, $FF, $FF, $33, $C0, $5A, + $59, $59, $64, $89, $10, $68, $32, $41, $40, $00, $C3, $E9, $04, $F1, $FF, $FF, + $EB, $F8, $5D, $C3, $55, $8B, $EC, $83, $C4, $EC, $53, $56, $57, $55, $68, $E6, + $43, $40, $00, $64, $FF, $35, $00, $00, $00, $00, $64, $89, $25, $00, $00, $00, + $00, $8B, $F8, $85, $C0, $0F, $84, $7D, $02, $00, $00, $C6, $45, $FF, $00, $33, + $D2, $C7, $45, $F8, $04, $00, $00, $00, $33, $C9, $89, $4D, $EC, $0F, $B6, $30, + $40, $66, $83, $FE, $66, $75, $09, $C7, $45, $F8, $02, $00, $00, $00, $EB, $26, + $66, $83, $FE, $67, $75, $06, $C6, $45, $FF, $01, $EB, $1A, $8B, $CE, $66, $81, + $E1, $E7, $00, $66, $83, $F9, $26, $74, $0D, $8B, $CE, $83, $C1, $9C, $66, $83, + $E9, $02, $72, $02, $B2, $01, $84, $D2, $74, $C3, $66, $83, $FE, $0F, $75, $16, + $0F, $B6, $30, $0F, $B7, $D6, $0F, $B7, $0C, $55, $A0, $79, $40, $00, $66, $81, + $C6, $00, $0F, $40, $EB, $0B, $0F, $B7, $D6, $0F, $B7, $0C, $55, $A0, $77, $40, + $00, $F6, $C1, $38, $0F, $84, $9A, $01, $00, $00, $0F, $B6, $10, $8B, $DA, $80, + $E3, $07, $0F, $B6, $DB, $89, $5D, $F4, $40, $8B, $DA, $80, $E3, $C0, $80, $EB, + $40, $74, $07, $80, $EB, $40, $74, $0B, $EB, $21, $C7, $45, $F0, $01, $00, $00, + $00, $EB, $1D, $80, $7D, $FF, $00, $74, $09, $C7, $45, $F0, $02, $00, $00, $00, + $EB, $0E, $C7, $45, $F0, $04, $00, $00, $00, $EB, $05, $33, $DB, $89, $5D, $F0, + $8B, $DA, $80, $E3, $C0, $80, $FB, $C0, $0F, $95, $C3, $22, $5D, $FF, $75, $31, + $83, $7D, $F4, $04, $75, $16, $8B, $DA, $80, $E3, $C0, $80, $FB, $C0, $74, $0C, + $0F, $B6, $18, $80, $E3, $07, $0F, $B6, $DB, $89, $5D, $F4, $F6, $C2, $C0, $75, + $0D, $83, $7D, $F4, $05, $75, $07, $C7, $45, $F0, $04, $00, $00, $00, $03, $45, + $F0, $8B, $D9, $83, $E3, $38, $83, $FB, $08, $0F, $85, $05, $01, $00, $00, $0F, + $B7, $CE, $81, $C1, $28, $FF, $FF, $FF, $83, $F9, $1F, $0F, $87, $B0, $00, $00, + $00, $0F, $B6, $89, $8F, $42, $40, $00, $FF, $24, $8D, $AF, $42, $40, $00, $03, + $04, $05, $06, $07, $08, $09, $0A, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $02, $31, + $43, $40, $00, $DB, $42, $40, $00, $E2, $42, $40, $00, $EB, $42, $40, $00, $F4, + $42, $40, $00, $FD, $42, $40, $00, $06, $43, $40, $00, $0F, $43, $40, $00, $18, + $43, $40, $00, $21, $43, $40, $00, $2A, $43, $40, $00, $33, $C9, $89, $4D, $EC, + $EB, $4F, $C7, $45, $EC, $01, $00, $00, $00, $EB, $46, $C7, $45, $EC, $02, $00, + $00, $00, $EB, $3D, $C7, $45, $EC, $03, $00, $00, $00, $EB, $34, $C7, $45, $EC, + $04, $00, $00, $00, $EB, $2B, $C7, $45, $EC, $05, $00, $00, $00, $EB, $22, $C7, + $45, $EC, $06, $00, $00, $00, $EB, $19, $C7, $45, $EC, $07, $00, $00, $00, $EB, + $10, $C7, $45, $EC, $08, $00, $00, $00, $EB, $07, $C7, $45, $EC, $09, $00, $00, + $00, $8B, $CA, $80, $E1, $C0, $80, $F9, $C0, $74, $1D, $0F, $B6, $D2, $C1, $EA, + $03, $83, $E2, $07, $8B, $4D, $EC, $03, $C9, $03, $C9, $8D, $0C, $CD, $A0, $7B, + $40, $00, $0F, $B7, $0C, $51, $EB, $1C, $0F, $B6, $D2, $C1, $EA, $03, $83, $E2, + $07, $8B, $4D, $EC, $03, $C9, $03, $C9, $8D, $0C, $CD, $A0, $7B, $40, $00, $0F, + $B7, $4C, $51, $10, $81, $E1, $00, $0C, $00, $00, $81, $E9, $00, $04, $00, $00, + $74, $12, $81, $E9, $00, $04, $00, $00, $74, $0D, $81, $E9, $00, $04, $00, $00, + $74, $0A, $EB, $0D, $40, $EB, $41, $83, $C0, $02, $EB, $3C, $03, $45, $F8, $EB, + $37, $66, $81, $EE, $9A, $00, $74, $15, $83, $C6, $FA, $66, $83, $EE, $04, $72, + $19, $66, $83, $EE, $24, $74, $0E, $66, $83, $EE, $22, $75, $1B, $03, $45, $F8, + $83, $C0, $02, $EB, $13, $83, $C0, $03, $EB, $0E, $80, $7D, $FF, $00, $74, $05, + $83, $C0, $02, $EB, $03, $83, $C0, $04, $8B, $D8, $2B, $DF, $33, $C0, $5A, $59, + $59, $64, $89, $10, $EB, $0C, $E9, $1D, $ED, $FF, $FF, $33, $DB, $E8, $76, $EF, + $FF, $FF, $8B, $C3, $5F, $5E, $5B, $8B, $E5, $5D, $C3, $90, $53, $56, $57, $55, + $51, $8B, $EA, $89, $04, $24, $33, $DB, $8B, $34, $24, $8B, $C6, $E8, $22, $FD, + $FF, $FF, $8B, $F8, $03, $F7, $03, $DF, $83, $FB, $05, $72, $EE, $8B, $CB, $8B, + $14, $24, $8B, $C5, $E8, $BF, $FC, $FF, $FF, $8B, $C5, $8B, $D0, $03, $D3, $C6, + $02, $E9, $2B, $F0, $2B, $F3, $83, $EE, $05, $42, $89, $32, $8B, $C3, $5A, $5D, + $5F, $5E, $5B, $C3, $55, $8B, $EC, $83, $C4, $F0, $53, $56, $57, $89, $4D, $F8, + $89, $55, $FC, $C6, $45, $F7, $00, $8B, $D0, $66, $81, $3A, $FF, $25, $75, $07, + $8B, $42, $02, $8B, $18, $EB, $02, $8B, $D8, $8D, $45, $F0, $50, $6A, $40, $6A, + $05, $53, $E8, $31, $FC, $FF, $FF, $85, $C0, $74, $7C, $33, $D2, $55, $68, $E9, + $44, $40, $00, $64, $FF, $32, $64, $89, $22, $6A, $40, $68, $00, $10, $00, $00, + $68, $00, $10, $00, $00, $6A, $00, $E8, $FC, $FB, $FF, $FF, $8B, $F0, $8B, $FB, + $89, $3E, $8B, $D6, $83, $C2, $05, $8B, $C3, $E8, $4E, $FF, $FF, $FF, $8B, $D6, + $83, $C2, $04, $88, $02, $C6, $03, $E9, $8B, $45, $FC, $2B, $C7, $83, $E8, $05, + $47, $89, $07, $8D, $45, $F0, $50, $8B, $45, $F0, $50, $6A, $05, $53, $E8, $D5, + $FB, $FF, $FF, $83, $C6, $05, $8B, $45, $F8, $89, $30, $C6, $45, $F7, $01, $33, + $C0, $5A, $59, $59, $64, $89, $10, $EB, $0E, $E9, $1A, $EC, $FF, $FF, $C6, $45, + $F7, $00, $E8, $71, $EE, $FF, $FF, $0F, $B6, $45, $F7, $5F, $5E, $5B, $8B, $E5, + $5D, $C3, $8B, $C0, $55, $8B, $EC, $83, $C4, $F8, $53, $56, $57, $8B, $F8, $B3, + $01, $33, $D2, $55, $68, $75, $45, $40, $00, $64, $FF, $32, $64, $89, $22, $8B, + $C7, $8B, $D0, $83, $EA, $05, $8B, $32, $48, $0F, $B6, $00, $89, $45, $F8, $8D, + $45, $FC, $50, $6A, $40, $6A, $05, $56, $E8, $6B, $FB, $FF, $FF, $8B, $4D, $F8, + $8B, $D7, $8B, $C6, $E8, $9F, $FB, $FF, $FF, $8D, $45, $FC, $50, $8B, $45, $FC, + $50, $6A, $05, $56, $E8, $4F, $FB, $FF, $FF, $8B, $C7, $83, $E8, $05, $68, $00, + $80, $00, $00, $6A, $00, $50, $E8, $35, $FB, $FF, $FF, $33, $C0, $5A, $59, $59, + $64, $89, $10, $EB, $0C, $E9, $8E, $EB, $FF, $FF, $33, $DB, $E8, $E7, $ED, $FF, + $FF, $8B, $C3, $5F, $5E, $5B, $59, $59, $5D, $C3, $8B, $C0, $85, $C0, $74, $75, + $85, $D2, $74, $6D, $57, $53, $31, $FF, $8B, $58, $FC, $89, $D9, $2B, $5A, $FC, + $83, $D7, $FF, $53, $21, $FB, $89, $C7, $29, $CB, $7D, $13, $29, $DF, $29, $DA, + $8B, $04, $1F, $8B, $0C, $1A, $31, $C8, $75, $13, $83, $C3, $04, $7C, $F1, $58, + $5B, $5F, $C3, $8B, $04, $1F, $8B, $0C, $1A, $31, $C8, $74, $ED, $A9, $DF, $DF, + $DF, $DF, $75, $3E, $01, $C0, $01, $C0, $85, $C8, $75, $36, $81, $E1, $5F, $5F, + $5F, $5F, $81, $C1, $3F, $3F, $3F, $3F, $81, $E1, $7F, $7F, $7F, $7F, $81, $C1, + $66, $66, $66, $66, $85, $C1, $75, $1A, $83, $C3, $04, $7C, $C6, $58, $5B, $5F, + $C3, $8B, $40, $FC, $C3, $85, $D2, $74, $03, $2B, $42, $FC, $C3, $83, $C3, $01, + $7D, $EB, $0F, $B6, $04, $1F, $0F, $B6, $0C, $1A, $83, $E8, $61, $83, $E9, $61, + $3C, $19, $77, $03, $83, $E8, $20, $80, $F9, $19, $77, $03, $83, $E9, $20, $29, + $C8, $74, $DA, $59, $5B, $5F, $C3, $90, $39, $D0, $74, $19, $09, $C0, $74, $17, + $09, $D2, $74, $14, $8B, $48, $FC, $3B, $4A, $FC, $75, $0C, $E8, $3B, $FF, $FF, + $FF, $85, $C0, $75, $03, $B0, $01, $C3, $31, $C0, $C3, $90, $55, $8B, $EC, $83, + $C4, $F8, $53, $56, $57, $33, $C9, $89, $4D, $F8, $8B, $F2, $89, $45, $FC, $33, + $C0, $55, $68, $CB, $46, $40, $00, $64, $FF, $30, $64, $89, $20, $8B, $C6, $85, + $C0, $74, $05, $83, $E8, $04, $8B, $00, $8B, $F8, $85, $FF, $7E, $27, $0F, $B6, + $5C, $3E, $FF, $84, $DB, $74, $1E, $8D, $45, $F8, $8B, $D3, $E8, $33, $F3, $FF, + $FF, $8B, $45, $F8, $8B, $55, $FC, $E8, $DC, $F4, $FF, $FF, $85, $C0, $75, $05, + $4F, $85, $FF, $7F, $D9, $33, $C0, $5A, $59, $59, $64, $89, $10, $68, $D2, $46, + $40, $00, $8D, $45, $F8, $E8, $16, $F2, $FF, $FF, $C3, $E9, $64, $EB, $FF, $FF, + $EB, $F0, $8B, $C7, $5F, $5E, $5B, $59, $59, $5D, $C3, $90, $53, $56, $57, $8B, + $FA, $8B, $D8, $8B, $D3, $B8, $10, $47, $40, $00, $E8, $6D, $FF, $FF, $FF, $8B, + $F0, $57, $8D, $56, $01, $B9, $FF, $FF, $FF, $7F, $8B, $C3, $E8, $47, $F4, $FF, + $FF, $5F, $5E, $5B, $C3, $00, $00, $00, $FF, $FF, $FF, $FF, $01, $00, $00, $00, + $5C, $00, $00, $00, $53, $56, $57, $55, $81, $C4, $00, $FC, $FF, $FF, $8B, $F2, + $8B, $F8, $8B, $C6, $E8, $B7, $F1, $FF, $FF, $68, $00, $04, $00, $00, $8D, $44, + $24, $04, $50, $8B, $C7, $E8, $FA, $F3, $FF, $FF, $8B, $E8, $55, $E8, $FE, $F8, + $FF, $FF, $8B, $D8, $81, $FB, $00, $04, $00, $00, $7D, $0D, $8B, $D4, $8B, $C6, + $8B, $CB, $E8, $4D, $F2, $FF, $FF, $EB, $19, $8B, $D3, $4A, $8B, $C6, $E8, $69, + $F5, $FF, $FF, $53, $8B, $06, $E8, $C9, $F3, $FF, $FF, $50, $55, $E8, $CE, $F8, + $FF, $FF, $81, $C4, $00, $04, $00, $00, $5D, $5F, $5E, $5B, $C3, $8D, $40, $00, + $53, $56, $81, $C4, $F8, $FE, $FF, $FF, $8B, $F2, $8B, $D8, $68, $05, $01, $00, + $00, $8D, $44, $24, $04, $50, $53, $E8, $AC, $F8, $FF, $FF, $8B, $C8, $8B, $D4, + $8B, $C6, $E8, $FD, $F1, $FF, $FF, $81, $C4, $08, $01, $00, $00, $5E, $5B, $C3, + $FF, $FF, $FF, $FF, $02, $00, $00, $00, $00, $00, $00, $00, $55, $8B, $EC, $83, + $C4, $F8, $53, $56, $57, $8B, $F1, $8B, $FA, $8B, $D8, $C6, $45, $FF, $00, $8B, + $C3, $E8, $5E, $F3, $FF, $FF, $50, $6A, $00, $6A, $02, $E8, $A0, $F8, $FF, $FF, + $89, $45, $F8, $83, $7D, $F8, $00, $74, $64, $83, $7D, $F8, $FF, $74, $5E, $33, + $C0, $55, $68, $46, $48, $40, $00, $64, $FF, $30, $64, $89, $20, $56, $6A, $00, + $6A, $00, $6A, $02, $8B, $45, $F8, $50, $E8, $6B, $F8, $FF, $FF, $8B, $D8, $85, + $DB, $75, $07, $E8, $80, $EB, $FF, $FF, $EB, $33, $8B, $D3, $8B, $C7, $8B, $CE, + $E8, $77, $E4, $FF, $FF, $53, $E8, $65, $F8, $FF, $FF, $C6, $45, $FF, $01, $33, + $C0, $5A, $59, $59, $64, $89, $10, $68, $4D, $48, $40, $00, $8B, $45, $F8, $50, + $E8, $DB, $F7, $FF, $FF, $C3, $E9, $E9, $E9, $FF, $FF, $EB, $EF, $0F, $B6, $45, + $FF, $5F, $5E, $5B, $59, $59, $5D, $C3, $55, $8B, $EC, $83, $C4, $F8, $53, $56, + $8B, $F2, $8B, $D8, $C6, $45, $FF, $00, $8B, $C3, $E8, $C5, $F2, $FF, $FF, $50, + $6A, $00, $6A, $02, $E8, $07, $F8, $FF, $FF, $89, $45, $F8, $83, $7D, $F8, $00, + $74, $64, $83, $7D, $F8, $FF, $74, $5E, $33, $C0, $55, $68, $DF, $48, $40, $00, + $64, $FF, $30, $64, $89, $20, $56, $6A, $00, $6A, $00, $6A, $02, $8B, $45, $F8, + $50, $E8, $D2, $F7, $FF, $FF, $8B, $D8, $85, $DB, $75, $07, $E8, $E7, $EA, $FF, + $FF, $EB, $33, $8B, $C3, $33, $C9, $8B, $D6, $E8, $36, $E5, $FF, $FF, $53, $E8, + $CC, $F7, $FF, $FF, $C6, $45, $FF, $01, $33, $C0, $5A, $59, $59, $64, $89, $10, + $68, $E6, $48, $40, $00, $8B, $45, $F8, $50, $E8, $42, $F7, $FF, $FF, $C3, $E9, + $50, $E9, $FF, $FF, $EB, $EF, $0F, $B6, $45, $FF, $5E, $5B, $59, $59, $5D, $C3, + $55, $8B, $EC, $33, $C0, $55, $68, $21, $49, $40, $00, $64, $FF, $30, $64, $89, + $20, $FF, $05, $F4, $A7, $40, $00, $75, $0A, $B8, $E0, $7C, $40, $00, $E8, $CD, + $EF, $FF, $FF, $33, $C0, $5A, $59, $59, $64, $89, $10, $68, $28, $49, $40, $00, + $C3, $E9, $0E, $E9, $FF, $FF, $EB, $F8, $5D, $C3, $8B, $C0, $FF, $25, $00, $A8, + $40, $00, $C3, $90, $FF, $25, $04, $A8, $40, $00, $C3, $90, $55, $8B, $EC, $6A, + $00, $53, $33, $C0, $55, $68, $FC, $49, $40, $00, $64, $FF, $30, $64, $89, $20, + $8D, $45, $FC, $BA, $04, $01, $00, $00, $E8, $6F, $F3, $FF, $FF, $68, $04, $01, + $00, $00, $8B, $45, $FC, $E8, $CA, $F1, $FF, $FF, $50, $E8, $F0, $F6, $FF, $FF, + $8B, $D8, $8D, $45, $FC, $8B, $D3, $E8, $50, $F3, $FF, $FF, $8B, $45, $FC, $80, + $7C, $18, $FF, $5C, $74, $0D, $8D, $45, $FC, $BA, $10, $4A, $40, $00, $E8, $69, + $F0, $FF, $FF, $8D, $45, $FC, $BA, $1C, $4A, $40, $00, $E8, $5C, $F0, $FF, $FF, + $8B, $45, $FC, $E8, $8C, $F1, $FF, $FF, $50, $E8, $C2, $F6, $FF, $FF, $A3, $FC, + $A7, $40, $00, $83, $3D, $FC, $A7, $40, $00, $00, $76, $2A, $68, $2C, $4A, $40, + $00, $A1, $FC, $A7, $40, $00, $50, $E8, $8C, $F6, $FF, $FF, $A3, $00, $A8, $40, + $00, $68, $40, $4A, $40, $00, $A1, $FC, $A7, $40, $00, $50, $E8, $77, $F6, $FF, + $FF, $A3, $04, $A8, $40, $00, $33, $C0, $5A, $59, $59, $64, $89, $10, $68, $03, + $4A, $40, $00, $8D, $45, $FC, $E8, $E5, $EE, $FF, $FF, $C3, $E9, $33, $E8, $FF, + $FF, $EB, $F0, $5B, $59, $5D, $C3, $00, $FF, $FF, $FF, $FF, $01, $00, $00, $00, + $5C, $00, $00, $00, $FF, $FF, $FF, $FF, $0C, $00, $00, $00, $73, $68, $66, $6F, + $6C, $64, $65, $72, $2E, $64, $6C, $6C, $00, $00, $00, $00, $53, $48, $47, $65, + $74, $46, $6F, $6C, $64, $65, $72, $50, $61, $74, $68, $41, $00, $00, $00, $00, + $53, $48, $47, $65, $74, $46, $6F, $6C, $64, $65, $72, $50, $61, $74, $68, $57, + $00, $00, $00, $00, $A1, $FC, $A7, $40, $00, $50, $E8, $C9, $F5, $FF, $FF, $C3, + $55, $8B, $EC, $33, $C0, $55, $68, $8C, $4A, $40, $00, $64, $FF, $30, $64, $89, + $20, $FF, $05, $F8, $A7, $40, $00, $75, $05, $E8, $D6, $FF, $FF, $FF, $33, $C0, + $5A, $59, $59, $64, $89, $10, $68, $93, $4A, $40, $00, $C3, $E9, $A3, $E7, $FF, + $FF, $EB, $F8, $5D, $C3, $8D, $40, $00, $55, $8B, $EC, $83, $C4, $EC, $53, $56, + $89, $45, $FC, $E8, $90, $F5, $FF, $FF, $8B, $F0, $B8, $0E, $00, $00, $00, $BA, + $F4, $7C, $40, $00, $8D, $4D, $EE, $0F, $B6, $1A, $88, $19, $41, $42, $48, $75, + $F6, $33, $C0, $8B, $C8, $03, $C9, $03, $C9, $8B, $D6, $D3, $EA, $83, $E2, $0F, + $0F, $B6, $92, $E4, $7C, $40, $00, $B9, $0D, $00, $00, $00, $2B, $C8, $88, $54, + $0D, $EE, $40, $83, $F8, $08, $75, $DB, $8B, $45, $FC, $8D, $55, $EE, $B9, $0E, + $00, $00, $00, $E8, $EC, $EE, $FF, $FF, $5E, $5B, $8B, $E5, $5D, $C3, $8B, $C0, + $55, $8B, $EC, $83, $C4, $F8, $53, $56, $33, $D2, $89, $55, $FC, $8B, $D8, $33, + $C0, $55, $68, $75, $4B, $40, $00, $64, $FF, $30, $64, $89, $20, $33, $F6, $85, + $DB, $74, $3C, $8D, $45, $F8, $50, $53, $E8, $AB, $F5, $FF, $FF, $85, $C0, $74, + $2E, $E8, $02, $F5, $FF, $FF, $3B, $45, $F8, $75, $24, $8D, $45, $FC, $E8, $55, + $FF, $FF, $FF, $8B, $45, $FC, $E8, $E9, $EF, $FF, $FF, $50, $E8, $17, $F5, $FF, + $FF, $8B, $F0, $0F, $B7, $C6, $50, $53, $E8, $63, $F5, $FF, $FF, $8B, $F0, $33, + $C0, $5A, $59, $59, $64, $89, $10, $68, $7C, $4B, $40, $00, $8D, $45, $FC, $E8, + $6C, $ED, $FF, $FF, $C3, $E9, $BA, $E6, $FF, $FF, $EB, $F0, $8B, $C6, $5E, $5B, + $59, $59, $5D, $C3, $53, $56, $81, $C4, $F8, $FE, $FF, $FF, $8B, $F2, $8B, $D8, + $68, $05, $01, $00, $00, $8D, $44, $24, $04, $50, $53, $E8, $18, $F5, $FF, $FF, + $8B, $C8, $8B, $D4, $8B, $C6, $E8, $F9, $ED, $FF, $FF, $81, $C4, $08, $01, $00, + $00, $5E, $5B, $C3, $53, $56, $81, $C4, $F8, $FE, $FF, $FF, $8B, $F2, $8B, $D8, + $68, $05, $01, $00, $00, $8D, $44, $24, $04, $50, $53, $E8, $00, $F5, $FF, $FF, + $8B, $C8, $8B, $D4, $8B, $C6, $E8, $C9, $ED, $FF, $FF, $81, $C4, $08, $01, $00, + $00, $5E, $5B, $C3, $55, $8B, $EC, $6A, $00, $53, $56, $8B, $5D, $08, $33, $C0, + $55, $68, $69, $4C, $40, $00, $64, $FF, $30, $64, $89, $20, $83, $CE, $FF, $8D, + $55, $FC, $8B, $C3, $E8, $7B, $FF, $FF, $FF, $BA, $84, $4C, $40, $00, $8B, $45, + $FC, $E8, $22, $FA, $FF, $FF, $84, $C0, $74, $22, $83, $3D, $10, $A8, $40, $00, + $00, $75, $08, $89, $1D, $10, $A8, $40, $00, $EB, $28, $83, $3D, $14, $A8, $40, + $00, $00, $75, $1F, $89, $1D, $14, $A8, $40, $00, $EB, $17, $BA, $94, $4C, $40, + $00, $8B, $45, $FC, $E8, $EF, $F9, $FF, $FF, $84, $C0, $74, $06, $89, $1D, $18, + $A8, $40, $00, $33, $C0, $5A, $59, $59, $64, $89, $10, $68, $70, $4C, $40, $00, + $8D, $45, $FC, $E8, $78, $EC, $FF, $FF, $C3, $E9, $C6, $E5, $FF, $FF, $EB, $F0, + $8B, $C6, $5E, $5B, $59, $5D, $C2, $08, $00, $00, $00, $00, $FF, $FF, $FF, $FF, + $05, $00, $00, $00, $54, $45, $64, $69, $74, $00, $00, $00, $FF, $FF, $FF, $FF, + $05, $00, $00, $00, $54, $4D, $65, $6D, $6F, $00, $00, $00, $55, $8B, $EC, $83, + $C4, $E0, $6A, $00, $68, $E4, $4B, $40, $00, $8B, $45, $08, $8B, $40, $08, $50, + $E8, $FB, $F3, $FF, $FF, $83, $3D, $10, $A8, $40, $00, $00, $74, $09, $83, $3D, + $14, $A8, $40, $00, $00, $75, $04, $33, $C0, $EB, $02, $B0, $01, $84, $C0, $74, + $5D, $8D, $45, $F0, $50, $A1, $10, $A8, $40, $00, $50, $E8, $E8, $F3, $FF, $FF, + $8D, $45, $E0, $50, $A1, $14, $A8, $40, $00, $50, $E8, $D9, $F3, $FF, $FF, $8B, + $45, $E4, $3B, $45, $F4, $7D, $16, $A1, $14, $A8, $40, $00, $8B, $15, $10, $A8, + $40, $00, $89, $15, $14, $A8, $40, $00, $A3, $10, $A8, $40, $00, $83, $3D, $10, + $A8, $40, $00, $00, $74, $12, $83, $3D, $14, $A8, $40, $00, $00, $74, $09, $83, + $3D, $18, $A8, $40, $00, $00, $75, $04, $33, $C0, $EB, $02, $B0, $01, $8B, $E5, + $5D, $C3, $8B, $C0, $55, $8B, $EC, $6A, $00, $53, $56, $8B, $F0, $33, $C0, $55, + $68, $9F, $4D, $40, $00, $64, $FF, $30, $64, $89, $20, $8D, $55, $FC, $B8, $B4, + $4D, $40, $00, $E8, $BC, $F9, $FF, $FF, $83, $7D, $FC, $00, $74, $2B, $BA, $00, + $04, $00, $00, $8B, $45, $FC, $E8, $ED, $FA, $FF, $FF, $8B, $DE, $85, $DB, $74, + $05, $83, $EB, $04, $8B, $1B, $8B, $C6, $E8, $B7, $ED, $FF, $FF, $8B, $D0, $8B, + $CB, $8B, $45, $FC, $E8, $33, $FA, $FF, $FF, $33, $C0, $5A, $59, $59, $64, $89, + $10, $68, $A6, $4D, $40, $00, $8D, $45, $FC, $E8, $42, $EB, $FF, $FF, $C3, $E9, + $90, $E4, $FF, $FF, $EB, $F0, $5E, $5B, $59, $5D, $C3, $00, $FF, $FF, $FF, $FF, + $07, $00, $00, $00, $4D, $65, $6D, $46, $69, $6C, $65, $00, $55, $8B, $EC, $53, + $8B, $D8, $53, $8B, $45, $08, $8B, $40, $08, $50, $FF, $15, $0C, $A8, $40, $00, + $8B, $55, $08, $89, $42, $FC, $5B, $5D, $C3, $8D, $40, $00, $55, $8B, $EC, $33, + $C9, $51, $51, $51, $51, $51, $53, $56, $57, $33, $C0, $55, $68, $83, $4F, $40, + $00, $64, $FF, $30, $64, $89, $20, $8D, $55, $F8, $8B, $45, $08, $E8, $82, $FD, + $FF, $FF, $BA, $A0, $4F, $40, $00, $8B, $45, $F8, $E8, $29, $F8, $FF, $FF, $84, + $C0, $75, $22, $BA, $BC, $4F, $40, $00, $8B, $45, $F8, $E8, $18, $F8, $FF, $FF, + $84, $C0, $75, $11, $BA, $D8, $4F, $40, $00, $8B, $45, $F8, $E8, $07, $F8, $FF, + $FF, $84, $C0, $74, $1E, $55, $33, $C0, $E8, $7F, $FF, $FF, $FF, $59, $68, $BB, + $07, $00, $00, $E8, $E8, $F1, $FF, $FF, $50, $E8, $3A, $F2, $FF, $FF, $E9, $15, + $01, $00, $00, $BA, $F4, $4F, $40, $00, $8B, $45, $F8, $E8, $D8, $F7, $FF, $FF, + $84, $C0, $74, $49, $8D, $55, $F8, $8B, $45, $08, $E8, $45, $FD, $FF, $FF, $8B, + $45, $F8, $BA, $04, $50, $40, $00, $E8, $60, $EC, $FF, $FF, $75, $20, $55, $33, + $C0, $E8, $36, $FF, $FF, $FF, $59, $6A, $00, $6A, $06, $68, $11, $01, $00, $00, + $8B, $45, $08, $50, $E8, $47, $F2, $FF, $FF, $E9, $CA, $00, $00, $00, $55, $8B, + $45, $0C, $E8, $15, $FF, $FF, $FF, $59, $E9, $BB, $00, $00, $00, $BA, $20, $50, + $40, $00, $8B, $45, $F8, $E8, $7E, $F7, $FF, $FF, $84, $C0, $0F, $84, $9C, $00, + $00, $00, $55, $33, $C0, $E8, $F2, $FE, $FF, $FF, $59, $8B, $45, $08, $E8, $2D, + $FC, $FF, $FF, $8B, $D8, $8B, $C3, $E8, $C4, $E0, $FF, $FF, $8B, $F0, $BA, $2C, + $50, $40, $00, $8B, $C6, $E8, $DE, $E0, $FF, $FF, $89, $C7, $33, $D2, $8B, $C3, + $FF, $D7, $55, $E8, $A4, $FD, $FF, $FF, $59, $84, $C0, $74, $6B, $8D, $55, $F4, + $A1, $10, $A8, $40, $00, $E8, $AA, $FC, $FF, $FF, $8D, $55, $F0, $A1, $14, $A8, + $40, $00, $E8, $9D, $FC, $FF, $FF, $8D, $55, $EC, $A1, $18, $A8, $40, $00, $E8, + $90, $FC, $FF, $FF, $FF, $75, $F4, $68, $44, $50, $40, $00, $FF, $75, $F0, $68, + $44, $50, $40, $00, $FF, $75, $EC, $8D, $45, $F8, $BA, $05, $00, $00, $00, $E8, + $04, $EB, $FF, $FF, $8B, $45, $F8, $E8, $E8, $FD, $FF, $FF, $68, $BB, $07, $00, + $00, $E8, $DA, $F0, $FF, $FF, $50, $E8, $2C, $F1, $FF, $FF, $EB, $0A, $55, $8B, + $45, $0C, $E8, $55, $FE, $FF, $FF, $59, $33, $C0, $5A, $59, $59, $64, $89, $10, + $68, $8A, $4F, $40, $00, $8D, $45, $EC, $BA, $04, $00, $00, $00, $E8, $82, $E9, + $FF, $FF, $C3, $E9, $AC, $E2, $FF, $FF, $EB, $EB, $8B, $45, $FC, $5F, $5E, $5B, + $8B, $E5, $5D, $C2, $08, $00, $00, $00, $FF, $FF, $FF, $FF, $10, $00, $00, $00, + $54, $54, $72, $69, $61, $6C, $57, $69, $7A, $61, $72, $64, $46, $6F, $72, $6D, + $00, $00, $00, $00, $FF, $FF, $FF, $FF, $12, $00, $00, $00, $54, $41, $64, $76, + $61, $6E, $63, $65, $64, $4C, $69, $63, $65, $6E, $73, $65, $55, $49, $00, $00, + $FF, $FF, $FF, $FF, $10, $00, $00, $00, $54, $53, $69, $6D, $70, $6C, $65, $4C, + $69, $63, $65, $6E, $73, $65, $55, $49, $00, $00, $00, $00, $FF, $FF, $FF, $FF, + $06, $00, $00, $00, $23, $33, $32, $37, $37, $30, $00, $00, $FF, $FF, $FF, $FF, + $11, $00, $00, $00, $52, $61, $64, $20, $53, $74, $75, $64, $69, $6F, $20, $4B, + $65, $79, $67, $65, $6E, $00, $00, $00, $FF, $FF, $FF, $FF, $08, $00, $00, $00, + $54, $46, $72, $6D, $4D, $61, $69, $6E, $00, $00, $00, $00, $0C, $42, $75, $74, + $74, $6F, $6E, $31, $43, $6C, $69, $63, $6B, $00, $00, $00, $FF, $FF, $FF, $FF, + $01, $00, $00, $00, $2C, $00, $00, $00, $55, $8B, $EC, $6A, $00, $6A, $00, $33, + $C0, $55, $68, $EF, $50, $40, $00, $64, $FF, $30, $64, $89, $20, $8D, $55, $F8, + $33, $C0, $E8, $19, $F7, $FF, $FF, $8B, $45, $F8, $8D, $55, $FC, $E8, $6A, $F6, + $FF, $FF, $BA, $04, $51, $40, $00, $8B, $45, $FC, $E8, $B9, $F5, $FF, $FF, $84, + $C0, $75, $11, $BA, $20, $51, $40, $00, $8B, $45, $FC, $E8, $A8, $F5, $FF, $FF, + $84, $C0, $74, $40, $8D, $55, $FC, $B8, $3C, $51, $40, $00, $E8, $73, $F6, $FF, + $FF, $8B, $45, $FC, $BA, $50, $51, $40, $00, $E8, $2E, $EA, $FF, $FF, $75, $24, + $68, $58, $51, $40, $00, $E8, $96, $EF, $FF, $FF, $68, $64, $51, $40, $00, $50, + $E8, $93, $EF, $FF, $FF, $B9, $0C, $A8, $40, $00, $BA, $DC, $4D, $40, $00, $E8, + $70, $F3, $FF, $FF, $33, $C0, $5A, $59, $59, $64, $89, $10, $68, $F6, $50, $40, + $00, $8D, $45, $F8, $BA, $02, $00, $00, $00, $E8, $16, $E8, $FF, $FF, $C3, $E9, + $40, $E1, $FF, $FF, $EB, $EB, $59, $59, $5D, $C3, $00, $00, $FF, $FF, $FF, $FF, + $12, $00, $00, $00, $4C, $69, $63, $65, $6E, $73, $65, $4D, $61, $6E, $61, $67, + $65, $72, $2E, $65, $78, $65, $00, $00, $FF, $FF, $FF, $FF, $13, $00, $00, $00, + $52, $61, $64, $53, $74, $75, $64, $69, $6F, $4B, $65, $79, $67, $65, $6E, $2E, + $65, $78, $65, $00, $FF, $FF, $FF, $FF, $0B, $00, $00, $00, $53, $45, $53, $53, + $49, $4F, $4E, $4E, $41, $4D, $45, $00, $FF, $FF, $FF, $FF, $07, $00, $00, $00, + $43, $6F, $6E, $73, $6F, $31, $65, $00, $75, $73, $65, $72, $33, $32, $2E, $64, + $6C, $6C, $00, $00, $53, $68, $6F, $77, $57, $69, $6E, $64, $6F, $77, $00, $00, + $A1, $0C, $A8, $40, $00, $85, $C0, $74, $05, $E8, $86, $F3, $FF, $FF, $C3, $90, + $55, $8B, $EC, $33, $C0, $55, $68, $AC, $51, $40, $00, $64, $FF, $30, $64, $89, + $20, $FF, $05, $08, $A8, $40, $00, $75, $05, $E8, $D2, $FF, $FF, $FF, $33, $C0, + $5A, $59, $59, $64, $89, $10, $68, $B3, $51, $40, $00, $C3, $E9, $83, $E0, $FF, + $FF, $EB, $F8, $5D, $C3, $8D, $40, $00, $55, $8B, $EC, $33, $C0, $55, $68, $D7, + $51, $40, $00, $64, $FF, $30, $64, $89, $20, $33, $C0, $5A, $59, $59, $64, $89, + $10, $68, $DE, $51, $40, $00, $C3, $E9, $58, $E0, $FF, $FF, $EB, $F8, $5D, $C3, + $0C, $00, $00, $00, $E8, $51, $40, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $60, $40, $00, $1C, $3E, $40, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $98, $60, $40, $00, $F0, $40, $40, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $AC, $60, $40, $00, $F0, $48, $40, $00, + $B4, $60, $40, $00, $60, $4A, $40, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $C4, $60, $40, $00, $80, $51, $40, $00, + $00, $00, $00, $00, $B8, $51, $40, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $83, $2D, $A0, $85, $40, $00, $01, $0F, $83, $87, $00, $00, $00, $E8, $86, $C9, + $FF, $FF, $C6, $05, $08, $70, $40, $00, $02, $C7, $05, $10, $80, $40, $00, $08, + $10, $40, $00, $C7, $05, $14, $80, $40, $00, $10, $10, $40, $00, $C6, $05, $36, + $80, $40, $00, $02, $C7, $05, $00, $80, $40, $00, $30, $3D, $40, $00, $E8, $55, + $CE, $FF, $FF, $84, $C0, $74, $05, $E8, $7C, $CE, $FF, $FF, $E8, $3B, $CF, $FF, + $FF, $66, $C7, $05, $3C, $80, $40, $00, $B0, $D7, $66, $C7, $05, $08, $82, $40, + $00, $B0, $D7, $66, $C7, $05, $D4, $83, $40, $00, $B0, $D7, $E8, $CF, $AF, $FF, + $FF, $A3, $2C, $80, $40, $00, $E8, $FD, $AF, $FF, $FF, $A3, $28, $80, $40, $00, + $E8, $8F, $DD, $FF, $FF, $A3, $A4, $85, $40, $00, $E8, $E1, $AF, $FF, $FF, $A3, + $20, $80, $40, $00, $C3, $8D, $40, $00, $83, $2D, $EC, $A7, $40, $00, $01, $73, + $07, $33, $C0, $A3, $F0, $A7, $40, $00, $C3, $8D, $40, $00, $83, $2D, $F4, $A7, + $40, $00, $01, $C3, $83, $2D, $F8, $A7, $40, $00, $01, $73, $05, $E8, $7A, $E8, + $FF, $FF, $C3, $90, $83, $2D, $08, $A8, $40, $00, $01, $73, $05, $E8, $76, $EF, + $FF, $FF, $C3, $90, $55, $8B, $EC, $83, $C4, $C4, $B8, $E0, $51, $40, $00, $E8, + $F4, $DE, $FF, $FF, $E8, $03, $D7, $FF, $FF, $8D, $40, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $02, $8D, $40, $00, $32, $13, $8B, $C0, + $00, $8D, $40, $00, $00, $8D, $40, $00, $00, $8D, $40, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $C4, $10, $40, $00, $00, $00, $10, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $24, $11, $40, $00, $00, $00, $18, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $38, $11, $40, $00, $00, $00, $20, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $58, $11, $40, $00, $00, $00, $28, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $84, $11, $40, $00, $00, $00, $30, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $A4, $11, $40, $00, $00, $00, $38, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $C8, $11, $40, $00, $00, $00, $40, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $F4, $11, $40, $00, $00, $00, $48, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $24, $12, $40, $00, $00, $00, $50, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $58, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $60, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $68, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $70, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $78, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $80, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $88, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $90, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $98, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $A0, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $B0, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $C0, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $D0, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $E0, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $F0, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $10, $01, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $20, $01, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $30, $01, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $40, $01, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $60, $01, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $80, $01, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $A0, $01, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $C0, $01, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $E0, $01, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $10, $02, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $40, $02, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $70, $02, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $A0, $02, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $E0, $02, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $20, $03, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $70, $03, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $C0, $03, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $20, $04, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $80, $04, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $F0, $04, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $60, $05, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $E0, $05, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $70, $06, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $10, $07, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $C0, $07, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $80, $08, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $50, $09, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $30, $0A, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $30, $0A, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $30, $0A, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $C8, $16, $40, $00, $4C, $1A, $40, $00, + $44, $1C, $40, $00, $5C, $1F, $40, $00, $F8, $22, $40, $00, $38, $23, $40, $00, + $00, $CB, $CC, $C8, $C9, $D7, $CF, $C8, $CD, $CE, $DB, $D8, $DA, $D9, $CA, $DC, + $DD, $DE, $DF, $E0, $E1, $E3, $00, $E4, $E5, $8D, $40, $00, $45, $72, $72, $6F, + $72, $00, $8B, $C0, $52, $75, $6E, $74, $69, $6D, $65, $20, $65, $72, $72, $6F, + $72, $20, $20, $20, $20, $20, $61, $74, $20, $30, $30, $30, $30, $30, $30, $30, + $30, $00, $8B, $C0, $30, $31, $32, $33, $34, $35, $36, $37, $38, $39, $41, $42, + $43, $44, $45, $46, $FF, $FF, $FF, $FF, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $68, $3F, $40, $00, $04, $3F, $40, $00, $C0, $3E, $40, $00, $30, $3F, $40, $00, + $11, $42, $E4, $42, $11, $20, $E4, $20, $01, $84, $42, $8C, $00, $00, $00, $00, + $11, $42, $E4, $42, $11, $20, $E4, $20, $01, $84, $42, $8C, $00, $00, $00, $00, + $11, $42, $E4, $42, $11, $20, $E4, $20, $01, $84, $42, $8C, $00, $00, $00, $00, + $11, $42, $E4, $42, $11, $20, $E4, $20, $01, $84, $42, $8C, $00, $00, $00, $00, + $11, $42, $E4, $42, $11, $20, $E4, $20, $01, $84, $42, $8C, $00, $00, $00, $80, + $11, $42, $E4, $42, $11, $20, $E4, $20, $01, $84, $42, $8C, $00, $00, $00, $80, + $11, $42, $E4, $42, $11, $20, $E4, $20, $01, $84, $42, $8C, $00, $00, $00, $80, + $11, $02, $E4, $02, $11, $00, $E4, $00, $01, $04, $42, $0C, $00, $00, $00, $80, + $45, $60, $45, $60, $45, $60, $45, $60, $45, $60, $45, $60, $45, $60, $45, $60, + $45, $60, $45, $60, $45, $60, $45, $60, $45, $60, $45, $60, $45, $60, $45, $60, + $45, $00, $45, $00, $45, $00, $45, $00, $45, $00, $45, $00, $45, $00, $45, $00, + $45, $60, $45, $60, $45, $60, $45, $60, $45, $60, $45, $60, $45, $60, $45, $60, + $00, $00, $00, $80, $E4, $00, $1A, $42, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $0C, $E4, $2C, $00, $04, $E4, $24, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $14, $00, $14, $00, $14, $00, $14, $00, $14, $00, $14, $00, $14, $00, $14, + $00, $14, $00, $14, $00, $14, $00, $14, $00, $14, $00, $14, $00, $14, $00, $14, + $10, $05, $A0, $0D, $10, $05, $A0, $05, $11, $02, $E4, $02, $11, $A2, $E4, $A2, + $11, $42, $E4, $42, $11, $20, $E4, $20, $E3, $42, $E4, $20, $E3, $00, $A0, $01, + $00, $00, $46, $E0, $46, $E0, $46, $E0, $46, $E0, $46, $E0, $46, $E0, $46, $E0, + $00, $80, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $80, + $01, $81, $42, $81, $01, $03, $42, $03, $00, $00, $00, $00, $00, $00, $00, $00, + $01, $04, $42, $0C, $00, $00, $00, $00, $00, $80, $00, $80, $00, $00, $00, $00, + $04, $64, $04, $64, $04, $64, $04, $64, $04, $64, $04, $64, $04, $64, $04, $64, + $45, $6C, $45, $6C, $45, $6C, $45, $6C, $45, $6C, $45, $6C, $45, $6C, $45, $6C, + $10, $45, $A0, $45, $00, $08, $00, $00, $E4, $20, $E4, $20, $10, $45, $A0, $4D, + $00, $00, $00, $00, $00, $08, $00, $00, $00, $00, $00, $04, $00, $00, $00, $00, + $10, $41, $A0, $41, $10, $41, $A0, $41, $00, $84, $00, $84, $00, $00, $00, $80, + $08, $00, $08, $00, $08, $00, $08, $00, $08, $00, $08, $00, $08, $00, $08, $00, + $00, $14, $00, $14, $00, $14, $00, $14, $01, $84, $42, $84, $01, $06, $42, $06, + $00, $1C, $00, $1C, $00, $00, $00, $14, $07, $80, $47, $80, $07, $02, $47, $02, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $08, $00, $08, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $10, $41, $A0, $01, + $18, $01, $20, $01, $E4, $20, $E4, $20, $FF, $FF, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $FF, $FF, $FF, $FF, $FF, $FF, $10, $01, $00, $00, $2D, $05, + $3F, $00, $3F, $02, $3F, $00, $3F, $02, $3F, $00, $3F, $00, $3F, $00, $3F, $02, + $10, $01, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, + $23, $40, $23, $40, $23, $02, $23, $02, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, + $3F, $00, $3F, $02, $2F, $00, $3F, $02, $3D, $00, $3D, $00, $3F, $00, $3F, $00, + $00, $00, $00, $80, $00, $80, $00, $80, $00, $00, $00, $00, $FF, $FF, $FF, $FF, + $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, + $E4, $20, $E4, $20, $E4, $20, $E4, $20, $E4, $20, $E4, $20, $E4, $20, $E4, $20, + $E4, $20, $E4, $20, $E4, $20, $E4, $20, $E4, $20, $E4, $20, $E4, $20, $E4, $20, + $27, $42, $3F, $00, $3F, $00, $3F, $00, $3F, $00, $3F, $00, $3F, $00, $3F, $00, + $3F, $00, $3F, $00, $3F, $00, $3F, $00, $3F, $00, $3F, $00, $3F, $00, $3F, $00, + $ED, $00, $ED, $00, $ED, $00, $ED, $00, $ED, $00, $ED, $00, $ED, $00, $ED, $00, + $ED, $00, $ED, $00, $ED, $00, $ED, $00, $ED, $00, $ED, $00, $65, $00, $ED, $00, + $ED, $04, $A8, $04, $A8, $04, $A8, $04, $ED, $00, $ED, $00, $ED, $00, $00, $00, + $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $65, $02, $ED, $02, + $00, $1C, $00, $1C, $00, $1C, $00, $1C, $00, $1C, $00, $1C, $00, $1C, $00, $1C, + $00, $1C, $00, $1C, $00, $1C, $00, $1C, $00, $1C, $00, $1C, $00, $1C, $00, $1C, + $10, $41, $10, $41, $10, $41, $10, $41, $10, $41, $10, $41, $10, $41, $10, $41, + $10, $41, $10, $41, $10, $41, $10, $41, $10, $41, $10, $41, $10, $41, $10, $41, + $00, $00, $00, $00, $00, $80, $E4, $02, $E4, $47, $E4, $43, $11, $C2, $E4, $C2, + $00, $00, $00, $00, $00, $00, $E4, $42, $E4, $47, $E4, $43, $20, $00, $E4, $20, + $11, $C2, $E4, $C2, $E4, $20, $E4, $42, $E4, $20, $E4, $22, $54, $21, $1C, $21, + $FF, $FF, $FF, $FF, $A0, $05, $E4, $42, $E4, $20, $E4, $20, $54, $21, $1C, $21, + $11, $A2, $E4, $A2, $3F, $04, $24, $02, $65, $04, $AC, $24, $3F, $04, $28, $81, + $05, $60, $05, $60, $05, $60, $05, $60, $05, $60, $05, $60, $05, $60, $05, $60, + $FF, $FF, $ED, $00, $ED, $00, $ED, $00, $ED, $00, $ED, $00, $ED, $02, $AC, $20, + $ED, $00, $ED, $00, $ED, $00, $ED, $00, $ED, $00, $ED, $00, $ED, $00, $ED, $00, + $ED, $00, $ED, $00, $ED, $00, $ED, $00, $ED, $00, $ED, $00, $3F, $00, $ED, $02, + $ED, $00, $ED, $00, $ED, $00, $ED, $00, $ED, $00, $ED, $00, $ED, $00, $ED, $00, + $FF, $FF, $ED, $00, $ED, $00, $ED, $00, $ED, $00, $ED, $00, $ED, $00, $ED, $00, + $ED, $00, $ED, $00, $ED, $00, $ED, $00, $ED, $00, $ED, $00, $ED, $00, $00, $00, + $10, $05, $FF, $FF, $10, $41, $10, $41, $10, $81, $10, $81, $10, $81, $10, $81, + $10, $05, $FF, $FF, $10, $41, $10, $41, $10, $81, $10, $81, $10, $81, $10, $81, + $A0, $0D, $FF, $FF, $A0, $41, $A0, $41, $A0, $81, $A0, $81, $A0, $81, $A0, $81, + $A0, $0D, $FF, $FF, $A0, $41, $A0, $41, $A0, $81, $A0, $81, $A0, $81, $A0, $81, + $20, $01, $20, $01, $20, $01, $20, $01, $20, $01, $20, $01, $20, $01, $20, $01, + $36, $00, $36, $00, $30, $00, $30, $00, $36, $00, $36, $00, $36, $00, $36, $00, + $20, $01, $FF, $FF, $20, $01, $20, $01, $10, $01, $18, $01, $10, $01, $18, $01, + $30, $00, $30, $00, $00, $00, $30, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $20, $01, $20, $01, $20, $01, $20, $01, $20, $01, $20, $01, $20, $01, $20, $01, + $36, $00, $36, $00, $36, $00, $36, $00, $FF, $FF, $00, $00, $FF, $FF, $FF, $FF, + $20, $01, $FF, $FF, $20, $01, $20, $01, $FF, $FF, $30, $01, $FF, $FF, $30, $01, + $36, $00, $36, $00, $36, $00, $36, $00, $00, $00, $36, $00, $36, $00, $00, $00, + $28, $01, $28, $01, $28, $01, $28, $01, $28, $01, $28, $01, $28, $01, $28, $01, + $36, $02, $36, $02, $30, $00, $30, $00, $36, $02, $36, $02, $36, $02, $36, $02, + $28, $01, $FF, $FF, $28, $01, $28, $01, $10, $01, $FF, $FF, $10, $01, $18, $01, + $30, $00, $30, $00, $30, $00, $30, $00, $30, $00, $30, $00, $FF, $FF, $FF, $FF, + $18, $01, $18, $01, $18, $01, $18, $01, $18, $01, $18, $01, $18, $01, $18, $01, + $36, $02, $36, $02, $30, $00, $36, $02, $36, $02, $36, $02, $36, $02, $36, $02, + $18, $01, $FF, $FF, $18, $01, $18, $01, $30, $01, $28, $01, $30, $01, $28, $01, + $30, $00, $30, $00, $30, $00, $30, $00, $00, $00, $36, $00, $36, $00, $FF, $FF, + $B8, $47, $40, $00, $30, $31, $32, $33, $34, $35, $36, $37, $38, $39, $41, $42, + $43, $44, $45, $46, $44, $65, $6C, $70, $68, $69, $30, $30, $30, $30, $30, $30, + $30, $30, $8B, $C0, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $8C, $B0, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $5C, $B2, $00, $00, + $74, $B1, $00, $00, $9C, $B0, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $9C, $B2, $00, $00, $84, $B1, $00, $00, $AC, $B0, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $D8, $B2, $00, $00, $94, $B1, $00, $00, $EC, $B0, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $D2, $B3, $00, $00, $D4, $B1, $00, $00, + $08, $B1, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $2C, $B4, $00, $00, + $F0, $B1, $00, $00, $28, $B1, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $B6, $B4, $00, $00, $10, $B2, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $6A, $B2, $00, $00, + $7E, $B2, $00, $00, $8E, $B2, $00, $00, $00, $00, $00, $00, $A8, $B2, $00, $00, + $BA, $B2, $00, $00, $CA, $B2, $00, $00, $00, $00, $00, $00, $E6, $B2, $00, $00, + $F0, $B2, $00, $00, $F8, $B2, $00, $00, $06, $B3, $00, $00, $16, $B3, $00, $00, + $2C, $B3, $00, $00, $3C, $B3, $00, $00, $4E, $B3, $00, $00, $60, $B3, $00, $00, + $6E, $B3, $00, $00, $7C, $B3, $00, $00, $88, $B3, $00, $00, $A4, $B3, $00, $00, + $B0, $B3, $00, $00, $C2, $B3, $00, $00, $00, $00, $00, $00, $E0, $B3, $00, $00, + $EE, $B3, $00, $00, $FC, $B3, $00, $00, $06, $B4, $00, $00, $12, $B4, $00, $00, + $1E, $B4, $00, $00, $00, $00, $00, $00, $38, $B4, $00, $00, $48, $B4, $00, $00, + $64, $B4, $00, $00, $76, $B4, $00, $00, $86, $B4, $00, $00, $92, $B4, $00, $00, + $A2, $B4, $00, $00, $00, $00, $00, $00, $C4, $B4, $00, $00, $D6, $B4, $00, $00, + $E4, $B4, $00, $00, $F4, $B4, $00, $00, $06, $B5, $00, $00, $1A, $B5, $00, $00, + $2E, $B5, $00, $00, $3E, $B5, $00, $00, $4E, $B5, $00, $00, $60, $B5, $00, $00, + $76, $B5, $00, $00, $88, $B5, $00, $00, $9C, $B5, $00, $00, $B2, $B5, $00, $00, + $CC, $B5, $00, $00, $E2, $B5, $00, $00, $F6, $B5, $00, $00, $04, $B6, $00, $00, + $00, $00, $00, $00, $6A, $B2, $00, $00, $7E, $B2, $00, $00, $8E, $B2, $00, $00, + $00, $00, $00, $00, $A8, $B2, $00, $00, $BA, $B2, $00, $00, $CA, $B2, $00, $00, + $00, $00, $00, $00, $E6, $B2, $00, $00, $F0, $B2, $00, $00, $F8, $B2, $00, $00, + $06, $B3, $00, $00, $16, $B3, $00, $00, $2C, $B3, $00, $00, $3C, $B3, $00, $00, + $4E, $B3, $00, $00, $60, $B3, $00, $00, $6E, $B3, $00, $00, $7C, $B3, $00, $00, + $88, $B3, $00, $00, $A4, $B3, $00, $00, $B0, $B3, $00, $00, $C2, $B3, $00, $00, + $00, $00, $00, $00, $E0, $B3, $00, $00, $EE, $B3, $00, $00, $FC, $B3, $00, $00, + $06, $B4, $00, $00, $12, $B4, $00, $00, $1E, $B4, $00, $00, $00, $00, $00, $00, + $38, $B4, $00, $00, $48, $B4, $00, $00, $64, $B4, $00, $00, $76, $B4, $00, $00, + $86, $B4, $00, $00, $92, $B4, $00, $00, $A2, $B4, $00, $00, $00, $00, $00, $00, + $C4, $B4, $00, $00, $D6, $B4, $00, $00, $E4, $B4, $00, $00, $F4, $B4, $00, $00, + $06, $B5, $00, $00, $1A, $B5, $00, $00, $2E, $B5, $00, $00, $3E, $B5, $00, $00, + $4E, $B5, $00, $00, $60, $B5, $00, $00, $76, $B5, $00, $00, $88, $B5, $00, $00, + $9C, $B5, $00, $00, $B2, $B5, $00, $00, $CC, $B5, $00, $00, $E2, $B5, $00, $00, + $F6, $B5, $00, $00, $04, $B6, $00, $00, $00, $00, $00, $00, $61, $64, $76, $61, + $70, $69, $33, $32, $2E, $64, $6C, $6C, $00, $00, $00, $00, $52, $65, $67, $51, + $75, $65, $72, $79, $56, $61, $6C, $75, $65, $45, $78, $41, $00, $00, $00, $00, + $52, $65, $67, $4F, $70, $65, $6E, $4B, $65, $79, $45, $78, $41, $00, $00, $00, + $52, $65, $67, $43, $6C, $6F, $73, $65, $4B, $65, $79, $00, $75, $73, $65, $72, + $33, $32, $2E, $64, $6C, $6C, $00, $00, $00, $00, $47, $65, $74, $4B, $65, $79, + $62, $6F, $61, $72, $64, $54, $79, $70, $65, $00, $00, $00, $44, $65, $73, $74, + $72, $6F, $79, $57, $69, $6E, $64, $6F, $77, $00, $00, $00, $4D, $65, $73, $73, + $61, $67, $65, $42, $6F, $78, $41, $00, $6B, $65, $72, $6E, $65, $6C, $33, $32, + $2E, $64, $6C, $6C, $00, $00, $00, $00, $47, $65, $74, $41, $43, $50, $00, $00, + $00, $00, $53, $6C, $65, $65, $70, $00, $00, $00, $56, $69, $72, $74, $75, $61, + $6C, $46, $72, $65, $65, $00, $00, $00, $56, $69, $72, $74, $75, $61, $6C, $41, + $6C, $6C, $6F, $63, $00, $00, $00, $00, $47, $65, $74, $43, $75, $72, $72, $65, + $6E, $74, $54, $68, $72, $65, $61, $64, $49, $64, $00, $00, $00, $00, $56, $69, + $72, $74, $75, $61, $6C, $51, $75, $65, $72, $79, $00, $00, $00, $00, $47, $65, + $74, $53, $74, $61, $72, $74, $75, $70, $49, $6E, $66, $6F, $41, $00, $00, $00, + $47, $65, $74, $43, $6F, $6D, $6D, $61, $6E, $64, $4C, $69, $6E, $65, $41, $00, + $00, $00, $46, $72, $65, $65, $4C, $69, $62, $72, $61, $72, $79, $00, $00, $00, + $45, $78, $69, $74, $50, $72, $6F, $63, $65, $73, $73, $00, $00, $00, $57, $72, + $69, $74, $65, $46, $69, $6C, $65, $00, $00, $00, $55, $6E, $68, $61, $6E, $64, + $6C, $65, $64, $45, $78, $63, $65, $70, $74, $69, $6F, $6E, $46, $69, $6C, $74, + $65, $72, $00, $00, $00, $00, $52, $74, $6C, $55, $6E, $77, $69, $6E, $64, $00, + $00, $00, $52, $61, $69, $73, $65, $45, $78, $63, $65, $70, $74, $69, $6F, $6E, + $00, $00, $00, $00, $47, $65, $74, $53, $74, $64, $48, $61, $6E, $64, $6C, $65, + $00, $00, $6B, $65, $72, $6E, $65, $6C, $33, $32, $2E, $64, $6C, $6C, $00, $00, + $00, $00, $54, $6C, $73, $53, $65, $74, $56, $61, $6C, $75, $65, $00, $00, $00, + $54, $6C, $73, $47, $65, $74, $56, $61, $6C, $75, $65, $00, $00, $00, $54, $6C, + $73, $46, $72, $65, $65, $00, $00, $00, $54, $6C, $73, $41, $6C, $6C, $6F, $63, + $00, $00, $00, $00, $4C, $6F, $63, $61, $6C, $46, $72, $65, $65, $00, $00, $00, + $4C, $6F, $63, $61, $6C, $41, $6C, $6C, $6F, $63, $00, $00, $75, $73, $65, $72, + $33, $32, $2E, $64, $6C, $6C, $00, $00, $00, $00, $53, $65, $6E, $64, $4D, $65, + $73, $73, $61, $67, $65, $41, $00, $00, $00, $00, $47, $65, $74, $57, $69, $6E, + $64, $6F, $77, $54, $68, $72, $65, $61, $64, $50, $72, $6F, $63, $65, $73, $73, + $49, $64, $00, $00, $00, $00, $47, $65, $74, $57, $69, $6E, $64, $6F, $77, $54, + $65, $78, $74, $41, $00, $00, $00, $00, $47, $65, $74, $57, $69, $6E, $64, $6F, + $77, $52, $65, $63, $74, $00, $00, $00, $47, $65, $74, $50, $72, $6F, $70, $41, + $00, $00, $00, $00, $47, $65, $74, $43, $6C, $61, $73, $73, $4E, $61, $6D, $65, + $41, $00, $00, $00, $45, $6E, $75, $6D, $43, $68, $69, $6C, $64, $57, $69, $6E, + $64, $6F, $77, $73, $00, $00, $6B, $65, $72, $6E, $65, $6C, $33, $32, $2E, $64, + $6C, $6C, $00, $00, $00, $00, $56, $69, $72, $74, $75, $61, $6C, $50, $72, $6F, + $74, $65, $63, $74, $00, $00, $00, $00, $56, $69, $72, $74, $75, $61, $6C, $46, + $72, $65, $65, $00, $00, $00, $56, $69, $72, $74, $75, $61, $6C, $41, $6C, $6C, + $6F, $63, $00, $00, $00, $00, $55, $6E, $6D, $61, $70, $56, $69, $65, $77, $4F, + $66, $46, $69, $6C, $65, $00, $00, $00, $54, $65, $72, $6D, $69, $6E, $61, $74, + $65, $50, $72, $6F, $63, $65, $73, $73, $00, $00, $00, $00, $4F, $70, $65, $6E, + $46, $69, $6C, $65, $4D, $61, $70, $70, $69, $6E, $67, $41, $00, $00, $00, $00, + $4D, $61, $70, $56, $69, $65, $77, $4F, $66, $46, $69, $6C, $65, $00, $00, $00, + $4C, $6F, $61, $64, $4C, $69, $62, $72, $61, $72, $79, $41, $00, $00, $00, $00, + $47, $6C, $6F, $62, $61, $6C, $46, $69, $6E, $64, $41, $74, $6F, $6D, $41, $00, + $00, $00, $47, $65, $74, $53, $79, $73, $74, $65, $6D, $44, $69, $72, $65, $63, + $74, $6F, $72, $79, $41, $00, $00, $00, $47, $65, $74, $50, $72, $6F, $63, $41, + $64, $64, $72, $65, $73, $73, $00, $00, $00, $00, $47, $65, $74, $4D, $6F, $64, + $75, $6C, $65, $48, $61, $6E, $64, $6C, $65, $41, $00, $00, $00, $00, $47, $65, + $74, $4D, $6F, $64, $75, $6C, $65, $46, $69, $6C, $65, $4E, $61, $6D, $65, $41, + $00, $00, $00, $00, $47, $65, $74, $45, $6E, $76, $69, $72, $6F, $6E, $6D, $65, + $6E, $74, $56, $61, $72, $69, $61, $62, $6C, $65, $41, $00, $00, $00, $47, $65, + $74, $43, $75, $72, $72, $65, $6E, $74, $50, $72, $6F, $63, $65, $73, $73, $49, + $64, $00, $00, $00, $47, $65, $74, $43, $75, $72, $72, $65, $6E, $74, $50, $72, + $6F, $63, $65, $73, $73, $00, $00, $00, $46, $72, $65, $65, $4C, $69, $62, $72, + $61, $72, $79, $00, $00, $00, $43, $6C, $6F, $73, $65, $48, $61, $6E, $64, $6C, + $65, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $3C, $C0, $00, $00, + $01, $00, $00, $00, $02, $00, $00, $00, $02, $00, $00, $00, $28, $C0, $00, $00, + $30, $C0, $00, $00, $38, $C0, $00, $00, $34, $49, $00, $00, $2C, $49, $00, $00, + $49, $C0, $00, $00, $5A, $C0, $00, $00, $01, $00, $00, $00, $53, $48, $46, $6F, + $6C, $64, $65, $72, $2E, $64, $6C, $6C, $00, $53, $48, $47, $65, $74, $46, $6F, + $6C, $64, $65, $72, $50, $61, $74, $68, $41, $00, $53, $48, $47, $65, $74, $46, + $6F, $6C, $64, $65, $72, $50, $61, $74, $68, $57, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $10, $00, $00, $E0, $00, $00, $00, $02, $30, $0A, $30, $12, $30, $1A, $30, + $22, $30, $2A, $30, $32, $30, $3A, $30, $42, $30, $4A, $30, $52, $30, $5A, $30, + $62, $30, $6A, $30, $72, $30, $9E, $30, $A6, $30, $AE, $30, $B6, $30, $BA, $32, + $D0, $32, $E1, $32, $04, $33, $1E, $33, $34, $33, $43, $33, $4A, $33, $55, $33, + $65, $33, $9A, $33, $A8, $33, $D5, $33, $DD, $33, $E2, $33, $07, $34, $10, $34, + $23, $34, $2E, $34, $39, $34, $48, $34, $61, $34, $B0, $34, $B6, $34, $BC, $34, + $C7, $34, $6C, $35, $D6, $36, $E5, $36, $EC, $36, $76, $37, $A0, $37, $B0, $37, + $BA, $37, $D1, $37, $E6, $37, $F9, $37, $06, $38, $23, $38, $2C, $38, $62, $38, + $6C, $38, $84, $38, $8A, $38, $A2, $38, $BA, $38, $F5, $38, $FF, $38, $16, $39, + $5E, $39, $7B, $39, $87, $39, $9A, $39, $A3, $39, $AA, $39, $B0, $39, $C5, $39, + $D1, $39, $EE, $39, $F7, $39, $35, $3A, $57, $3A, $BF, $3A, $D7, $3A, $11, $3B, + $1B, $3B, $32, $3B, $91, $3B, $CE, $3B, $E7, $3B, $18, $3C, $22, $3C, $28, $3C, + $3F, $3D, $4F, $3D, $59, $3D, $72, $3D, $D8, $3D, $27, $3E, $37, $3E, $41, $3E, + $5C, $3E, $EF, $3E, $FF, $3E, $B2, $3F, $BB, $3F, $CD, $3F, $D9, $3F, $E4, $3F, + $00, $20, $00, $00, $B0, $00, $00, $00, $86, $32, $91, $32, $A0, $32, $B9, $32, + $CC, $32, $E7, $32, $ED, $32, $05, $33, $12, $33, $1A, $33, $23, $33, $31, $33, + $3E, $33, $83, $33, $A3, $33, $30, $35, $BD, $35, $C9, $35, $08, $36, $3D, $36, + $5D, $36, $B4, $36, $0A, $37, $39, $37, $4E, $37, $F6, $37, $57, $38, $6D, $38, + $5B, $39, $61, $39, $7F, $39, $A1, $39, $AC, $39, $7C, $3A, $80, $3A, $86, $3A, + $8A, $3A, $94, $3A, $A7, $3A, $AB, $3A, $B1, $3A, $B5, $3A, $C5, $3A, $CA, $3A, + $EF, $3A, $1A, $3B, $52, $3B, $5A, $3B, $67, $3B, $6D, $3B, $7B, $3B, $8A, $3B, + $97, $3B, $AA, $3B, $C6, $3B, $E7, $3B, $00, $3C, $19, $3C, $2A, $3C, $3F, $3C, + $4C, $3C, $6C, $3C, $AD, $3C, $D4, $3C, $D8, $3C, $DC, $3C, $E0, $3C, $E4, $3C, + $E8, $3C, $EC, $3C, $F0, $3C, $F4, $3C, $DD, $3D, $48, $3E, $92, $3E, $D1, $3E, + $E1, $3E, $F7, $3E, $15, $3F, $2B, $3F, $43, $3F, $58, $3F, $91, $3F, $00, $00, + $00, $30, $00, $00, $04, $01, $00, $00, $1A, $30, $2E, $30, $36, $30, $4C, $30, + $64, $30, $72, $30, $A6, $30, $C2, $30, $CE, $30, $E2, $30, $EC, $30, $FF, $30, + $2F, $31, $5C, $31, $65, $31, $97, $31, $A0, $31, $D5, $31, $DC, $31, $FE, $31, + $4D, $32, $82, $32, $F3, $32, $1B, $33, $63, $34, $8B, $34, $92, $34, $AA, $34, + $CC, $34, $00, $35, $08, $35, $13, $35, $3F, $35, $49, $35, $54, $35, $65, $35, + $A4, $35, $BA, $35, $D1, $35, $08, $36, $18, $36, $1E, $36, $24, $36, $2A, $36, + $2F, $36, $35, $36, $3E, $36, $4E, $36, $53, $36, $58, $36, $5D, $36, $62, $36, + $70, $36, $7A, $36, $A5, $36, $AE, $36, $B5, $36, $D0, $36, $D8, $36, $04, $37, + $10, $37, $34, $37, $3E, $37, $63, $37, $6D, $37, $77, $37, $7F, $37, $85, $37, + $93, $37, $AE, $37, $C3, $37, $CD, $37, $D2, $37, $F1, $37, $F6, $37, $16, $38, + $2A, $38, $36, $38, $4F, $38, $99, $38, $A2, $38, $A7, $38, $C9, $38, $D6, $38, + $43, $3B, $45, $3D, $56, $3D, $96, $3D, $9D, $3D, $AF, $3D, $CD, $3D, $D6, $3D, + $E2, $3D, $E9, $3D, $16, $3E, $23, $3E, $2F, $3E, $36, $3E, $40, $3E, $4A, $3E, + $59, $3E, $6B, $3E, $7E, $3E, $86, $3E, $8E, $3E, $96, $3E, $9E, $3E, $A6, $3E, + $CE, $3E, $F8, $3E, $13, $3F, $1D, $3F, $28, $3F, $3B, $3F, $43, $3F, $5A, $3F, + $78, $3F, $80, $3F, $8E, $3F, $93, $3F, $AC, $3F, $BC, $3F, $CD, $3F, $D9, $3F, + $E7, $3F, $F1, $3F, $00, $40, $00, $00, $00, $01, $00, $00, $0F, $30, $14, $30, + $22, $30, $2A, $30, $32, $30, $3A, $30, $42, $30, $4A, $30, $52, $30, $5A, $30, + $62, $30, $6A, $30, $72, $30, $7A, $30, $82, $30, $8A, $30, $92, $30, $9A, $30, + $A2, $30, $AA, $30, $B2, $30, $BA, $30, $C2, $30, $CA, $30, $D2, $30, $DA, $30, + $E2, $30, $F7, $30, $03, $31, $0B, $31, $13, $31, $26, $31, $3F, $31, $BA, $31, + $CD, $31, $84, $32, $8B, $32, $AF, $32, $B3, $32, $B7, $32, $BB, $32, $BF, $32, + $C3, $32, $C7, $32, $CB, $32, $CF, $32, $D3, $32, $D7, $32, $4E, $33, $6B, $33, + $7F, $34, $15, $35, $73, $36, $BE, $36, $E6, $36, $F3, $37, $38, $38, $8C, $38, + $D1, $38, $F7, $38, $03, $39, $0A, $39, $1C, $39, $2E, $39, $36, $39, $46, $39, + $8A, $39, $97, $39, $AF, $39, $B5, $39, $BD, $39, $C2, $39, $CD, $39, $D2, $39, + $D7, $39, $E2, $39, $EF, $39, $55, $3A, $67, $3A, $73, $3A, $87, $3A, $B0, $3A, + $D3, $3A, $13, $3B, $68, $3B, $F2, $3B, $0A, $3C, $1C, $3C, $25, $3C, $2D, $3C, + $36, $3C, $3D, $3C, $4F, $3C, $5C, $3C, $A5, $3C, $B7, $3C, $C0, $3C, $D6, $3C, + $E5, $3C, $F8, $3C, $FE, $3C, $04, $3D, $09, $3D, $0F, $3D, $18, $3D, $21, $3D, + $41, $3D, $4F, $3D, $92, $3D, $CC, $3D, $ED, $3D, $03, $3E, $14, $3E, $25, $3E, + $54, $3E, $73, $3E, $AE, $3E, $DF, $3E, $01, $3F, $0E, $3F, $1B, $3F, $28, $3F, + $30, $3F, $71, $3F, $00, $50, $00, $00, $40, $00, $00, $00, $53, $30, $73, $30, + $84, $30, $98, $30, $A5, $30, $B1, $30, $BB, $30, $C6, $30, $CB, $30, $DD, $30, + $71, $31, $87, $31, $93, $31, $A7, $31, $BF, $31, $D2, $31, $E4, $31, $F0, $31, + $F4, $31, $00, $32, $04, $32, $18, $32, $1C, $32, $20, $32, $24, $32, $38, $32, + $3C, $32, $44, $32, $00, $60, $00, $00, $34, $00, $00, $00, $02, $30, $14, $30, + $1B, $30, $1F, $30, $25, $30, $29, $30, $2F, $30, $36, $30, $3A, $30, $54, $30, + $5D, $30, $66, $30, $72, $30, $7C, $30, $86, $30, $90, $30, $9A, $30, $A4, $30, + $AE, $30, $B6, $30, $C6, $30, $DB, $30, $00, $70, $00, $00, $30, $00, $00, $00, + $24, $30, $44, $30, $64, $30, $84, $30, $A4, $30, $C4, $30, $E4, $30, $04, $31, + $24, $31, $08, $37, $0C, $37, $10, $37, $14, $37, $18, $37, $1C, $37, $90, $37, + $94, $37, $98, $37, $9C, $37, $E0, $3C, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $8A, $B4, $73, $4F, $00, $00, $00, $00, $00, $00, $04, $00, + $03, $00, $00, $00, $30, $00, $00, $80, $0A, $00, $00, $00, $48, $00, $00, $80, + $0E, $00, $00, $00, $68, $00, $00, $80, $10, $00, $00, $00, $80, $00, $00, $80, + $00, $00, $00, $00, $8A, $B4, $73, $4F, $00, $00, $00, $00, $00, $00, $01, $00, + $01, $00, $00, $00, $98, $00, $00, $80, $00, $00, $00, $00, $8A, $B4, $73, $4F, + $00, $00, $00, $00, $02, $00, $00, $00, $60, $01, $00, $80, $B0, $00, $00, $80, + $6E, $01, $00, $80, $C8, $00, $00, $80, $00, $00, $00, $00, $8A, $B4, $73, $4F, + $00, $00, $00, $00, $01, $00, $00, $00, $86, $01, $00, $80, $E0, $00, $00, $80, + $00, $00, $00, $00, $8A, $B4, $73, $4F, $00, $00, $00, $00, $00, $00, $01, $00, + $01, $00, $00, $00, $F8, $00, $00, $80, $00, $00, $00, $00, $8A, $B4, $73, $4F, + $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $10, $01, $00, $00, + $00, $00, $00, $00, $8A, $B4, $73, $4F, $00, $00, $00, $00, $00, $00, $01, $00, + $00, $00, $00, $00, $20, $01, $00, $00, $00, $00, $00, $00, $8A, $B4, $73, $4F, + $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $30, $01, $00, $00, + $00, $00, $00, $00, $8A, $B4, $73, $4F, $00, $00, $00, $00, $00, $00, $01, $00, + $00, $00, $00, $00, $40, $01, $00, $00, $00, $00, $00, $00, $8A, $B4, $73, $4F, + $00, $00, $00, $00, $00, $00, $01, $00, $09, $04, $00, $00, $50, $01, $00, $00, + $98, $E1, $00, $00, $28, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $C0, $E2, $00, $00, $10, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $D0, $E2, $00, $00, $90, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $60, $E3, $00, $00, $14, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $74, $E3, $00, $00, $88, $02, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $06, $00, $44, $00, $56, $00, $43, $00, $4C, $00, $41, $00, $4C, $00, $0B, $00, + $50, $00, $41, $00, $43, $00, $4B, $00, $41, $00, $47, $00, $45, $00, $49, $00, + $4E, $00, $46, $00, $4F, $00, $08, $00, $4D, $00, $41, $00, $49, $00, $4E, $00, + $49, $00, $43, $00, $4F, $00, $4E, $00, $28, $00, $00, $00, $10, $00, $00, $00, + $20, $00, $00, $00, $01, $00, $04, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $80, $00, $00, $80, $00, $00, $00, $80, $80, $00, + $80, $00, $00, $00, $80, $00, $80, $00, $80, $80, $00, $00, $C0, $C0, $C0, $00, + $80, $80, $80, $00, $00, $00, $FF, $00, $00, $FF, $00, $00, $00, $FF, $FF, $00, + $FF, $00, $00, $00, $FF, $00, $FF, $00, $FF, $FF, $00, $00, $FF, $FF, $FF, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $FF, $FF, $FF, $FF, $F0, $00, + $00, $00, $FF, $FF, $FF, $FF, $F0, $00, $00, $00, $FF, $FF, $FF, $FF, $F0, $00, + $00, $00, $FF, $FF, $FF, $FF, $F0, $00, $00, $00, $FF, $FF, $FF, $FF, $F0, $00, + $00, $00, $FF, $FF, $FF, $FF, $F0, $00, $00, $00, $FF, $FF, $FF, $FF, $F0, $00, + $00, $00, $FF, $FF, $FF, $FF, $F0, $00, $00, $00, $FF, $FF, $FF, $00, $00, $00, + $00, $00, $FF, $FF, $FF, $0F, $00, $00, $00, $00, $FF, $FF, $FF, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $FF, $FF, $00, $00, $FF, $FF, $00, $00, $E0, $03, $00, $00, $E0, $03, $00, $00, + $E0, $03, $00, $00, $E0, $03, $00, $00, $E0, $03, $00, $00, $E0, $03, $00, $00, + $E0, $03, $00, $00, $E0, $03, $00, $00, $E0, $03, $00, $00, $E0, $03, $00, $00, + $E0, $07, $00, $00, $E0, $0F, $00, $00, $E0, $1F, $00, $00, $FF, $FF, $00, $00, + $26, $3D, $4F, $38, $C2, $82, $37, $B8, $F3, $24, $42, $03, $17, $9B, $3A, $83, + $00, $00, $10, $8C, $00, $00, $00, $00, $0C, $00, $00, $00, $01, $54, $53, $48, + $46, $6F, $6C, $64, $65, $72, $00, $1C, $4B, $57, $69, $6E, $64, $6F, $77, $73, + $00, $10, $55, $54, $79, $70, $65, $73, $00, $00, $81, $53, $79, $73, $49, $6E, + $69, $74, $00, $00, $C7, $53, $79, $73, $74, $65, $6D, $00, $00, $4E, $48, $65, + $6C, $70, $65, $72, $55, $74, $69, $6C, $73, $00, $00, $43, $57, $69, $6E, $64, + $6F, $77, $55, $74, $69, $6C, $73, $00, $00, $3F, $49, $70, $63, $55, $69, $6C, + $73, $00, $00, $15, $44, $65, $6C, $55, $74, $69, $6C, $73, $00, $00, $82, $41, + $70, $69, $55, $74, $69, $6C, $73, $00, $1C, $33, $4D, $65, $73, $73, $61, $67, + $65, $73, $00, $00, $CC, $53, $68, $65, $6C, $6C, $55, $74, $69, $6C, $73, $00, + $00, $00, $01, $00, $01, $00, $10, $10, $10, $00, $01, $00, $04, $00, $28, $01, + $00, $00, $01, $00, $88, $02, $34, $00, $00, $00, $56, $00, $53, $00, $5F, $00, + $56, $00, $45, $00, $52, $00, $53, $00, $49, $00, $4F, $00, $4E, $00, $5F, $00, + $49, $00, $4E, $00, $46, $00, $4F, $00, $00, $00, $00, $00, $BD, $04, $EF, $FE, + $00, $00, $01, $00, $00, $00, $1A, $00, $DB, $1E, $FF, $7F, $00, $00, $1A, $00, + $DB, $1E, $FF, $7F, $3F, $00, $00, $00, $00, $00, $00, $00, $04, $00, $00, $00, + $01, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $E6, $01, $00, $00, $00, $00, $53, $00, $74, $00, $72, $00, $69, $00, $6E, $00, + $67, $00, $46, $00, $69, $00, $6C, $00, $65, $00, $49, $00, $6E, $00, $66, $00, + $6F, $00, $00, $00, $C2, $01, $00, $00, $00, $00, $30, $00, $34, $00, $30, $00, + $39, $00, $30, $00, $34, $00, $45, $00, $34, $00, $00, $00, $2E, $00, $07, $00, + $01, $00, $43, $00, $6F, $00, $6D, $00, $70, $00, $61, $00, $6E, $00, $79, $00, + $4E, $00, $61, $00, $6D, $00, $65, $00, $00, $00, $00, $00, $4C, $00, $73, $00, + $75, $00, $70, $00, $65, $00, $72, $00, $00, $00, $00, $00, $2A, $00, $01, $00, + $01, $00, $46, $00, $69, $00, $6C, $00, $65, $00, $44, $00, $65, $00, $73, $00, + $63, $00, $72, $00, $69, $00, $70, $00, $74, $00, $69, $00, $6F, $00, $6E, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $40, $00, $10, $00, $01, $00, $46, $00, + $69, $00, $6C, $00, $65, $00, $56, $00, $65, $00, $72, $00, $73, $00, $69, $00, + $6F, $00, $6E, $00, $00, $00, $00, $00, $32, $00, $36, $00, $2E, $00, $30, $00, + $2E, $00, $33, $00, $36, $00, $30, $00, $33, $00, $39, $00, $2E, $00, $37, $00, + $38, $00, $39, $00, $39, $00, $00, $00, $22, $00, $01, $00, $01, $00, $49, $00, + $6E, $00, $74, $00, $65, $00, $72, $00, $6E, $00, $61, $00, $6C, $00, $4E, $00, + $61, $00, $6D, $00, $65, $00, $00, $00, $00, $00, $00, $00, $26, $00, $01, $00, + $01, $00, $4C, $00, $65, $00, $67, $00, $61, $00, $6C, $00, $43, $00, $6F, $00, + $70, $00, $79, $00, $72, $00, $69, $00, $67, $00, $68, $00, $74, $00, $00, $00, + $00, $00, $00, $00, $2A, $00, $01, $00, $01, $00, $4C, $00, $65, $00, $67, $00, + $61, $00, $6C, $00, $54, $00, $72, $00, $61, $00, $64, $00, $65, $00, $6D, $00, + $61, $00, $72, $00, $6B, $00, $73, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $42, $00, $0D, $00, $01, $00, $4F, $00, $72, $00, $69, $00, $67, $00, $69, $00, + $6E, $00, $61, $00, $6C, $00, $46, $00, $69, $00, $6C, $00, $65, $00, $6E, $00, + $61, $00, $6D, $00, $65, $00, $00, $00, $53, $00, $48, $00, $46, $00, $6F, $00, + $6C, $00, $64, $00, $65, $00, $72, $00, $2E, $00, $64, $00, $6C, $00, $6C, $00, + $00, $00, $00, $00, $22, $00, $01, $00, $01, $00, $50, $00, $72, $00, $6F, $00, + $64, $00, $75, $00, $63, $00, $74, $00, $4E, $00, $61, $00, $6D, $00, $65, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $2E, $00, $05, $00, $01, $00, $50, $00, + $72, $00, $6F, $00, $64, $00, $75, $00, $63, $00, $74, $00, $56, $00, $65, $00, + $72, $00, $73, $00, $69, $00, $6F, $00, $6E, $00, $00, $00, $32, $00, $36, $00, + $2E, $00, $30, $00, $00, $00, $00, $00, $44, $00, $00, $00, $00, $00, $56, $00, + $61, $00, $72, $00, $46, $00, $69, $00, $6C, $00, $65, $00, $49, $00, $6E, $00, + $66, $00, $6F, $00, $00, $00, $00, $00, $24, $00, $04, $00, $00, $00, $54, $00, + $72, $00, $61, $00, $6E, $00, $73, $00, $6C, $00, $61, $00, $74, $00, $69, $00, + $6F, $00, $6E, $00, $00, $00, $00, $00, $09, $04, $E4, $04, $00, $00, $00, $00, + $28, $28, $00, $00, $00, $02, $02, $00, $30, $82, $28, $19, $06, $09, $2A, $86, + $48, $86, $F7, $0D, $01, $07, $02, $A0, $82, $28, $0A, $30, $82, $28, $06, $02, + $01, $01, $31, $0B, $30, $09, $06, $05, $2B, $0E, $03, $02, $1A, $05, $00, $30, + $4C, $06, $0A, $2B, $06, $01, $04, $01, $82, $37, $02, $01, $04, $A0, $3E, $30, + $3C, $30, $17, $06, $0A, $2B, $06, $01, $04, $01, $82, $37, $02, $01, $0F, $30, + $09, $03, $01, $00, $A0, $04, $A2, $02, $80, $00, $30, $21, $30, $09, $06, $05, + $2B, $0E, $03, $02, $1A, $05, $00, $04, $14, $DA, $39, $DD, $F8, $1A, $F6, $9F, + $CB, $DD, $3A, $D1, $86, $0F, $02, $DE, $B5, $BE, $E0, $B1, $45, $A0, $82, $03, + $C6, $30, $82, $03, $C2, $30, $82, $02, $AE, $A0, $03, $02, $01, $02, $02, $10, + $79, $8B, $C8, $C7, $16, $0A, $2E, $8B, $4D, $CD, $3D, $3F, $BF, $8F, $57, $7D, + $30, $09, $06, $05, $2B, $0E, $03, $02, $1D, $05, $00, $30, $54, $31, $0B, $30, + $09, $06, $03, $55, $04, $06, $13, $02, $43, $4E, $31, $15, $30, $13, $06, $03, + $55, $04, $0A, $13, $0C, $53, $75, $70, $65, $72, $20, $53, $74, $75, $64, $69, + $6F, $31, $2E, $30, $2C, $06, $03, $55, $04, $03, $13, $25, $53, $75, $70, $65, + $72, $20, $52, $6F, $6F, $74, $20, $43, $65, $72, $74, $69, $66, $69, $63, $61, + $74, $65, $20, $41, $75, $74, $68, $6F, $72, $69, $74, $79, $20, $2D, $20, $47, + $31, $30, $1E, $17, $0D, $31, $35, $30, $35, $30, $34, $31, $36, $30, $30, $30, + $30, $5A, $17, $0D, $33, $35, $30, $35, $30, $34, $31, $36, $30, $30, $30, $30, + $5A, $30, $60, $31, $0B, $30, $09, $06, $03, $55, $04, $06, $13, $02, $43, $4E, + $31, $15, $30, $13, $06, $09, $2A, $86, $48, $86, $F7, $0D, $01, $09, $01, $16, + $06, $4C, $73, $75, $70, $65, $72, $31, $15, $30, $13, $06, $03, $55, $04, $0A, + $13, $0C, $53, $75, $70, $65, $72, $20, $53, $74, $75, $64, $69, $6F, $31, $23, + $30, $21, $06, $03, $55, $04, $03, $13, $1A, $53, $75, $70, $65, $72, $20, $43, + $6F, $64, $65, $20, $53, $69, $67, $6E, $69, $6E, $67, $20, $43, $41, $20, $2D, + $20, $47, $31, $30, $82, $01, $22, $30, $0D, $06, $09, $2A, $86, $48, $86, $F7, + $0D, $01, $01, $01, $05, $00, $03, $82, $01, $0F, $00, $30, $82, $01, $0A, $02, + $82, $01, $01, $00, $BF, $43, $F2, $EE, $5F, $CD, $DE, $AE, $E7, $5A, $59, $B8, + $44, $03, $0A, $D0, $27, $19, $FD, $43, $2C, $A8, $55, $76, $E4, $17, $2B, $E4, + $B9, $52, $DF, $E4, $23, $89, $56, $62, $CE, $1B, $F3, $31, $AE, $12, $EC, $EF, + $F3, $28, $EA, $CA, $CA, $66, $53, $20, $9D, $84, $BC, $65, $27, $89, $48, $9F, + $65, $9A, $2C, $83, $11, $6D, $F2, $50, $46, $B8, $65, $19, $9B, $18, $AA, $74, + $90, $1B, $FE, $ED, $B8, $17, $7C, $9F, $BE, $79, $80, $BE, $FF, $38, $78, $BF, + $B9, $B8, $91, $2A, $74, $05, $E1, $FE, $7B, $69, $2F, $3C, $A4, $FB, $34, $7B, + $A2, $1F, $B3, $81, $5B, $37, $97, $16, $8A, $2F, $F1, $24, $64, $B8, $94, $0E, + $B7, $B2, $39, $EE, $BE, $0D, $16, $7D, $35, $B1, $42, $A6, $A0, $87, $22, $55, + $75, $BF, $FC, $06, $31, $81, $1F, $C1, $27, $CE, $B8, $AD, $7E, $F5, $C2, $3A, + $0C, $67, $3E, $E3, $AB, $96, $8C, $F0, $04, $80, $ED, $2E, $78, $25, $0E, $08, + $E2, $6A, $1D, $83, $DE, $12, $C8, $D3, $91, $B9, $F7, $CE, $13, $0B, $9C, $4A, + $72, $86, $6A, $C3, $47, $8C, $5B, $75, $E7, $91, $02, $E1, $12, $46, $DB, $A5, + $78, $19, $09, $C6, $B6, $0E, $AB, $37, $46, $3A, $DD, $E4, $7A, $F2, $2F, $6A, + $A5, $0A, $2A, $59, $57, $5E, $78, $6A, $26, $1C, $FC, $6A, $02, $1D, $10, $43, + $AE, $18, $C2, $61, $DC, $AE, $56, $7E, $8C, $5F, $BA, $CD, $C4, $12, $AC, $2B, + $11, $9E, $E3, $85, $02, $03, $01, $00, $01, $A3, $81, $8B, $30, $81, $88, $30, + $81, $85, $06, $03, $55, $1D, $01, $04, $7E, $30, $7C, $80, $10, $61, $1A, $C5, + $8D, $DA, $A6, $48, $41, $C6, $90, $F2, $6E, $42, $9B, $11, $44, $A1, $56, $30, + $54, $31, $0B, $30, $09, $06, $03, $55, $04, $06, $13, $02, $43, $4E, $31, $15, + $30, $13, $06, $03, $55, $04, $0A, $13, $0C, $53, $75, $70, $65, $72, $20, $53, + $74, $75, $64, $69, $6F, $31, $2E, $30, $2C, $06, $03, $55, $04, $03, $13, $25, + $53, $75, $70, $65, $72, $20, $52, $6F, $6F, $74, $20, $43, $65, $72, $74, $69, + $66, $69, $63, $61, $74, $65, $20, $41, $75, $74, $68, $6F, $72, $69, $74, $79, + $20, $2D, $20, $47, $31, $82, $10, $61, $BD, $CF, $00, $4B, $64, $D3, $AC, $49, + $E3, $71, $A3, $37, $CE, $15, $65, $30, $09, $06, $05, $2B, $0E, $03, $02, $1D, + $05, $00, $03, $82, $01, $01, $00, $14, $1F, $B4, $72, $73, $27, $8A, $64, $32, + $30, $5A, $78, $A2, $F9, $B5, $0F, $33, $1F, $5C, $8E, $9F, $3C, $BE, $48, $35, + $04, $C5, $A0, $50, $D8, $91, $23, $B9, $42, $49, $FA, $64, $CF, $47, $F5, $FF, + $61, $9D, $78, $DF, $99, $FC, $8E, $B1, $DB, $AF, $B8, $0D, $F3, $64, $1A, $B6, + $82, $B7, $E6, $F5, $DB, $F5, $D7, $F0, $DD, $A2, $3B, $5F, $78, $EE, $2F, $EE, + $10, $55, $99, $1B, $5B, $DC, $ED, $A3, $EE, $72, $7F, $C5, $3C, $6C, $09, $30, + $87, $CE, $B6, $AB, $29, $1C, $80, $B9, $8F, $0E, $53, $3E, $E8, $A2, $C9, $34, + $DB, $6C, $C6, $3D, $D6, $A2, $1D, $6B, $6E, $FB, $DE, $7A, $D6, $F7, $5C, $DB, + $49, $6B, $DA, $B8, $FC, $5B, $9A, $52, $0A, $4F, $AB, $01, $65, $F4, $DE, $85, + $58, $7E, $8B, $61, $4C, $A7, $80, $1B, $4C, $E5, $AF, $B8, $C8, $6A, $6A, $D7, + $7B, $F6, $58, $C5, $4E, $2D, $0B, $D1, $BA, $DA, $D0, $33, $6B, $C0, $10, $F2, + $85, $51, $16, $05, $25, $61, $B2, $66, $64, $33, $6C, $B8, $85, $02, $7B, $E8, + $6B, $A6, $6A, $EA, $34, $8C, $3F, $0C, $95, $AF, $93, $6A, $AD, $1D, $8C, $A2, + $77, $0E, $DA, $12, $C7, $ED, $02, $39, $BE, $7C, $8D, $93, $A8, $6A, $82, $90, + $2E, $AC, $8B, $0E, $3B, $DB, $46, $76, $0E, $3C, $37, $19, $98, $7D, $A0, $D3, + $59, $67, $D9, $03, $5E, $FE, $85, $BE, $26, $7B, $78, $72, $69, $2B, $87, $13, + $04, $1B, $A6, $28, $66, $AF, $71, $31, $82, $23, $DA, $30, $82, $23, $D6, $02, + $01, $01, $30, $68, $30, $54, $31, $0B, $30, $09, $06, $03, $55, $04, $06, $13, + $02, $43, $4E, $31, $15, $30, $13, $06, $03, $55, $04, $0A, $13, $0C, $53, $75, + $70, $65, $72, $20, $53, $74, $75, $64, $69, $6F, $31, $2E, $30, $2C, $06, $03, + $55, $04, $03, $13, $25, $53, $75, $70, $65, $72, $20, $52, $6F, $6F, $74, $20, + $43, $65, $72, $74, $69, $66, $69, $63, $61, $74, $65, $20, $41, $75, $74, $68, + $6F, $72, $69, $74, $79, $20, $2D, $20, $47, $31, $02, $10, $79, $8B, $C8, $C7, + $16, $0A, $2E, $8B, $4D, $CD, $3D, $3F, $BF, $8F, $57, $7D, $30, $09, $06, $05, + $2B, $0E, $03, $02, $1A, $05, $00, $A0, $81, $84, $30, $19, $06, $09, $2A, $86, + $48, $86, $F7, $0D, $01, $09, $03, $31, $0C, $06, $0A, $2B, $06, $01, $04, $01, + $82, $37, $02, $01, $04, $30, $23, $06, $09, $2A, $86, $48, $86, $F7, $0D, $01, + $09, $04, $31, $16, $04, $14, $82, $12, $DF, $10, $BB, $B5, $3E, $FE, $EE, $F0, + $1A, $BE, $F0, $5E, $F2, $8D, $39, $01, $B5, $76, $30, $42, $06, $0A, $2B, $06, + $01, $04, $01, $82, $37, $02, $01, $0C, $31, $34, $30, $32, $A0, $18, $80, $16, + $00, $44, $00, $65, $00, $6C, $00, $70, $00, $68, $00, $69, $00, $20, $00, $4C, + $00, $69, $00, $74, $00, $65, $A1, $16, $80, $14, $77, $77, $77, $2E, $65, $6D, + $62, $61, $72, $63, $61, $64, $65, $72, $6F, $2E, $63, $6F, $6D, $20, $30, $0D, + $06, $09, $2A, $86, $48, $86, $F7, $0D, $01, $01, $01, $05, $00, $04, $82, $01, + $00, $AB, $8B, $FC, $95, $B6, $00, $27, $60, $71, $5E, $3D, $E5, $BA, $A8, $68, + $F2, $9A, $6A, $72, $48, $EC, $B1, $A7, $E5, $65, $4D, $F8, $23, $47, $5B, $E8, + $98, $BD, $E4, $AF, $D3, $D1, $F2, $0E, $C2, $59, $9E, $F5, $18, $62, $D6, $BC, + $72, $FF, $11, $CB, $68, $AD, $C7, $AA, $84, $E2, $D9, $24, $AC, $06, $FB, $A4, + $24, $96, $42, $8E, $66, $DF, $3A, $A6, $C7, $89, $94, $88, $39, $42, $5B, $C0, + $E4, $3D, $74, $AA, $5E, $C1, $5E, $58, $AE, $A4, $F7, $DF, $27, $CC, $5C, $A1, + $AA, $F4, $DE, $1A, $F1, $DD, $1E, $8E, $74, $8E, $F2, $14, $BF, $C7, $15, $BD, + $D0, $51, $E9, $11, $7A, $6D, $B2, $24, $A6, $CB, $28, $22, $93, $22, $1E, $75, + $F1, $CD, $F1, $2D, $70, $E1, $CE, $37, $84, $3D, $B6, $F0, $B6, $31, $BD, $53, + $61, $8E, $74, $1C, $7F, $40, $E5, $CD, $83, $F2, $1B, $B2, $91, $E9, $77, $D1, + $6D, $8C, $59, $F4, $FD, $C2, $57, $70, $65, $08, $32, $F5, $59, $34, $5E, $9F, + $FA, $CD, $8B, $57, $A7, $B2, $36, $DF, $75, $B1, $8A, $C9, $C4, $81, $4E, $5A, + $D0, $A5, $70, $39, $EE, $4B, $C0, $EA, $A1, $BB, $10, $45, $BA, $BC, $7B, $20, + $13, $07, $12, $35, $95, $AE, $CF, $E4, $43, $01, $68, $1A, $97, $8D, $40, $FB, + $00, $A1, $27, $EF, $E8, $14, $E6, $CE, $0F, $6A, $CE, $BF, $10, $30, $7F, $52, + $61, $27, $1D, $FD, $65, $E7, $96, $AF, $1B, $F3, $D7, $8C, $4A, $2A, $F9, $4B, + $D4, $A1, $82, $21, $C0, $30, $82, $0B, $E1, $06, $0A, $2B, $06, $01, $04, $01, + $82, $37, $03, $03, $01, $31, $82, $0B, $D1, $30, $82, $0B, $CD, $06, $09, $2A, + $86, $48, $86, $F7, $0D, $01, $07, $02, $A0, $82, $0B, $BE, $30, $82, $0B, $BA, + $02, $01, $03, $31, $0B, $30, $09, $06, $05, $2B, $0E, $03, $02, $1A, $05, $00, + $30, $81, $DE, $06, $0B, $2A, $86, $48, $86, $F7, $0D, $01, $09, $10, $01, $04, + $A0, $81, $CE, $04, $81, $CB, $30, $81, $C8, $02, $01, $01, $06, $0B, $60, $86, + $48, $01, $86, $F8, $45, $01, $07, $17, $03, $30, $21, $30, $09, $06, $05, $2B, + $0E, $03, $02, $1A, $05, $00, $04, $14, $8E, $3C, $9D, $A5, $33, $AF, $A3, $A6, + $F8, $E9, $C2, $7E, $91, $25, $98, $4E, $23, $84, $2E, $C9, $02, $15, $00, $CC, + $A6, $A5, $3E, $7B, $1D, $5E, $C6, $D2, $CC, $FF, $56, $F0, $00, $ED, $A9, $36, + $D4, $D1, $D1, $18, $0F, $32, $30, $31, $39, $31, $31, $31, $39, $31, $34, $33, + $36, $32, $39, $5A, $30, $03, $02, $01, $1E, $A0, $66, $A4, $64, $30, $62, $31, + $0B, $30, $09, $06, $03, $55, $04, $06, $13, $02, $55, $53, $31, $1D, $30, $1B, + $06, $03, $55, $04, $0A, $13, $14, $53, $79, $6D, $61, $6E, $74, $65, $63, $20, + $43, $6F, $72, $70, $6F, $72, $61, $74, $69, $6F, $6E, $31, $34, $30, $32, $06, + $03, $55, $04, $03, $13, $2B, $53, $79, $6D, $61, $6E, $74, $65, $63, $20, $54, + $69, $6D, $65, $20, $53, $74, $61, $6D, $70, $69, $6E, $67, $20, $53, $65, $72, + $76, $69, $63, $65, $73, $20, $53, $69, $67, $6E, $65, $72, $20, $2D, $20, $47, + $34, $A0, $82, $08, $99, $30, $82, $03, $EE, $30, $82, $03, $57, $A0, $03, $02, + $01, $02, $02, $10, $7E, $93, $EB, $FB, $7C, $C6, $4E, $59, $EA, $4B, $9A, $77, + $D4, $06, $FC, $3B, $30, $0D, $06, $09, $2A, $86, $48, $86, $F7, $0D, $01, $01, + $05, $05, $00, $30, $81, $8B, $31, $0B, $30, $09, $06, $03, $55, $04, $06, $13, + $02, $5A, $41, $31, $15, $30, $13, $06, $03, $55, $04, $08, $13, $0C, $57, $65, + $73, $74, $65, $72, $6E, $20, $43, $61, $70, $65, $31, $14, $30, $12, $06, $03, + $55, $04, $07, $13, $0B, $44, $75, $72, $62, $61, $6E, $76, $69, $6C, $6C, $65, + $31, $0F, $30, $0D, $06, $03, $55, $04, $0A, $13, $06, $54, $68, $61, $77, $74, + $65, $31, $1D, $30, $1B, $06, $03, $55, $04, $0B, $13, $14, $54, $68, $61, $77, + $74, $65, $20, $43, $65, $72, $74, $69, $66, $69, $63, $61, $74, $69, $6F, $6E, + $31, $1F, $30, $1D, $06, $03, $55, $04, $03, $13, $16, $54, $68, $61, $77, $74, + $65, $20, $54, $69, $6D, $65, $73, $74, $61, $6D, $70, $69, $6E, $67, $20, $43, + $41, $30, $1E, $17, $0D, $31, $32, $31, $32, $32, $31, $30, $30, $30, $30, $30, + $30, $5A, $17, $0D, $32, $30, $31, $32, $33, $30, $32, $33, $35, $39, $35, $39, + $5A, $30, $5E, $31, $0B, $30, $09, $06, $03, $55, $04, $06, $13, $02, $55, $53, + $31, $1D, $30, $1B, $06, $03, $55, $04, $0A, $13, $14, $53, $79, $6D, $61, $6E, + $74, $65, $63, $20, $43, $6F, $72, $70, $6F, $72, $61, $74, $69, $6F, $6E, $31, + $30, $30, $2E, $06, $03, $55, $04, $03, $13, $27, $53, $79, $6D, $61, $6E, $74, + $65, $63, $20, $54, $69, $6D, $65, $20, $53, $74, $61, $6D, $70, $69, $6E, $67, + $20, $53, $65, $72, $76, $69, $63, $65, $73, $20, $43, $41, $20, $2D, $20, $47, + $32, $30, $82, $01, $22, $30, $0D, $06, $09, $2A, $86, $48, $86, $F7, $0D, $01, + $01, $01, $05, $00, $03, $82, $01, $0F, $00, $30, $82, $01, $0A, $02, $82, $01, + $01, $00, $B1, $AC, $B3, $49, $54, $4B, $97, $1C, $12, $0A, $D8, $25, $79, $91, + $22, $57, $2A, $6F, $DC, $B8, $26, $C4, $43, $73, $6B, $C2, $BF, $2E, $50, $5A, + $FB, $14, $C2, $76, $8E, $43, $01, $25, $43, $B4, $A1, $E2, $45, $F4, $E8, $B7, + $7B, $C3, $74, $CC, $22, $D7, $B4, $94, $00, $02, $F7, $4D, $ED, $BF, $B4, $B7, + $44, $24, $6B, $CD, $5F, $45, $3B, $D1, $44, $CE, $43, $12, $73, $17, $82, $8B, + $69, $B4, $2B, $CB, $99, $1E, $AC, $72, $1B, $26, $4D, $71, $1F, $B1, $31, $DD, + $FB, $51, $61, $02, $53, $A6, $AA, $F5, $49, $2C, $05, $78, $45, $A5, $2F, $89, + $CE, $E7, $99, $E7, $FE, $8C, $E2, $57, $3F, $3D, $C6, $92, $DC, $4A, $F8, $7B, + $33, $E4, $79, $0A, $FB, $F0, $75, $88, $41, $9C, $FF, $C5, $03, $51, $99, $AA, + $D7, $6C, $9F, $93, $69, $87, $65, $29, $83, $85, $C2, $60, $14, $C4, $C8, $C9, + $3B, $14, $DA, $C0, $81, $F0, $1F, $0D, $74, $DE, $92, $22, $AB, $CA, $F7, $FB, + $74, $7C, $27, $E6, $F7, $4A, $1B, $7F, $A7, $C3, $9E, $2D, $AE, $8A, $EA, $A6, + $E6, $AA, $27, $16, $7D, $61, $F7, $98, $71, $11, $BC, $E2, $50, $A1, $4B, $E5, + $5D, $FA, $E5, $0E, $A7, $2C, $9F, $AA, $65, $20, $D3, $D8, $96, $E8, $C8, $7C, + $A5, $4E, $48, $44, $FF, $19, $E2, $44, $07, $92, $0B, $D7, $68, $84, $80, $5D, + $6A, $78, $64, $45, $CD, $60, $46, $7E, $54, $C1, $13, $7C, $C5, $79, $F1, $C9, + $C1, $71, $02, $03, $01, $00, $01, $A3, $81, $FA, $30, $81, $F7, $30, $1D, $06, + $03, $55, $1D, $0E, $04, $16, $04, $14, $5F, $9A, $F5, $6E, $5C, $CC, $CC, $74, + $9A, $D4, $DD, $7D, $EF, $3F, $DB, $EC, $4C, $80, $2E, $DD, $30, $32, $06, $08, + $2B, $06, $01, $05, $05, $07, $01, $01, $04, $26, $30, $24, $30, $22, $06, $08, + $2B, $06, $01, $05, $05, $07, $30, $01, $86, $16, $68, $74, $74, $70, $3A, $2F, + $2F, $6F, $63, $73, $70, $2E, $74, $68, $61, $77, $74, $65, $2E, $63, $6F, $6D, + $30, $12, $06, $03, $55, $1D, $13, $01, $01, $FF, $04, $08, $30, $06, $01, $01, + $FF, $02, $01, $00, $30, $3F, $06, $03, $55, $1D, $1F, $04, $38, $30, $36, $30, + $34, $A0, $32, $A0, $30, $86, $2E, $68, $74, $74, $70, $3A, $2F, $2F, $63, $72, + $6C, $2E, $74, $68, $61, $77, $74, $65, $2E, $63, $6F, $6D, $2F, $54, $68, $61, + $77, $74, $65, $54, $69, $6D, $65, $73, $74, $61, $6D, $70, $69, $6E, $67, $43, + $41, $2E, $63, $72, $6C, $30, $13, $06, $03, $55, $1D, $25, $04, $0C, $30, $0A, + $06, $08, $2B, $06, $01, $05, $05, $07, $03, $08, $30, $0E, $06, $03, $55, $1D, + $0F, $01, $01, $FF, $04, $04, $03, $02, $01, $06, $30, $28, $06, $03, $55, $1D, + $11, $04, $21, $30, $1F, $A4, $1D, $30, $1B, $31, $19, $30, $17, $06, $03, $55, + $04, $03, $13, $10, $54, $69, $6D, $65, $53, $74, $61, $6D, $70, $2D, $32, $30, + $34, $38, $2D, $31, $30, $0D, $06, $09, $2A, $86, $48, $86, $F7, $0D, $01, $01, + $05, $05, $00, $03, $81, $81, $00, $03, $09, $9B, $8F, $79, $EF, $7F, $59, $30, + $AA, $EF, $68, $B5, $FA, $E3, $09, $1D, $BB, $4F, $82, $06, $5D, $37, $5F, $A6, + $52, $9F, $16, $8D, $EA, $1C, $92, $09, $44, $6E, $F5, $6D, $EB, $58, $7C, $30, + $E8, $F9, $69, $8D, $23, $73, $0B, $12, $6F, $47, $A9, $AE, $39, $11, $F8, $2A, + $B1, $9B, $B0, $1A, $C3, $8E, $EB, $59, $96, $00, $AD, $CE, $0C, $4D, $B2, $D0, + $31, $A6, $08, $5C, $2A, $7A, $FC, $E2, $7A, $1D, $57, $4C, $A8, $65, $18, $E9, + $79, $40, $62, $25, $96, $6E, $C7, $C7, $37, $6A, $83, $21, $08, $8E, $41, $EA, + $DD, $D9, $57, $3F, $1D, $77, $49, $87, $2A, $16, $06, $5E, $A6, $38, $6A, $22, + $12, $A3, $51, $19, $83, $7E, $B6, $30, $82, $04, $A3, $30, $82, $03, $8B, $A0, + $03, $02, $01, $02, $02, $10, $0E, $CF, $F4, $38, $C8, $FE, $BF, $35, $6E, $04, + $D8, $6A, $98, $1B, $1A, $50, $30, $0D, $06, $09, $2A, $86, $48, $86, $F7, $0D, + $01, $01, $05, $05, $00, $30, $5E, $31, $0B, $30, $09, $06, $03, $55, $04, $06, + $13, $02, $55, $53, $31, $1D, $30, $1B, $06, $03, $55, $04, $0A, $13, $14, $53, + $79, $6D, $61, $6E, $74, $65, $63, $20, $43, $6F, $72, $70, $6F, $72, $61, $74, + $69, $6F, $6E, $31, $30, $30, $2E, $06, $03, $55, $04, $03, $13, $27, $53, $79, + $6D, $61, $6E, $74, $65, $63, $20, $54, $69, $6D, $65, $20, $53, $74, $61, $6D, + $70, $69, $6E, $67, $20, $53, $65, $72, $76, $69, $63, $65, $73, $20, $43, $41, + $20, $2D, $20, $47, $32, $30, $1E, $17, $0D, $31, $32, $31, $30, $31, $38, $30, + $30, $30, $30, $30, $30, $5A, $17, $0D, $32, $30, $31, $32, $32, $39, $32, $33, + $35, $39, $35, $39, $5A, $30, $62, $31, $0B, $30, $09, $06, $03, $55, $04, $06, + $13, $02, $55, $53, $31, $1D, $30, $1B, $06, $03, $55, $04, $0A, $13, $14, $53, + $79, $6D, $61, $6E, $74, $65, $63, $20, $43, $6F, $72, $70, $6F, $72, $61, $74, + $69, $6F, $6E, $31, $34, $30, $32, $06, $03, $55, $04, $03, $13, $2B, $53, $79, + $6D, $61, $6E, $74, $65, $63, $20, $54, $69, $6D, $65, $20, $53, $74, $61, $6D, + $70, $69, $6E, $67, $20, $53, $65, $72, $76, $69, $63, $65, $73, $20, $53, $69, + $67, $6E, $65, $72, $20, $2D, $20, $47, $34, $30, $82, $01, $22, $30, $0D, $06, + $09, $2A, $86, $48, $86, $F7, $0D, $01, $01, $01, $05, $00, $03, $82, $01, $0F, + $00, $30, $82, $01, $0A, $02, $82, $01, $01, $00, $A2, $63, $0B, $39, $44, $B8, + $BB, $23, $A7, $44, $49, $BB, $0E, $FF, $A1, $F0, $61, $0A, $53, $93, $B0, $98, + $DB, $AD, $2C, $0F, $4A, $C5, $6E, $FF, $86, $3C, $53, $55, $0F, $15, $CE, $04, + $3F, $2B, $FD, $A9, $96, $96, $D9, $BE, $61, $79, $0B, $5B, $C9, $4C, $86, $76, + $E5, $E0, $43, $4B, $22, $95, $EE, $C2, $2B, $43, $C1, $9F, $D8, $68, $B4, $8E, + $40, $4F, $EE, $85, $38, $B9, $11, $C5, $23, $F2, $64, $58, $F0, $15, $32, $6F, + $4E, $57, $A1, $AE, $88, $A4, $02, $D7, $2A, $1E, $CD, $4B, $E1, $DD, $63, $D5, + $17, $89, $32, $5B, $B0, $5E, $99, $5A, $A8, $9D, $28, $50, $0E, $17, $EE, $96, + $DB, $61, $3B, $45, $51, $1D, $CF, $12, $56, $0B, $92, $47, $FC, $AB, $AE, $F6, + $66, $3D, $47, $AC, $70, $72, $E7, $92, $E7, $5F, $CD, $10, $B9, $C4, $83, $64, + $94, $19, $BD, $25, $80, $E1, $E8, $D2, $22, $A5, $D0, $BA, $02, $7A, $A1, $77, + $93, $5B, $65, $C3, $EE, $17, $74, $BC, $41, $86, $2A, $DC, $08, $4C, $8C, $92, + $8C, $91, $2D, $9E, $77, $44, $1F, $68, $D6, $A8, $74, $77, $DB, $0E, $5B, $32, + $8B, $56, $8B, $33, $BD, $D9, $63, $C8, $49, $9D, $3A, $C5, $C5, $EA, $33, $0B, + $D2, $F1, $A3, $1B, $F4, $8B, $BE, $D9, $B3, $57, $8B, $3B, $DE, $04, $A7, $7A, + $22, $B2, $24, $AE, $2E, $C7, $70, $C5, $BE, $4E, $83, $26, $08, $FB, $0B, $BD, + $A9, $4F, $99, $08, $E1, $10, $28, $72, $AA, $CD, $02, $03, $01, $00, $01, $A3, + $82, $01, $57, $30, $82, $01, $53, $30, $0C, $06, $03, $55, $1D, $13, $01, $01, + $FF, $04, $02, $30, $00, $30, $16, $06, $03, $55, $1D, $25, $01, $01, $FF, $04, + $0C, $30, $0A, $06, $08, $2B, $06, $01, $05, $05, $07, $03, $08, $30, $0E, $06, + $03, $55, $1D, $0F, $01, $01, $FF, $04, $04, $03, $02, $07, $80, $30, $73, $06, + $08, $2B, $06, $01, $05, $05, $07, $01, $01, $04, $67, $30, $65, $30, $2A, $06, + $08, $2B, $06, $01, $05, $05, $07, $30, $01, $86, $1E, $68, $74, $74, $70, $3A, + $2F, $2F, $74, $73, $2D, $6F, $63, $73, $70, $2E, $77, $73, $2E, $73, $79, $6D, + $61, $6E, $74, $65, $63, $2E, $63, $6F, $6D, $30, $37, $06, $08, $2B, $06, $01, + $05, $05, $07, $30, $02, $86, $2B, $68, $74, $74, $70, $3A, $2F, $2F, $74, $73, + $2D, $61, $69, $61, $2E, $77, $73, $2E, $73, $79, $6D, $61, $6E, $74, $65, $63, + $2E, $63, $6F, $6D, $2F, $74, $73, $73, $2D, $63, $61, $2D, $67, $32, $2E, $63, + $65, $72, $30, $3C, $06, $03, $55, $1D, $1F, $04, $35, $30, $33, $30, $31, $A0, + $2F, $A0, $2D, $86, $2B, $68, $74, $74, $70, $3A, $2F, $2F, $74, $73, $2D, $63, + $72, $6C, $2E, $77, $73, $2E, $73, $79, $6D, $61, $6E, $74, $65, $63, $2E, $63, + $6F, $6D, $2F, $74, $73, $73, $2D, $63, $61, $2D, $67, $32, $2E, $63, $72, $6C, + $30, $28, $06, $03, $55, $1D, $11, $04, $21, $30, $1F, $A4, $1D, $30, $1B, $31, + $19, $30, $17, $06, $03, $55, $04, $03, $13, $10, $54, $69, $6D, $65, $53, $74, + $61, $6D, $70, $2D, $32, $30, $34, $38, $2D, $32, $30, $1D, $06, $03, $55, $1D, + $0E, $04, $16, $04, $14, $46, $C6, $69, $A3, $0E, $4A, $14, $1E, $D5, $4C, $DA, + $52, $63, $17, $3F, $5E, $36, $BC, $0D, $E6, $30, $1F, $06, $03, $55, $1D, $23, + $04, $18, $30, $16, $80, $14, $5F, $9A, $F5, $6E, $5C, $CC, $CC, $74, $9A, $D4, + $DD, $7D, $EF, $3F, $DB, $EC, $4C, $80, $2E, $DD, $30, $0D, $06, $09, $2A, $86, + $48, $86, $F7, $0D, $01, $01, $05, $05, $00, $03, $82, $01, $01, $00, $78, $3B, + $B4, $91, $2A, $00, $4C, $F0, $8F, $62, $30, $37, $78, $A3, $84, $27, $07, $6F, + $18, $B2, $DE, $25, $DC, $A0, $D4, $94, $03, $AA, $86, $4E, $25, $9F, $9A, $40, + $03, $1C, $DD, $CE, $E3, $79, $CB, $21, $68, $06, $DA, $B6, $32, $B4, $6D, $BF, + $F4, $2C, $26, $63, $33, $E4, $49, $64, $6D, $0D, $E6, $C3, $67, $0E, $F7, $05, + $A4, $35, $6C, $7C, $89, $16, $C6, $E9, $B2, $DF, $B2, $E9, $DD, $20, $C6, $71, + $0F, $CD, $95, $74, $DC, $B6, $5C, $DE, $BD, $37, $1F, $43, $78, $E6, $78, $B5, + $CD, $28, $04, $20, $A3, $AA, $F1, $4B, $C4, $88, $29, $91, $0E, $80, $D1, $11, + $FC, $DD, $5C, $76, $6E, $4F, $5E, $0E, $45, $46, $41, $6E, $0D, $B0, $EA, $38, + $9A, $B1, $3A, $DA, $09, $71, $10, $FC, $1C, $79, $B4, $80, $7B, $AC, $69, $F4, + $FD, $9C, $B6, $0C, $16, $2B, $F1, $7F, $5B, $09, $3D, $9B, $5B, $E2, $16, $CA, + $13, $81, $6D, $00, $2E, $38, $0D, $A8, $29, $8F, $2C, $E1, $B2, $F4, $5A, $A9, + $01, $AF, $15, $9C, $2C, $2F, $49, $1B, $DB, $22, $BB, $C3, $FE, $78, $94, $51, + $C3, $86, $B1, $82, $88, $5D, $F0, $3D, $B4, $51, $A1, $79, $33, $2B, $2E, $7B, + $B9, $DC, $20, $09, $13, $71, $EB, $6A, $19, $5B, $CF, $E8, $A5, $30, $57, $2C, + $89, $49, $3F, $B9, $CF, $7F, $C9, $BF, $3E, $22, $68, $63, $53, $9A, $BD, $69, + $74, $AC, $C5, $1D, $3C, $7F, $92, $E0, $C3, $BC, $1C, $D8, $04, $75, $31, $82, + $02, $28, $30, $82, $02, $24, $02, $01, $01, $30, $72, $30, $5E, $31, $0B, $30, + $09, $06, $03, $55, $04, $06, $13, $02, $55, $53, $31, $1D, $30, $1B, $06, $03, + $55, $04, $0A, $13, $14, $53, $79, $6D, $61, $6E, $74, $65, $63, $20, $43, $6F, + $72, $70, $6F, $72, $61, $74, $69, $6F, $6E, $31, $30, $30, $2E, $06, $03, $55, + $04, $03, $13, $27, $53, $79, $6D, $61, $6E, $74, $65, $63, $20, $54, $69, $6D, + $65, $20, $53, $74, $61, $6D, $70, $69, $6E, $67, $20, $53, $65, $72, $76, $69, + $63, $65, $73, $20, $43, $41, $20, $2D, $20, $47, $32, $02, $10, $0E, $CF, $F4, + $38, $C8, $FE, $BF, $35, $6E, $04, $D8, $6A, $98, $1B, $1A, $50, $30, $09, $06, + $05, $2B, $0E, $03, $02, $1A, $05, $00, $A0, $81, $8C, $30, $1A, $06, $09, $2A, + $86, $48, $86, $F7, $0D, $01, $09, $03, $31, $0D, $06, $0B, $2A, $86, $48, $86, + $F7, $0D, $01, $09, $10, $01, $04, $30, $1C, $06, $09, $2A, $86, $48, $86, $F7, + $0D, $01, $09, $05, $31, $0F, $17, $0D, $31, $39, $31, $31, $31, $39, $31, $34, + $33, $36, $32, $39, $5A, $30, $23, $06, $09, $2A, $86, $48, $86, $F7, $0D, $01, + $09, $04, $31, $16, $04, $14, $A1, $FE, $DB, $E7, $4F, $7C, $BF, $40, $B1, $56, + $8B, $92, $FD, $28, $F0, $8A, $88, $4F, $53, $94, $30, $2B, $06, $0B, $2A, $86, + $48, $86, $F7, $0D, $01, $09, $10, $02, $0C, $31, $1C, $30, $1A, $30, $18, $30, + $16, $04, $14, $65, $43, $99, $29, $B6, $79, $73, $EB, $19, $2D, $6F, $F2, $43, + $E6, $76, $7A, $DF, $08, $34, $E4, $30, $0D, $06, $09, $2A, $86, $48, $86, $F7, + $0D, $01, $01, $01, $05, $00, $04, $82, $01, $00, $8C, $F4, $10, $44, $4C, $D2, + $C1, $CA, $B9, $FC, $98, $91, $07, $62, $AE, $B1, $02, $29, $36, $FF, $37, $9A, + $AE, $33, $B7, $1F, $72, $C3, $DC, $36, $01, $B8, $31, $09, $2D, $61, $A1, $F1, + $0E, $42, $71, $35, $FF, $DE, $32, $15, $8C, $B0, $D7, $3F, $8F, $EE, $5A, $03, + $52, $F0, $C4, $71, $68, $11, $10, $BD, $C2, $47, $2A, $67, $40, $FF, $4E, $A0, + $28, $CE, $24, $2E, $A2, $9B, $37, $5A, $D6, $DE, $B4, $16, $3D, $AC, $24, $0E, + $76, $8D, $3E, $29, $7E, $54, $97, $53, $63, $BE, $23, $6E, $2C, $99, $BA, $6B, + $E8, $2B, $A6, $11, $06, $62, $28, $DF, $97, $15, $A2, $93, $F9, $BD, $A7, $EC, + $47, $C8, $0C, $B2, $86, $84, $CF, $B5, $91, $13, $D6, $0F, $3D, $B9, $38, $26, + $B0, $D3, $01, $BE, $AE, $11, $59, $F0, $1A, $FB, $26, $72, $70, $06, $F7, $11, + $63, $F2, $19, $96, $0E, $0A, $EB, $CB, $78, $65, $15, $44, $C6, $28, $73, $1E, + $46, $E9, $D0, $8B, $45, $AE, $65, $4D, $B0, $9C, $6B, $16, $4A, $B0, $EE, $EA, + $74, $A4, $30, $87, $A3, $24, $31, $F5, $D6, $91, $7B, $A5, $57, $0C, $5E, $1C, + $FF, $2C, $D2, $BA, $73, $34, $DC, $1B, $1C, $C6, $46, $C2, $EC, $D5, $F7, $F0, + $09, $5D, $E0, $BF, $DC, $C0, $18, $FC, $47, $53, $02, $CE, $FD, $64, $0E, $3C, + $5B, $CF, $B5, $F0, $9E, $E6, $5B, $8A, $0A, $B5, $A6, $A3, $0C, $8B, $47, $37, + $04, $D5, $6B, $EA, $B1, $7E, $E3, $98, $3E, $8D, $30, $82, $15, $D7, $06, $0A, + $2B, $06, $01, $04, $01, $82, $37, $02, $04, $01, $31, $82, $15, $C7, $30, $82, + $15, $C3, $06, $09, $2A, $86, $48, $86, $F7, $0D, $01, $07, $02, $A0, $82, $15, + $B4, $30, $82, $15, $B0, $02, $01, $01, $31, $0F, $30, $0D, $06, $09, $60, $86, + $48, $01, $65, $03, $04, $02, $01, $05, $00, $30, $5C, $06, $0A, $2B, $06, $01, + $04, $01, $82, $37, $02, $01, $04, $A0, $4E, $30, $4C, $30, $17, $06, $0A, $2B, + $06, $01, $04, $01, $82, $37, $02, $01, $0F, $30, $09, $03, $01, $00, $A0, $04, + $A2, $02, $80, $00, $30, $31, $30, $0D, $06, $09, $60, $86, $48, $01, $65, $03, + $04, $02, $01, $05, $00, $04, $20, $48, $50, $16, $07, $98, $26, $A8, $52, $8F, + $AB, $2F, $B9, $D7, $C4, $FF, $3E, $78, $BA, $C7, $C4, $4E, $48, $56, $CC, $7E, + $BF, $0F, $C2, $70, $A1, $D0, $CC, $A0, $82, $04, $CE, $30, $82, $04, $CA, $30, + $82, $02, $B2, $A0, $03, $02, $01, $02, $02, $10, $2F, $A7, $24, $D1, $84, $61, + $9A, $B9, $40, $B4, $C6, $A5, $60, $C6, $04, $31, $30, $0D, $06, $09, $2A, $86, + $48, $86, $F7, $0D, $01, $01, $0B, $05, $00, $30, $54, $31, $0B, $30, $09, $06, + $03, $55, $04, $06, $13, $02, $43, $4E, $31, $15, $30, $13, $06, $03, $55, $04, + $0A, $13, $0C, $53, $75, $70, $65, $72, $20, $53, $74, $75, $64, $69, $6F, $31, + $2E, $30, $2C, $06, $03, $55, $04, $03, $13, $25, $53, $75, $70, $65, $72, $20, + $52, $6F, $6F, $74, $20, $43, $65, $72, $74, $69, $66, $69, $63, $61, $74, $65, + $20, $41, $75, $74, $68, $6F, $72, $69, $74, $79, $20, $2D, $20, $47, $32, $30, + $1E, $17, $0D, $31, $35, $30, $35, $30, $34, $31, $36, $30, $30, $30, $30, $5A, + $17, $0D, $33, $35, $30, $35, $30, $34, $31, $36, $30, $30, $30, $30, $5A, $30, + $60, $31, $0B, $30, $09, $06, $03, $55, $04, $06, $13, $02, $43, $4E, $31, $15, + $30, $13, $06, $09, $2A, $86, $48, $86, $F7, $0D, $01, $09, $01, $16, $06, $4C, + $73, $75, $70, $65, $72, $31, $15, $30, $13, $06, $03, $55, $04, $0A, $13, $0C, + $53, $75, $70, $65, $72, $20, $53, $74, $75, $64, $69, $6F, $31, $23, $30, $21, + $06, $03, $55, $04, $03, $13, $1A, $53, $75, $70, $65, $72, $20, $43, $6F, $64, + $65, $20, $53, $69, $67, $6E, $69, $6E, $67, $20, $43, $41, $20, $2D, $20, $47, + $32, $30, $82, $01, $22, $30, $0D, $06, $09, $2A, $86, $48, $86, $F7, $0D, $01, + $01, $01, $05, $00, $03, $82, $01, $0F, $00, $30, $82, $01, $0A, $02, $82, $01, + $01, $00, $DD, $1D, $1E, $AE, $62, $65, $5F, $B5, $3C, $04, $2E, $14, $2E, $79, + $E4, $94, $51, $5A, $9A, $FD, $82, $57, $AD, $DD, $12, $37, $3A, $95, $FF, $43, + $0B, $71, $4A, $63, $3F, $B8, $25, $FC, $91, $DC, $0F, $54, $FB, $39, $76, $E5, + $E2, $04, $FF, $7A, $EB, $67, $8B, $D4, $1E, $67, $BB, $E6, $71, $33, $09, $AC, + $D5, $BF, $67, $28, $6C, $2F, $4C, $DE, $01, $78, $11, $B5, $5E, $72, $B3, $CB, + $3C, $16, $48, $71, $EC, $A5, $97, $31, $13, $45, $32, $1E, $E8, $C5, $99, $CC, + $33, $EF, $CB, $4E, $CF, $A9, $E2, $0B, $0C, $E8, $A3, $B8, $BF, $47, $EF, $E0, + $4E, $AA, $79, $ED, $35, $F0, $7C, $48, $68, $51, $00, $CD, $B0, $40, $60, $43, + $45, $28, $7A, $DF, $84, $13, $A1, $16, $51, $0F, $93, $86, $3F, $53, $A4, $FD, + $C5, $BD, $03, $C9, $70, $38, $93, $17, $18, $9C, $20, $7D, $97, $16, $D9, $19, + $40, $1B, $35, $22, $63, $4B, $0A, $EF, $E1, $C1, $1E, $8A, $C1, $31, $BE, $CA, + $33, $04, $E3, $C8, $F9, $DD, $BB, $A4, $B1, $3E, $1F, $5D, $54, $CC, $E8, $81, + $52, $09, $29, $0E, $DE, $BC, $30, $16, $3E, $C3, $2E, $DF, $44, $93, $F5, $4F, + $0D, $49, $AB, $8C, $B3, $B8, $FE, $19, $88, $E9, $6B, $BC, $7E, $55, $6B, $B5, + $13, $B2, $7E, $C9, $D6, $03, $33, $2F, $A7, $E9, $B5, $45, $BB, $5C, $A5, $C9, + $5E, $67, $38, $CC, $18, $2D, $2E, $85, $00, $FE, $1D, $0F, $1F, $E0, $D7, $24, + $BF, $AB, $02, $03, $01, $00, $01, $A3, $81, $8B, $30, $81, $88, $30, $81, $85, + $06, $03, $55, $1D, $01, $04, $7E, $30, $7C, $80, $10, $7F, $28, $4D, $8C, $3E, + $5E, $15, $FF, $B0, $11, $66, $B1, $16, $C8, $E0, $C9, $A1, $56, $30, $54, $31, + $0B, $30, $09, $06, $03, $55, $04, $06, $13, $02, $43, $4E, $31, $15, $30, $13, + $06, $03, $55, $04, $0A, $13, $0C, $53, $75, $70, $65, $72, $20, $53, $74, $75, + $64, $69, $6F, $31, $2E, $30, $2C, $06, $03, $55, $04, $03, $13, $25, $53, $75, + $70, $65, $72, $20, $52, $6F, $6F, $74, $20, $43, $65, $72, $74, $69, $66, $69, + $63, $61, $74, $65, $20, $41, $75, $74, $68, $6F, $72, $69, $74, $79, $20, $2D, + $20, $47, $32, $82, $10, $FE, $1E, $21, $8F, $FB, $D4, $48, $BA, $44, $FB, $30, + $CF, $DB, $F6, $57, $72, $30, $0D, $06, $09, $2A, $86, $48, $86, $F7, $0D, $01, + $01, $0B, $05, $00, $03, $82, $02, $01, $00, $A8, $F1, $42, $48, $8C, $E3, $E3, + $8F, $8B, $71, $4E, $50, $34, $2D, $10, $63, $5C, $B1, $5E, $91, $75, $1E, $24, + $E1, $9B, $1C, $60, $80, $A4, $91, $60, $B9, $09, $01, $74, $E2, $F7, $A1, $D6, + $57, $FF, $75, $F1, $B2, $A2, $CF, $AB, $D1, $77, $67, $EE, $E3, $C4, $57, $CF, + $E7, $15, $B5, $CB, $4B, $DF, $2B, $CD, $D4, $DF, $0B, $F1, $9C, $F1, $F2, $5F, + $18, $DB, $45, $6F, $60, $19, $FC, $01, $4D, $13, $92, $BC, $B6, $FE, $D2, $BA, + $A7, $B2, $D4, $28, $13, $E1, $58, $BD, $E7, $FA, $42, $14, $A3, $B0, $80, $71, + $E3, $D1, $FB, $4E, $4B, $FB, $67, $09, $9E, $14, $9F, $52, $8B, $19, $AE, $C6, + $B9, $8B, $AD, $D1, $C9, $C1, $B8, $F5, $54, $E4, $78, $29, $B0, $D4, $6B, $5E, + $45, $B6, $CC, $CE, $12, $2D, $8A, $6D, $F4, $B3, $E9, $F3, $0C, $7C, $0B, $25, + $0A, $C7, $5B, $FA, $48, $29, $1E, $01, $09, $E5, $F9, $CC, $FE, $B9, $CD, $98, + $A6, $68, $F5, $62, $9C, $35, $DE, $D6, $0A, $30, $34, $6B, $FD, $34, $5F, $8C, + $78, $15, $F5, $99, $FE, $D4, $0D, $C5, $98, $44, $DA, $81, $C1, $36, $40, $BD, + $E1, $A5, $3A, $CF, $98, $25, $DA, $CB, $81, $DF, $1E, $73, $93, $15, $A2, $6A, + $C8, $E5, $3F, $59, $69, $7C, $9A, $DC, $C7, $BE, $D2, $3C, $B0, $BD, $DA, $B9, + $1F, $CE, $95, $DB, $A5, $5B, $24, $46, $7B, $9A, $C3, $FB, $A0, $B0, $1A, $79, + $59, $6A, $A1, $91, $AC, $79, $77, $FD, $CF, $9A, $EB, $C2, $27, $17, $BF, $73, + $44, $94, $FE, $E6, $7A, $5C, $A7, $83, $98, $4A, $F8, $15, $E2, $1E, $57, $CA, + $80, $6E, $7D, $1F, $F0, $A6, $C6, $D5, $9A, $DA, $24, $E6, $35, $7D, $A1, $1E, + $BD, $EC, $59, $66, $74, $5B, $3D, $94, $BF, $CE, $70, $12, $D3, $0F, $46, $5C, + $E1, $BE, $28, $3C, $7E, $0D, $9E, $A2, $E4, $C3, $D6, $2D, $48, $CB, $DA, $FF, + $CD, $FD, $58, $00, $C6, $5D, $6C, $4B, $CB, $49, $58, $2B, $9D, $F7, $92, $D9, + $01, $9E, $A1, $A7, $A1, $83, $A0, $FD, $33, $6C, $23, $DD, $31, $56, $95, $A9, + $69, $77, $C9, $56, $35, $40, $27, $BC, $D7, $30, $2A, $C0, $52, $91, $32, $2E, + $AB, $47, $8D, $44, $FE, $15, $E6, $06, $F1, $F1, $D9, $C3, $1F, $EB, $44, $DB, + $71, $03, $D0, $BA, $AE, $5E, $54, $57, $58, $40, $6D, $B1, $39, $E4, $6A, $73, + $D2, $37, $87, $34, $7E, $D6, $A2, $9E, $2C, $23, $15, $76, $07, $5C, $3A, $C3, + $A5, $C6, $EA, $28, $50, $4F, $4C, $28, $52, $0A, $C1, $F2, $4F, $DD, $82, $24, + $5A, $BB, $58, $E4, $0E, $F6, $F0, $21, $3E, $CA, $DA, $D2, $3F, $D4, $F6, $FF, + $70, $C2, $0A, $D8, $77, $BD, $62, $2C, $1F, $89, $DD, $54, $98, $03, $4A, $6A, + $6D, $30, $06, $5D, $89, $F4, $A2, $2E, $BF, $D8, $BF, $3C, $58, $42, $61, $D7, + $7B, $9F, $EF, $B7, $1A, $56, $10, $02, $D3, $BD, $FA, $0B, $C9, $3D, $68, $17, + $88, $EC, $99, $10, $29, $32, $7D, $E1, $39, $31, $82, $10, $68, $30, $82, $10, + $64, $02, $01, $01, $30, $68, $30, $54, $31, $0B, $30, $09, $06, $03, $55, $04, + $06, $13, $02, $43, $4E, $31, $15, $30, $13, $06, $03, $55, $04, $0A, $13, $0C, + $53, $75, $70, $65, $72, $20, $53, $74, $75, $64, $69, $6F, $31, $2E, $30, $2C, + $06, $03, $55, $04, $03, $13, $25, $53, $75, $70, $65, $72, $20, $52, $6F, $6F, + $74, $20, $43, $65, $72, $74, $69, $66, $69, $63, $61, $74, $65, $20, $41, $75, + $74, $68, $6F, $72, $69, $74, $79, $20, $2D, $20, $47, $32, $02, $10, $2F, $A7, + $24, $D1, $84, $61, $9A, $B9, $40, $B4, $C6, $A5, $60, $C6, $04, $31, $30, $0D, + $06, $09, $60, $86, $48, $01, $65, $03, $04, $02, $01, $05, $00, $A0, $81, $A3, + $30, $11, $06, $0A, $2A, $86, $48, $86, $F7, $0D, $01, $09, $19, $04, $31, $03, + $02, $01, $01, $30, $19, $06, $09, $2A, $86, $48, $86, $F7, $0D, $01, $09, $03, + $31, $0C, $06, $0A, $2B, $06, $01, $04, $01, $82, $37, $02, $01, $04, $30, $2F, + $06, $09, $2A, $86, $48, $86, $F7, $0D, $01, $09, $04, $31, $22, $04, $20, $A5, + $01, $67, $6C, $24, $06, $FA, $AD, $9E, $15, $22, $DB, $BB, $3D, $A0, $48, $5C, + $DB, $1C, $3A, $1C, $BF, $38, $47, $A5, $E5, $38, $87, $4D, $D5, $74, $07, $30, + $42, $06, $0A, $2B, $06, $01, $04, $01, $82, $37, $02, $01, $0C, $31, $34, $30, + $32, $A0, $18, $80, $16, $00, $44, $00, $65, $00, $6C, $00, $70, $00, $68, $00, + $69, $00, $20, $00, $4C, $00, $69, $00, $74, $00, $65, $A1, $16, $80, $14, $77, + $77, $77, $2E, $65, $6D, $62, $61, $72, $63, $61, $64, $65, $72, $6F, $2E, $63, + $6F, $6D, $20, $30, $0D, $06, $09, $2A, $86, $48, $86, $F7, $0D, $01, $01, $01, + $05, $00, $04, $82, $01, $00, $08, $3C, $02, $75, $37, $00, $CF, $5D, $87, $DC, + $EC, $43, $D1, $9A, $59, $91, $38, $E5, $DB, $97, $1B, $7E, $46, $DE, $10, $D0, + $D3, $79, $A4, $08, $41, $3A, $0D, $6E, $88, $31, $11, $BF, $4A, $6F, $01, $53, + $8C, $C2, $34, $71, $C7, $A2, $AC, $E7, $4B, $6F, $F8, $F7, $DE, $2B, $B9, $BC, + $9C, $8E, $1A, $42, $24, $3A, $12, $47, $D5, $5C, $CB, $17, $1A, $3A, $A6, $CD, + $08, $78, $26, $2A, $E6, $15, $70, $B7, $57, $A2, $34, $0A, $9C, $12, $D4, $E6, + $77, $C6, $36, $29, $74, $CC, $1E, $BF, $98, $97, $2E, $9D, $86, $9B, $F8, $1C, + $41, $B5, $F2, $CC, $DD, $76, $F7, $0C, $86, $16, $D9, $EC, $5D, $E0, $FA, $7F, + $70, $08, $89, $97, $24, $82, $88, $BE, $BB, $73, $B0, $F9, $E2, $2E, $D2, $29, + $5B, $F8, $30, $02, $2A, $A6, $95, $35, $02, $D6, $EE, $73, $5B, $B7, $C6, $48, + $E5, $9E, $05, $07, $CA, $72, $FB, $49, $C0, $A6, $E9, $DA, $3C, $44, $4E, $7C, + $E8, $92, $6D, $CA, $CA, $49, $9D, $FC, $06, $03, $31, $49, $3D, $75, $1D, $45, + $B6, $51, $82, $F5, $F6, $00, $6F, $8A, $15, $BA, $D3, $9D, $23, $80, $ED, $B1, + $75, $7F, $BA, $6E, $AB, $17, $D2, $7B, $4E, $E9, $3F, $63, $21, $7D, $B0, $27, + $6C, $93, $EF, $9B, $7D, $C0, $7B, $67, $30, $E0, $24, $F9, $A8, $76, $23, $75, + $55, $5E, $BF, $7D, $39, $D3, $21, $08, $82, $F8, $15, $FB, $26, $FD, $F3, $3E, + $04, $B6, $5E, $77, $FD, $DF, $A1, $82, $0E, $2B, $30, $82, $0E, $27, $06, $0A, + $2B, $06, $01, $04, $01, $82, $37, $03, $03, $01, $31, $82, $0E, $17, $30, $82, + $0E, $13, $06, $09, $2A, $86, $48, $86, $F7, $0D, $01, $07, $02, $A0, $82, $0E, + $04, $30, $82, $0E, $00, $02, $01, $03, $31, $0D, $30, $0B, $06, $09, $60, $86, + $48, $01, $65, $03, $04, $02, $01, $30, $81, $FE, $06, $0B, $2A, $86, $48, $86, + $F7, $0D, $01, $09, $10, $01, $04, $A0, $81, $EE, $04, $81, $EB, $30, $81, $E8, + $02, $01, $01, $06, $0B, $60, $86, $48, $01, $86, $F8, $45, $01, $07, $17, $03, + $30, $21, $30, $09, $06, $05, $2B, $0E, $03, $02, $1A, $05, $00, $04, $14, $21, + $40, $66, $96, $6E, $23, $32, $4F, $91, $61, $AC, $D1, $95, $67, $C8, $4C, $D5, + $8E, $D1, $79, $02, $14, $44, $AF, $C4, $CB, $CA, $F2, $84, $FF, $8A, $C3, $8A, + $AB, $F7, $79, $D8, $D8, $A7, $0B, $B0, $C7, $18, $0F, $32, $30, $31, $39, $31, + $31, $31, $39, $31, $34, $33, $36, $33, $31, $5A, $30, $03, $02, $01, $1E, $A0, + $81, $86, $A4, $81, $83, $30, $81, $80, $31, $0B, $30, $09, $06, $03, $55, $04, + $06, $13, $02, $55, $53, $31, $1D, $30, $1B, $06, $03, $55, $04, $0A, $13, $14, + $53, $79, $6D, $61, $6E, $74, $65, $63, $20, $43, $6F, $72, $70, $6F, $72, $61, + $74, $69, $6F, $6E, $31, $1F, $30, $1D, $06, $03, $55, $04, $0B, $13, $16, $53, + $79, $6D, $61, $6E, $74, $65, $63, $20, $54, $72, $75, $73, $74, $20, $4E, $65, + $74, $77, $6F, $72, $6B, $31, $31, $30, $2F, $06, $03, $55, $04, $03, $13, $28, + $53, $79, $6D, $61, $6E, $74, $65, $63, $20, $53, $48, $41, $32, $35, $36, $20, + $54, $69, $6D, $65, $53, $74, $61, $6D, $70, $69, $6E, $67, $20, $53, $69, $67, + $6E, $65, $72, $20, $2D, $20, $47, $33, $A0, $82, $0A, $8B, $30, $82, $05, $38, + $30, $82, $04, $20, $A0, $03, $02, $01, $02, $02, $10, $7B, $05, $B1, $D4, $49, + $68, $51, $44, $F7, $C9, $89, $D2, $9C, $19, $9D, $12, $30, $0D, $06, $09, $2A, + $86, $48, $86, $F7, $0D, $01, $01, $0B, $05, $00, $30, $81, $BD, $31, $0B, $30, + $09, $06, $03, $55, $04, $06, $13, $02, $55, $53, $31, $17, $30, $15, $06, $03, + $55, $04, $0A, $13, $0E, $56, $65, $72, $69, $53, $69, $67, $6E, $2C, $20, $49, + $6E, $63, $2E, $31, $1F, $30, $1D, $06, $03, $55, $04, $0B, $13, $16, $56, $65, + $72, $69, $53, $69, $67, $6E, $20, $54, $72, $75, $73, $74, $20, $4E, $65, $74, + $77, $6F, $72, $6B, $31, $3A, $30, $38, $06, $03, $55, $04, $0B, $13, $31, $28, + $63, $29, $20, $32, $30, $30, $38, $20, $56, $65, $72, $69, $53, $69, $67, $6E, + $2C, $20, $49, $6E, $63, $2E, $20, $2D, $20, $46, $6F, $72, $20, $61, $75, $74, + $68, $6F, $72, $69, $7A, $65, $64, $20, $75, $73, $65, $20, $6F, $6E, $6C, $79, + $31, $38, $30, $36, $06, $03, $55, $04, $03, $13, $2F, $56, $65, $72, $69, $53, + $69, $67, $6E, $20, $55, $6E, $69, $76, $65, $72, $73, $61, $6C, $20, $52, $6F, + $6F, $74, $20, $43, $65, $72, $74, $69, $66, $69, $63, $61, $74, $69, $6F, $6E, + $20, $41, $75, $74, $68, $6F, $72, $69, $74, $79, $30, $1E, $17, $0D, $31, $36, + $30, $31, $31, $32, $30, $30, $30, $30, $30, $30, $5A, $17, $0D, $33, $31, $30, + $31, $31, $31, $32, $33, $35, $39, $35, $39, $5A, $30, $77, $31, $0B, $30, $09, + $06, $03, $55, $04, $06, $13, $02, $55, $53, $31, $1D, $30, $1B, $06, $03, $55, + $04, $0A, $13, $14, $53, $79, $6D, $61, $6E, $74, $65, $63, $20, $43, $6F, $72, + $70, $6F, $72, $61, $74, $69, $6F, $6E, $31, $1F, $30, $1D, $06, $03, $55, $04, + $0B, $13, $16, $53, $79, $6D, $61, $6E, $74, $65, $63, $20, $54, $72, $75, $73, + $74, $20, $4E, $65, $74, $77, $6F, $72, $6B, $31, $28, $30, $26, $06, $03, $55, + $04, $03, $13, $1F, $53, $79, $6D, $61, $6E, $74, $65, $63, $20, $53, $48, $41, + $32, $35, $36, $20, $54, $69, $6D, $65, $53, $74, $61, $6D, $70, $69, $6E, $67, + $20, $43, $41, $30, $82, $01, $22, $30, $0D, $06, $09, $2A, $86, $48, $86, $F7, + $0D, $01, $01, $01, $05, $00, $03, $82, $01, $0F, $00, $30, $82, $01, $0A, $02, + $82, $01, $01, $00, $BB, $59, $9D, $59, $55, $4F, $9D, $8C, $72, $5D, $1A, $81, + $A2, $EB, $55, $F3, $B0, $01, $AD, $3C, $71, $AC, $32, $8F, $05, $6B, $86, $9A, + $27, $00, $32, $97, $6A, $4D, $C9, $64, $14, $4B, $29, $BB, $C2, $D9, $29, $B9, + $2E, $EC, $63, $B3, $E1, $CF, $3F, $0B, $56, $90, $F8, $62, $1B, $7E, $EB, $A6, + $07, $E2, $DE, $7F, $5E, $6D, $40, $38, $D4, $91, $06, $E7, $41, $7C, $79, $1C, + $CB, $CB, $AD, $1B, $BF, $D8, $95, $91, $F3, $F0, $EE, $6C, $F8, $AD, $96, $39, + $2E, $7F, $C1, $27, $B8, $78, $39, $C5, $84, $A5, $ED, $ED, $AF, $87, $8E, $CE, + $8D, $C7, $6D, $EA, $D2, $98, $B5, $3A, $1F, $1E, $39, $9D, $C3, $F4, $9A, $A8, + $F4, $84, $E1, $C4, $D1, $7C, $71, $C6, $06, $29, $B4, $3F, $E4, $83, $0D, $26, + $C3, $7B, $08, $3E, $4D, $F9, $0A, $B7, $33, $49, $FF, $CA, $3B, $D4, $F5, $B2, + $9B, $4B, $E1, $88, $99, $1A, $F5, $C0, $E9, $33, $14, $D6, $DF, $C7, $80, $DB, + $91, $EE, $FE, $BC, $92, $57, $72, $77, $F4, $CD, $A8, $CC, $FE, $09, $F5, $93, + $37, $BE, $95, $88, $6A, $C5, $DC, $F4, $B1, $4B, $D4, $CE, $E8, $09, $91, $5F, + $B5, $84, $79, $35, $8A, $78, $AC, $19, $32, $8F, $23, $C1, $32, $41, $1B, $59, + $0E, $A9, $3E, $B1, $CC, $F9, $D6, $2B, $EF, $B7, $D8, $E4, $D5, $1D, $6D, $11, + $3A, $92, $F6, $93, $C9, $9C, $E3, $48, $EE, $BB, $53, $0E, $D4, $36, $97, $86, + $78, $C5, $A1, $37, $02, $03, $01, $00, $01, $A3, $82, $01, $77, $30, $82, $01, + $73, $30, $0E, $06, $03, $55, $1D, $0F, $01, $01, $FF, $04, $04, $03, $02, $01, + $06, $30, $12, $06, $03, $55, $1D, $13, $01, $01, $FF, $04, $08, $30, $06, $01, + $01, $FF, $02, $01, $00, $30, $66, $06, $03, $55, $1D, $20, $04, $5F, $30, $5D, + $30, $5B, $06, $0B, $60, $86, $48, $01, $86, $F8, $45, $01, $07, $17, $03, $30, + $4C, $30, $23, $06, $08, $2B, $06, $01, $05, $05, $07, $02, $01, $16, $17, $68, + $74, $74, $70, $73, $3A, $2F, $2F, $64, $2E, $73, $79, $6D, $63, $62, $2E, $63, + $6F, $6D, $2F, $63, $70, $73, $30, $25, $06, $08, $2B, $06, $01, $05, $05, $07, + $02, $02, $30, $19, $1A, $17, $68, $74, $74, $70, $73, $3A, $2F, $2F, $64, $2E, + $73, $79, $6D, $63, $62, $2E, $63, $6F, $6D, $2F, $72, $70, $61, $30, $2E, $06, + $08, $2B, $06, $01, $05, $05, $07, $01, $01, $04, $22, $30, $20, $30, $1E, $06, + $08, $2B, $06, $01, $05, $05, $07, $30, $01, $86, $12, $68, $74, $74, $70, $3A, + $2F, $2F, $73, $2E, $73, $79, $6D, $63, $64, $2E, $63, $6F, $6D, $30, $36, $06, + $03, $55, $1D, $1F, $04, $2F, $30, $2D, $30, $2B, $A0, $29, $A0, $27, $86, $25, + $68, $74, $74, $70, $3A, $2F, $2F, $73, $2E, $73, $79, $6D, $63, $62, $2E, $63, + $6F, $6D, $2F, $75, $6E, $69, $76, $65, $72, $73, $61, $6C, $2D, $72, $6F, $6F, + $74, $2E, $63, $72, $6C, $30, $13, $06, $03, $55, $1D, $25, $04, $0C, $30, $0A, + $06, $08, $2B, $06, $01, $05, $05, $07, $03, $08, $30, $28, $06, $03, $55, $1D, + $11, $04, $21, $30, $1F, $A4, $1D, $30, $1B, $31, $19, $30, $17, $06, $03, $55, + $04, $03, $13, $10, $54, $69, $6D, $65, $53, $74, $61, $6D, $70, $2D, $32, $30, + $34, $38, $2D, $33, $30, $1D, $06, $03, $55, $1D, $0E, $04, $16, $04, $14, $AF, + $63, $D6, $CA, $A3, $4E, $85, $72, $E0, $A7, $BC, $41, $F3, $29, $A2, $38, $7F, + $80, $75, $62, $30, $1F, $06, $03, $55, $1D, $23, $04, $18, $30, $16, $80, $14, + $B6, $77, $FA, $69, $48, $47, $9F, $53, $12, $D5, $C2, $EA, $07, $32, $76, $07, + $D1, $97, $07, $19, $30, $0D, $06, $09, $2A, $86, $48, $86, $F7, $0D, $01, $01, + $0B, $05, $00, $03, $82, $01, $01, $00, $75, $EA, $B0, $2D, $D5, $34, $19, $5C, + $32, $45, $FE, $0E, $E1, $D4, $4F, $A6, $78, $C1, $6F, $D7, $EA, $DD, $DC, $4F, + $F3, $A1, $C8, $81, $88, $F7, $A7, $8F, $15, $E6, $40, $29, $AD, $E6, $5D, $F4, + $A2, $D9, $56, $64, $84, $71, $30, $2A, $DD, $1E, $61, $17, $66, $20, $56, $06, + $98, $19, $8D, $5D, $71, $F2, $F8, $97, $BC, $09, $FD, $1C, $91, $47, $C9, $E2, + $E8, $8D, $03, $FB, $CC, $90, $2F, $D6, $0A, $6C, $4E, $33, $EC, $D6, $B4, $93, + $C8, $4C, $90, $63, $48, $39, $40, $21, $C4, $DD, $D6, $6E, $89, $98, $3C, $B5, + $98, $97, $E8, $A9, $06, $B7, $09, $C9, $8F, $53, $57, $41, $90, $2F, $E1, $1E, + $4D, $4E, $DC, $CA, $10, $78, $6C, $42, $6E, $F0, $B6, $C5, $F8, $61, $5C, $52, + $F5, $4E, $F6, $6B, $8D, $F7, $4A, $7A, $BE, $F3, $CD, $FD, $03, $D7, $D9, $F6, + $03, $A8, $0F, $E3, $53, $F7, $0A, $75, $EC, $C6, $75, $2E, $AA, $66, $85, $04, + $99, $B7, $F8, $06, $57, $E1, $C6, $0E, $F6, $E8, $AF, $DA, $EC, $9B, $18, $1F, + $AA, $B9, $E3, $3A, $00, $BF, $CE, $8A, $94, $CB, $01, $DB, $9E, $C7, $38, $BB, + $0F, $52, $AB, $D1, $E3, $94, $03, $60, $0A, $4D, $A0, $FE, $27, $6D, $14, $32, + $FC, $3F, $97, $40, $E1, $BF, $99, $89, $DB, $E4, $39, $14, $BD, $DA, $E4, $D3, + $C3, $EA, $2B, $5A, $B3, $95, $58, $55, $04, $7D, $C7, $9A, $EC, $23, $03, $8D, + $85, $2A, $D2, $FF, $AE, $A9, $61, $81, $30, $82, $05, $4B, $30, $82, $04, $33, + $A0, $03, $02, $01, $02, $02, $10, $7B, $D4, $E5, $AF, $BA, $CC, $07, $3F, $A1, + $01, $23, $04, $22, $41, $4D, $12, $30, $0D, $06, $09, $2A, $86, $48, $86, $F7, + $0D, $01, $01, $0B, $05, $00, $30, $77, $31, $0B, $30, $09, $06, $03, $55, $04, + $06, $13, $02, $55, $53, $31, $1D, $30, $1B, $06, $03, $55, $04, $0A, $13, $14, + $53, $79, $6D, $61, $6E, $74, $65, $63, $20, $43, $6F, $72, $70, $6F, $72, $61, + $74, $69, $6F, $6E, $31, $1F, $30, $1D, $06, $03, $55, $04, $0B, $13, $16, $53, + $79, $6D, $61, $6E, $74, $65, $63, $20, $54, $72, $75, $73, $74, $20, $4E, $65, + $74, $77, $6F, $72, $6B, $31, $28, $30, $26, $06, $03, $55, $04, $03, $13, $1F, + $53, $79, $6D, $61, $6E, $74, $65, $63, $20, $53, $48, $41, $32, $35, $36, $20, + $54, $69, $6D, $65, $53, $74, $61, $6D, $70, $69, $6E, $67, $20, $43, $41, $30, + $1E, $17, $0D, $31, $37, $31, $32, $32, $33, $30, $30, $30, $30, $30, $30, $5A, + $17, $0D, $32, $39, $30, $33, $32, $32, $32, $33, $35, $39, $35, $39, $5A, $30, + $81, $80, $31, $0B, $30, $09, $06, $03, $55, $04, $06, $13, $02, $55, $53, $31, + $1D, $30, $1B, $06, $03, $55, $04, $0A, $13, $14, $53, $79, $6D, $61, $6E, $74, + $65, $63, $20, $43, $6F, $72, $70, $6F, $72, $61, $74, $69, $6F, $6E, $31, $1F, + $30, $1D, $06, $03, $55, $04, $0B, $13, $16, $53, $79, $6D, $61, $6E, $74, $65, + $63, $20, $54, $72, $75, $73, $74, $20, $4E, $65, $74, $77, $6F, $72, $6B, $31, + $31, $30, $2F, $06, $03, $55, $04, $03, $13, $28, $53, $79, $6D, $61, $6E, $74, + $65, $63, $20, $53, $48, $41, $32, $35, $36, $20, $54, $69, $6D, $65, $53, $74, + $61, $6D, $70, $69, $6E, $67, $20, $53, $69, $67, $6E, $65, $72, $20, $2D, $20, + $47, $33, $30, $82, $01, $22, $30, $0D, $06, $09, $2A, $86, $48, $86, $F7, $0D, + $01, $01, $01, $05, $00, $03, $82, $01, $0F, $00, $30, $82, $01, $0A, $02, $82, + $01, $01, $00, $AF, $0E, $8A, $AA, $F8, $DC, $BF, $69, $7B, $54, $17, $71, $47, + $09, $BD, $8D, $3C, $81, $F8, $74, $15, $77, $67, $90, $9C, $FD, $DE, $4E, $02, + $9E, $4B, $76, $F6, $E5, $36, $3E, $65, $D5, $24, $20, $6D, $30, $F9, $DD, $1D, + $83, $E9, $3F, $27, $4A, $33, $4E, $6D, $16, $8A, $E4, $8D, $40, $8D, $22, $AA, + $BE, $A7, $0B, $1B, $D2, $07, $B6, $3C, $B5, $1A, $24, $28, $F8, $1B, $72, $51, + $3D, $C8, $09, $88, $26, $08, $3A, $F9, $FA, $43, $23, $75, $47, $70, $0C, $B3, + $5F, $5B, $8F, $08, $1D, $72, $48, $57, $65, $4D, $AF, $02, $3C, $40, $F7, $F4, + $DD, $32, $38, $93, $3F, $E5, $2C, $A6, $F3, $59, $23, $CB, $80, $DE, $13, $4D, + $F9, $10, $C9, $AA, $0A, $18, $6C, $55, $61, $57, $D1, $F1, $02, $2C, $C4, $B5, + $AB, $F2, $6C, $23, $D2, $9F, $0D, $0F, $19, $6C, $AD, $85, $62, $69, $FD, $4E, + $85, $C1, $8A, $52, $31, $AB, $5B, $D8, $C9, $74, $52, $E3, $57, $6C, $22, $BF, + $55, $7F, $6F, $CA, $06, $AB, $3F, $4A, $B7, $22, $76, $65, $EC, $EC, $36, $F2, + $96, $95, $81, $26, $2C, $FD, $BB, $98, $AA, $01, $38, $D3, $AF, $25, $40, $9B, + $09, $53, $F0, $29, $57, $85, $58, $5E, $EA, $85, $48, $41, $21, $87, $E5, $DE, + $B4, $D3, $26, $B2, $7B, $40, $53, $58, $79, $8E, $52, $31, $06, $4D, $94, $03, + $45, $C4, $CE, $3C, $03, $EC, $B7, $00, $F2, $3A, $22, $C5, $B4, $6F, $E5, $EF, + $B0, $8A, $9B, $02, $03, $01, $00, $01, $A3, $82, $01, $C7, $30, $82, $01, $C3, + $30, $0C, $06, $03, $55, $1D, $13, $01, $01, $FF, $04, $02, $30, $00, $30, $66, + $06, $03, $55, $1D, $20, $04, $5F, $30, $5D, $30, $5B, $06, $0B, $60, $86, $48, + $01, $86, $F8, $45, $01, $07, $17, $03, $30, $4C, $30, $23, $06, $08, $2B, $06, + $01, $05, $05, $07, $02, $01, $16, $17, $68, $74, $74, $70, $73, $3A, $2F, $2F, + $64, $2E, $73, $79, $6D, $63, $62, $2E, $63, $6F, $6D, $2F, $63, $70, $73, $30, + $25, $06, $08, $2B, $06, $01, $05, $05, $07, $02, $02, $30, $19, $1A, $17, $68, + $74, $74, $70, $73, $3A, $2F, $2F, $64, $2E, $73, $79, $6D, $63, $62, $2E, $63, + $6F, $6D, $2F, $72, $70, $61, $30, $40, $06, $03, $55, $1D, $1F, $04, $39, $30, + $37, $30, $35, $A0, $33, $A0, $31, $86, $2F, $68, $74, $74, $70, $3A, $2F, $2F, + $74, $73, $2D, $63, $72, $6C, $2E, $77, $73, $2E, $73, $79, $6D, $61, $6E, $74, + $65, $63, $2E, $63, $6F, $6D, $2F, $73, $68, $61, $32, $35, $36, $2D, $74, $73, + $73, $2D, $63, $61, $2E, $63, $72, $6C, $30, $16, $06, $03, $55, $1D, $25, $01, + $01, $FF, $04, $0C, $30, $0A, $06, $08, $2B, $06, $01, $05, $05, $07, $03, $08, + $30, $0E, $06, $03, $55, $1D, $0F, $01, $01, $FF, $04, $04, $03, $02, $07, $80, + $30, $77, $06, $08, $2B, $06, $01, $05, $05, $07, $01, $01, $04, $6B, $30, $69, + $30, $2A, $06, $08, $2B, $06, $01, $05, $05, $07, $30, $01, $86, $1E, $68, $74, + $74, $70, $3A, $2F, $2F, $74, $73, $2D, $6F, $63, $73, $70, $2E, $77, $73, $2E, + $73, $79, $6D, $61, $6E, $74, $65, $63, $2E, $63, $6F, $6D, $30, $3B, $06, $08, + $2B, $06, $01, $05, $05, $07, $30, $02, $86, $2F, $68, $74, $74, $70, $3A, $2F, + $2F, $74, $73, $2D, $61, $69, $61, $2E, $77, $73, $2E, $73, $79, $6D, $61, $6E, + $74, $65, $63, $2E, $63, $6F, $6D, $2F, $73, $68, $61, $32, $35, $36, $2D, $74, + $73, $73, $2D, $63, $61, $2E, $63, $65, $72, $30, $28, $06, $03, $55, $1D, $11, + $04, $21, $30, $1F, $A4, $1D, $30, $1B, $31, $19, $30, $17, $06, $03, $55, $04, + $03, $13, $10, $54, $69, $6D, $65, $53, $74, $61, $6D, $70, $2D, $32, $30, $34, + $38, $2D, $36, $30, $1D, $06, $03, $55, $1D, $0E, $04, $16, $04, $14, $A5, $13, + $01, $A9, $9F, $85, $CC, $1B, $6E, $16, $1E, $5F, $3B, $31, $AA, $79, $36, $00, + $7B, $1D, $30, $1F, $06, $03, $55, $1D, $23, $04, $18, $30, $16, $80, $14, $AF, + $63, $D6, $CA, $A3, $4E, $85, $72, $E0, $A7, $BC, $41, $F3, $29, $A2, $38, $7F, + $80, $75, $62, $30, $0D, $06, $09, $2A, $86, $48, $86, $F7, $0D, $01, $01, $0B, + $05, $00, $03, $82, $01, $01, $00, $46, $9E, $AF, $F0, $B8, $A2, $5F, $A2, $99, + $48, $CF, $A8, $27, $4B, $21, $CD, $B2, $B9, $A6, $72, $70, $63, $2F, $E3, $55, + $29, $7B, $39, $46, $4E, $E7, $7E, $65, $06, $58, $8B, $BC, $57, $8A, $92, $0D, + $08, $D8, $10, $BA, $36, $24, $FA, $0A, $7B, $FB, $3B, $D3, $62, $BF, $4A, $94, + $15, $E6, $82, $DB, $8A, $54, $6D, $FF, $28, $FE, $67, $CF, $71, $3F, $E6, $33, + $09, $D9, $A2, $59, $10, $F4, $1E, $4A, $FE, $65, $CC, $DE, $D4, $6B, $E3, $52, + $29, $75, $00, $4A, $2B, $A5, $CC, $CB, $9B, $E8, $A9, $4D, $F7, $B4, $17, $59, + $92, $41, $C3, $B7, $3F, $86, $E6, $F6, $C0, $7F, $44, $3C, $46, $5C, $17, $5A, + $E3, $A4, $3B, $D5, $69, $26, $D5, $21, $7D, $E1, $80, $67, $7E, $62, $AC, $B7, + $4E, $2E, $15, $9A, $E5, $9C, $23, $AF, $5B, $11, $EA, $71, $A9, $41, $F9, $0D, + $79, $38, $A9, $A1, $0D, $CF, $B4, $B1, $DA, $3E, $9A, $7A, $C7, $22, $C5, $74, + $CD, $DF, $47, $09, $86, $C4, $FC, $91, $25, $B2, $1B, $96, $E9, $85, $08, $E8, + $DD, $EA, $74, $60, $6E, $60, $A5, $56, $7A, $0D, $C8, $44, $58, $DC, $E6, $F9, + $48, $14, $9E, $E5, $BF, $DE, $00, $BD, $77, $B1, $98, $14, $72, $14, $24, $DF, + $C7, $11, $2C, $1F, $00, $3F, $C3, $4B, $14, $C6, $67, $1C, $CC, $1E, $06, $A3, + $90, $5F, $5C, $54, $8B, $3E, $E3, $33, $5B, $82, $0F, $C5, $B7, $86, $02, $4E, + $71, $9F, $E9, $66, $45, $3F, $76, $31, $82, $02, $5A, $30, $82, $02, $56, $02, + $01, $01, $30, $81, $8B, $30, $77, $31, $0B, $30, $09, $06, $03, $55, $04, $06, + $13, $02, $55, $53, $31, $1D, $30, $1B, $06, $03, $55, $04, $0A, $13, $14, $53, + $79, $6D, $61, $6E, $74, $65, $63, $20, $43, $6F, $72, $70, $6F, $72, $61, $74, + $69, $6F, $6E, $31, $1F, $30, $1D, $06, $03, $55, $04, $0B, $13, $16, $53, $79, + $6D, $61, $6E, $74, $65, $63, $20, $54, $72, $75, $73, $74, $20, $4E, $65, $74, + $77, $6F, $72, $6B, $31, $28, $30, $26, $06, $03, $55, $04, $03, $13, $1F, $53, + $79, $6D, $61, $6E, $74, $65, $63, $20, $53, $48, $41, $32, $35, $36, $20, $54, + $69, $6D, $65, $53, $74, $61, $6D, $70, $69, $6E, $67, $20, $43, $41, $02, $10, + $7B, $D4, $E5, $AF, $BA, $CC, $07, $3F, $A1, $01, $23, $04, $22, $41, $4D, $12, + $30, $0B, $06, $09, $60, $86, $48, $01, $65, $03, $04, $02, $01, $A0, $81, $A4, + $30, $1A, $06, $09, $2A, $86, $48, $86, $F7, $0D, $01, $09, $03, $31, $0D, $06, + $0B, $2A, $86, $48, $86, $F7, $0D, $01, $09, $10, $01, $04, $30, $1C, $06, $09, + $2A, $86, $48, $86, $F7, $0D, $01, $09, $05, $31, $0F, $17, $0D, $31, $39, $31, + $31, $31, $39, $31, $34, $33, $36, $33, $31, $5A, $30, $2F, $06, $09, $2A, $86, + $48, $86, $F7, $0D, $01, $09, $04, $31, $22, $04, $20, $73, $8B, $D2, $18, $D9, + $FA, $07, $87, $53, $53, $DE, $A4, $75, $DF, $4F, $48, $EC, $C5, $09, $DA, $CC, + $F2, $2F, $3D, $67, $04, $6F, $4E, $15, $AA, $D7, $CF, $30, $37, $06, $0B, $2A, + $86, $48, $86, $F7, $0D, $01, $09, $10, $02, $2F, $31, $28, $30, $26, $30, $24, + $30, $22, $04, $20, $C4, $74, $CE, $76, $00, $7D, $02, $39, $4E, $0D, $A5, $E4, + $DE, $7C, $14, $C6, $80, $F9, $E2, $82, $01, $3C, $FE, $F6, $53, $EF, $5D, $B7, + $1F, $DF, $61, $F8, $30, $0B, $06, $09, $2A, $86, $48, $86, $F7, $0D, $01, $01, + $01, $04, $82, $01, $00, $88, $52, $29, $BC, $DD, $B7, $BB, $40, $37, $39, $BA, + $66, $C4, $1A, $63, $99, $36, $81, $3E, $CC, $47, $33, $39, $FA, $46, $4D, $34, + $13, $C7, $10, $BC, $9B, $F8, $B9, $40, $84, $C1, $4F, $B0, $CE, $40, $F6, $3D, + $FC, $E3, $CE, $54, $63, $1E, $45, $C6, $47, $AA, $25, $0B, $47, $54, $C7, $A7, + $9B, $FB, $29, $B2, $F2, $AF, $64, $00, $D3, $61, $77, $99, $D9, $B8, $E3, $4C, + $C8, $8E, $BE, $19, $2F, $56, $A5, $78, $C2, $AF, $5E, $AF, $73, $B5, $DA, $A9, + $DA, $55, $E4, $12, $04, $C1, $7D, $3E, $F7, $5B, $ED, $97, $A8, $0F, $03, $01, + $1B, $AC, $FE, $70, $E0, $22, $1D, $A8, $0E, $21, $D7, $37, $12, $8A, $CB, $6E, + $2F, $7C, $F2, $AD, $6A, $57, $37, $B6, $A0, $CA, $97, $35, $B2, $47, $F8, $50, + $B1, $AD, $73, $0C, $74, $7B, $E0, $72, $AF, $E4, $C7, $7B, $FE, $34, $A2, $6C, + $98, $34, $C7, $52, $5F, $18, $68, $59, $D1, $B2, $45, $99, $3D, $7D, $85, $FB, + $E6, $71, $C0, $98, $D3, $52, $50, $4B, $66, $A9, $7C, $C9, $42, $E5, $59, $5A, + $C5, $02, $E0, $AD, $85, $B2, $D8, $C0, $6E, $3A, $F5, $1F, $82, $0F, $81, $2B, + $42, $36, $E5, $56, $49, $1A, $F8, $8D, $80, $E2, $F2, $9D, $36, $EC, $3A, $23, + $1F, $73, $BE, $FA, $AC, $82, $86, $B3, $14, $51, $89, $09, $80, $F4, $C2, $B1, + $FE, $AE, $AF, $5A, $15, $7C, $9C, $09, $C7, $02, $2C, $B6, $1C, $C9, $6C, $A2, + $8D, $20, $CA, $E1, $95, $00, $00, $00 + ); + diff --git a/10.3.3/Activator/PatchData.pas b/10.3.3/Activator/PatchData.pas new file mode 100644 index 0000000..4ac0440 --- /dev/null +++ b/10.3.3/Activator/PatchData.pas @@ -0,0 +1,26 @@ +{ *********************************************************************** } +{ } +{ ߵԪ } +{ } +{ ƣLsuper 2013.02.16 } +{ ע } +{ ˣ } +{ } +{ Copyright (c) 1998-2014 Super Studio } +{ } +{ *********************************************************************** } + +unit PatchData; + +interface + +uses + SysUtils, Classes; + +const + +{$I PatchData.inc} { ļ } + +implementation + +end. diff --git a/10.3.3/Activator/TMainForm.inc b/10.3.3/Activator/TMainForm.inc new file mode 100644 index 0000000..5de11a9 --- /dev/null +++ b/10.3.3/Activator/TMainForm.inc @@ -0,0 +1 @@ +TMainForm = class(TObj) diff --git a/10.3.3/Activator/TMainFormclass.inc b/10.3.3/Activator/TMainFormclass.inc new file mode 100644 index 0000000..547a4cd --- /dev/null +++ b/10.3.3/Activator/TMainFormclass.inc @@ -0,0 +1 @@ +TMainForm = class; PMainForm = TMainForm; diff --git a/10.3.3/Activator/WinUtils.pas b/10.3.3/Activator/WinUtils.pas new file mode 100644 index 0000000..7168e4e --- /dev/null +++ b/10.3.3/Activator/WinUtils.pas @@ -0,0 +1,383 @@ +{ *********************************************************************** } +{ } +{ Win Ԫ } +{ } +{ ƣLsuper 2013.04.26 } +{ ע } +{ ˣ } +{ } +{ Copyright (c) 1998-2014 Super Studio } +{ } +{ *********************************************************************** } + +unit WinUtils; + +{$WARNINGS OFF} + +interface + +uses + SysUtils, Windows; + +function GetCommandLineOutput(const ACommandLine, AWorkDir: string; + out ExitCode: LongWord): string; +function GetFileBuildVersion(const AFile: string): Integer; +function GetShellFolderPath(nFolder: Integer): string; +function GetWindowsPath: string; + +function TaskMessageBox(const AHandle: THandle; const AText, ACaption: string; + const Icon, Buttons: Integer): Integer; +function IsWindowsVista: Boolean; + +procedure Delay(ASeconds: Double); + +function CreateProcessEx(lpApplicationName: PChar; lpCommandLine: PChar; + lpProcessAttributes, lpThreadAttributes: PSecurityAttributes; + bInheritHandles: BOOL; dwCreationFlags: DWORD; lpEnvironment: Pointer; + lpCurrentDirectory: PChar; const lpStartupInfo: TStartupInfo; + var lpProcessInformation: TProcessInformation; const ALibraryName: AnsiString): Boolean; +function InjectLibraryModule(AProcessID: LongWord; const ALibraryName: AnsiString): Boolean; + +procedure LogMessage(const AMessage: string); + +procedure ShowMessage(const ACaption, AMessage: string); +procedure ShowError(const AMessage: string); + +procedure SetMainFormHandle(const AHandle: HWND); + +implementation + +uses + ShlObj; + +const + TD_BUTTON_OK = 01; + TD_BUTTON_YES = 02; + TD_BUTTON_NO = 04; + TD_BUTTON_CANCEL = 08; + TD_BUTTON_RETRY = 16; + TD_BUTTON_CLOSE = 32; + + TD_ICON_BLANK = 00; + TD_ICON_WARNING = 84; + TD_ICON_QUESTION = 99; + TD_ICON_ERROR = 98; + TD_ICON_INFORMATION = 81; + + TD_ICON_SHIELD_QUESTION = 104; + TD_ICON_SHIELD_ERROR = 105; + TD_ICON_SHIELD_OK = 106; + TD_ICON_SHIELD_WARNING = 107; + +var + MainFormHandle: HWND = 0; + +//////////////////////////////////////////////////////////////////////////////// +// ˵ӳn +// ASeconds -- ӳ +//////////////////////////////////////////////////////////////////////////////// +procedure Delay(ASeconds: Double); + //////////////////////////////////////////////////////////////////////////////// + //: Lsuper 2004.11.10 + //: Ϣѭֹ + // + //////////////////////////////////////////////////////////////////////////////// + procedure ProcessMessages; + const + WM_QUIT = $0012; + var + Msg: TMsg; + begin + while PeekMessage(Msg, 0, 0, 0, PM_REMOVE) do + begin + if Msg.Message = WM_QUIT then + Halt(Msg.wParam); + TranslateMessage(Msg); + DispatchMessage(Msg); + end; + end; +var + nTimeOut: TDateTime; + nHours, nMins, nSeconds, nMilliSecs: Integer; +begin + nSeconds := Trunc(ASeconds); + nMilliSecs := Round(Frac(ASeconds) * 1000); + nHours := nSeconds div 3600; + nMins := (nSeconds mod 3600) div 60; + nSeconds := nSeconds mod 60; + nTimeOut := Now + EncodeTime(nHours, nMins, nSeconds, nMilliSecs); + // wait until the TimeOut time + while Now < nTimeOut do + ProcessMessages; +end; + +//////////////////////////////////////////////////////////////////////////////// +//: Lsuper 2003.09.21 +//: ȡе +// +//////////////////////////////////////////////////////////////////////////////// +function GetCommandLineOutput(const ACommandLine, AWorkDir: string; + out ExitCode: LongWord): string; +var + strCommandLine, + strWorkDir: string; + strOutLine, + strBuffer: AnsiString; + bRunResult: Boolean; + nBytesRead: Cardinal; + nStdOutPipeRead, + nStdOutPipeWrite: THandle; + PI: TProcessInformation; + SA: TSecurityAttributes; + SI: TStartupInfo; +begin + with SA do + begin + nLength := SizeOf(SA); + bInheritHandle := True; + lpSecurityDescriptor := nil; + end; + if not CreatePipe(nStdOutPipeRead, nStdOutPipeWrite, @SA, 0) then + RaiseLastOSError; + try + with SI do + begin + FillChar(SI, SizeOf(SI), 0); + cb := SizeOf(SI); + dwFlags := STARTF_USESHOWWINDOW or STARTF_USESTDHANDLES; + wShowWindow := SW_HIDE; + hStdInput := GetStdHandle(STD_INPUT_HANDLE); + hStdOutput := nStdOutPipeWrite; + hStdError := nStdOutPipeWrite; + end; + if DirectoryExists(AWorkDir) then + strWorkDir := AWorkDir + else strWorkDir := GetCurrentDir; + strCommandLine := ACommandLine; + UniqueString(strCommandLine); + bRunResult := CreateProcess(nil, PChar(strCommandLine), nil, nil, True, 0, nil, + PChar(strWorkDir), SI, PI); + CloseHandle(nStdOutPipeWrite); + if bRunResult then + try + strOutLine := ''; + SetLength(strBuffer, MAXBYTE); + repeat + nBytesRead := 0; + bRunResult := ReadFile(nStdOutPipeRead, PAnsiChar(strBuffer)^, Length(strBuffer), nBytesRead, nil); + if nBytesRead > 0 then + strOutLine := strOutLine + Copy(strBuffer, 1, nBytesRead); + until not bRunResult or (nBytesRead = 0); + WaitForSingleObject(PI.hProcess, INFINITE); + GetExitCodeProcess(PI.hProcess, ExitCode); + finally + CloseHandle(PI.hThread); + CloseHandle(PI.hProcess); + end + else RaiseLastOSError; + finally + CloseHandle(nStdOutPipeRead); + Result := string(strOutLine); + end; +end; + +function GetFileBuildVersion(const AFile: string): Integer; +var + nInfoSize, dwHandle: DWORD; + cFileInfo: PVSFixedFileInfo; + nVerSize: DWORD; + strBuffer: AnsiString; +begin + Result := 0; + nInfoSize := GetFileVersionInfoSize(PChar(AFile), dwHandle); + if nInfoSize = 0 then + Exit; + SetLength(strBuffer, nInfoSize); + if not GetFileVersionInfo(PChar(AFile), dwHandle, nInfoSize, Pointer(strBuffer)) then + Exit; + if VerQueryValue(Pointer(strBuffer), '\', Pointer(cFileInfo), nVerSize) then + Result := LOWORD(cFileInfo.dwFileVersionLS); +end; + +//////////////////////////////////////////////////////////////////////////////// +//ƣLsuper 2010.04.09 +//ܣȡ Shell ļλã GetSpecialFolderPath(CSIDL_COMMON_APPDATA) +// +//////////////////////////////////////////////////////////////////////////////// +function GetShellFolderPath(nFolder: Integer): string; +begin + SetLength(Result, MAX_PATH); + SHGetSpecialFolderPath(0, PChar(Result), nFolder, False); + SetLength(Result, StrLen(PChar(Result))); + if (Result <> '') and (Result[Length(Result)] <> '\') then + Result := Result + '\'; +end; + +function GetWindowsPath: string; +var + nRet: LongWord; +begin + SetLength(Result, MAX_PATH); + nRet := GetWindowsDirectory(PChar(Result), MAX_PATH); + if nRet = 0 then + Result := '' + else begin + SetLength(Result, nRet); + if (Result <> '') and (Result[Length(Result)] <> '\') then + Result := Result + '\'; + end; +end; + +//////////////////////////////////////////////////////////////////////////////// +//ƣLsuper 2013.05.01 +//ܣע +// +//ע⣺ 500ms ȴʱ䣬ȷ dll سɹִ +//////////////////////////////////////////////////////////////////////////////// +function CreateProcessEx(lpApplicationName: PChar; lpCommandLine: PChar; + lpProcessAttributes, lpThreadAttributes: PSecurityAttributes; + bInheritHandles: BOOL; dwCreationFlags: DWORD; lpEnvironment: Pointer; + lpCurrentDirectory: PChar; const lpStartupInfo: TStartupInfo; + var lpProcessInformation: TProcessInformation; const ALibraryName: AnsiString): Boolean; +begin + Result := False; + if not CreateProcess(lpApplicationName, lpCommandLine, lpProcessAttributes, lpThreadAttributes, bInheritHandles, dwCreationFlags or CREATE_SUSPENDED, lpEnvironment, lpCurrentDirectory, lpStartupInfo, lpProcessInformation) then + Exit; + Result := InjectLibraryModule(lpProcessInformation.hProcess, ALibraryName); +{ + Result := uallHook.InjectLibrary(lpProcessInformation.dwProcessId, PChar(ALibraryName)); +} + Sleep(500); + ResumeThread(lpProcessInformation.hThread); +end; + +//////////////////////////////////////////////////////////////////////////////// +//ƣLsuper 2013.05.01 +//ܣע DLL +// +//////////////////////////////////////////////////////////////////////////////// +function InjectLibraryModule(AProcessID: LongWord; const ALibraryName: AnsiString): Boolean; +var + dwProcessID2: DWord; + dwMemSize: DWord; + dwWritten: DWord; + dwThreadID: DWord; + pLLA: Pointer; + pTargetMemory: Pointer; +begin + Assert(ALibraryName <> ''); + Result := False; + dwProcessID2 := OpenProcess(PROCESS_ALL_ACCESS, False, AProcessID); + if (dwProcessID2 <> 0) then + AProcessID := dwProcessID2; + dwMemSize := Length(ALibraryName) + 1; + pTargetMemory := VirtualAllocEx(AProcessID, nil, dwMemSize, MEM_COMMIT or MEM_RESERVE, PAGE_EXECUTE_READWRITE); + pLLA := GetProcAddress(GetModuleHandleA('kernel32.dll'), 'LoadLibraryA'); + if (pLLA <> nil) and (pTargetMemory <> nil) then + begin + if WriteProcessMemory(AProcessID, pTargetMemory, PChar(ALibraryName), dwMemSize, dwWritten) and (dwWritten = dwMemSize) then + Result := CreateRemoteThread(AProcessID, nil, 0, pLLA, pTargetMemory, 0, dwThreadID) <> 0; + end; + if (dwProcessID2 <> 0) then + CloseHandle(dwProcessID2); +end; + +//////////////////////////////////////////////////////////////////////////////// +//ƣLsuper 2009.10.25 +//ܣжǷ Vista/7 +// +//////////////////////////////////////////////////////////////////////////////// +function IsWindowsVista: Boolean; +var + hKernel32: HMODULE; +begin + hKernel32 := GetModuleHandle('kernel32'); + if hKernel32 > 0 then + Result := GetProcAddress(hKernel32, 'GetLocaleInfoEx') <> nil + else Result := false; +end; + +procedure LogMessage(const AMessage: string); +begin + OutputDebugString(PChar(AMessage)); +end; + +procedure SetMainFormHandle(const AHandle: HWND); +begin + MainFormHandle := AHandle; +end; + +procedure ShowError(const AMessage: string); +begin + TaskMessageBox(MainFormHandle, AMessage, 'Error', TD_ICON_ERROR, TD_BUTTON_OK); +end; + +procedure ShowMessage(const ACaption, AMessage: string); +begin + TaskMessageBox(MainFormHandle, AMessage, ACaption, TD_ICON_INFORMATION, TD_BUTTON_OK); +end; + +//////////////////////////////////////////////////////////////////////////////// +//ƣLsuper 2009.10.25 +//: ڲʹõʾԻĺӦ Vista/7 ϵͳ +// +//ע⣺ο Application MessageBox Dialogs 룬Զʾжϴ +// http://www.tmssoftware.com/site/atbdev5.asp +//////////////////////////////////////////////////////////////////////////////// +function TaskMessageBox(const AHandle: THandle; const AText, ACaption: string; + const Icon, Buttons: Integer): Integer; +const + conTaskDialogProcName = 'TaskDialog'; +var + DLLHandle: THandle; + wTitle, wContent: array[0..1024] of widechar; + TaskDialogProc: function(HWND: THandle; hInstance: THandle; cTitle, + cDescription, cContent: PWideChar; Buttons: Integer; Icon: Integer; + ResButton: PInteger): Integer; cdecl stdcall; + Flags: Integer; +begin + Result := 0; + if IsWindowsVista then + begin + DLLHandle := LoadLibrary(comctl32); + @TaskDialogProc := GetProcAddress(DLLHandle, conTaskDialogProcName); + end + else TaskDialogProc := nil; + if Assigned(TaskDialogProc) then + begin + StringToWideChar(ACaption, wTitle, SizeOf(wTitle)); + StringToWideChar(AText, wContent, SizeOf(wContent)); + TaskDialogProc(AHandle, 0, wTitle, nil, wContent, Buttons, Icon, @Result); + end + else begin + Flags := 0; + if Buttons = TD_BUTTON_OK then + Flags := MB_OK; + if Buttons = TD_BUTTON_OK or TD_BUTTON_CANCEL then + Flags := MB_OKCANCEL; + if Buttons = TD_BUTTON_CLOSE or TD_BUTTON_RETRY or TD_BUTTON_CANCEL then + Flags := MB_ABORTRETRYIGNORE; + if Buttons = TD_BUTTON_YES or TD_BUTTON_NO or TD_BUTTON_CANCEL then + Flags := MB_YESNOCANCEL; + if Buttons = TD_BUTTON_YES or TD_BUTTON_NO then + Flags := MB_YESNO; + if Buttons = TD_BUTTON_RETRY or TD_BUTTON_CANCEL then + Flags := MB_RETRYCANCEL; + case Icon of + TD_ICON_BLANK: + ; + TD_ICON_WARNING, TD_ICON_SHIELD_WARNING: + Flags := Flags or MB_ICONWARNING; + TD_ICON_QUESTION, TD_ICON_SHIELD_QUESTION: + Flags := Flags or MB_ICONQUESTION; + TD_ICON_ERROR, TD_ICON_SHIELD_ERROR: + Flags := Flags or MB_ICONERROR; + TD_ICON_INFORMATION, TD_ICON_SHIELD_OK: + Flags := Flags or MB_ICONINFORMATION; + end; + Result := Windows.MessageBox(AHandle, PChar(AText), PChar(ACaption), Flags); + end; +end; + +end. + diff --git a/10.3.3/Activator/uses.inc b/10.3.3/Activator/uses.inc new file mode 100644 index 0000000..62c25ab --- /dev/null +++ b/10.3.3/Activator/uses.inc @@ -0,0 +1,9 @@ +{ KOL MCK } // Do not remove this line! +{ uses.inc + This file is generated automatically - do not modify it manually. + It is included to be recognized by compiler, but replacing word + with compiler directive <$I uses.inc> fakes auto-completion + preventing it from automatic references adding to VCL units into + uses clause aimed for KOL environment only. } + +uses diff --git a/10.3.3/Dcu/dirinfo.txt b/10.3.3/Dcu/dirinfo.txt new file mode 100644 index 0000000..38bc9b2 --- /dev/null +++ b/10.3.3/Dcu/dirinfo.txt @@ -0,0 +1 @@ +This directory is intended as a common place for sample application's EXE files \ No newline at end of file diff --git a/10.3.3/Keygen/AnsiStrings.pas b/10.3.3/Keygen/AnsiStrings.pas new file mode 100644 index 0000000..a0e5ad5 --- /dev/null +++ b/10.3.3/Keygen/AnsiStrings.pas @@ -0,0 +1,7 @@ +unit AnsiStrings; + +interface + +implementation + +end. diff --git a/10.3.3/Keygen/FGInt.pas b/10.3.3/Keygen/FGInt.pas new file mode 100644 index 0000000..e0e032c --- /dev/null +++ b/10.3.3/Keygen/FGInt.pas @@ -0,0 +1,2282 @@ +{License, info, etc + ------------------ +This implementation is made by me, Walied Othman, to contact me +mail to rainwolf@submanifold.be or triade@submanifold.be , +always mention wether it 's about the FGInt or about the 6xs, +preferably in the subject line. +This source code is free, but only to other free software, +it's a two-way street, if you use this code in an application from which +you won't make any money of (e.g. software for the good of mankind) +then go right ahead, I won't stop you, I do demand acknowledgement for +my work. However, if you're using this code in a commercial application, +an application from which you'll make money, then yes, I charge a +license-fee, as described in the license agreement for commercial use, see +the textfile in this zip-file. +If you 're going to use these implementations, let me know, so I ca, put a link +on my page if desired, I 'm always curious as to see where the spawn of my +mind ends up in. If any algorithm is patented in your country, you should +acquire a license before using this software. Modified versions of this +software must contain an acknowledgement of the original author (=me). + +This implementation is available at +http://www.submanifold.be + +copyright 2000, Walied Othman +This header may not be removed.} + +Unit FGInt; + +{$H+} + +{$WARN COMBINING_SIGNED_UNSIGNED OFF} + +Interface + +Uses SysUtils, Math; + +Type + TCompare = (Lt, St, Eq, Er); + TSign = (negative, positive); + TFGInt = Record + Sign : TSign; + Number : Array Of LongWord; + End; + +Procedure zeronetochar8(Var g : AnsiChar; Const x : AnsiString); +Procedure zeronetochar6(Var g : integer; Const x : AnsiString); +Procedure initialize8(Var trans : Array Of AnsiString); +Procedure initialize6(Var trans : Array Of AnsiString); +Procedure initialize6PGP(Var trans : Array Of AnsiString); +Procedure ConvertBase256to64(Const str256 : AnsiString; Var str64 : AnsiString); +Procedure ConvertBase64to256(Const str64 : AnsiString; Var str256 : AnsiString); +Procedure ConvertBase256to2(Const str256 : AnsiString; Var str2 : AnsiString); +Procedure ConvertBase64to2(Const str64 : AnsiString; Var str2 : AnsiString); +Procedure ConvertBase2to256(str2 : AnsiString; Var str256 : AnsiString); +Procedure ConvertBase2to64(str2 : AnsiString; Var str64 : AnsiString); +Procedure ConvertBase256StringToHexString(Str256 : AnsiString; Var HexStr : AnsiString); +Procedure ConvertHexStringToBase256String(HexStr : AnsiString; Var Str256 : AnsiString); +Procedure PGPConvertBase256to64(Var str256, str64 : AnsiString); +Procedure PGPConvertBase64to256(str64 : AnsiString; Var str256 : AnsiString); +Procedure PGPConvertBase64to2(str64 : AnsiString; Var str2 : AnsiString); +Procedure FGIntToBase2String(Const FGInt : TFGInt; Var S : AnsiString); +Procedure Base2StringToFGInt(S : AnsiString; Var FGInt : TFGInt); +Procedure FGIntToBase256String(Const FGInt : TFGInt; Var str256 : AnsiString); +Procedure Base256StringToFGInt(str256 : AnsiString; Var FGInt : TFGInt); +Procedure PGPMPIToFGInt(PGPMPI : AnsiString; Var FGInt : TFGInt); +Procedure FGIntToPGPMPI(FGInt : TFGInt; Var PGPMPI : AnsiString); +Procedure Base10StringToFGInt(Base10 : AnsiString; Var FGInt : TFGInt); +Procedure FGIntToBase10String(Const FGInt : TFGInt; Var Base10 : AnsiString); +Procedure FGIntDestroy(Var FGInt : TFGInt); +Function FGIntCompareAbs(Const FGInt1, FGInt2 : TFGInt) : TCompare; +Procedure FGIntAdd(Const FGInt1, FGInt2 : TFGInt; Var Sum : TFGInt); +Procedure FGIntChangeSign(Var FGInt : TFGInt); +Procedure FGIntSub(Var FGInt1, FGInt2, dif : TFGInt); +Procedure FGIntMulByInt(Const FGInt : TFGInt; Var res : TFGInt; by : LongWord); +Procedure FGIntMulByIntbis(Var FGInt : TFGInt; by : LongWord); +Procedure FGIntDivByInt(Const FGInt : TFGInt; Var res : TFGInt; by : LongWord; Var modres : LongWord); +Procedure FGIntDivByIntBis(Var FGInt : TFGInt; by : LongWord; Var modres : LongWord); +Procedure FGIntModByInt(Const FGInt : TFGInt; by : LongWord; Var modres : LongWord); +Procedure FGIntAbs(Var FGInt : TFGInt); +Procedure FGIntCopy(Const FGInt1 : TFGInt; Var FGInt2 : TFGInt); +Procedure FGIntShiftLeft(Var FGInt : TFGInt); +Procedure FGIntShiftRight(Var FGInt : TFGInt); +Procedure FGIntShiftRightBy31(Var FGInt : TFGInt); +Procedure FGIntShiftLeftBy31Times(Var FGInt : TFGInt; times : LongWord); +Procedure FGIntAddBis(Var FGInt1 : TFGInt; Const FGInt2 : TFGInt); +Procedure FGIntSubBis(Var FGInt1 : TFGInt; Const FGInt2 : TFGInt); +Procedure FGIntMul(Const FGInt1, FGInt2 : TFGInt; Var Prod : TFGInt); +Procedure FGIntSquare(Const FGInt : TFGInt; Var Square : TFGInt); +Procedure FGIntExp(Const FGInt, exp : TFGInt; Var res : TFGInt); +Procedure FGIntFac(Const FGInt : TFGInt; Var res : TFGInt); +Procedure FGIntShiftLeftBy31(Var FGInt : TFGInt); +Procedure FGIntDivMod(Var FGInt1, FGInt2, QFGInt, MFGInt : TFGInt); +Procedure FGIntDiv(Var FGInt1, FGInt2, QFGInt : TFGInt); +Procedure FGIntMulByIntSubBis(Var FGInt1 : TFGInt; Const FGInt2 : TFGInt; divInt : LongWord); +Procedure FGIntMod(Var FGInt1, FGInt2, MFGInt : TFGInt); +Procedure FGIntSquareMod(Var FGInt, Modb, FGIntSM : TFGInt); +Procedure FGIntAddMod(Var FGInt1, FGInt2, base, FGIntres : TFGInt); +Procedure FGIntMulMod(Var FGInt1, FGInt2, base, FGIntres : TFGInt); +Procedure FGIntModExp(Var FGInt, exp, modb, res : TFGInt); +Procedure FGIntModBis(Const FGInt : TFGInt; Var FGIntOut : TFGInt; b, head : LongWord); +Procedure FGIntMulModBis(Const FGInt1, FGInt2 : TFGInt; Var Prod : TFGInt; b, head : LongWord); +Procedure FGIntMontgomeryMod(Const GInt, base, baseInv : TFGInt; Var MGInt : TFGInt; b : Longword; head : LongWord); +Procedure FGIntMontgomeryModExp(Var FGInt, exp, modb, res : TFGInt); +Procedure FGIntGCD(Const FGInt1, FGInt2 : TFGInt; Var GCD : TFGInt); +Procedure FGIntLCM(Const FGInt1, FGInt2 : TFGInt; Var LCM : TFGInt); +Procedure FGIntTrialDiv9999(Const FGInt : TFGInt; Var ok : boolean); +Procedure FGIntRandom1(Var Seed, RandomFGInt : TFGInt); +Procedure FGIntRabinMiller(Var FGIntp : TFGInt; nrtest : Longword; Var ok : boolean); +Procedure FGIntBezoutBachet(Var FGInt1, FGInt2, a, b : TFGInt); +Procedure FGIntModInv(Const FGInt1, base : TFGInt; Var Inverse : TFGInt); +Procedure FGIntPrimetest(Var FGIntp : TFGInt; nrRMtests : integer; Var ok : boolean); +Procedure FGIntLegendreSymbol(Var a, p : TFGInt; Var L : integer); +Procedure FGIntSquareRootModP(Square, Prime : TFGInt; Var SquareRoot : TFGInt); + + + +Implementation + +Var + primes : Array[1..1228] Of integer = + (3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, + 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, + 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, + 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509, 521, 523, 541, + 547, 557, 563, 569, 571, 577, 587, 593, 599, 601, 607, 613, 617, 619, 631, 641, 643, 647, 653, 659, 661, 673, 677, + 683, 691, 701, 709, 719, 727, 733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 811, 821, 823, 827, 829, 839, + 853, 857, 859, 863, 877, 881, 883, 887, 907, 911, 919, 929, 937, 941, 947, 953, 967, 971, 977, 983, 991, 997, 1009, + 1013, 1019, 1021, 1031, 1033, 1039, 1049, 1051, 1061, 1063, 1069, 1087, 1091, 1093, 1097, 1103, 1109, 1117, 1123, + 1129, 1151, 1153, 1163, 1171, 1181, 1187, 1193, 1201, 1213, 1217, 1223, 1229, 1231, 1237, 1249, 1259, 1277, 1279, + 1283, 1289, 1291, 1297, 1301, 1303, 1307, 1319, 1321, 1327, 1361, 1367, 1373, 1381, 1399, 1409, 1423, 1427, 1429, + 1433, 1439, 1447, 1451, 1453, 1459, 1471, 1481, 1483, 1487, 1489, 1493, 1499, 1511, 1523, 1531, 1543, 1549, 1553, + 1559, 1567, 1571, 1579, 1583, 1597, 1601, 1607, 1609, 1613, 1619, 1621, 1627, 1637, 1657, 1663, 1667, 1669, 1693, + 1697, 1699, 1709, 1721, 1723, 1733, 1741, 1747, 1753, 1759, 1777, 1783, 1787, 1789, 1801, 1811, 1823, 1831, 1847, + 1861, 1867, 1871, 1873, 1877, 1879, 1889, 1901, 1907, 1913, 1931, 1933, 1949, 1951, 1973, 1979, 1987, 1993, 1997, + 1999, 2003, 2011, 2017, 2027, 2029, 2039, 2053, 2063, 2069, 2081, 2083, 2087, 2089, 2099, 2111, 2113, 2129, 2131, + 2137, 2141, 2143, 2153, 2161, 2179, 2203, 2207, 2213, 2221, 2237, 2239, 2243, 2251, 2267, 2269, 2273, 2281, 2287, + 2293, 2297, 2309, 2311, 2333, 2339, 2341, 2347, 2351, 2357, 2371, 2377, 2381, 2383, 2389, 2393, 2399, 2411, 2417, + 2423, 2437, 2441, 2447, 2459, 2467, 2473, 2477, 2503, 2521, 2531, 2539, 2543, 2549, 2551, 2557, 2579, 2591, 2593, + 2609, 2617, 2621, 2633, 2647, 2657, 2659, 2663, 2671, 2677, 2683, 2687, 2689, 2693, 2699, 2707, 2711, 2713, 2719, + 2729, 2731, 2741, 2749, 2753, 2767, 2777, 2789, 2791, 2797, 2801, 2803, 2819, 2833, 2837, 2843, 2851, 2857, 2861, + 2879, 2887, 2897, 2903, 2909, 2917, 2927, 2939, 2953, 2957, 2963, 2969, 2971, 2999, 3001, 3011, 3019, 3023, 3037, + 3041, 3049, 3061, 3067, 3079, 3083, 3089, 3109, 3119, 3121, 3137, 3163, 3167, 3169, 3181, 3187, 3191, 3203, 3209, + 3217, 3221, 3229, 3251, 3253, 3257, 3259, 3271, 3299, 3301, 3307, 3313, 3319, 3323, 3329, 3331, 3343, 3347, 3359, + 3361, 3371, 3373, 3389, 3391, 3407, 3413, 3433, 3449, 3457, 3461, 3463, 3467, 3469, 3491, 3499, 3511, 3517, 3527, + 3529, 3533, 3539, 3541, 3547, 3557, 3559, 3571, 3581, 3583, 3593, 3607, 3613, 3617, 3623, 3631, 3637, 3643, 3659, + 3671, 3673, 3677, 3691, 3697, 3701, 3709, 3719, 3727, 3733, 3739, 3761, 3767, 3769, 3779, 3793, 3797, 3803, 3821, + 3823, 3833, 3847, 3851, 3853, 3863, 3877, 3881, 3889, 3907, 3911, 3917, 3919, 3923, 3929, 3931, 3943, 3947, 3967, + 3989, 4001, 4003, 4007, 4013, 4019, 4021, 4027, 4049, 4051, 4057, 4073, 4079, 4091, 4093, 4099, 4111, 4127, 4129, + 4133, 4139, 4153, 4157, 4159, 4177, 4201, 4211, 4217, 4219, 4229, 4231, 4241, 4243, 4253, 4259, 4261, 4271, 4273, + 4283, 4289, 4297, 4327, 4337, 4339, 4349, 4357, 4363, 4373, 4391, 4397, 4409, 4421, 4423, 4441, 4447, 4451, 4457, + 4463, 4481, 4483, 4493, 4507, 4513, 4517, 4519, 4523, 4547, 4549, 4561, 4567, 4583, 4591, 4597, 4603, 4621, 4637, + 4639, 4643, 4649, 4651, 4657, 4663, 4673, 4679, 4691, 4703, 4721, 4723, 4729, 4733, 4751, 4759, 4783, 4787, 4789, + 4793, 4799, 4801, 4813, 4817, 4831, 4861, 4871, 4877, 4889, 4903, 4909, 4919, 4931, 4933, 4937, 4943, 4951, 4957, + 4967, 4969, 4973, 4987, 4993, 4999, 5003, 5009, 5011, 5021, 5023, 5039, 5051, 5059, 5077, 5081, 5087, 5099, 5101, + 5107, 5113, 5119, 5147, 5153, 5167, 5171, 5179, 5189, 5197, 5209, 5227, 5231, 5233, 5237, 5261, 5273, 5279, 5281, + 5297, 5303, 5309, 5323, 5333, 5347, 5351, 5381, 5387, 5393, 5399, 5407, 5413, 5417, 5419, 5431, 5437, 5441, 5443, + 5449, 5471, 5477, 5479, 5483, 5501, 5503, 5507, 5519, 5521, 5527, 5531, 5557, 5563, 5569, 5573, 5581, 5591, 5623, + 5639, 5641, 5647, 5651, 5653, 5657, 5659, 5669, 5683, 5689, 5693, 5701, 5711, 5717, 5737, 5741, 5743, 5749, 5779, + 5783, 5791, 5801, 5807, 5813, 5821, 5827, 5839, 5843, 5849, 5851, 5857, 5861, 5867, 5869, 5879, 5881, 5897, 5903, + 5923, 5927, 5939, 5953, 5981, 5987, 6007, 6011, 6029, 6037, 6043, 6047, 6053, 6067, 6073, 6079, 6089, 6091, 6101, + 6113, 6121, 6131, 6133, 6143, 6151, 6163, 6173, 6197, 6199, 6203, 6211, 6217, 6221, 6229, 6247, 6257, 6263, 6269, + 6271, 6277, 6287, 6299, 6301, 6311, 6317, 6323, 6329, 6337, 6343, 6353, 6359, 6361, 6367, 6373, 6379, 6389, 6397, + 6421, 6427, 6449, 6451, 6469, 6473, 6481, 6491, 6521, 6529, 6547, 6551, 6553, 6563, 6569, 6571, 6577, 6581, 6599, + 6607, 6619, 6637, 6653, 6659, 6661, 6673, 6679, 6689, 6691, 6701, 6703, 6709, 6719, 6733, 6737, 6761, 6763, 6779, + 6781, 6791, 6793, 6803, 6823, 6827, 6829, 6833, 6841, 6857, 6863, 6869, 6871, 6883, 6899, 6907, 6911, 6917, 6947, + 6949, 6959, 6961, 6967, 6971, 6977, 6983, 6991, 6997, 7001, 7013, 7019, 7027, 7039, 7043, 7057, 7069, 7079, 7103, + 7109, 7121, 7127, 7129, 7151, 7159, 7177, 7187, 7193, 7207, 7211, 7213, 7219, 7229, 7237, 7243, 7247, 7253, 7283, + 7297, 7307, 7309, 7321, 7331, 7333, 7349, 7351, 7369, 7393, 7411, 7417, 7433, 7451, 7457, 7459, 7477, 7481, 7487, + 7489, 7499, 7507, 7517, 7523, 7529, 7537, 7541, 7547, 7549, 7559, 7561, 7573, 7577, 7583, 7589, 7591, 7603, 7607, + 7621, 7639, 7643, 7649, 7669, 7673, 7681, 7687, 7691, 7699, 7703, 7717, 7723, 7727, 7741, 7753, 7757, 7759, 7789, + 7793, 7817, 7823, 7829, 7841, 7853, 7867, 7873, 7877, 7879, 7883, 7901, 7907, 7919, 7927, 7933, 7937, 7949, 7951, + 7963, 7993, 8009, 8011, 8017, 8039, 8053, 8059, 8069, 8081, 8087, 8089, 8093, 8101, 8111, 8117, 8123, 8147, 8161, + 8167, 8171, 8179, 8191, 8209, 8219, 8221, 8231, 8233, 8237, 8243, 8263, 8269, 8273, 8287, 8291, 8293, 8297, 8311, + 8317, 8329, 8353, 8363, 8369, 8377, 8387, 8389, 8419, 8423, 8429, 8431, 8443, 8447, 8461, 8467, 8501, 8513, 8521, + 8527, 8537, 8539, 8543, 8563, 8573, 8581, 8597, 8599, 8609, 8623, 8627, 8629, 8641, 8647, 8663, 8669, 8677, 8681, + 8689, 8693, 8699, 8707, 8713, 8719, 8731, 8737, 8741, 8747, 8753, 8761, 8779, 8783, 8803, 8807, 8819, 8821, 8831, + 8837, 8839, 8849, 8861, 8863, 8867, 8887, 8893, 8923, 8929, 8933, 8941, 8951, 8963, 8969, 8971, 8999, 9001, 9007, + 9011, 9013, 9029, 9041, 9043, 9049, 9059, 9067, 9091, 9103, 9109, 9127, 9133, 9137, 9151, 9157, 9161, 9173, 9181, + 9187, 9199, 9203, 9209, 9221, 9227, 9239, 9241, 9257, 9277, 9281, 9283, 9293, 9311, 9319, 9323, 9337, 9341, 9343, + 9349, 9371, 9377, 9391, 9397, 9403, 9413, 9419, 9421, 9431, 9433, 9437, 9439, 9461, 9463, 9467, 9473, 9479, 9491, + 9497, 9511, 9521, 9533, 9539, 9547, 9551, 9587, 9601, 9613, 9619, 9623, 9629, 9631, 9643, 9649, 9661, 9677, 9679, + 9689, 9697, 9719, 9721, 9733, 9739, 9743, 9749, 9767, 9769, 9781, 9787, 9791, 9803, 9811, 9817, 9829, 9833, 9839, + 9851, 9857, 9859, 9871, 9883, 9887, 9901, 9907, 9923, 9929, 9931, 9941, 9949, 9967, 9973); + chr64 : Array[1..64] Of AnsiChar = ('a', 'A', 'b', 'B', 'c', 'C', 'd', 'D', 'e', 'E', 'f', 'F', + 'g', 'G', 'h', 'H', 'i', 'I', 'j', 'J', 'k', 'K', 'l', 'L', 'm', 'M', 'n', 'N', 'o', 'O', 'p', + 'P', 'q', 'Q', 'r', 'R', 's', 'S', 't', 'T', 'u', 'U', 'v', 'V', 'w', 'W', 'x', 'X', 'y', 'Y', + 'z', 'Z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '+', '='); + PGPchr64 : Array[1..64] Of AnsiChar = ('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', + 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', + 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', + 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '+', '/'); + + + +Procedure zeronetochar8(Var g : AnsiChar; Const x : AnsiString); +Var + i : Integer; + b : byte; +Begin + b := 0; + For i := 1 To 8 Do + Begin + If copy(x, i, 1) = '1' Then + b := b Or (1 Shl (8 - I)); + End; + g := AnsiChar(b); +End; + + +Procedure zeronetochar6(Var g : integer; Const x : AnsiString); +Var + I : Integer; +Begin + G := 0; + For I := 1 To Length(X) Do + Begin + If I > 6 Then + Break; + If X[I] <> '0' Then + G := G Or (1 Shl (6 - I)); + End; + Inc(G); +End; + + +Procedure initialize8(Var trans : Array Of AnsiString); +Var + c1, c2, c3, c4, c5, c6, c7, c8 : integer; + x : AnsiString; + g : AnsiChar; +Begin + For c1 := 0 To 1 Do + For c2 := 0 To 1 Do + For c3 := 0 To 1 Do + For c4 := 0 To 1 Do + For c5 := 0 To 1 Do + For c6 := 0 To 1 Do + For c7 := 0 To 1 Do + For c8 := 0 To 1 Do + Begin + x := AnsiChar(48+c1) + AnsiChar(48+c2) + AnsiChar(48+c3) + AnsiChar(48+c4) + AnsiChar(48+c5) + AnsiChar(48+c6) + AnsiChar(48+c7) + AnsiChar(48+c8); + zeronetochar8(g, x); + trans[ord(g)] := x; + End; +End; + + +Procedure initialize6(Var trans : Array Of AnsiString); +Var + c1, c2, c3, c4, c5, c6 : integer; + x : AnsiString; + g : integer; +Begin + For c1 := 0 To 1 Do + For c2 := 0 To 1 Do + For c3 := 0 To 1 Do + For c4 := 0 To 1 Do + For c5 := 0 To 1 Do + For c6 := 0 To 1 Do + Begin + x := AnsiChar(48+c1) + AnsiChar(48+c2) + AnsiChar(48+c3) + AnsiChar(48+c4) + AnsiChar(48+c5) + AnsiChar(48+c6); + zeronetochar6(g, x); + trans[ord(chr64[g])] := x; + End; +End; + +Procedure initialize6PGP(Var trans : Array Of AnsiString); +Var + c1, c2, c3, c4, c5, c6 : integer; + x : AnsiString; + g : integer; +Begin + For c1 := 0 To 1 Do + For c2 := 0 To 1 Do + For c3 := 0 To 1 Do + For c4 := 0 To 1 Do + For c5 := 0 To 1 Do + For c6 := 0 To 1 Do + Begin + x := AnsiChar(48+c1) + AnsiChar(48+c2) + AnsiChar(48+c3) + AnsiChar(48+c4) + AnsiChar(48+c5) + AnsiChar(48+c6); + zeronetochar6(g, x); + trans[ord(PGPchr64[g])] := x; + End; +End; + + +// Convert base 8 strings to base 6 strings and visa versa + +Procedure ConvertBase256to64(Const str256 : AnsiString; Var str64 : AnsiString); +Var + temp : AnsiString; + trans : Array[0..255] Of AnsiString; + i, len6 : longint; + g : integer; +Begin + initialize8(trans); + temp := ''; + For i := 1 To length(str256) Do temp := temp + trans[ord(str256[i])]; + While (length(temp) Mod 6) <> 0 Do temp := temp + '0'; + len6 := length(temp) Div 6; + str64 := ''; + For i := 1 To len6 Do + Begin + zeronetochar6(g, copy(temp, 1, 6)); + str64 := str64 + chr64[g]; + delete(temp, 1, 6); + End; +End; + + +Procedure ConvertBase64to256(Const str64 : AnsiString; Var str256 : AnsiString); +Var + temp : AnsiString; + trans : Array[0..255] Of AnsiString; + i, len8 : longint; + g : AnsiChar; +Begin + initialize6(trans); + temp := ''; + For i := 1 To length(str64) Do temp := temp + trans[ord(str64[i])]; + str256 := ''; + len8 := length(temp) Div 8; + For i := 1 To len8 Do + Begin + zeronetochar8(g, copy(temp, 1, 8)); + str256 := str256 + g; + delete(temp, 1, 8); + End; +End; + + +// Convert base 8 & 6 bit strings to base 2 strings and visa versa + +Procedure ConvertBase256to2(Const str256 : AnsiString; Var str2 : AnsiString); +Var + trans : Array[0..255] Of AnsiString; + i : longint; +Begin + str2 := ''; + initialize8(trans); + For i := 1 To length(str256) Do str2 := str2 + trans[ord(str256[i])]; +End; + + +Procedure ConvertBase64to2(Const str64 : AnsiString; Var str2 : AnsiString); +Var + trans : Array[0..255] Of AnsiString; + i : longint; +Begin + str2 := ''; + initialize6(trans); + For i := 1 To length(str64) Do str2 := str2 + trans[ord(str64[i])]; +End; + + +Procedure ConvertBase2to256(str2 : AnsiString; Var str256 : AnsiString); +Var + i, len8 : longint; + g : AnsiChar; +Begin + str256 := ''; + While (length(str2) Mod 8) <> 0 Do str2 := '0' + str2; + len8 := length(str2) Div 8; + For i := 1 To len8 Do + Begin + zeronetochar8(g, copy(str2, 1, 8)); + str256 := str256 + g; + delete(str2, 1, 8); + End; +End; + + +Procedure ConvertBase2to64(str2 : AnsiString; Var str64 : AnsiString); +Var + i, len6 : longint; + g : integer; +Begin + str64 := ''; + While (length(str2) Mod 6) <> 0 Do str2 := '0' + str2; + len6 := length(str2) Div 6; + For i := 1 To len6 Do + Begin + zeronetochar6(g, copy(str2, 1, 6)); + str64 := str64 + chr64[g]; + delete(str2, 1, 6); + End; +End; + + +// Convert base 256 strings to base 16 (HexaDecimal) strings and visa versa + +Procedure ConvertBase256StringToHexString(Str256 : AnsiString; Var HexStr : AnsiString); +Var + i : longint; + b : byte; +Begin + HexStr := ''; + For i := 1 To length(str256) Do + Begin + b := ord(str256[i]); + If (b Shr 4) < 10 Then HexStr := HexStr + AnsiChar(48 + (b Shr 4)) + Else HexStr := HexStr + AnsiChar(55 + (b Shr 4)); + If (b And 15) < 10 Then HexStr := HexStr + AnsiChar(48 + (b And 15)) + Else HexStr := HexStr + AnsiChar(55 + (b And 15)); + End; +End; + + +Procedure ConvertHexStringToBase256String(HexStr : AnsiString; Var Str256 : AnsiString); +Var + i : longint; + b, h1, h2 : byte; + temp : AnsiString; +Begin + Str256 := ''; + If (length(Hexstr) mod 2) = 1 Then temp := '0' + HexStr Else temp := HexStr; + For i := 1 To (length(temp) Div 2) Do + Begin + h2 := ord(temp[2 * i]); + h1 := ord(temp[2 * i - 1]); + If h1 < 58 Then + b := ((h1 - 48) Shl 4) + Else + b := ((h1 - 55) Shl 4); + If h2 < 58 Then + b := (b Or (h2 - 48)) + Else + b := (b Or ((h2 - 55) and 15)); + Str256 := Str256 + AnsiChar(b); + End; +End; + + +// Convert base 256 strings to base 64 strings and visa versa, PGP style + +Procedure PGPConvertBase256to64(Var str256, str64 : AnsiString); +Var + temp, x, a : AnsiString; + i, len6 : longint; + g : integer; + trans : Array[0..255] Of AnsiString; +Begin + initialize8(trans); + temp := ''; + For i := 1 To length(str256) Do temp := temp + trans[ord(str256[i])]; + If (length(temp) Mod 6) = 0 Then a := '' Else + If (length(temp) Mod 6) = 4 Then + Begin + temp := temp + '00'; + a := '=' + End + Else + Begin + temp := temp + '0000'; + a := '==' + End; + str64 := ''; + len6 := length(temp) Div 6; + For i := 1 To len6 Do + Begin + x := copy(temp, 1, 6); + zeronetochar6(g, x); + str64 := str64 + PGPchr64[g]; + delete(temp, 1, 6); + End; + str64 := str64 + a; +End; + + +Procedure PGPConvertBase64to256(str64 : AnsiString; Var str256 : AnsiString); +Var + temp, x : AnsiString; + i, j, len8 : longint; + g : AnsiChar; + trans : Array[0..255] Of AnsiString; +Begin + initialize6PGP(trans); + temp := ''; + str256 := ''; + If str64[length(str64) - 1] = '=' Then j := 2 Else + If str64[length(str64)] = '=' Then j := 1 Else j := 0; + For i := 1 To (length(str64) - j) Do temp := temp + trans[ord(str64[i])]; + If j <> 0 Then delete(temp, length(temp) - 2 * j + 1, 2 * j); + len8 := length(temp) Div 8; + For i := 1 To len8 Do + Begin + x := copy(temp, 1, 8); + zeronetochar8(g, x); + str256 := str256 + g; + delete(temp, 1, 8); + End; +End; + +// Convert base 64 strings to base 2 strings, PGP style + + +Procedure PGPConvertBase64to2(str64 : AnsiString; Var str2 : AnsiString); +Var + i, j : longint; + trans : Array[0..255] Of AnsiString; +Begin + str2 := ''; + initialize6(trans); + If str64[length(str64) - 1] = '=' Then j := 2 Else + If str64[length(str64)] = '=' Then j := 1 Else j := 0; + For i := 1 To (length(str64) - j) Do str2 := str2 + trans[ord(str64[i])]; + delete(str2, length(str2) - 2 * j + 1, 2 * j); +End; + + +// Convert a FGInt to a binary AnsiString (base 2) & visa versa + +Procedure FGIntToBase2String(Const FGInt : TFGInt; Var S : AnsiString); +Var + i : LongWord; + j : integer; +Begin + S := ''; + For i := 1 To FGInt.Number[0] Do + Begin + For j := 0 To 30 Do + If (1 And (FGInt.Number[i] Shr j)) = 1 Then + S := '1' + S + Else + S := '0' + S; + End; + While (length(S) > 1) And (S[1] = '0') Do + delete(S, 1, 1); + If S = '' Then S := '0'; +End; + + +Procedure Base2StringToFGInt(S : AnsiString; Var FGInt : TFGInt); +Var + i, j, size : LongWord; +Begin + While (S[1] = '0') And (length(S) > 1) Do + delete(S, 1, 1); + size := length(S) Div 31; + If (length(S) Mod 31) <> 0 Then size := size + 1; + SetLength(FGInt.Number, (size + 1)); + FGInt.Number[0] := size; + j := 1; + FGInt.Number[j] := 0; + i := 0; + While length(S) > 0 Do + Begin + If S[length(S)] = '1' Then + FGInt.Number[j] := FGInt.Number[j] Or (1 Shl i); + i := i + 1; + If i = 31 Then + Begin + i := 0; + j := j + 1; + If j <= size Then FGInt.Number[j] := 0; + End; + delete(S, length(S), 1); + End; + FGInt.Sign := positive; +End; + + +// Convert a FGInt to an base 256 AnsiString & visa versa + +Procedure FGIntToBase256String(Const FGInt : TFGInt; Var str256 : AnsiString); +Var + temp1 : AnsiString; + i, len8 : LongWord; + g : AnsiChar; +Begin + FGIntToBase2String(FGInt, temp1); + While (length(temp1) Mod 8) <> 0 Do temp1 := '0' + temp1; + len8 := length(temp1) Div 8; + str256 := ''; + For i := 1 To len8 Do + Begin + zeronetochar8(g, copy(temp1, 1, 8)); + str256 := str256 + g; + delete(temp1, 1, 8); + End; +End; + + +Procedure Base256StringToFGInt(str256 : AnsiString; Var FGInt : TFGInt); +Var + temp1 : AnsiString; + i : longint; + trans : Array[0..255] Of AnsiString; +Begin + temp1 := ''; + initialize8(trans); + For i := 1 To length(str256) Do temp1 := temp1 + trans[ord(str256[i])]; + While (temp1[1] = '0') And (temp1 <> '0') Do delete(temp1, 1, 1); + Base2StringToFGInt(temp1, FGInt); +End; + +// Convert an MPI (Multiple Precision Integer, PGP style) to an FGInt & +// visa versa + +Procedure PGPMPIToFGInt(PGPMPI : AnsiString; Var FGInt : TFGInt); +Var + temp : AnsiString; +Begin + temp := PGPMPI; + delete(temp, 1, 2); + Base256StringToFGInt(temp, FGInt); +End; + + +Procedure FGIntToPGPMPI(FGInt : TFGInt; Var PGPMPI : AnsiString); +Var + len, i : word; + c : AnsiChar; + b : byte; +Begin + FGIntToBase256String(FGInt, PGPMPI); + len := length(PGPMPI) * 8; + c := PGPMPI[1]; + For i := 7 Downto 0 Do If (ord(c) Shr i) = 0 Then len := len - 1 Else break; + b := len Mod 256; + PGPMPI := AnsiChar(b) + PGPMPI; + b := len Div 256; + PGPMPI := AnsiChar(b) + PGPMPI; +End; + + +// Convert a base 10 AnsiString to a FGInt + +Procedure Base10StringToFGInt(Base10 : AnsiString; Var FGInt : TFGInt); +Var + i, size : LongWord; + j : word; + S, x : AnsiString; + sign : TSign; + + Procedure GIntDivByIntBis1(Var GInt : TFGInt; by : LongWord; Var modres : word); + Var + i, size, rest, temp : LongWord; + Begin + size := GInt.Number[0]; + temp := 0; + For i := size Downto 1 Do + Begin + temp := temp * 10000; + rest := temp + GInt.Number[i]; + GInt.Number[i] := rest Div by; + temp := rest Mod by; + End; + modres := temp; + While (GInt.Number[size] = 0) And (size > 1) Do + size := size - 1; + If size <> GInt.Number[0] Then + Begin + SetLength(GInt.Number, size + 1); + GInt.Number[0] := size; + End; + End; + +Begin + While (Not (Base10[1] In ['-', '0'..'9'])) And (length(Base10) > 1) Do + delete(Base10, 1, 1); + If copy(Base10, 1, 1) = '-' Then + Begin + Sign := negative; + delete(Base10, 1, 1); + End + Else + Sign := positive; + While (length(Base10) > 1) And (copy(Base10, 1, 1) = '0') Do + delete(Base10, 1, 1); + size := length(Base10) Div 4; + If (length(Base10) Mod 4) <> 0 Then size := size + 1; + SetLength(FGInt.Number, size + 1); + FGInt.Number[0] := size; + For i := 1 To (size - 1) Do + Begin + x := copy(Base10, length(Base10) - 3, 4); + FGInt.Number[i] := StrToInt(string(x)); + delete(Base10, length(Base10) - 3, 4); + End; + FGInt.Number[size] := StrToInt(string(Base10)); + + S := ''; + While (FGInt.Number[0] <> 1) Or (FGInt.Number[1] <> 0) Do + Begin + GIntDivByIntBis1(FGInt, 2, j); + S := AnsiString(inttostr(j)) + S; + End; + If S = '' Then S := '0'; + FGIntDestroy(FGInt); + Base2StringToFGInt(S, FGInt); + FGInt.Sign := sign; +End; + + +// Convert a FGInt to a base 10 AnsiString + +Procedure FGIntToBase10String(Const FGInt : TFGInt; Var Base10 : AnsiString); +Var + S : AnsiString; + j : LongWord; + temp : TFGInt; +Begin + FGIntCopy(FGInt, temp); + Base10 := ''; + While (temp.Number[0] > 1) Or (temp.Number[1] > 0) Do + Begin + FGIntDivByIntBis(temp, 10000, j); + S := AnsiString(IntToStr(j)); + While Length(S) < 4 Do + S := '0' + S; + Base10 := S + Base10; + End; + Base10 := '0' + Base10; + While (length(Base10) > 1) And (Base10[1] = '0') Do + delete(Base10, 1, 1); + If FGInt.Sign = negative Then Base10 := '-' + Base10; +End; + + +// Destroy a FGInt to free memory + +Procedure FGIntDestroy(Var FGInt : TFGInt); +Begin + FGInt.Number := Nil; +End; + + +// Compare 2 FGInts in absolute value, returns +// Lt if FGInt1 > FGInt2, St if FGInt1 < FGInt2, Eq if FGInt1 = FGInt2, +// Er otherwise + +Function FGIntCompareAbs(Const FGInt1, FGInt2 : TFGInt) : TCompare; +Var + size1, size2, i : LongWord; +Begin + FGIntCompareAbs := Er; + size1 := FGInt1.Number[0]; + size2 := FGInt2.Number[0]; + If size1 > size2 Then FGIntCompareAbs := Lt Else + If size1 < size2 Then FGIntCompareAbs := St Else + Begin + i := size2; + While (FGInt1.Number[i] = FGInt2.Number[i]) And (i > 1) Do i := i - 1; + If FGInt1.Number[i] = FGInt2.Number[i] Then FGIntCompareAbs := Eq Else + If FGInt1.Number[i] < FGInt2.Number[i] Then FGIntCompareAbs := St Else + If FGInt1.Number[i] > FGInt2.Number[i] Then FGIntCompareAbs := Lt; + End; +End; + + +// Add 2 FGInts, FGInt1 + FGInt2 = Sum + +Procedure FGIntAdd(Const FGInt1, FGInt2 : TFGInt; Var Sum : TFGInt); +Var + i, size1, size2, size, rest, Trest : LongWord; +Begin + size1 := FGInt1.Number[0]; + size2 := FGInt2.Number[0]; + If size1 < size2 Then + FGIntAdd(FGInt2, FGInt1, Sum) + Else + Begin + If FGInt1.Sign = FGInt2.Sign Then + Begin + Sum.Sign := FGInt1.Sign; + setlength(Sum.Number, (size1 + 2)); + rest := 0; + For i := 1 To size2 Do + Begin + Trest := FGInt1.Number[i]; + Trest := Trest + FGInt2.Number[i]; + Trest := Trest + rest; + Sum.Number[i] := Trest And 2147483647; + rest := Trest Shr 31; + End; + For i := (size2 + 1) To size1 Do + Begin + Trest := FGInt1.Number[i] + rest; + Sum.Number[i] := Trest And 2147483647; + rest := Trest Shr 31; + End; + size := size1 + 1; + Sum.Number[0] := size; + Sum.Number[size] := rest; + While (Sum.Number[size] = 0) And (size > 1) Do + size := size - 1; + If Sum.Number[0] <> size Then SetLength(Sum.Number, size + 1); + Sum.Number[0] := size; + End + Else + Begin + If FGIntCompareAbs(FGInt2, FGInt1) = Lt Then + FGIntAdd(FGInt2, FGInt1, Sum) + Else + Begin + SetLength(Sum.Number, (size1 + 1)); + rest := 0; + For i := 1 To size2 Do + Begin + Trest := 2147483648; + TRest := Trest + FGInt1.Number[i]; + TRest := Trest - FGInt2.Number[i]; + TRest := Trest - rest; + Sum.Number[i] := Trest And 2147483647; + If (Trest > 2147483647) Then + rest := 0 + Else + rest := 1; + End; + For i := (size2 + 1) To size1 Do + Begin + Trest := 2147483648; + TRest := Trest + FGInt1.Number[i]; + TRest := Trest - rest; + Sum.Number[i] := Trest And 2147483647; + If (Trest > 2147483647) Then + rest := 0 + Else + rest := 1; + End; + size := size1; + While (Sum.Number[size] = 0) And (size > 1) Do + size := size - 1; + If size <> size1 Then SetLength(Sum.Number, size + 1); + Sum.Number[0] := size; + Sum.Sign := FGInt1.Sign; + End; + End; + End; +End; + + + +Procedure FGIntChangeSign(Var FGInt : TFGInt); +Begin + If FGInt.Sign = negative Then FGInt.Sign := positive Else FGInt.Sign := negative; +End; + + +// Substract 2 FGInts, FGInt1 - FGInt2 = dif + +Procedure FGIntSub(Var FGInt1, FGInt2, dif : TFGInt); +Begin + FGIntChangeSign(FGInt2); + FGIntAdd(FGInt1, FGInt2, dif); + FGIntChangeSign(FGInt2); +End; + + +// multiply a FGInt by an integer, FGInt * by = res, by < 2147483648 + +Procedure FGIntMulByInt(Const FGInt : TFGInt; Var res : TFGInt; by : LongWord); +Var + i, size, rest : LongWord; + Trest : int64; +Begin + size := FGInt.Number[0]; + setlength(res.Number, (size + 2)); + rest := 0; + For i := 1 To size Do + Begin + Trest := FGInt.Number[i]; + TRest := Trest * by; + TRest := Trest + rest; + res.Number[i] := Trest And 2147483647; + rest := Trest Shr 31; + End; + If rest <> 0 Then + Begin + size := size + 1; + Res.Number[size] := rest; + End + Else + SetLength(Res.Number, size + 1); + Res.Number[0] := size; + Res.Sign := FGInt.Sign; +End; + + +// multiply a FGInt by an integer, FGInt * by = res, by < 1000000000 + +Procedure FGIntMulByIntbis(Var FGInt : TFGInt; by : LongWord); +Var + i, size, rest : LongWord; + Trest : int64; +Begin + size := FGInt.Number[0]; + Setlength(FGInt.Number, size + 2); + rest := 0; + For i := 1 To size Do + Begin + Trest := FGInt.Number[i]; + TRest := Trest * by; + TRest := Trest + rest; + FGInt.Number[i] := Trest And 2147483647; + rest := Trest Shr 31; + End; + If rest <> 0 Then + Begin + size := size + 1; + FGInt.Number[size] := rest; + End + Else + SetLength(FGInt.Number, size + 1); + FGInt.Number[0] := size; +End; + + +// divide a FGInt by an integer, FGInt = res * by + modres + +Procedure FGIntDivByInt(Const FGInt : TFGInt; Var res : TFGInt; by : LongWord; Var modres : LongWord); +Var + i, size : LongWord; + rest : int64; +Begin + size := FGInt.Number[0]; + setlength(res.Number, (size + 1)); + modres := 0; + For i := size Downto 1 Do + Begin + rest := modres; + rest := rest Shl 31; + rest := rest Or FGInt.Number[i]; + res.Number[i] := rest Div by; + modres := rest Mod by; + End; + While (res.Number[size] = 0) And (size > 1) Do + size := size - 1; + If size <> FGInt.Number[0] Then SetLength(res.Number, size + 1); + res.Number[0] := size; + Res.Sign := FGInt.Sign; + If FGInt.sign = negative Then modres := by - modres; +End; + + +// divide a FGInt by an integer, FGInt = FGInt * by + modres + +Procedure FGIntDivByIntBis(Var FGInt : TFGInt; by : LongWord; Var modres : LongWord); +Var + i, size : LongWord; + temp, rest : int64; +Begin + size := FGInt.Number[0]; + temp := 0; + For i := size Downto 1 Do + Begin + temp := temp Shl 31; + rest := temp Or FGInt.Number[i]; + FGInt.Number[i] := rest Div by; + temp := rest Mod by; + End; + modres := temp; + While (FGInt.Number[size] = 0) And (size > 1) Do + size := size - 1; + If size <> FGInt.Number[0] Then + Begin + SetLength(FGInt.Number, size + 1); + FGInt.Number[0] := size; + End; +End; + + +// Reduce a FGInt modulo by (=an integer), FGInt mod by = modres + +Procedure FGIntModByInt(Const FGInt : TFGInt; by : LongWord; Var modres : LongWord); +Var + i, size : LongWord; + temp, rest : int64; +Begin + size := FGInt.Number[0]; + temp := 0; + For i := size Downto 1 Do + Begin + temp := temp Shl 31; + rest := temp Or FGInt.Number[i]; + temp := rest Mod by; + End; + modres := temp; + If FGInt.sign = negative Then modres := by - modres; +End; + + +// Returns the FGInt in absolute value + +Procedure FGIntAbs(Var FGInt : TFGInt); +Begin + FGInt.Sign := positive; +End; + + +// Copy a FGInt1 into FGInt2 + +Procedure FGIntCopy(Const FGInt1 : TFGInt; Var FGInt2 : TFGInt); +Begin + FGInt2.Sign := FGInt1.Sign; + FGInt2.Number := Nil; + FGInt2.Number := Copy(FGInt1.Number, 0, FGInt1.Number[0] + 1); +End; + + +// Shift the FGInt to the left in base 2 notation, ie FGInt = FGInt * 2 + +Procedure FGIntShiftLeft(Var FGInt : TFGInt); +Var + l, m, i, size : LongWord; +Begin + size := FGInt.Number[0]; + l := 0; + For i := 1 To Size Do + Begin + m := FGInt.Number[i] Shr 30; + FGInt.Number[i] := ((FGInt.Number[i] Shl 1) Or l) And 2147483647; + l := m; + End; + If l <> 0 Then + Begin + setlength(FGInt.Number, size + 2); + FGInt.Number[size + 1] := l; + FGInt.Number[0] := size + 1; + End; +End; + + +// Shift the FGInt to the right in base 2 notation, ie FGInt = FGInt div 2 + +Procedure FGIntShiftRight(Var FGInt : TFGInt); +Var + l, m, i, size : LongWord; +Begin + size := FGInt.Number[0]; + l := 0; + For i := size Downto 1 Do + Begin + m := FGInt.Number[i] And 1; + FGInt.Number[i] := (FGInt.Number[i] Shr 1) Or l; + l := m Shl 30; + End; + If (FGInt.Number[size] = 0) And (size > 1) Then + Begin + setlength(FGInt.Number, size); + FGInt.Number[0] := size - 1; + End; +End; + + +// FGInt = FGInt / 2147483648 + +Procedure FGIntShiftRightBy31(Var FGInt : TFGInt); +Var + size, i : LongWord; +Begin + size := FGInt.Number[0]; + If size > 1 Then + Begin + For i := 1 To size - 1 Do + Begin + FGInt.Number[i] := FGInt.Number[i + 1]; + End; + SetLength(FGInt.Number, Size); + FGInt.Number[0] := size - 1; + End + Else + FGInt.Number[1] := 0; +End; + + +// FGInt1 = FGInt1 + FGInt2, FGInt1 > FGInt2 + +Procedure FGIntAddBis(Var FGInt1 : TFGInt; Const FGInt2 : TFGInt); +Var + i, size1, size2, Trest, rest : LongWord; +Begin + size1 := FGInt1.Number[0]; + size2 := FGInt2.Number[0]; + rest := 0; + For i := 1 To size2 Do + Begin + Trest := FGInt1.Number[i] + FGInt2.Number[i] + rest; + rest := Trest Shr 31; + FGInt1.Number[i] := Trest And 2147483647; + End; + For i := size2 + 1 To size1 Do + Begin + Trest := FGInt1.Number[i] + rest; + rest := Trest Shr 31; + FGInt1.Number[i] := Trest And 2147483647; + End; + If rest <> 0 Then + Begin + SetLength(FGInt1.Number, size1 + 2); + FGInt1.Number[0] := size1 + 1; + FGInt1.Number[size1 + 1] := rest; + End; +End; + + +// FGInt1 = FGInt1 - FGInt2, use only when 0 < FGInt2 < FGInt1 + +Procedure FGIntSubBis(Var FGInt1 : TFGInt; Const FGInt2 : TFGInt); +Var + i, size1, size2, rest, Trest : LongWord; +Begin + size1 := FGInt1.Number[0]; + size2 := FGInt2.Number[0]; + rest := 0; + For i := 1 To size2 Do + Begin + Trest := (2147483648 Or FGInt1.Number[i]) - FGInt2.Number[i] - rest; + If (Trest > 2147483647) Then + rest := 0 + Else + rest := 1; + FGInt1.Number[i] := Trest And 2147483647; + End; + For i := size2 + 1 To size1 Do + Begin + Trest := (2147483648 Or FGInt1.Number[i]) - rest; + If (Trest > 2147483647) Then + rest := 0 + Else + rest := 1; + FGInt1.Number[i] := Trest And 2147483647; + End; + i := size1; + While (FGInt1.Number[i] = 0) And (i > 1) Do + i := i - 1; + If i <> size1 Then + Begin + SetLength(FGInt1.Number, i + 1); + FGInt1.Number[0] := i; + End; +End; + + +// Multiply 2 FGInts, FGInt1 * FGInt2 = Prod + +Procedure FGIntMul(Const FGInt1, FGInt2 : TFGInt; Var Prod : TFGInt); +Var + i, j, size, size1, size2, rest : LongWord; + Trest : int64; +Begin + size1 := FGInt1.Number[0]; + size2 := FGInt2.Number[0]; + size := size1 + size2; + SetLength(Prod.Number, (size + 1)); + For i := 1 To size Do + Prod.Number[i] := 0; + + For i := 1 To size2 Do + Begin + rest := 0; + For j := 1 To size1 Do + Begin + Trest := FGInt1.Number[j]; + Trest := Trest * FGInt2.Number[i]; + Trest := Trest + Prod.Number[j + i - 1]; + Trest := Trest + rest; + Prod.Number[j + i - 1] := Trest And 2147483647; + rest := Trest Shr 31; + End; + Prod.Number[i + size1] := rest; + End; + + Prod.Number[0] := size; + While (Prod.Number[size] = 0) And (size > 1) Do + size := size - 1; + If size <> Prod.Number[0] Then + Begin + SetLength(Prod.Number, size + 1); + Prod.Number[0] := size; + End; + If FGInt1.Sign = FGInt2.Sign Then + Prod.Sign := Positive + Else + prod.Sign := negative; +End; + + +// Square a FGInt, FGInt?= Square + +Procedure FGIntSquare(Const FGInt : TFGInt; Var Square : TFGInt); +Var + size, size1, i, j, rest : LongWord; + Trest : int64; +Begin + size1 := FGInt.Number[0]; + size := 2 * size1; + SetLength(Square.Number, (size + 1)); + Square.Number[0] := size; + For i := 1 To size Do + Square.Number[i] := 0; + For i := 1 To size1 Do + Begin + Trest := FGInt.Number[i]; + Trest := Trest * FGInt.Number[i]; + Trest := Trest + Square.Number[2 * i - 1]; + Square.Number[2 * i - 1] := Trest And 2147483647; + rest := Trest Shr 31; + For j := i + 1 To size1 Do + Begin + Trest := FGInt.Number[i] Shl 1; + Trest := Trest * FGInt.Number[j]; + Trest := Trest + Square.Number[i + j - 1]; + Trest := Trest + rest; + Square.Number[i + j - 1] := Trest And 2147483647; + rest := Trest Shr 31; + End; + Square.Number[i + size1] := rest; + End; + Square.Sign := positive; + While (Square.Number[size] = 0) And (size > 1) Do + size := size - 1; + If size <> (2 * size1) Then + Begin + SetLength(Square.Number, size + 1); + Square.Number[0] := size; + End; +End; + + +// Exponentiate a FGInt, FGInt^exp = res + +Procedure FGIntExp(Const FGInt, exp : TFGInt; Var res : TFGInt); +Var + temp2, temp3 : TFGInt; + S : AnsiString; + i : LongWord; +Begin + FGIntToBase2String(exp, S); + If S[length(S)] = '0' Then Base10StringToFGInt('1', res) Else FGIntCopy(FGInt, res); + FGIntCopy(FGInt, temp2); + If length(S) > 1 Then + For i := (length(S) - 1) Downto 1 Do + Begin + FGIntSquare(temp2, temp3); + FGIntCopy(temp3, temp2); + If S[i] = '1' Then + Begin + FGIntMul(res, temp2, temp3); + FGIntCopy(temp3, res); + End; + End; +End; + + +// Compute FGInt! = FGInt * (FGInt - 1) * (FGInt - 2) * ... * 3 * 2 * 1 + +Procedure FGIntFac(Const FGInt : TFGInt; Var res : TFGInt); +Var + one, temp, temp1 : TFGInt; +Begin + FGIntCopy(FGInt, temp); + Base10StringToFGInt('1', res); + Base10StringToFGInt('1', one); + + While Not (FGIntCompareAbs(temp, one) = Eq) Do + Begin + FGIntMul(temp, res, temp1); + FGIntCopy(temp1, res); + FGIntSubBis(temp, one); + End; + + FGIntDestroy(one); + FGIntDestroy(temp); +End; + + +// FGInt = FGInt * 2147483648 + +Procedure FGIntShiftLeftBy31(Var FGInt : TFGInt); +Var + f1, f2 : LongWord; + i, size : longint; +Begin + size := FGInt.Number[0]; + SetLength(FGInt.Number, size + 2); + f1 := 0; + For i := 1 To (size + 1) Do + Begin + f2 := FGInt.Number[i]; + FGInt.Number[i] := f1; + f1 := f2; + End; + FGInt.Number[0] := size + 1; +End; + +Procedure FGIntShiftLeftBy31Times(Var FGInt : TFGInt; times : LongWord); +Var + i, size : longint; +Begin + size := FGInt.Number[0]; + SetLength(FGInt.Number, size + 1 + times); + For i := size Downto 1 Do + Begin + FGInt.Number[i + times] := FGInt.Number[i]; + End; + For i := 1 To times Do + Begin + FGInt.Number[i] := 0; + End; + FGInt.Number[0] := size + times; +End; + + +// Divide 2 FGInts, FGInt1 = FGInt2 * QFGInt + MFGInt, MFGInt is always positive + +Procedure FGIntDivMod(Var FGInt1, FGInt2, QFGInt, MFGInt : TFGInt); +Var + one, zero, temp1 : TFGInt; + s1, s2 : TSign; + j, s, t : LongWord; + i, k : int64; +Begin + s1 := FGInt1.Sign; + s2 := FGInt2.Sign; + FGIntAbs(FGInt1); + FGIntAbs(FGInt2); + FGIntCopy(FGInt1, MFGInt); + FGIntCopy(FGInt2, temp1); + + If FGIntCompareAbs(FGInt1, FGInt2) <> St Then + Begin + s := FGInt1.Number[0] - FGInt2.Number[0]; + SetLength(QFGInt.Number, (s + 2)); + QFGInt.Number[0] := s + 1; + For t := 1 To s Do + Begin + FGIntShiftLeftBy31(temp1); + QFGInt.Number[t] := 0; + End; + j := s + 1; + QFGInt.Number[j] := 0; + While FGIntCompareAbs(MFGInt, FGInt2) <> St Do + Begin + While FGIntCompareAbs(MFGInt, temp1) <> St Do + Begin + If MFGInt.Number[0] > temp1.Number[0] Then + Begin + i := MFGInt.Number[MFGInt.Number[0]]; + i := i Shl 31; + i := i + MFGInt.Number[MFGInt.Number[0] - 1]; + i := i Div (temp1.Number[temp1.Number[0]] + 1); + End + Else +// i := MFGInt.Number[MFGInt.Number[0]] Div (temp1.Number[temp1.Number[0]] + 1); + Begin + If (MFGInt.Number[0] > 1) And (FGInt2.Number[0] > 1) Then + Begin + i := MFGInt.Number[MFGInt.Number[0]]; + i := i Shl 31; + i := i + MFGInt.Number[MFGInt.Number[0] - 1]; + k := temp1.Number[temp1.Number[0]]; + k := k shl 31; + k := k + temp1.Number[temp1.Number[0] - 1] + 1; + i := i Div k; + End + Else + i := MFGInt.Number[MFGInt.Number[0]] Div (temp1.Number[temp1.Number[0]] + 1); + End; + If (i <> 0) Then + Begin + FGIntMulByIntSubBis(MFGInt, temp1, i); + QFGInt.Number[j] := QFGInt.Number[j] + i; + End + Else + Begin + QFGInt.Number[j] := QFGInt.Number[j] + 1; + FGIntSubBis(MFGInt, temp1); + End; + End; + If MFGInt.Number[0] <= temp1.Number[0] Then + If FGIntCompareAbs(temp1, FGInt2) <> Eq Then + Begin + FGIntShiftRightBy31(temp1); + j := j - 1; + End; + End; + End + Else + Base10StringToFGInt('0', QFGInt); + s := QFGInt.Number[0]; + While (s > 1) And (QFGInt.Number[s] = 0) Do + s := s - 1; + If s < QFGInt.Number[0] Then + Begin + setlength(QFGInt.Number, s + 1); + QFGInt.Number[0] := s; + End; + QFGInt.Sign := positive; + + FGIntDestroy(temp1); + Base10StringToFGInt('0', zero); + Base10StringToFGInt('1', one); + If s1 = negative Then + Begin + If FGIntCompareAbs(MFGInt, zero) <> Eq Then + Begin + FGIntadd(QFGInt, one, temp1); + FGIntDestroy(QFGInt); + FGIntCopy(temp1, QFGInt); + FGIntDestroy(temp1); + FGIntsub(FGInt2, MFGInt, temp1); + FGIntDestroy(MFGInt); + FGIntCopy(temp1, MFGInt); + FGIntDestroy(temp1); + End; + If s2 = positive Then QFGInt.Sign := negative; + End + Else + QFGInt.Sign := s2; + FGIntDestroy(one); + FGIntDestroy(zero); + + FGInt1.Sign := s1; + FGInt2.Sign := s2; +End; + + +// Same as above but doesn 't compute MFGInt + +Procedure FGIntDiv(Var FGInt1, FGInt2, QFGInt : TFGInt); +Var + one, zero, temp1, MFGInt : TFGInt; + s1, s2 : TSign; + j, s, t : LongWord; + i, k : int64; +Begin + s1 := FGInt1.Sign; + s2 := FGInt2.Sign; + FGIntAbs(FGInt1); + FGIntAbs(FGInt2); + FGIntCopy(FGInt1, MFGInt); + FGIntCopy(FGInt2, temp1); + + If FGIntCompareAbs(FGInt1, FGInt2) <> St Then + Begin + s := FGInt1.Number[0] - FGInt2.Number[0]; + SetLength(QFGInt.Number, (s + 2)); + QFGInt.Number[0] := s + 1; + For t := 1 To s Do + Begin + FGIntShiftLeftBy31(temp1); + QFGInt.Number[t] := 0; + End; + j := s + 1; + QFGInt.Number[j] := 0; + While FGIntCompareAbs(MFGInt, FGInt2) <> St Do + Begin + While FGIntCompareAbs(MFGInt, temp1) <> St Do + Begin + If MFGInt.Number[0] > temp1.Number[0] Then + Begin + i := MFGInt.Number[MFGInt.Number[0]]; + i := i Shl 31; + i := i + MFGInt.Number[MFGInt.Number[0] - 1]; + i := i Div (temp1.Number[temp1.Number[0]] + 1); + End + Else +// i := MFGInt.Number[MFGInt.Number[0]] Div (temp1.Number[temp1.Number[0]] + 1); + Begin + If (MFGInt.Number[0] > 1) And (FGInt2.Number[0] > 1) Then + Begin + i := MFGInt.Number[MFGInt.Number[0]]; + i := i Shl 31; + i := i + MFGInt.Number[MFGInt.Number[0] - 1]; + k := temp1.Number[temp1.Number[0]]; + k := k shl 31; + k := k + temp1.Number[temp1.Number[0] - 1] + 1; + i := i Div k; + End + Else + i := MFGInt.Number[MFGInt.Number[0]] Div (temp1.Number[temp1.Number[0]] + 1); + End; + If (i <> 0) Then + Begin + FGIntMulByIntSubBis(MFGInt, temp1, i); + QFGInt.Number[j] := QFGInt.Number[j] + i; + End + Else + Begin + QFGInt.Number[j] := QFGInt.Number[j] + 1; + FGIntSubBis(MFGInt, temp1); + End; + End; + If MFGInt.Number[0] <= temp1.Number[0] Then + If FGIntCompareAbs(temp1, FGInt2) <> Eq Then + Begin + FGIntShiftRightBy31(temp1); + j := j - 1; + End; + End; + End + Else + Base10StringToFGInt('0', QFGInt); + s := QFGInt.Number[0]; + While (s > 1) And (QFGInt.Number[s] = 0) Do + s := s - 1; + If s < QFGInt.Number[0] Then + Begin + setlength(QFGInt.Number, s + 1); + QFGInt.Number[0] := s; + End; + QFGInt.Sign := positive; + + FGIntDestroy(temp1); + Base10StringToFGInt('0', zero); + Base10StringToFGInt('1', one); + If s1 = negative Then + Begin + If FGIntCompareAbs(MFGInt, zero) <> Eq Then + Begin + FGIntadd(QFGInt, one, temp1); + FGIntDestroy(QFGInt); + FGIntCopy(temp1, QFGInt); + FGIntDestroy(temp1); + FGIntsub(FGInt2, MFGInt, temp1); + FGIntDestroy(MFGInt); + FGIntCopy(temp1, MFGInt); + FGIntDestroy(temp1); + End; + If s2 = positive Then QFGInt.Sign := negative; + End + Else + QFGInt.Sign := s2; + FGIntDestroy(one); + FGIntDestroy(zero); + FGIntDestroy(MFGInt); + + FGInt1.Sign := s1; + FGInt2.Sign := s2; +End; + + + +// FGInt1 = FGInt1 - divInt * FGInt2, use only when 0 < FGInt2 < FGInt1 + +Procedure FGIntMulByIntSubBis(Var FGInt1 : TFGInt; Const FGInt2 : TFGInt; divInt : LongWord); +Var + i, size1, size2, rest, Trest, mRest : LongWord; + mTmpRest : int64; +Begin + size1 := FGInt1.Number[0]; + size2 := FGInt2.Number[0]; + rest := 0; + mRest := 0; + For i := 1 To size2 Do + Begin + mTmpRest := FGInt2.Number[i]; + mTmpRest := mTmpRest * divInt; + mTmpRest := mTmpRest + mRest; + Trest := (2147483648 Or FGInt1.Number[i]) - (mTmpRest And 2147483647) - rest; + If (Trest > 2147483647) Then + rest := 0 + Else + rest := 1; + mRest := mTmpRest shr 31; + FGInt1.Number[i] := Trest And 2147483647; + End; + For i := size2 + 1 To size1 Do + Begin + Trest := (2147483648 Or FGInt1.Number[i]) - mRest - rest; + If (Trest > 2147483647) Then + rest := 0 + Else + rest := 1; + mRest := mRest shr 31; + FGInt1.Number[i] := Trest And 2147483647; + End; + i := size1; + While (FGInt1.Number[i] = 0) And (i > 1) Do + i := i - 1; + If i <> size1 Then + Begin + SetLength(FGInt1.Number, i + 1); + FGInt1.Number[0] := i; + End; +End; + + + +Procedure FGIntMod(Var FGInt1, FGInt2, MFGInt : TFGInt); +Var + zero, temp1 : TFGInt; + s1, s2 : TSign; + s: LongWord; + i, j : int64; +Begin + s1 := FGInt1.Sign; + s2 := FGInt2.Sign; + FGIntAbs(FGInt1); + FGIntAbs(FGInt2); + FGIntCopy(FGInt1, MFGInt); + FGIntCopy(FGInt2, temp1); + + If FGIntCompareAbs(FGInt1, FGInt2) <> St Then + Begin + s := FGInt1.Number[0] - FGInt2.Number[0]; +// For t := 1 To s Do + FGIntShiftLeftBy31Times(temp1,s); + While FGIntCompareAbs(MFGInt, FGInt2) <> St Do + Begin + While FGIntCompareAbs(MFGInt, temp1) <> St Do + Begin + If MFGInt.Number[0] > temp1.Number[0] Then + Begin + i := MFGInt.Number[MFGInt.Number[0]]; + i := i Shl 31; + i := i + MFGInt.Number[MFGInt.Number[0] - 1]; + i := i Div (temp1.Number[temp1.Number[0]] + 1); + End + Else +// i := MFGInt.Number[MFGInt.Number[0]] Div (temp1.Number[temp1.Number[0]] + 1); + Begin + If (MFGInt.Number[0] > 1) And (FGInt2.Number[0] > 1) Then + Begin + i := MFGInt.Number[MFGInt.Number[0]]; + i := i Shl 31; + i := i + MFGInt.Number[MFGInt.Number[0] - 1]; + j := temp1.Number[temp1.Number[0]]; + j := j shl 31; + j := j + temp1.Number[temp1.Number[0] - 1] + 1; + i := i Div j; + End + Else + i := MFGInt.Number[MFGInt.Number[0]] Div (temp1.Number[temp1.Number[0]] + 1); + End; + If (i <> 0) Then + Begin + FGIntMulByIntSubBis(MFGInt, temp1, i); + End + Else + FGIntSubBis(MFGInt, temp1); + End; + If MFGInt.Number[0] <= temp1.Number[0] Then + If FGIntCompareAbs(temp1, FGInt2) <> Eq Then FGIntShiftRightBy31(temp1); + End; + End; + + FGIntDestroy(temp1); + Base10StringToFGInt('0', zero); + If s1 = negative Then + Begin + If FGIntCompareAbs(MFGInt, zero) <> Eq Then + Begin + FGIntSub(FGInt2, MFGInt, temp1); + FGIntDestroy(MFGInt); + FGIntCopy(temp1, MFGInt); + FGIntDestroy(temp1); + End; + End; + FGIntDestroy(zero); + + FGInt1.Sign := s1; + FGInt2.Sign := s2; +End; + + +// Square a FGInt modulo Modb, FGInt^2 mod Modb = FGIntSM + +Procedure FGIntSquareMod(Var FGInt, Modb, FGIntSM : TFGInt); +Var + temp : TFGInt; +Begin + FGIntSquare(FGInt, temp); + FGIntMod(temp, Modb, FGIntSM); + FGIntDestroy(temp); +End; + + +// Add 2 FGInts modulo base, (FGInt1 + FGInt2) mod base = FGIntres + +Procedure FGIntAddMod(Var FGInt1, FGInt2, base, FGIntres : TFGInt); +Var + temp : TFGInt; +Begin + FGIntadd(FGInt1, FGInt2, temp); + FGIntMod(temp, base, FGIntres); + FGIntDestroy(temp); +End; + + +// Multiply 2 FGInts modulo base, (FGInt1 * FGInt2) mod base = FGIntres + +Procedure FGIntMulMod(Var FGInt1, FGInt2, base, FGIntres : TFGInt); +Var + temp : TFGInt; +Begin + FGIntMul(FGInt1, FGInt2, temp); + FGIntMod(temp, base, FGIntres); + FGIntDestroy(temp); +End; + + +// Exponentiate 2 FGInts modulo base, (FGInt1 ^ FGInt2) mod modb = res + +Procedure FGIntModExp(Var FGInt, exp, modb, res : TFGInt); +Var + temp2, temp3 : TFGInt; + i : LongWord; + S : AnsiString; +Begin + If (Modb.Number[1] Mod 2) = 1 Then + Begin + FGIntMontgomeryModExp(FGInt, exp, modb, res); + exit; + End; + FGIntToBase2String(exp, S); + Base10StringToFGInt('1', res); + FGIntcopy(FGInt, temp2); + + For i := length(S) Downto 1 Do + Begin + If S[i] = '1' Then + Begin + FGIntmulMod(res, temp2, modb, temp3); + FGIntCopy(temp3, res); + End; + FGIntSquareMod(temp2, Modb, temp3); + FGIntCopy(temp3, temp2); + End; + FGIntDestroy(temp2); +End; + + +// Procedures for Montgomery Exponentiation + +Procedure FGIntModBis(Const FGInt : TFGInt; Var FGIntOut : TFGInt; b, head : LongWord); +Var + i : LongWord; +Begin + If b <= FGInt.Number[0] Then + Begin + SetLength(FGIntOut.Number, (b + 1)); + For i := 0 To b Do + FGIntOut.Number[i] := FGInt.Number[i]; + FGIntOut.Number[b] := FGIntOut.Number[b] And head; + i := b; + While (FGIntOut.Number[i] = 0) And (i > 1) Do + i := i - 1; + If i < b Then SetLength(FGIntOut.Number, i + 1); + FGIntOut.Number[0] := i; + FGIntOut.Sign := positive; + End + Else + FGIntCopy(FGInt, FGIntOut); +End; + + +Procedure FGIntMulModBis(Const FGInt1, FGInt2 : TFGInt; Var Prod : TFGInt; b, head : LongWord); +Var + i, j, size, size1, size2, t, rest : LongWord; + Trest : int64; +Begin + size1 := FGInt1.Number[0]; + size2 := FGInt2.Number[0]; + size := min(b, size1 + size2); + SetLength(Prod.Number, (size + 1)); + For i := 1 To size Do + Prod.Number[i] := 0; + + For i := 1 To size2 Do + Begin + rest := 0; + t := min(size1, b - i + 1); + For j := 1 To t Do + Begin + Trest := FGInt1.Number[j]; + Trest := Trest * FGInt2.Number[i]; + Trest := Trest + Prod.Number[j + i - 1]; + Trest := Trest + rest; + Prod.Number[j + i - 1] := Trest And 2147483647; + rest := Trest Shr 31; + End; + If (i + size1) <= b Then Prod.Number[i + size1] := rest; + End; + + Prod.Number[0] := size; + If size = b Then Prod.Number[b] := Prod.Number[b] And head; + While (Prod.Number[size] = 0) And (size > 1) Do + size := size - 1; + If size < Prod.Number[0] Then + Begin + SetLength(Prod.Number, size + 1); + Prod.Number[0] := size; + End; + If FGInt1.Sign = FGInt2.Sign Then + Prod.Sign := Positive + Else + prod.Sign := negative; +End; + + +Procedure FGIntMontgomeryMod(Const GInt, base, baseInv : TFGInt; Var MGInt : TFGInt; b : Longword; head : LongWord); +Var + m, temp, temp1 : TFGInt; + r : LongWord; +Begin + FGIntModBis(GInt, temp, b, head); + FGIntMulModBis(temp, baseInv, m, b, head); + FGIntMul(m, base, temp1); + FGIntDestroy(temp); + FGIntAdd(temp1, GInt, temp); + FGIntDestroy(temp1); + MGInt.Number := copy(temp.Number, b - 1, temp.Number[0] - b + 2); + MGInt.Sign := positive; + MGInt.Number[0] := temp.Number[0] - b + 1; + FGIntDestroy(temp); + If (head Shr 30) = 0 Then FGIntDivByIntBis(MGInt, head + 1, r) + Else FGIntShiftRightBy31(MGInt); + If FGIntCompareAbs(MGInt, base) <> St Then FGIntSubBis(MGInt, base); + FGIntDestroy(temp); + FGIntDestroy(m); +End; + + +Procedure FGIntMontgomeryModExp(Var FGInt, exp, modb, res : TFGInt); +Var + temp2, temp3, baseInv, r, zero : TFGInt; + i, j, t, b, head : LongWord; + S: AnsiString; +Begin + Base2StringToFGInt('0', zero); + FGIntMod(FGInt, modb, res); + If FGIntCompareAbs(res, zero)=Eq then + Begin + FGIntDestroy(zero); + Exit; + End else FGIntDestroy(res); + FGIntDestroy(zero); + + FGIntToBase2String(exp, S); + t := modb.Number[0]; + b := t; + + If (modb.Number[t] Shr 30) = 1 Then t := t + 1; + SetLength(r.Number, (t + 1)); + r.Number[0] := t; + r.Sign := positive; + For i := 1 To t Do + r.Number[i] := 0; + If t = modb.Number[0] Then + Begin + head := 2147483647; + For j := 29 Downto 0 Do + Begin + head := head Shr 1; + If (modb.Number[t] Shr j) = 1 Then + Begin + r.Number[t] := 1 Shl (j + 1); + break; + End; + End; + End + Else + Begin + r.Number[t] := 1; + head := 2147483647; + End; + + FGIntModInv(modb, r, temp2); + If temp2.Sign = negative Then + FGIntCopy(temp2, BaseInv) + Else + Begin + FGIntCopy(r, BaseInv); + FGIntSubBis(BaseInv, temp2); + End; +// FGIntBezoutBachet(r, modb, temp2, BaseInv); + FGIntAbs(BaseInv); + FGIntDestroy(temp2); + FGIntMod(r, modb, res); + FGIntMulMod(FGInt, res, modb, temp2); + FGIntDestroy(r); + + For i := length(S) Downto 1 Do + Begin + If S[i] = '1' Then + Begin + FGIntmul(res, temp2, temp3); + FGIntDestroy(res); + FGIntMontgomeryMod(temp3, modb, baseinv, res, b, head); + FGIntDestroy(temp3); + End; + FGIntSquare(temp2, temp3); + FGIntDestroy(temp2); + FGIntMontgomeryMod(temp3, modb, baseinv, temp2, b, head); + FGIntDestroy(temp3); + End; + FGIntDestroy(temp2); + FGIntMontgomeryMod(res, modb, baseinv, temp3, b, head); + FGIntCopy(temp3, res); + FGIntDestroy(temp3); + FGIntDestroy(baseinv); +End; + + +// Compute the Greatest Common Divisor of 2 FGInts + +Procedure FGIntGCD(Const FGInt1, FGInt2 : TFGInt; Var GCD : TFGInt); +Var + k : TCompare; + zero, temp1, temp2, temp3 : TFGInt; +Begin + k := FGIntCompareAbs(FGInt1, FGInt2); + If (k = Eq) Then FGIntCopy(FGInt1, GCD) Else + If (k = St) Then FGIntGCD(FGInt2, FGInt1, GCD) Else + Begin + Base10StringToFGInt('0', zero); + FGIntCopy(FGInt1, temp1); + FGIntCopy(FGInt2, temp2); + While (temp2.Number[0] <> 1) Or (temp2.Number[1] <> 0) Do + Begin + FGIntMod(temp1, temp2, temp3); + FGIntCopy(temp2, temp1); + FGIntCopy(temp3, temp2); + FGIntDestroy(temp3); + End; + FGIntCopy(temp1, GCD); + FGIntDestroy(temp2); + FGIntDestroy(zero); + End; +End; + + +// Compute the Least Common Multiple of 2 FGInts + +Procedure FGIntLCM(Const FGInt1, FGInt2 : TFGInt; Var LCM : TFGInt); +Var + temp1, temp2 : TFGInt; +Begin + FGIntGCD(FGInt1, FGInt2, temp1); + FGIntmul(FGInt1, FGInt2, temp2); + FGIntdiv(temp2, temp1, LCM); + FGIntDestroy(temp1); + FGIntDestroy(temp2); +End; + + +// Trialdivision of a FGInt upto 9999 and stopping when a divisor is found, returning ok=false + +Procedure FGIntTrialDiv9999(Const FGInt : TFGInt; Var ok : boolean); +Var + j : LongWord; + i : integer; +Begin + If ((FGInt.Number[1] Mod 2) = 0) Then ok := false + Else + Begin + i := 0; + ok := true; + While ok And (i < 1228) Do + Begin + i := i + 1; + FGIntmodbyint(FGInt, primes[i], j); + If j = 0 Then ok := false; + End; + End; +End; + + +// A prng + +Procedure FGIntRandom1(Var Seed, RandomFGInt : TFGInt); +Var + temp, base : TFGInt; +Begin + Base10StringToFGInt('281474976710656', base); + Base10StringToFGInt('44485709377909', temp); + FGIntMulMod(seed, temp, base, RandomFGInt); + FGIntDestroy(temp); + FGIntDestroy(base); +End; + + +// Perform a Rabin Miller Primality Test nrtest times on FGIntp, returns ok=true when FGIntp passes the test + +Procedure FGIntRabinMiller(Var FGIntp : TFGInt; nrtest : Longword; Var ok : boolean); +Var + j, b, i : LongWord; + m, z, temp1, temp2, temp3, zero, one, two, pmin1 : TFGInt; + ok1, ok2 : boolean; +Begin + randomize; + Base10StringToFGInt('0', zero); + Base10StringToFGInt('1', one); + Base10StringToFGInt('2', two); + FGIntsub(FGIntp, one, temp1); + FGIntsub(FGIntp, one, pmin1); + + b := 0; + While (temp1.Number[1] Mod 2) = 0 Do + Begin + b := b + 1; + FGIntShiftRight(temp1); + End; + m := temp1; + + i := 0; + ok := true; + Randomize; + While (i < nrtest) And ok Do + Begin + j := 0; + i := i + 1; + Base10StringToFGInt(AnsiString(inttostr(Primes[Random(1227) + 1])), temp2); + FGIntMontGomeryModExp(temp2, m, FGIntp, z); + FGIntDestroy(temp2); + ok1 := (FGIntCompareAbs(z, one) = Eq); + ok2 := (FGIntCompareAbs(z, pmin1) = Eq); + If Not (ok1 Or ok2) Then + Begin + + While (ok And (j < b)) Do + Begin + If (j > 0) And ok1 Then ok := false + Else + Begin + j := j + 1; + If (j < b) And (Not ok2) Then + Begin + FGIntSquaremod(z, FGIntp, temp3); + FGIntCopy(temp3, z); + ok1 := (FGIntCompareAbs(z, one) = Eq); + ok2 := (FGIntCompareAbs(z, pmin1) = Eq); + If ok2 Then j := b; + End + Else If (Not ok2) And (j >= b) Then ok := false; + End; + End; + + End + End; + + FGIntDestroy(zero); + FGIntDestroy(one); + FGIntDestroy(two); + FGIntDestroy(m); + FGIntDestroy(z); + FGIntDestroy(pmin1); +End; + + +// Compute the coefficients from the Bezout Bachet theorem, FGInt1 * a + FGInt2 * b = GCD(FGInt1, FGInt2) + +Procedure FGIntBezoutBachet(Var FGInt1, FGInt2, a, b : TFGInt); +Var + zero, r1, r2, r3, ta, gcd, temp, temp1, temp2 : TFGInt; +Begin + If FGIntCompareAbs(FGInt1, FGInt2) <> St Then + Begin + FGIntcopy(FGInt1, r1); + FGIntcopy(FGInt2, r2); + Base10StringToFGInt('0', zero); + Base10StringToFGInt('1', a); + Base10StringToFGInt('0', ta); + + Repeat + FGIntdivmod(r1, r2, temp, r3); + FGIntDestroy(r1); + r1 := r2; + r2 := r3; + + FGIntmul(ta, temp, temp1); + FGIntsub(a, temp1, temp2); + FGIntCopy(ta, a); + FGIntCopy(temp2, ta); + FGIntDestroy(temp1); + + FGIntDestroy(temp); + Until FGIntCompareAbs(r3, zero) = Eq; + + FGIntGCD(FGInt1, FGInt2, gcd); + FGIntmul(a, FGInt1, temp1); + FGIntsub(gcd, temp1, temp2); + FGIntDestroy(temp1); + FGIntdiv(temp2, FGInt2, b); + FGIntDestroy(temp2); + + FGIntDestroy(ta); + FGIntDestroy(r1); + FGIntDestroy(r2); + FGIntDestroy(gcd); + End + Else FGIntBezoutBachet(FGInt2, FGInt1, b, a); +End; + + +// Find the (multiplicative) Modular inverse of a FGInt in a finite ring +// of additive order base + +Procedure FGIntModInv(Const FGInt1, base : TFGInt; Var Inverse : TFGInt); +Var + zero, one, r1, r2, r3, tb, gcd, temp, temp1, temp2 : TFGInt; +Begin + Base10StringToFGInt('1', one); + FGIntGCD(FGInt1, base, gcd); + If FGIntCompareAbs(one, gcd) = Eq Then + Begin + FGIntcopy(base, r1); + FGIntcopy(FGInt1, r2); + Base10StringToFGInt('0', zero); + Base10StringToFGInt('0', inverse); + Base10StringToFGInt('1', tb); + + Repeat + FGIntDestroy(r3); + FGIntdivmod(r1, r2, temp, r3); + FGIntCopy(r2, r1); + FGIntCopy(r3, r2); + + FGIntmul(tb, temp, temp1); + FGIntsub(inverse, temp1, temp2); + FGIntDestroy(inverse); + FGIntDestroy(temp1); + FGIntCopy(tb, inverse); + FGIntCopy(temp2, tb); + + FGIntDestroy(temp); + Until FGIntCompareAbs(r3, zero) = Eq; + + If inverse.Sign = negative Then + Begin + FGIntadd(base, inverse, temp); + FGIntCopy(temp, inverse); + End; + + FGIntDestroy(tb); + FGIntDestroy(r1); + FGIntDestroy(r2); + End; + FGIntDestroy(gcd); + FGIntDestroy(one); +End; + + +// Perform a (combined) primality test on FGIntp consisting of a trialdivision upto 8192, +// if the FGInt passes perform nrRMtests Rabin Miller primality tests, returns ok when a +// FGInt is probably prime + +Procedure FGIntPrimetest(Var FGIntp : TFGInt; nrRMtests : integer; Var ok : boolean); +Begin + FGIntTrialdiv9999(FGIntp, ok); + If ok Then FGIntRabinMiller(FGIntp, nrRMtests, ok); +End; + + +// Computes the Legendre symbol for a any number and +// p a prime, returns 0 if p divides a, 1 if a is a +// quadratic residu mod p, -1 if a is a quadratic +// nonresidu mod p + +Procedure FGIntLegendreSymbol(Var a, p : TFGInt; Var L : integer); +Var + temp1, temp2, temp3, temp4, temp5, zero, one : TFGInt; + i : LongWord; + ok1, ok2 : boolean; +Begin + Base10StringToFGInt('0', zero); + Base10StringToFGInt('1', one); + FGIntMod(a, p, temp1); + If FGIntCompareAbs(zero, temp1) = Eq Then + Begin + FGIntDestroy(temp1); + L := 0; + End + Else + Begin + FGIntDestroy(temp1); + FGIntCopy(p, temp1); + FGIntCopy(a, temp2); + L := 1; + While FGIntCompareAbs(temp2, one) <> Eq Do + Begin + If (temp2.Number[1] Mod 2) = 0 Then + Begin + FGIntSquare(temp1, temp3); + FGIntSub(temp3, one, temp4); + FGIntDestroy(temp3); + FGIntDivByInt(temp4, temp3, 8, i); + If (temp3.Number[1] Mod 2) = 0 Then ok1 := false Else ok1 := true; + FGIntDestroy(temp3); + FGIntDestroy(temp4); + If ok1 = true Then L := L * (-1); + FGIntDivByIntBis(temp2, 2, i); + End + Else + Begin + FGIntSub(temp1, one, temp3); + FGIntSub(temp2, one, temp4); + FGIntMul(temp3, temp4, temp5); + FGIntDestroy(temp3); + FGIntDestroy(temp4); + FGIntDivByInt(temp5, temp3, 4, i); + If (temp3.Number[1] Mod 2) = 0 Then ok2 := false Else ok2 := true; + FGIntDestroy(temp5); + FGIntDestroy(temp3); + If ok2 = true Then L := L * (-1); + FGIntMod(temp1, temp2, temp3); + FGIntCopy(temp2, temp1); + FGIntCopy(temp3, temp2); + End; + End; + FGIntDestroy(temp1); + FGIntDestroy(temp2); + End; + FGIntDestroy(zero); + FGIntDestroy(one); +End; + + +// Compute a square root modulo a prime number +// SquareRoot^2 mod Prime = Square + +Procedure FGIntSquareRootModP(Square, Prime : TFGInt; Var SquareRoot : TFGInt); +Var + one, n, b, s, r, temp, temp1, temp2, temp3 : TFGInt; + a, i, j : longint; + L : Integer; +Begin + Base2StringToFGInt('1', one); + Base2StringToFGInt('10', n); + a := 0; + FGIntLegendreSymbol(n, Prime, L); + While L <> -1 Do + Begin + FGIntAddBis(n, one); + FGIntLegendreSymbol(n, Prime, L); + End; + FGIntCopy(Prime, s); + s.Number[1] := s.Number[1] - 1; + While (s.Number[1] Mod 2) = 0 Do + Begin + FGIntShiftRight(s); + a := a + 1; + End; + FGIntMontgomeryModExp(n, s, Prime, b); + FGIntAdd(s, one, temp); + FGIntShiftRight(temp); + FGIntMontgomeryModExp(Square, temp, Prime, r); + FGIntDestroy(temp); + FGIntModInv(Square, Prime, temp1); + + For i := 0 To (a - 2) Do + Begin + FGIntSquareMod(r, Prime, temp2); + FGIntMulMod(temp1, temp2, Prime, temp); + FGIntDestroy(temp2); + For j := 1 To (a - i - 2) Do + Begin + FGIntSquareMod(temp, Prime, temp2); + FGIntDestroy(temp); + FGIntCopy(temp2, temp); + FGIntDestroy(temp2); + End; + If FGIntCompareAbs(temp, one) <> Eq Then + Begin + FGIntMulMod(r, b, Prime, temp3); + FGIntDestroy(r); + FGIntCopy(temp3, r); + FGIntDestroy(temp3); + End; + FGIntDestroy(temp); + FGIntDestroy(temp2); + If i = (a - 2) Then break; + FGIntSquareMod(b, Prime, temp3); + FGIntDestroy(b); + FGIntCopy(temp3, b); + FGIntDestroy(temp3); + End; + + FGIntCopy(r, SquareRoot); + FGIntDestroy(r); + FGIntDestroy(s); + FGIntDestroy(b); + FGIntDestroy(temp1); + FGIntDestroy(one); + FGIntDestroy(n); +End; + + +End. diff --git a/10.3.3/Keygen/RadKeygen.pas b/10.3.3/Keygen/RadKeygen.pas new file mode 100644 index 0000000..a06b88e --- /dev/null +++ b/10.3.3/Keygen/RadKeygen.pas @@ -0,0 +1,328 @@ +unit RadKeygen; + +interface + +uses + SysUtils, Classes, Windows, Registry, SHFolder, Sha1, FGInt, RadVersion, RadLicense; + + function GenerateSerialNumber():string; + function GetRegistrationCode():string; + function GenerateLicenseFile(SerialNumber,RegistrationCode:string;RadStudioVersion:PRadStudioVersion;var FileName:string):Boolean; + +implementation + +function GetAppDataPath():string; +var + Path:array [0..MAX_PATH-1] of Char; +begin + if Succeeded(SHGetFolderPath(0, CSIDL_COMMON_APPDATA, 0, 0, @Path[0])) then + Result:=string(Path) + else + Result:=''; +end; + +function GenerateSerialNumber():string; +const + StrMap:string='ABC2DE34FGHJKLM5NPQRST6U7VWX8YZ9'; + ByteMap:array[0..255] of Byte=($00, $07, $0E, $09, $1C, $1B, $12, $15, $38, $3F, + $36, $31, $24, $23, $2A, $2D, $70, $77, $7E, $79, + $6C, $6B, $62, $65, $48, $4F, $46, $41, $54, $53, + $5A, $5D, $E0, $E7, $EE, $E9, $FC, $FB, $F2, $F5, + $D8, $DF, $D6, $D1, $C4, $C3, $CA, $CD, $90, $97, + $9E, $99, $8C, $8B, $82, $85, $A8, $AF, $A6, $A1, + $B4, $B3, $BA, $BD, $C7, $C0, $C9, $CE, $DB, $DC, + $D5, $D2, $FF, $F8, $F1, $F6, $E3, $E4, $ED, $EA, + $B7, $B0, $B9, $BE, $AB, $AC, $A5, $A2, $8F, $88, + $81, $86, $93, $94, $9D, $9A, $27, $20, $29, $2E, + $3B, $3C, $35, $32, $1F, $18, $11, $16, $03, $04, + $0D, $0A, $57, $50, $59, $5E, $4B, $4C, $45, $42, + $6F, $68, $61, $66, $73, $74, $7D, $7A, $89, $8E, + $87, $80, $95, $92, $9B, $9C, $B1, $B6, $BF, $B8, + $AD, $AA, $A3, $A4, $F9, $FE, $F7, $F0, $E5, $E2, + $EB, $EC, $C1, $C6, $CF, $C8, $DD, $DA, $D3, $D4, + $69, $6E, $67, $60, $75, $72, $7B, $7C, $51, $56, + $5F, $58, $4D, $4A, $43, $44, $19, $1E, $17, $10, + $05, $02, $0B, $0C, $21, $26, $2F, $28, $3D, $3A, + $33, $34, $4E, $49, $40, $47, $52, $55, $5C, $5B, + $76, $71, $78, $7F, $6A, $6D, $64, $63, $3E, $39, + $30, $37, $22, $25, $2C, $2B, $06, $01, $08, $0F, + $1A, $1D, $14, $13, $AE, $A9, $A0, $A7, $B2, $B5, + $BC, $BB, $96, $91, $98, $9F, $8A, $8D, $84, $83, + $DE, $D9, $D0, $D7, $C2, $C5, $CC, $CB, $E6, $E1, + $E8, $EF, $FA, $FD, $F4, $F3); +var + i,v1,v2,v3,v4,v5,v6,v7,v8,v9:Integer; + SumValue:string; + ByteArray:array[0..19] of Byte; +begin + Randomize(); + v1:=0; + v2:=0; + v3:=0; + v4:=0; + v5:=1; + v6:=8217; + v7:=53; + v8:= Random(32) shl 8; + v8:=v8 xor Random(32); + v8:= v8 mod $10000; + SumValue:=Format('%d',[v1 + v2 + v3 + v4 + v5 + v6 + v7 + v8]); + v9:=0; + + for i := 0 to Length(SumValue)-1 do + begin + v9:=v9 xor ByteMap[Ord(SumValue[i+1])]; + end; + ByteArray[0] := ((v8 shr 1) and 8) or ((v8 shr 5) and 4) or (2 * v5 and 2); + ByteArray[1] := ((v7 shr 1) and 16) or ((v7 shr 4) and 8) or ((v6 shr 5) and 2) or ((v6 shr 8) and 1); + ByteArray[2] := (2 * v7 and 16) or (8 * v8 and 8) or ((v5 shr 1) and 4) or ((v6 shr 4) and 2) or (v3 and 1); + ByteArray[3] := (4 * v5 and 16); + ByteArray[4] := (4 * v9 and 16) or ((v6 shr 4) and 8); + ByteArray[5] := (8 * v4 and 8) or ((v8 shr 1) and 4) or ((v8 shr 12) and 2); + ByteArray[6] := ((v9 shr 3) and 8) or ((v8 shr 4) and 4) or (2 * v1 and 2); + ByteArray[7] := ((v8 shr 11) and 16) or ((v8 shr 7) and 8) or (4 * v6 and 4) or ((v5 shr 3) and 2); + ByteArray[8] := ((v8 shr 7) and 16) or ((v6 shr 1) and 1); + ByteArray[9] := (4 * v6 and 16) or (v9 and 8) or (v8 and 4); + ByteArray[10] := ((v8 shr 9) and 8); + ByteArray[11] := (4 * v9 and 8) or (4 * v9 and 4) or (v8 and 2) or ((v8 shr 5) and 1); + ByteArray[12] := ((v8 shr 8) and 1); + ByteArray[13] := ((v6 shr 7) and 16) or ((v9 shr 7) and 1); + ByteArray[14] := (2 * v7 and 2) or ((v7 shr 1) and 1); + ByteArray[15] := (v6 and 8) or ((v6 shr 2) and 4) or ((v8 shr 9) and 1); + ByteArray[16] := (16 * v2 and 16) or (2 * v7 and 8) or ((v5 shr 1) and 1); + ByteArray[17] := ((v9 shr 3) and 2); + ByteArray[18] := (v7 and 16) or ((v6 shr 6) and 8) or ((v6 shr 8) and 4) or ((v8 shr 13) and 2) or ((v9 shr 5) and 1); + ByteArray[19] := ((v6 shr 9) and 16) or ((v7 shr 3) and 8) or ((v6 shr 11) and 2); + + Result:=''; + for i := 0 to Length(ByteArray)-1 do + begin + if (i=4) or (i=10) or (i=16) then Result:=Result+'-'; + Result:=Result+StrMap[ByteArray[i]+1]; + end; +end; + +function GetRegistrationCode():string; + + function GetKey():DWORD; + const + KeyMap:string='ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890X'; + var + ComputerName:array[0..MAX_PATH-1] of Char; + Key:string; + nSize:Cardinal; + i,j:Integer; + begin + Result:=$ED864640; + if (GetComputerName(@ComputerName[0],nSize)=False) then + Key:='localhost' + else + Key:=string(ComputerName); + + Key:=UpperCase(Key); + for i := 0 to Length(Key)-1 do + begin + for j := 0 to Length(KeyMap)-1 do + begin + if (Key[i+1]=KeyMap[j+1]) then Break; + end; + if j>=Length(KeyMap) then + Result:=Result+16*88 + else + Result:=Result+16*Ord(KeyMap[36-j]); + end; + end; + +var + FileName:string; + MemoryStream:TMemoryStream; + dwVerify,dwSize:DWORD; + pBuf,p:PByte; + i,j,eax,ebx,esi:Cardinal; + +begin + Result:=''; + MemoryStream:=TMemoryStream.Create; + try + if GetAppDataPath<>'' then + begin + FileName:=GetAppDataPath+'\Embarcadero\.licenses\.cg_license'; + if FileExists(FileName) then + begin + MemoryStream.LoadFromFile(FileName); + end + else + begin + FileName:=GetAppDataPath+'\Embarcadero\.cg_license'; + if FileExists(FileName) then + begin + MemoryStream.LoadFromFile(FileName); + end; + end; + end; + if MemoryStream.Size>8 then + begin + MemoryStream.Position:=0; + MemoryStream.Read(dwVerify,SizeOf(dwVerify)); + MemoryStream.Read(dwSize,SizeOf(dwSize)); + dwVerify:=(Swap(loWord(dwVerify)) shl 16) or Swap(HiWord(dwVerify)); + dwSize:=(Swap(loWord(dwSize)) shl 16) or Swap(HiWord(dwSize)); + pBuf:=AllocMem(dwSize); + MemoryStream.Read(pBuf^,dwSize); + p:=pBuf; + eax:=GetKey(); + for i := 0 to dwSize-1 do + begin + esi:=p^; + if (esi and $80)=$80 then esi:=esi or $ffffff00; + ebx:=(eax shr 24) and $FF; + p^:=p^ xor ebx; + inc(p); + eax:=eax xor esi; + ebx:=eax shl 8; + eax:=eax xor ebx; + ebx:=eax shl 16; + eax:= eax xor ebx; + ebx:=eax shl 24; + eax:=eax xor ebx; + end; + eax:=eax and $7FFFFFFF; + if eax=dwVerify then + begin + for i := 0 to dwSize-1 do + begin + if PByte(Cardinal(pBuf)+i)^=36 then Break; //$ + end; + Inc(i); + j:=0; + while (i13) and (j<10) do + begin + Result:=Result+Chr(PByte(Cardinal(pBuf)+i)^); + Inc(i); + inc(j); + end; + end; + FreeMem(pBuf,dwSize); + end; + finally + MemoryStream.Free; + end; +end; + +function GenerateLicenseFile(SerialNumber,RegistrationCode:string;RadStudioVersion:PRadStudioVersion;var FileName:string):Boolean; +const + ModStr:string='8EBD9E688D7106E57BCF63D41BADCE133FEB4CDB718F48F7BF39F6A26EB60BAE'+ + '0E930DC984FDED2537750C9DCFBB87D7AC7F3AA4D65D9E35C2D277BCB0ECDCA0'+ + '2D7DAE739AC8BCAE86914F6E77C17A82C77438421FC315DC38F09C7E840AF41E'+ + '663C5562222E661ED22578A234B58481F862CEABF477C89AE70F15134F83BC7E'+ + 'C2EF57E7274EB74353DE22283113485D9803D4050EF46DB1467EE9D066B104EB'+ + '385D3C36BD29B58E237E22C0BE66D450BDFCED524481B6DCE3F83BBEC547F926'+ + 'AD23057504DEDB9723EBFD26218167AAC79485FF608F8881D9A6AF5C57BE9A2F'+ + 'B52047ABA92F806955580517F6D147BA1FD5DB3EEF1CEE4CA250D1C0FA824CD9'; + ExpStr:string='7E8325B1791B628766F2EB82057E4895DB234C1D7B4B09DB3B8BBE433D68F075'+ + '36C9B38096F51088D9DC4E7058BBD7AC9A60B1B383A3BA23E026F6A53112DE80'+ + 'C191115BB9268DC509D424D8BE1FA7DBDDB7EE5CFD15C57C48A349B1008B4CCE'+ + 'DCC240D31784945260E3814612FD871242FA203F5C1006A6F47FF3A807E3B4DE'+ + '39535FB5523ABED7B4337606E69245EC13BF9B553FD6F45B0FD290D7CBBEB8C8'+ + 'DF2252DE7EB6A83A679873CC9842B52A093ED00742F11CD23CB5278873253E79'+ + '0E30B16AC72B7ACF9824B568ED971D768B95CA9D4C9A40C884542B8696AADF58'+ + '184CE6376E51451EF8D266ECA691ECAB25E15AA8E527312755A55C2B7D390AD9'; +var + Slip,Tmp:AnsiString; + Len,v2,v5:Cardinal; + FGInt,exp,modb,res:TFGInt; + i:Integer; + Stream:TMemoryStream; + SearchRec:TSearchRec; +begin + Result:=False; + if (Trim(SerialNumber)='') or (Trim(RegistrationCode)='') or + (TryStrToInt(Trim(RegistrationCode),i)=False) then Exit; + + Slip:=AnsiString(CreateLicenseText(SerialNumber,RegistrationCode,RadStudioVersion)); + + Len:= Length(Slip); + Len:=(Swap(loWord(Len)) shl 16) or Swap(HiWord(Len)); + Tmp:=PChar(@Len)^+(PChar(@Len)+1)^+(PChar(@Len)+2)^+(PChar(@Len)+3)^+Slip; + Tmp:='01'+StringOfChar('F',66)+'00'+UpperCase(SHA1Print(SHA1String(Tmp))); + + ConvertHexStringToBase256String(Tmp,Tmp); + Base256StringToFGInt(Tmp,FGInt); + + ConvertHexStringToBase256String(ExpStr,Tmp); + Base256StringToFGInt(Tmp,exp); + + ConvertHexStringToBase256String(ModStr,Tmp); + Base256StringToFGInt(Tmp,modb); + + FGIntModExp(FGInt,exp,modb,res); + FGIntToBase256String(res,Tmp); + PGPConvertBase256to64(Tmp,Tmp); + + FGIntDestroy(FGInt); + FGIntDestroy(exp); + FGIntDestroy(modb); + FGIntDestroy(res); + + Slip:=StringReplace(Slip,'e.sign'#10'0'#10,'e.sign'#10'CgeEeu66fCgQJBaqKQwwyiqyHYb22nc2VZRmQVasSDnZAtB/QTLt0CYdgdN16XCz/Nt032fMwTsytchG0l2UeA=='#10,[rfReplaceAll]); + Slip:=StringReplace(Slip,'e.sign2'#10'0'#10,'e.sign2'#10'JWKzOwTKBL+zOP5wrouG5ta/mH+Fvsgb7hb8oJTzu4r3gK/6sh95zKAWKiydqsgvV9pxPXTAlkxv9wAecqJKTQ=='#10,[rfReplaceAll]); + Slip:=StringReplace(Slip,'e.sign3'#10'0'#10,'e.sign3'#10+Tmp+#10,[rfReplaceAll]); + + v2:=$E7F931C2; + for i := 0 to Length(Slip) - 1 do + begin + Slip[i+1]:= AnsiChar(Chr(Ord(Slip[i+1]) xor ((v2 shr 24) and $FF))); + v5:=Ord(Slip[i+1]); + if (v5 and $80)=$80 then v5:=v5 or $ffffff00; + v5:= v5 xor v2; + v5:=(v5 shl 8) xor v5; + v5:=(v5 shl 16) xor v5; + v5:=(v5 shl 24) xor v5; + v2:=v5; + end; + + v2:=(Swap(loWord(v2)) shl 16) or Swap(HiWord(v2)); + Len:=Length(Slip); + Len:=(Swap(loWord(Len)) shl 16) or Swap(HiWord(Len)); + + Stream:=TMemoryStream.Create; + try + Stream.Write(v2,4); + Stream.Write(Len,4); + Stream.Write(Slip[1],Length(Slip)); + if (FileName='') or (not DirectoryExists(ExtractFilePath(FileName))) then + begin + if DirectoryExists(GetAppDataPath+'\Embarcadero') then + begin + Tmp:=Format('%s\Embarcadero\.%d_%d.19*.slip',[GetAppDataPath,RadStudioVersion^.LicHostPID,RadStudioVersion^.LicHostSKU]); +{ + if (FindFirst(Tmp,faAnyFile,SearchRec)=0) and + (MessageBox(0,PAnsiChar(Format('Do you want to Delete the old slip file int %s folder',[GetAppDataPath])), 'Rad Studio Keygen',MB_YESNO + MB_ICONQUESTION) = IDYES) then +} + if (FindFirst(Tmp,faAnyFile,SearchRec)=0) then + begin + DeleteFile(PAnsiChar(Format('%s\Embarcadero\%s',[GetAppDataPath,SearchRec.Name]))); + while FindNext(SearchRec)=0 do + begin + DeleteFile(PAnsiChar(Format('%s\Embarcadero\%s',[GetAppDataPath,SearchRec.Name]))); + end; + end; + SysUtils.FindClose(SearchRec); + FileName:=Format('%s\Embarcadero\.%d_%d.19%d%d%d%d%d%d%d%d%d%d%d.slip',[GetAppDataPath,RadStudioVersion^.LicHostPID,RadStudioVersion^.LicHostSKU, + Random(10),Random(10),Random(10),Random(10),Random(10), + Random(10),Random(10),Random(10),Random(10),Random(10),Random(10)]); + end + else + FileName:=ExtractFileDir(ParamStr(0))+'\RAD Studio Activation.slip'; + end; + Stream.SaveToFile(FileName); +{ + PatchmOasisRuntime(RadStudioVersion); +} + Result:=True; + finally + Stream.Free; + end; +end; + +end. diff --git a/10.3.3/Keygen/RadLicense.pas b/10.3.3/Keygen/RadLicense.pas new file mode 100644 index 0000000..6c6130d --- /dev/null +++ b/10.3.3/Keygen/RadLicense.pas @@ -0,0 +1,248 @@ +unit RadLicense; + +interface + +uses RadVersion,SysUtils; + +function CreateLicenseText(SerialNumber,ActiveCode:string;RadStudioVersion:PRadStudioVersion):string; + +implementation + +function CreateLicenseText(SerialNumber,ActiveCode:string;RadStudioVersion:PRadStudioVersion):string; +var + pid,skuid:string; +begin + pid:=IntToStr(RadStudioVersion^.LicHostPID); + skuid:=IntToStr(RadStudioVersion^.LicHostSKU); + + Result:='11'#10; + Result:=Result+'e.pkg'#10'Embarcadero RAD Studio '+ RadStudioVersion^.LicVerStr +' Architect'#10; + Result:=Result+'e.pt'#10'10'#10; + Result:=Result+'e.sign'#10'0'#10; + Result:=Result+'e.sign2'#10'0'#10; + Result:=Result+'e.sign3'#10'0'#10; + Result:=Result+'export.allowed'#10'0'#10; + Result:=Result+'import.allowed'#10'1'#10; + Result:=Result+'import.silent'#10'1'#10; + Result:=Result+'licensed.serialno'#10+SerialNumber+#10; + Result:=Result+'nodelock.node'#10'0'#10; + Result:=Result+'nodelock.session'#10+ActiveCode+#10; + + Result:=Result+'4'#10; + + Result:=Result+'26'#10; + Result:=Result+'active'#10'T'#10; + Result:=Result+'beta'#10'0'#10; + Result:=Result+'exportable'#10'0'#10; + Result:=Result+'hostpid'#10+pid+#10; + Result:=Result+'hostskuid'#10+skuid+#10; + Result:=Result+'internaluse'#10'0'#10; + Result:=Result+'naggy'#10'0'#10; + Result:=Result+'noncommercial'#10'0'#10; + Result:=Result+'noncommercial_label'#10'No'#10; + Result:=Result+'platform'#10'1'#10; + Result:=Result+'platform_label'#10'Windows'#10; + Result:=Result+'product'#10'2000'#10; + Result:=Result+'productid'#10+ RadStudioVersion^.LicDelphiPID +#10; + Result:=Result+'productid_label'#10'Delphi '+ RadStudioVersion^.LicVerStr +#10; + Result:=Result+'productsku'#10+skuid+#10; + Result:=Result+'productsku_label'#10'Architect'#10; + Result:=Result+'rndkey'#10'20264023'#10; + Result:=Result+'serialno'#10+SerialNumber+#10; + Result:=Result+'sku'#10+skuid+#10; + Result:=Result+'templicense'#10'0'#10; + Result:=Result+'termtype'#10'0'#10; + Result:=Result+'termtype_label'#10'Unlimited'#10; + Result:=Result+'title'#10'Delphi '+ RadStudioVersion^.LicVerStr +' Architect'#10; + Result:=Result+'trial'#10'0'#10; + Result:=Result+'upgrade'#10'0'#10; + Result:=Result+'version'#10'26'#10; + Result:=Result+'27'#10; + Result:=Result+'Android'#10'T'#10; + Result:=Result+'DESIGNDIAGRAMS'#10'TRUE'#10; + Result:=Result+'DESIGNPROJECTS'#10'TRUE'#10; + Result:=Result+'Desktop'#10'T'#10; + Result:=Result+'FULLQA'#10'TRUE'#10; + Result:=Result+'FulliOS'#10'T'#10; + Result:=Result+'Linux64'#10'T'#10; + Result:=Result+'MODELLING'#10'TRUE'#10; + Result:=Result+'Mobile'#10'T'#10; + Result:=Result+'OSX32'#10'T'#10; + Result:=Result+'OSX64'#10'T'#10; + Result:=Result+'Win32'#10'T'#10; + Result:=Result+'Win64'#10'T'#10; + Result:=Result+'a100'#10'MakeThingsHappen'#10; + Result:=Result+'a1000'#10'PrintMoreMoney'#10; + Result:=Result+'a101'#10'ImGivinItAllShesGot'#10; + Result:=Result+'a200'#10'StampIt'#10; + Result:=Result+'a250'#10'ItsToolTimeBaby'#10; + Result:=Result+'a300'#10'TheMalteseFalcon'#10; + Result:=Result+'a301'#10'GlueSolvent'#10; + Result:=Result+'hostsuite'#10+pid+#10; + Result:=Result+'iOSDevice'#10'T'#10; + Result:=Result+'iOSDevice32'#10'T'#10; + Result:=Result+'iOSDevice64'#10'T'#10; + Result:=Result+'iOSSimulator'#10'T'#10; + Result:=Result+'updatelevel'#10'0.0'#10; + Result:=Result+'updates'#10'1'#10; + + Result:=Result+'26'#10; + Result:=Result+'active'#10'T'#10; + Result:=Result+'beta'#10'0'#10; + Result:=Result+'exportable'#10'0'#10; + Result:=Result+'hostpid'#10+pid+#10; + Result:=Result+'hostskuid'#10+skuid+#10; + Result:=Result+'internaluse'#10'0'#10; + Result:=Result+'naggy'#10'0'#10; + Result:=Result+'noncommercial'#10'0'#10; + Result:=Result+'noncommercial_label'#10'No'#10; + Result:=Result+'platform'#10'1'#10; + Result:=Result+'platform_label'#10'Windows'#10; + Result:=Result+'product'#10'4000'#10; + Result:=Result+'productid'#10+ RadStudioVersion^.LicCBuilderPID +#10; + Result:=Result+'productid_label'#10'C++Builder '+ RadStudioVersion^.LicVerStr +#10; + Result:=Result+'productsku'#10+skuid+#10; + Result:=Result+'productsku_label'#10'Architect'#10; //Architect + Result:=Result+'rndkey'#10'20264023'#10; + Result:=Result+'serialno'#10+SerialNumber+#10; + Result:=Result+'sku'#10+skuid+#10; + Result:=Result+'templicense'#10'0'#10; + Result:=Result+'termtype'#10'0'#10; + Result:=Result+'termtype_label'#10'Unlimited'#10; + Result:=Result+'title'#10'C++Builder '+ RadStudioVersion^.LicVerStr +' Architect'#10; + Result:=Result+'trial'#10'0'#10; + Result:=Result+'upgrade'#10'0'#10; + Result:=Result+'version'#10'20'#10; + Result:=Result+'26'#10; + Result:=Result+'Android'#10'T'#10; + Result:=Result+'DESIGNDIAGRAMS'#10'TRUE'#10; + Result:=Result+'DESIGNPROJECTS'#10'TRUE'#10; + Result:=Result+'Desktop'#10'T'#10; + Result:=Result+'FULLQA'#10'TRUE'#10; + Result:=Result+'FulliOS'#10'T'#10; + Result:=Result+'MODELLING'#10'TRUE'#10; + Result:=Result+'Mobile'#10'T'#10; + Result:=Result+'OSX32'#10'T'#10; + Result:=Result+'OSX64'#10'T'#10; + Result:=Result+'Win32'#10'T'#10; + Result:=Result+'Win64'#10'T'#10; + Result:=Result+'a100'#10'MakeThingsHappen'#10; + Result:=Result+'a1000'#10'PrintMoreMoney'#10; + Result:=Result+'a101'#10'ImGivinItAllShesGot'#10; + Result:=Result+'a200'#10'StampIt'#10; + Result:=Result+'a250'#10'ItsToolTimeBaby'#10; + Result:=Result+'a300'#10'TheMalteseFalcon'#10; + Result:=Result+'a301'#10'GlueSolvent'#10; + Result:=Result+'hostsuite'#10+pid+#10; + Result:=Result+'iOSDevice'#10'T'#10; + Result:=Result+'iOSDevice32'#10'T'#10; + Result:=Result+'iOSDevice64'#10'T'#10; + Result:=Result+'iOSSimulator'#10'T'#10; + Result:=Result+'updatelevel'#10'0.0'#10; + Result:=Result+'updates'#10'1'#10; + + Result:=Result+'26'#10; + Result:=Result+'active'#10'T'#10; + Result:=Result+'beta'#10'0'#10; + Result:=Result+'exportable'#10'0'#10; + Result:=Result+'hostpid'#10+pid+#10; + Result:=Result+'hostskuid'#10+skuid+#10; + Result:=Result+'internaluse'#10'0'#10; + Result:=Result+'naggy'#10'0'#10; + Result:=Result+'noncommercial'#10'0'#10; + Result:=Result+'noncommercial_label'#10'No'#10; + Result:=Result+'platform'#10'0'#10; + Result:=Result+'platform_label'#10'Cross Platform'#10; + Result:=Result+'product'#10'7000'#10; + Result:=Result+'productid'#10'7113'#10; + Result:=Result+'productid_label'#10'InterBase 2020'#10; //InterBase 2020 + Result:=Result+'productsku'#10'0'#10; + Result:=Result+'productsku_label'#10'Server'#10; //Server + Result:=Result+'rndkey'#10'20264023'#10; + Result:=Result+'serialno'#10+SerialNumber+#10; + Result:=Result+'sku'#10'0'#10; + Result:=Result+'templicense'#10'0'#10; + Result:=Result+'termtype'#10'0'#10; + Result:=Result+'termtype_label'#10'Unlimited'#10; + Result:=Result+'title'#10'InterBase 2020 Server'#10; //InterBase 2020 Server + Result:=Result+'trial'#10'0'#10; + Result:=Result+'upgrade'#10'0'#10; + Result:=Result+'version'#10'8'#10; + Result:=Result+'21'#10; + Result:=Result+'changeView'#10'1'#10; + Result:=Result+'connectionMonitoring'#10'1'#10; + Result:=Result+'connectionsPerUser'#10'200'#10; + Result:=Result+'customVarId'#10' '#10; + Result:=Result+'databaseAccess'#10'1'#10; + Result:=Result+'dbEncryption'#10'1'#10; + Result:=Result+'ddlOperations'#10'1'#10; + Result:=Result+'devLicense'#10'1'#10; + Result:=Result+'externalFileAccess'#10'1'#10; + Result:=Result+'internetAccess'#10'1'#10; + Result:=Result+'languages'#10'ALL'#10; + Result:=Result+'licensedCpus'#10'32'#10; + Result:=Result+'licensedUsers'#10'5000'#10; + Result:=Result+'nodeID'#10' '#10; + Result:=Result+'otwEncryption'#10'1'#10; + Result:=Result+'remoteAccess'#10'1'#10; + Result:=Result+'serverAccess'#10'1'#10; + Result:=Result+'togoAccess'#10'0'#10; + Result:=Result+'updatelevel'#10'0.0'#10; + Result:=Result+'useAddons'#10'0'#10; + Result:=Result+'version'#10'14.0'#10; + + Result:=Result+'26'#10; + Result:=Result+'active'#10'T'#10; + Result:=Result+'beta'#10'0'#10; + Result:=Result+'exportable'#10'0'#10; + Result:=Result+'hostpid'#10+pid+#10; + Result:=Result+'hostskuid'#10+skuid+#10; + Result:=Result+'internaluse'#10'0'#10; + Result:=Result+'naggy'#10'0'#10; + Result:=Result+'noncommercial'#10'0'#10; + Result:=Result+'noncommercial_label'#10'No'#10; + Result:=Result+'platform'#10'0'#10; + Result:=Result+'platform_label'#10'All'#10; + Result:=Result+'product'#10'7000'#10; + Result:=Result+'productid'#10'7113'#10; + Result:=Result+'productid_label'#10'InterBase 2020'#10; //InterBase 2020 + Result:=Result+'productsku'#10'16'#10; + Result:=Result+'productsku_label'#10'ToGo Edition'#10; //ToGo Edition + Result:=Result+'rndkey'#10'20264023'#10; + Result:=Result+'serialno'#10+SerialNumber+#10; + Result:=Result+'sku'#10'16'#10; + Result:=Result+'templicense'#10'0'#10; + Result:=Result+'termtype'#10'0'#10; + Result:=Result+'termtype_label'#10'Unlimited'#10; + Result:=Result+'title'#10'InterBase 2020 ToGo Edition'#10; //InterBase 2020 ToGo Edition + Result:=Result+'trial'#10'0'#10; + Result:=Result+'upgrade'#10'0'#10; + Result:=Result+'version'#10'8'#10; + Result:=Result+'21'#10; + Result:=Result+'changeView'#10'1'#10; + Result:=Result+'connectionMonitoring'#10'1'#10; + Result:=Result+'connectionsPerUser'#10'200'#10; + Result:=Result+'customVarId'#10' '#10; + Result:=Result+'databaseAccess'#10'1'#10; + Result:=Result+'dbEncryption'#10'1'#10; + Result:=Result+'ddlOperations'#10'1'#10; + Result:=Result+'devLicense'#10'1'#10; + Result:=Result+'externalFileAccess'#10'1'#10; + Result:=Result+'internetAccess'#10'1'#10; + Result:=Result+'languages'#10'ALL'#10; + Result:=Result+'licensedCpus'#10'32'#10; + Result:=Result+'licensedUsers'#10'5000'#10; + Result:=Result+'nodeID'#10' '#10; + Result:=Result+'otwEncryption'#10'1'#10; + Result:=Result+'remoteAccess'#10'1'#10; + Result:=Result+'serverAccess'#10'1'#10; + Result:=Result+'togoAccess'#10'1'#10; + Result:=Result+'updatelevel'#10'0.0'#10; + Result:=Result+'useAddons'#10'0'#10; + Result:=Result+'version'#10'14.0'#10; + + Result:=Result+'1'#10; + Result:=Result+'updatelevel'#10'0.0'#10; +end; + +end. diff --git a/10.3.3/Keygen/RadVersion.pas b/10.3.3/Keygen/RadVersion.pas new file mode 100644 index 0000000..8f48572 --- /dev/null +++ b/10.3.3/Keygen/RadVersion.pas @@ -0,0 +1,85 @@ +unit RadVersion; + +interface +uses Windows,Classes,SysUtils; +type + TPatchInfo=record + Crc:DWORD; + Sha1:string; + PatchOffset:DWORD; + FinalizeArrayOffset:DWORD; + end; + + TRadStudioVersion=record + Name:string; // Rad Studio 10.2 Tokyo Update2 + Ver:string; // 25.0.29039.2004 + BDSVersion:string; // 19.0 + LicVerStr:string; // 10.2 Tokyo + LicHostPID:Integer; // 8219 + LicHostSKU:Integer; // 52 + LicDelphiPID:string; // 2025 + LicCBuilderPID:string; // 4022 +// BdsPatchInfo:TPatchInfo; +// LicenseManagerPatchInfo:TPatchInfo; +// mOasisRuntimePatchInfo:TPatchInfo; +// SetupGUID:string; +// ISOUrl:string; +// ISOMd5:string; + end; + PRadStudioVersion=^TRadStudioVersion; +var + RadStudioVersionList:TStringList; +implementation + +procedure InitRadStudioVersion(VerList:TStringList); +var + RadStudioVersion:PRadStudioVersion; +begin + New(RadStudioVersion); + with RadStudioVersion^ do + begin + Name := 'Rad Studio 10.3.3 Rio 7899 Architect'; + Ver := '26.0.36039.7899'; + BDSVersion := '20.0'; + LicVerStr := '10.3'; + LicHostPID := 8220; + LicHostSKU := 53; + LicDelphiPID := '2026'; + LicCBuilderPID := '4023'; +// BdsPatchInfo.Crc := $C426EC4A; +// BdsPatchInfo.Sha1 := '43BB879FE9EFD7B8752F2B5D99DF31F7CD948D68'; +// BdsPatchInfo.PatchOffset := $1F724; +// BdsPatchInfo.FinalizeArrayOffset := $11EF7C; +// LicenseManagerPatchInfo.Crc := $0D512F70; +// LicenseManagerPatchInfo.Sha1 := '8D16D4521BCC12D537EB20B33864654E7A5B81C0'; +// LicenseManagerPatchInfo.PatchOffset := $1F002C; +// LicenseManagerPatchInfo.FinalizeArrayOffset := $6227A4; +// mOasisRuntimePatchInfo.Sha1 := '101FC6D71A1DDEAF3B079477560DD0307ADE3C80'; +// mOasisRuntimePatchInfo.PatchOffset := $0016CFE9; +// SetupGUID := '{426A3606-6CB8-4CF8-87A8-44388377C47D}'; +// ISOUrl := 'http://altd.embarcadero.com/download/radstudio/10.3/delphicbuilder10_3_0_94364.iso'; +// ISOMd5 := '0882D58CB53A7D0A828CC45D06C6ECD0'; + end; + VerList.AddObject(RadStudioVersion^.Name, TObject(RadStudioVersion)); +end; + +procedure FinallyRadStudioVersion(VerList:TStringList); +var + RadStudioVersion:PRadStudioVersion; +begin + while VerList.Count>0 do + begin + RadStudioVersion:=PRadStudioVersion(VerList.Objects[0]); + if RadStudioVersion<>nil then Dispose(RadStudioVersion); + VerList.Delete(0); + end; +end; + +initialization + RadStudioVersionList:= TStringList.Create; + InitRadStudioVersion(RadStudioVersionList); +finalization + FinallyRadStudioVersion(RadStudioVersionList); + FreeAndNil(RadStudioVersionList); + +end. diff --git a/10.3.3/Keygen/Sha1.pas b/10.3.3/Keygen/Sha1.pas new file mode 100644 index 0000000..2029e4f --- /dev/null +++ b/10.3.3/Keygen/Sha1.pas @@ -0,0 +1,251 @@ +{ + +*************************************************** +* A binary compatible SHA1 implementation * +* written by Dave Barton (davebarton@bigfoot.com) * +*************************************************** +* 160bit hash size * +*************************************************** + +} +unit SHA1; + +interface +uses + Windows,SysUtils; + +type + TSHA1Digest = array[0..19] of byte; + TSHA1Context = record + Hash: array[0..4] of DWord; + Hi, Lo: integer; + Buffer: array[0..63] of byte; + Index: integer; + end; + +procedure SHA1Init(var Context: TSHA1Context); +procedure SHA1Update(var Context: TSHA1Context; Buffer: pointer; Len: integer); +procedure SHA1Final(var Context: TSHA1Context; var Digest: TSHA1Digest); + + +function SHA1String(M: AnsiString): TSHA1Digest; +function SHA1File(N: string): TSHA1Digest; +function SHA1Print(Digest: TSHA1Digest): AnsiString; + +//****************************************************************************** +implementation +{ +$R- +} + +function LRot16(X: Word; c: longint): Word; +begin + LRot16 := (X shl c) or (X shr (16 - c)); +end; + + +function RRot16(X: Word; c: longint): Word; +begin + RRot16 := (X shr c) or (X shl (16 - c)); +end; + + +function LRot32(X: DWord; c: longint): DWord; +begin + LRot32 := (X shl c) or (X shr (32 - c)); +end; + + +function RRot32(X: DWord; c: longint): DWord; +begin + RRot32 := (X shr c) or (X shl (32 - c)); +end; + + + +//****************************************************************************** + +function F1(x, y, z: DWord): DWord; +begin + Result := z xor (x and (y xor z)); +end; + +function F2(x, y, z: DWord): DWord; +begin + Result := x xor y xor z; +end; + +function F3(x, y, z: DWord): DWord; +begin + Result := (x and y) or (z and (x or y)); +end; + +//****************************************************************************** + +function RB(A: DWord): DWord; +begin + Result := (A shr 24) or ((A shr 8) and $FF00) or ((A shl 8) and $FF0000) or (A shl 24); +end; + +procedure SHA1Compress(var Data: TSHA1Context); +var + A, B, C, D, E, T: DWord; + W: array[0..79] of DWord; + i: integer; +begin + Move(Data.Buffer, W, Sizeof(Data.Buffer)); + for i := 0 to 15 do + W[i] := RB(W[i]); + for i := 16 to 79 do + W[i] := LRot32(W[i - 3] xor W[i - 8] xor W[i - 14] xor W[i - 16], 1); + A := Data.Hash[0]; B := Data.Hash[1]; C := Data.Hash[2]; D := Data.Hash[3]; E := Data.Hash[4]; + for i := 0 to 19 do + begin + T := LRot32(A, 5) + F1(B, C, D) + E + W[i] + $5A827999; + E := D; D := C; C := LRot32(B, 30); B := A; A := T; + end; + for i := 20 to 39 do + begin + T := LRot32(A, 5) + F2(B, C, D) + E + W[i] + $6ED9EBA1; + E := D; D := C; C := LRot32(B, 30); B := A; A := T; + end; + for i := 40 to 59 do + begin + T := LRot32(A, 5) + F3(B, C, D) + E + W[i] + $8F1BBCDC; + E := D; D := C; C := LRot32(B, 30); B := A; A := T; + end; + for i := 60 to 79 do + begin + T := LRot32(A, 5) + F2(B, C, D) + E + W[i] + $CA62C1D6; + E := D; D := C; C := LRot32(B, 30); B := A; A := T; + end; + Data.Hash[0] := Data.Hash[0] + A; + Data.Hash[1] := Data.Hash[1] + B; + Data.Hash[2] := Data.Hash[2] + C; + Data.Hash[3] := Data.Hash[3] + D; + Data.Hash[4] := Data.Hash[4] + E; + FillChar(W, Sizeof(W), 0); + FillChar(Data.Buffer, Sizeof(Data.Buffer), 0); +end; + +//****************************************************************************** + +procedure SHA1Init(var Context: TSHA1Context); +begin + Context.Hi := 0; Context.Lo := 0; + Context.Index := 0; + FillChar(Context.Buffer, Sizeof(Context.Buffer), 0); + Context.Hash[0] := $67452301; + Context.Hash[1] := $EFCDAB89; + Context.Hash[2] := $98BADCFE; + Context.Hash[3] := $10325476; + Context.Hash[4] := $C3D2E1F0; +end; + +//****************************************************************************** + +procedure SHA1UpdateLen(var Context: TSHA1Context; Len: integer); +var + i, k: integer; +begin + for k := 0 to 7 do + begin + i := Context.Lo; + Inc(Context.Lo, Len); + if Context.Lo < i then + Inc(Context.Hi); + end; +end; + +//****************************************************************************** + +procedure SHA1Update(var Context: TSHA1Context; Buffer: pointer; Len: integer); +type + PByte = ^Byte; +begin + SHA1UpdateLen(Context, Len); + while Len > 0 do + begin + Context.Buffer[Context.Index] := PByte(Buffer)^; + Inc(PByte(Buffer)); + Inc(Context.Index); + Dec(Len); + if Context.Index = 64 then + begin + Context.Index := 0; + SHA1Compress(Context); + end; + end; +end; + +//****************************************************************************** + +procedure SHA1Final(var Context: TSHA1Context; var Digest: TSHA1Digest); +type + PDWord = ^DWord; +begin + Context.Buffer[Context.Index] := $80; + if Context.Index >= 56 then + SHA1Compress(Context); + PDWord(@Context.Buffer[56])^ := RB(Context.Hi); + PDWord(@Context.Buffer[60])^ := RB(Context.Lo); + SHA1Compress(Context); + Context.Hash[0] := RB(Context.Hash[0]); + Context.Hash[1] := RB(Context.Hash[1]); + Context.Hash[2] := RB(Context.Hash[2]); + Context.Hash[3] := RB(Context.Hash[3]); + Context.Hash[4] := RB(Context.Hash[4]); + Move(Context.Hash, Digest, Sizeof(Digest)); + FillChar(Context, Sizeof(Context), 0); +end; + + +function SHA1String(M: AnsiString): TSHA1Digest; +var + Context: TSHA1Context; +begin + SHA1Init(Context); + SHA1Update(Context, PAnsiChar(M), length(M)); + SHA1Final(Context, Result); +end; + +function SHA1File(N: string): TSHA1Digest; +var + FileHandle: THandle; + MapHandle: THandle; + ViewPointer: pointer; + Context: TSHA1Context; +begin + SHA1Init(Context); + FileHandle := CreateFile(pChar(N), GENERIC_READ, FILE_SHARE_READ or FILE_SHARE_WRITE, + nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL or FILE_FLAG_SEQUENTIAL_SCAN, 0); + if FileHandle <> INVALID_HANDLE_VALUE then try + MapHandle := CreateFileMapping(FileHandle, nil, PAGE_READONLY, 0, 0, nil); + if MapHandle <> 0 then try + ViewPointer := MapViewOfFile(MapHandle, FILE_MAP_READ, 0, 0, 0); + if ViewPointer <> nil then try + SHA1Update(Context, ViewPointer, GetFileSize(FileHandle, nil)); + finally + UnmapViewOfFile(ViewPointer); + end; + finally + CloseHandle(MapHandle); + end; + finally + CloseHandle(FileHandle); + end; + SHA1Final(Context, Result); +end; + +function SHA1Print(Digest: TSHA1Digest): AnsiString; +var + I: byte; +const + Digits: array[0..15] of AnsiChar = + ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'); +begin + Result := ''; + for I := 0 to 19 do Result := Result + Digits[(Digest[I] shr 4) and $0F] + Digits[Digest[I] and $0F]; +end; + +end. \ No newline at end of file diff --git a/10.3.3/Release/Activator.exe b/10.3.3/Release/Activator.exe new file mode 100644 index 0000000000000000000000000000000000000000..26783af2bcbb82a3d694629a379644b8168dd03b GIT binary patch literal 219176 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%0AqJ5m;ryX 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 z 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 F;^gSq=-7^CZ;EdS{pmmv#+T+8Giv$ z!7F2dNkB=upl+yv;_H>WfIpat6&B z7-)u|s3-vG*|SR7o0Z6?8D-2~bo}w8wX#cetZLsA!k7r=Q!UJ^Ss#eo%;xe-_{iiW zGYG^~wU%G(kB|u%MR8{Wa~uIeBG@zeh#9`whJ$%b*wC!fS`6T1M=hT8kZclR%vKWf zF%l#55vgaDlATJBO6VlL7z!B%VZKhI^ui;`Pw4A0y$tra3zCOJ?94@5;oioi2h0{$zmIu zA$tM|KMC{Iw2^$N2s;YCC<)X3XTt9MBViYi0DI;|mwEhzB@Alov4`l4ozgJo6kHn- z_DD^bA4^zBJz@295gv5tr{;k|`!&XU%o*=yppKkI2U(v-TX-s|G$Juz)F*QwYBMm4 z6`gski9AlA!bo&=_0gdlDCD82m}C?~Jb6Q>z??u4hA`DQcSJhEI#lftQiB5PGBYd{ zQR3z#lu3W2pMY~p#9~b>QLvEE3)#@c2)(`zv`W3mFEyomyd8Y4C6*9oA#o+-#S0sd z=>$n=tk+~=7%?bCd7pR5*&G}%Z+%p zkHo<|#Q@N>?{~aFZtj3~b@cuN)U-Oj#d6-0Yzv05-wL3&vS+xU#v`y+Vng^CflQDh zszkjBVOp_-8t*NG{}}eYK7$#ElmtjbmtRs@_=qr`z0(lP|56`dNup5p0q+p3z7P14 zf2zU%aZUfqdO8#bO-c3=2CB1%`xtYP=@MoJa#1)3c#@TlShL|&WJd@oQFACraoUoX zDqE?S8H;ES^~VI!s&Kg~$a5^J5JX4T))Ef&c}{^d$@5fkYhQLutlInCJXc$Fi18WJvAq)er zxK}4+E%6k>Tw|MD1&%Jxv|v$kbK*~CPMp`1S9QECRPmAoNRBA>a4U{4*3TEv?uW{& z2|Iroq-H00S+EN><^b3somoeTd$1=-2vh$CQ{}f&o3z#;PlTxsU)iMYE;K)RniZeLN0aCF!B=f7o_Cc?UH_!^PgdUTP`Cefju;|K}Zs?V94zXk50Tsehi7+j^szQ){8$50of$uzL zqs|PE-w%3NnOq3tj_$qE935WaYnAt_=z-zAUv31OSRk2P2G$nxLcpW3s1p)CiO88m zgkeZ0-jwYvQO12qR43RP5NOD*eTP>P4ONAF1SO=-Vq-R*vxfLV94|3~V#h#_=}Bg) zS5c))@8YGp(2fKsV{XGH!^I*vF>xh=*#JVwA?As>5wF>*!fZjX+=yznRxm%YmZxh; z$uo;#!979o0f|?DN`xYE_mz?x*U3>+#twaUl|ck{F_;KKTz&B_ z0CRE!pB7>cKrz`ETS_Xo;%Ecpfq~>JHPkS+aUfL%X2Mi>cxpm)Vr0T}m9A2t*ml!` zxcSCTiB5_ULFr$NC@D=8(NF2dh6_uWl#(dYa8bIE)lDZy2NxGwX*Y#EG&+_aCYHn| zB=ZM|ri~XRsnQ^gG`vshq(RXM1VtJ8NyOshBmuOe#!OWCL6K2JO2PIq6VUb};-7<6 z%Dx^2kHTqkP3N2NFmlS`_NsXzL^&CRfx?jLM$W=$rCsx4c_6iFoam_ zG5AYt;)jv<73gl`WAPTkEW_(QQu7OMlD3zEMqbbBx1fZS6qztF78vYGDup<^QB_4| zC=Gm6F=GM z(~<=uN|Gi@Rcl!ci%(96;*;3qbc~IJR5I&j=7Q3CdBj%aMLj<1!3W023rM9tCx61d zq*97%+%P^8USFvXSMT*U>vfpQD;dWbVCtW-LdqI~IQ6p<_G)2+U5(#L@IgXq7tFC3 zoSQzSz-OxBEzpd=smFiY|5tNB+LMTMImXg?Ad{JUoP0Z`mm;LN<=SKmm+a-1Ym+Tp zvX@(??Tj}#Q7~x8xS5DEY!|Q1WZ;GIIIB>^m1}##HUA1;^s-eim!#x{IlCS6Q9HOY zAIY07dHe1b-Zp>+<{rWEfg@v=v?meEanf|L^GF18N*tN0b4sK=$rO^4rp-(zZF;e^ zCuuUoPUIV^vtXqKcTp{w*SA5J))jQ`!vEFf@IOr)7yNN(DKDZ3pVXitsuV?Eue?Zw z(==>Mi9698_s@?j>(2jYM_`As?zUfapToLi!1}_ofpvHNf-CMRVBLjZbbrmd2Yu1q zrUeNb@XSV9kFij9-s`HhHTw3$BhyM+C`Wx=T zZ@7>BhI{5W-1ENSUi1z3yWem(;eL%fP^t9|_mpqA=Y7Nd?l;`|WKZBLPs%ski@xE` zCo}%9Jel8cXE#*75`L`qR~+GV_Z#jhWNGk~$AnC8zw#7)!#z{)D}mt@qW^Vw+TdU5 ze#}Bh4YU$c0oFn)s=bh^?I@&NI|(W33d?_#S zK0=BID8d|_hH2_o;b+RP;B)5qEhJ(7i}uVW;Xk)?E4Zdq1;yd9JHwfQW54l71vdU` z;vXbuR!~-c_4zfdu%mbtHuZKhsI2_TpNV!}bAYxfp=({mIyLG4tjRp`ZsMEg zOMse#Kg6mB&zgVgyrKN&aCH21C~N#dO{Z>V-%MR@-$s2B38(oWUXCS)&mn1R))-QM zARR#7dusboK3o-0#5Cb3UDdyxg!toj;;QY$PcMKMKBK@pNse$Llf0?{DhMe+sytceKn>*#QmGg@{9273x6iy{@4CUzEA_X6@4rGO^YjvSvytX zN9=s6f=_VBA8J!Y$M6o;9Z25uv{^f!*h!u9;n{FSysb7qJlibov5o%}3XS}6xAHY? zpXJ<#`kUL-y;1njLZE(Wqohd=vs8ag?0L;WFX~@jmg=vGosasX`R7bILrpA=U*#Vk z^@X^bpr#QZZtUeA_$3d&QD{C#9gfsT!Yg%ng@Q&*biF%n_rf1^m~tBbIdh%4Z2B~>L9HSD$; zxIMs`ApAc)6M&xuSfp~_46_h$LS=shvl>tf&_Q|@06TyuAQ&(fkOas8%m-`$OS{6SrHBw#bsLLXw2FO^v@}R?{gM$i6s#wS5*yM+XkY&j zlA`ja7ks6yyn#n~NsZd3x?P1$O?79D@;;V+u_UZ2jOxx6)>oJ~8aMf*5Z&@5Lr4er z*+3ILgz`xuf*}d0Zsmb3aB4#REjYM02%6|PEe=wH0Q1zZv*MkJ*}gp3$MqZ87| zWjV?_UVtEJhKXZUR||cX^YFwpT>ql}$PhMo*RZMb4}5*z2PVfvC#vx5yUImVrVT#g zsvQ-_*^)%G%92nrtl~A%gzs-pE^%*$-@mEg)Zk^9=W`8(Q)nM zYUeu6HPLmB>jKwxu7$2|TotYsZlm31xXp80?Y7=+i(9_iQMdDM&)jOxuA9lau zZtBs-!@*;T#~F{u9+sXRJ#9UGyasy>_e%A;>ebcT#oO0A%KN#u!h5IBexK7m*L*5` zC_d(Z$lqLtB@THG`y5U=Ja+ioLEEu~qm^SPM}ecaqttP|Bi;L8@8iAooV}b!Iqz~d zaB*`9c6sX(={m`Eq+7JxY}~f7)h)w4(|xY{0{7+azqEk)jGtu)8&r6y(mlbVKJJSQ{Sa5$6Zeuw^->09_3c8mdN+1&a zAjlK^CAca0BpBq7?eNN>jbn_H+-a%P7N=8ARByfBEqnX)?$&2zj|cKR!e^>arq3du zWj-`ZWr9HxZQVq?iS%b-aXBI zo_oIgMfa8-@g6Td3_PtpJA3x@boTVZ4Kh)l8$I`W7I|LweCS#0`N@;#rH{L0EWJ8- z`J%oq^*ZJCx0jZ;nRjRJaPKtlZQgghIX*@{ZNL@UXR;63Y9cHMqtoa)^h$aoy@TFQ zm(eHbTl8eXJi#)-uY$vZ3xWzkwcxdYa^N{wI#@gK9c&z29XuTZ9H_DAuMwUL{d=UhiL*c zll`Zt2LBv(9)O)cI5ptO++i$-%FG8o3FfgT?qu#T7x=qP@TAcbx7vTe15K%S*fi58 zcs>b)rzu{&qt+BJ{0IN!9XWJDSY{?$5abuHR8dh8OuP`SIrxV_O=;j)CBFmmOAnF0Rm1VWV6ssoyfJx!$=VzL zDCxi)1QqW;1lVP|i}>!gXR||f@fz$}ob6KZ%EnKt)sOB{aE;w3A?Kbr;p!PGWj#Q> zb~K3~(gUm^v#=`bmqZSpmMhn15aI+uIgcncLY$BY5B|y^Dw|Kgl$Zz>Zw~pP3YqPj zlAwIGc2uo}5%5$P?w3`2LFsXDc!u0{!DDL{2la#W&O@m%Y7Bk@sZhN2V@rKZeT^Vo zI>>wei5&(1S==KQ5k`rrRQ9&;@u*)3xT{=*n3JeDDjB|t zSwA$!2%2&OIDrO2kv*l0`268#5{3hEkNPy!#Aw)vw1wOko<>RFLT*4OPj~p{)W;tH zd>ZZ(C+Vgj{RG6r9vfu+3Q?OI{0?Q~NYn7+0BNy3XtAdp@kZm<4eu_LD@-@U(2-4x zccTa>*%`(yFRS*x#JH~L!D4lKF zT1UV8+@QHN%{jWucO_=NQ-NwP0<5&40`Brc${n(E{B)rO?%R< zG%&`rz7~hd zb%Yf+Oxh8&R?E&xbZBz2nC~x26(__c#Nd)+zOO_apG>ZFD${L;}(MeErWAiTYvPo+Z-{aqE(NI zeW7ky}y(Vll z=srAh^wbGmtm`Il+nV@qvn-CjxozmIg<}d&m$um2!}R9|Ib75!&iX7loi(4%$^k#y za(J`oj7*bgtE0KsHwF2YEqGI8d+(z+H{M*SzO~L{%+zPSo|#0fYBTcY-|L^H&OYjys87#3v*-72 z)|vahGYa!&)*W}ckyz$+d0pFyNgr-czg!b_qu<2q1$84=hZ+q2og;dEJ7?G|dGx?v zGusS&xV_-mgb7z>yd8ElxM#ETh1btHPAoEcnKQ&fyL0r;xLC);f*kG)X5yv^Pn;I| z7=FKf*@QpZE?k#xbiGCS-(0st8M(_gPsm~sWH*G*)rK4H_`H&G-F;ihx%P!_x&EK>)6Soy&e{B zj(@p<b>{9lt&l4XW+bcOGVlEZ8n{>?YOLCJIRaFFM6ijJL59PYftqa!NIWTMPlpO!iT4&FWc-~Qki~! z(!$}dKNd%(i1ZxZ40js+%lp&v$X|Cl-;wNCaJ)1tc*MDlDQ?dO6g^qH-z2c`zzlv% z-4?yS-*&dbpA&EOL$2@xwYKYX#_Z7<;|XUDo6xgEqr0~KD0;kNdz)8R7WVJ{Zos9r z*&T}L>}L1snX9G65o9+z58UbcQXvCQvqL}?ayeMNt6LWtaI$XeG*b;r`X(51vd-|b zPSRP&P}6jpjh!3BnOhsk(QT#GWVl)6`O`+n?dvzyRu<1%(s^ZYr#be=x#rZVO&h&u zv>jb`;gn)%HTCyz&X>-gw={O31#SWXz{%0s!EFSMp{QM6+=f_soJQXt5hiF$w^5Eb zW?|E?#UmEQ@colhQ<77o$%TWY$|yVg9`(-Qy4}UUXb^0ZpIuFfSrA=5O*C1LZhy-SI3qp==%Vq(R)N#?+F-S}l35*dNJ8J5L$494&Me0m7YiXuLXpEI4Q|;-t z%1l|PoJp2&VY4zv{=V$^=^$`$5GXg)F@A!b4vw^gV{fs(O z)f%#D%az1mmL<#+b(7{4k2NbjcHG14dQnz&`{v@?OFRC4qUM7*qwAxZ{%vOeTJm$x zZ3~`kdbFjh#mwlMm6J^m+z(kh;NhtE4~>4c`(=xWfAQ)H=2*tY;Gh6S>-zz^OPgJZ zpOZOi!qnKn(_{P03O~{^w{w`M-~ zx$$&hru{8cUp-9jw6%3P99|dNhVH1g)10{$@nUg`d#_%}F=;9GVz%m#E|0BaZCi3U z3Z5RV1B1)Kxiu7F+x9$H$ef(=9P;S7_Nu@!sfik4dns#_W`*+iwTB;eV%N4a&yY4y zQ=p|s8ZTAn()*0n8W>e@d7P(KXm+A*3y_r-sEQ4m=CFFKWYt|yU z?{C}OOl!OE_%YwAWKq@d71SSR3%1bVyxe7i zw1eIv-zT@OMf$W&?>Dczh0f?rt`j=8SU;q-bk-g^o3|bH&U#vjy4Ee zmcR1GA9lw5k0vSRdWJ<9o1fwN^!WJOiWS!mMNexs^7z2HQy$*+AJFmpXT?4IkNk2q ze%B)5;Ac6m`%I5^dKo*c+T0;IICAZ_`5U-by0<$$;NGp6zgo#0M&^%RHDdEmwjoBX zo~^hM?GZSn?b#MXn=S2I_xrZDabA75rldYz`gqJ~lYOPq*yXJccFw%VT-UrU(W6fs zn_YOZzRhd-p=*Ce$~|uLex2TNr_DC|@|2^8f~8&bJ~TV{+u&7t_e^Y4x13hC<7`eO zI2A@4lFH9EJ1&k&SrA)i(lox(WOOs>G<9=A10PR|=dOY&NuTeE!WyIH@NdJtA$$Dx6VA6cCtgf&hq~?!G#v9dWZ|I$vA+so}+<9kb81$yF0tk37q4q$BNQ{e1SFoqhbUcgOgcu+;|> z#9NQH^_;!*Zpi`bt2~Jyn`?{3xeb}tr~a#ZA+E`1-C%>@AunqoZB;*C#00;2qiG>+ z-QcDzFh+OQXhPR?{=fFqjmLvC4hwe-l`s8hTfJcZ;IQR%4~-bPh5~EshN80Y%tZdH zy6u^kR@J&^@=O0mQ>Ne1bE?qnps`*j6a9s+O#%j9IC5fN-O44p(!eS0}O0rv3IFaeG$y8^Y?VTUY*DZT@@Ykn(j~VWq zJLl}~B`q%-d+l@Wl7EqNXq)NqYO4=jQd4wlOk-ZQUSVWVb#ki6JfO@rtzDnWbMnA# zqCxp@F0hIo)hyUDl`g>0dR~`lIe1zFA~h z*EfuN=3}gp=g70WtABnpa)H6_P3sNieO-8eO?3DY!3bI z_g?$1lq$TZ7M7O=2Ms+n>#%Wg%Gz_M^0IknFy@{>W!|Y8b9?=2bAC?r>V3jpWgEwq z@fyt%n*EEUO%DI#(xz|Emv6Ogw{4tg%x+Jfy_x;AiseH_tp1oC`NypmF7Dqe{F_bg zALCQdxo*i#TDd!Lf7Hg~qsP0Rvg~P}Lw#y%-2Uzro5R0+s!&OF@MJALz3;-bSWs_BN=RTG^OnZ+_tywD7@$@8pw%L!5e=#6;~F zy+qQ^=H8FiV>34_8M{xPBfej=_Hv{`@?z(@v%jBDAOGw@Y2?|*=DSZ0xYOhGr8~`D ztaVFi zRNi`9**^In=Z_yLcoSYRwOjtBiK7GeoI2B@=YmPE|Ezpvn9;1WLHWq{LEYMM^dG)E z^=aSfm7C(-*ZD`ToYnkv4s1tSl@^bL4Y?~4LhgBH8t?uA`;`#-j zOK%k^#RgZ?500~IFS`}KQmg-jNwm%=+3R)ohp!&?9Of5&WyUYh_gW1#;a)uWzS(iF z_*V0ut}^N7F!P?9AloFK&Nhkt*Gb$QxF-M9M{4xDd0FdeQyl}fc&0T^fQ1?7Yl665 z^`ij5)A#Jc|?p`4y4SK>mQ z9X0RfQ~&d;hc9t`c;kmQv-;dNId^f|20dT*=1KDfric3{bHWxDJ54TMxApOWn%jNT_r1B7pQVl5 zTNd>2XKmdRsUP|kZK}NP84#SoES+@XM8BWvbhHHhyd-S{_YBE?^Oj0pU|x9fr%suF z?~u$cO!~dmg&Dz>J~16;=66k8_WZ}0MKi|JcWvHnp3+GYG5YXKw~HP0vTMyhbouzo zo403l`o}wKvyFPt*+yOKhg?=DXVeO~mh~k>#%m)UP!ti$HK&{DG>q4D)+deG5)sQi z<7HLRS-7zEt75qh!nhSlog4-)iQant`|-yH{}rA32KDOHjt<_C+!>B*@R1p>MkRtMNK zvaRI_qF#qFd4CBvFHwMngrZ31m~qj^8gS#$GLQ1G#Dket08t-Dy`6vRO-kZA>@5 z15LZ~)jpL`K(g2epCU#pceLC1xq=YG=)U@bCev`d2 z$p0F4%h;)lGc6DxJ@Sx^GKdUdR|)#k8)xqu!qRV+i7nklNof18mI)+~-;x0CAO6$u zh`~QCOdVyFwXQ1SRX*nr&&gXIzSEvKcXe0F;fD!>j>nn}=(fN3TDN`nPhSu|yf2?q`pM9ij!Bn@S zb2k3{_x5><&g7O)dU9dqZuj=>+XG|{B>9)(KLfX7b$qYU3LGKLq zI`&hX@VNA5=Z^#K&0l5prl``CLA;>AzX#a_IZ{6OP_| zy<@%Cy=*47T+bvokU+h(}YZ{9mjy}R7w`QED)f3=-t>b~^tvg2zW z1U=gyW^~EpHh{BTvfoCF<(jGZkCEUzR8SMPr+E*m5UJ3hUN%%RTb2jRWLt7JDS+{_MMueez9q{oOqzaJLCn_0g4X(z4RobDGC z+kT7ALf<(6eW#E z-T0p$iN4wWZ8uu5rS|6Ggc;$jCim4pnCqEUD>hFbzj)2Z+riwQ2TXbU(Ait`mkoas z{q9yBI>hUk{`@X_?(g3Fcaro? zG5mAP$nW&prUpfd25skh3Ts~9a&TSd^U!Y7tKpqaX5MZ&=$*;&Ee4i}5z&$7UvTY8 zcmMt}vD1ZLnj5!H{3B;v!pGp8BMU+WzmL3nTpao!GO^>~h}p>}bbj~gzqjKQ(bK2S zFIRk@)y3}P{*_xet{1m=7XGLoR^2T!XV~Z`IYGW1<~_W<>tdIkGlXHorY#B;=nPt} z6ZN%=;hhPMtNn z(~T`Tzx|SPs!ftbyD=VuEz_K-8EqSNr~laBY6xoC)iBOq^!a&vb-}tZ>sAGw-Q0CR zhtoUvZAwjv>GdF@+YGlp!H;K&bcV?fL@rp`T<@w$p|j0>CTh zCn;<{jXyit=aHlSwROWyUbpN2Np$M=rHKzhyGf}2JvN>?`6Kh&pqgE+hA;Ik+3Pd+ z(c7Zg0iJ!LT8((H!Q-!lE`N2Hc`tMPtZ`fS2HTsjez>O7_K~JfCjaL9uK6_A-_|xi zyKBdF@72@GJ02CEzSCEKZfV_;&O6(zsLau0Zaoo?O&Ys#==A2t0*2ju^e)Kk=ZA-H zQwP&`tTanCv$<1lYS*6fDH&i^Hs1PFJDv55$3%t8y&pJ^%r-u{cP=-0@-LNffj(0p zs2u^>)=;wi!a}m4&rQ$PFsF_^1;N}}EZfBU4Wxl(g z&GG#7HthMRz3uNr*OHZvYE6qq1kvvN&~68A?cFbQaVv}~wTfBgoaKG0ucO=hK7*WE zmYW>-v38$u&XK|SXM}IP>K>d4k7*ZJ)^|(iW_`oUfBo@8x1BGy$5I!g(^p+9crftT zqC>5F4c$1kc>Cz>X}hogc0Hn^1@FjA@0yW+|FGFui_>Q7rK%d_?rPm{?KV`1phg6B8#TC8tbIO%qF|q)(kTz2V#Y9=&d^@}(HS zhF^TCd_aSnGJO6aUy9N-(zkBY!raxzSzyztd(V{gS<@0HjuQn9?&BLCHe%G>$ImM3 zKD>N$_0Hw!lc+3Z*=(`JKJGfUC-F6ty#-$zvcb9bN7M$ zE0(PMWkK#7>FsOht`r|Vb@I_Y=K1@NuV2k6_N7jh`BGPp`BKX-`%{|ScE+V{8qpvfHnL%0rwPO2QUOK5$0<^ z;y{0DE5gMBLfZIIdPqMC?q*znDg&k=!g|8w!88GwA2JYbiOT=Ra^8j(jdj;GNz-|M3IA9^(&vo*n5`kY1 z2q0l$+5mqEvpP7Koq?iH4P zR1n-tfm;aNx#51)SlCaIcnD3v)xqB`n0CM|hiL+L*B<_qA?&XK!(b1w_G8=lw|+8) z;Gn+hsfg5~^24>Lg&H`!VOmrXaBDPhiNKu$ZkGnG7&rzvr_hG@o{Z3<;v=-EAPt=J zNG&P@xT_ktv7@vo!=YMKtp@HoaCX4yg*C)yJ6enK1g=5@#~Y_bS%U6b4O}R2cEC}f zNBv9z&I!064cvwp&;ne%2F^1Uc?B*-0~ZS12H=)!;9diF47fZETsx5#bqTo58n^)9 zZUXmD&r9IB;F~3YJnk@q0i#v+sW2A+Rs%Kz_5jFp4(4^heLywA4cDSf0NnvXz%W1x zAQP|xuoX}MC}LzE96;0y=?i~z&~rUT{zmILwt2LQ(a*8$|Ig{gybGy`-5 zkjD>Z2p|@a3dja50&D=}0}cRA0d51H0qOt-QOG->JHQhV1Q-FB0GI_>1Xu&u0@wp6 z16%-90BQkxs3R7DjsPcs5D*F=&jgs$0Sf>t02=^%0A&F3Jc3yZXn{IK9%q;X0mA@E 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 literal 0 HcmV?d00001 diff --git a/10.3.3/Release/Readme.txt b/10.3.3/Release/Readme.txt new file mode 100644 index 0000000..2956f35 --- /dev/null +++ b/10.3.3/Release/Readme.txt @@ -0,0 +1,41 @@ +为了便于在 Lite 15.x 中使用大侠们的特别补丁,初步写成这个:Activator.exe + +他的主要作用: + +1、整合各位大虾的 Keygen +2、相对原始部署方式,这个 Activator 实现“一键激活”! + +使用方法: + +1、执行 Activator.exe + +发布历史: + +2019.11.19 - v15.3 + +1、根据 26.0.36039.7899 原版制作,基于 RADStudioKeyPatch.exe 的成果 + +2019.07.22 - v15.2.1 + +1、根据 26.0.34749.6593 原版制作,基于 RADStudioKeyPatch.exe 的成果 +2、根据 wg961423 的反馈完善对 macOS64 的支持 + +2019.02.16 - v15.1 + +1、根据 26.0.33219.4899 原版制作,基于 RADStudioKeyPatch_Lite.exe 的成果 + +2018.11.26 - v15.0 + +1、根据 26.0.32429.4364 原版制作,基于 RadStudioKeygenSourceCodeV10.3.4364.rar 的成果 + +已知问题: + +1、在一些操作系统上如果出现安全提示,直接确定即可。 + +特别感谢: + +1、elseif, tonzi, freecat, unis, x-force, cjack, c5soft 等大侠的特别补丁,感谢诸位我知道的不知道的的大虾们的辛勤劳动! +2、iny、nevergrief、snakejiao、star5、tintin1943、ti9er、wang_80919、wuxiangyang、wg961423 等等我知道的不知道的的网友们的热情测试! +3、andreas hausladen 等大虾们的无私贡献! + +O(∩_∩)O~