QQ四国军旗刷分外挂开发
作为一名四国军旗的爱好者,军旗也陪伴我一起度过了许多时间,让我不至过于无聊、郁闷。。也因此对她产生了不一般的感情。。于是乎有了下面的进一步接触过程(研究写刷分软件)。。。
效果图:

一、数据准备
QQ四国军旗刷分外挂数据准备
——BlackSnake 2011.06.19
1. 游戏版本号:(进入游戏时的窗口标题)
QQ游戏-四国军旗角色版 2.1 Beta06 Build020
2. QQ号地址:(用CE内存查看器获得)
004C7BE0 或00494520
3. 座位号内存地址:(用CE内存查看器获得)
004C7BEC 或00C54579 (下(蓝)、左(绿)、上(紫)、右(黄) 分别对应0、1、2、3)
4. 从棋盘布局文件分析得各子的代码(16进制):(用二进制编辑工具UltraEdit)
军旗: 02 地雷: 03 炸弹: 04 司令: 05 军长: 06 师长: 07 旅长: 08 团长: 09
营长: 0A 连长:0B 排长:0C 工兵:0D 军营: 00
5. 分析得到棋盘是17*17的数组(行列最小最大值及每格棋子的间距)(借助SPY++工具)
xMin:200, xMax: 840, xsep:40
ymin:70 , yMax: 710 ,ystep:40
6. 各按钮位置:(借助SPY++工具)
开局:xPos:863,yPos:607; Lparam:x025F035F
投降:XPos:856,yPos:659; LParam:x02930358
7. 重复下棋的位置测定:
(初测每格差 40 相素)
棋子第一格的位置: xPos:428,yPos:498; 左上营:xPos:470,yPos:539;
第一格的上一格:xPos:431,yPos:462 上格的左边格:xPos:391,yPos:459;
第二格:xPos:436,yPos:502
第三格:xPos:434,yPos:540
第四格:xPos:432,yPos:581
8. 下棋的步数地址(用来控制30步以上即可投降):(用CE内存查看器获得)
$004C7C30
9. 计时器地址(可以确定轮到谁下棋):(用CE内存查看器获得)
$00494D40
10. 投降时产生的窗口(是一级窗口),其中的投降待确认提示文本:您确定要投降吗?
11. 投降后产生的窗口(是游戏窗口的子窗口),投降后提示文本:投降,全军覆没
二、原代码(因为以前写过老版本的,所以就先套下来了,试了下能用,就先贴上来)
——望路过的大哥多指点一二!!!
//工程文件
1 program pMain;
2
3 uses
4 Forms,
5 uMain in 'uMain.pas' {frmMain},
6 uCustomProc in 'uCustomProc.pas',
7 uHelp in 'uHelp.pas' {frmHelp},
8 uRegister in 'uRegister.pas' {frmRegister};
9
10 {$R *.res}
11
12 begin
13 Application.Initialize;
14 fInst := ExistsInst;
15 Application.Title := 'QQ四国军旗刷分器';
16 Application.CreateForm(TfrmMain, frmMain);
17 Application.Run;
18 end.
//主单元文件
unit uMain;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Buttons, ComCtrls, Registry;
type
TfrmMain = class(TForm)
Label1: TLabel;
edtDir: TEdit;
btnAutoPlay: TButton;
cbbWinner: TComboBox;
cbAutoContinuous: TCheckBox;
cbHide: TCheckBox;
pnlTitle: TPanel;
cbSmart: TCheckBox;
odSetDir: TOpenDialog;
sbSetDir: TSpeedButton;
Bevel1: TBevel;
Bevel2: TBevel;
Bevel3: TBevel;
rgModel: TRadioGroup;
Label2: TLabel;
cbbLoser: TComboBox;
btnExit: TButton;
cbAddSpeed: TCheckBox;
bbtnHelp: TBitBtn;
Image1: TImage;
sbRegister: TStatusBar;
bbtnRegister: TBitBtn;
procedure bbtnHelpClick(Sender: TObject);
procedure bbtnRegisterClick(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure btnAutoPlayClick(Sender: TObject);
procedure btnExitClick(Sender: TObject);
procedure cbAddSpeedClick(Sender: TObject);
procedure cbAutoContinuousClick(Sender: TObject);
procedure cbbLoserDropDown(Sender: TObject);
procedure cbbLoserKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
procedure cbbLoserKeyPress(Sender: TObject; var Key: Char);
procedure cbbWinnerDropDown(Sender: TObject);
procedure cbbWinnerKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
procedure cbbWinnerKeyPress(Sender: TObject; var Key: Char);
procedure cbHideClick(Sender: TObject);
procedure cbSmartClick(Sender: TObject);
procedure rgModelClick(Sender: TObject);
procedure sbSetDirClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmMain: TfrmMain;
hThread1, hThread2: THandle;
bVerfyed : Boolean;
WinnerQQ, LoserQQ: Int64;
implementation
{$R *.dfm}
uses uCustomProc, uHelp, uRegister;
{线程入口函数}
function MyThreadFun(p: Pointer): DWORD; stdcall;
begin
cTimes1 := 0; //控制两组下棋速度的同步
cTimes2 := 0;
if Integer(p) = 1 then
begin
while True do
begin
Inc(cTimes1);
AutoPlay(1);
if ChessFlag = False then Break;
if Length(hChess) = 4 then
begin
if cTimes1 - cTimes2 >= 2 then
Sleep(1000);
end;
end;
end else
if Integer(p) = 2 then
begin
while True do
begin
Inc(cTimes1);
SmartPlay(hChess[0],hChess[1],0);
if ChessFlag = False then Break; //控制是否连续刷分
if Length(hChess) = 4 then
begin
if cTimes1 - cTimes2 >= 2 then
Sleep(1000);
end;
end;
end else
if Integer(p) = 11 then
begin
while True do
begin
Inc(cTimes2);
AutoPlay(2);
if ChessFlag = False then Break; //控制是否连续刷分
if Length(hChess) = 4 then
begin
if cTimes2 - cTimes1 >= 2 then
Sleep(1000);
end;
end;
end else
if Integer(p) = 22 then
begin
while True do
begin
Inc(cTimes2);
SmartPlay(hChess[2],hChess[3],1);
if ChessFlag = False then Break;
if Length(hChess) = 4 then
begin
if cTimes2 - cTimes1 >= 2 then
Sleep(1000);
end;
end;
end;
//恢复设置
frmmain.btnAutoPlay.Enabled := True;
frmMain.cbbWinner.Enabled := True;
frmMain.cbbWinner.Text := '';
frmMain.cbSmart.Enabled := True;
frmMain.rgModel.Enabled := True;
if frmMain.rgModel.ItemIndex = 1 then frmMain.cbbLoser.Enabled := True;
Result := 0;
if (Integer(p) <= 2 ) then CloseHandle(hThread1);
if (Integer(p) >= 11) then CloseHandle(hThread2);
end;
procedure TfrmMain.bbtnHelpClick(Sender: TObject);
begin
with TfrmHelp.Create(nil) do
try
ShowModal;
finally
free;
end;
end;
procedure TfrmMain.bbtnRegisterClick(Sender: TObject);
begin
with TfrmRegister.Create(nil) do
try
bVerfyed := (ShowModal = 1);
if bVerfyed then
begin
sbRegister.Panels[0].Text := '已注册,可使用全部功能';
cbSmart.Enabled := True;
cbAddSpeed.Enabled := True;
cbAutoContinuous.Enabled := True;
cbHide.Enabled := True;
bbtnRegister.Enabled := False;
end;
finally
free;
end;
end;
procedure TfrmMain.FormDestroy(Sender: TObject);
begin
CloseHandle(hThread1);
CloseHandle(hThread2);
end;
procedure TfrmMain.FormCreate(Sender: TObject);
var
reg: TRegistry;
sUser, sPsw : string;
begin
bVerfyed := False;
reg := TRegistry.Create;
try
reg.RootKey := HKEY_CURRENT_USER;
reg.OpenKey('\Software\ShiGuoSF',True);
sUser := reg.ReadString('user');
sPsw := reg.ReadString('password');
finally
reg.CloseKey;
reg.Free;
end;
if (Length(Trim(sUser)) <> 8) or (Length(Trim(sPsw)) <> 16) then bVerfyed := False
else if Encrypt(sUser) = Trim(sPsw) then bVerfyed := True;
//设置状态栏
if not bVerfyed then
begin
sbRegister.Panels[0].Text := '未注册,功能受限...';
cbSmart.Enabled := False;
cbAddSpeed.Enabled := False;
cbAutoContinuous.Enabled := False;
cbHide.Enabled := False;
end else
begin
sbRegister.Panels[0].Text := '已注册,可使用全部功能';
cbSmart.Enabled := True;
cbAddSpeed.Enabled := True;
cbAutoContinuous.Enabled := True;
cbHide.Enabled := True;
bbtnRegister.Enabled := False;
end;
sbRegister.Panels[1].Text := ' 作者:BlackSnake';
SendMessage(Handle, MB_TOPMOST, 0, 0);
cbbWinner.Style := csDropDown;
edtDir.Enabled := False;
sbSetDir.Enabled := False;
cbbLoser.Enabled := False;
fSpeed := False;
//初始化是否存在已运行实例
if fInst then GetHwnd(Handle);
end;
procedure TfrmMain.btnAutoPlayClick(Sender: TObject);
var
ID: DWORD;
begin
if rgModel.ItemIndex = 0 then
begin
if cbbWinner.Text = '' then
begin
ShowMessage('请选择要赢分的QQ号后再继续!');
Exit;
end;
end else
if (cbbWinner.Text = '') or (cbbLoser.Text = '') then
begin
ShowMessage('请设置好输赢分的QQ号后再继续!');
Exit;
end;
WinnerQQ := StrToInt64(cbbWinner.Text);
cbbWinner.Enabled := False;
//键状态设置
if rgModel.ItemIndex = 1 then
begin
LoserQQ := StrtoInt64(cbbLoser.Text);
cbbLoser.Enabled := False;
end;
rgModel.Enabled := false;
cbSmart.Enabled := False;
btnAutoPlay.Enabled := False;
fPause := false;
if cbAutoContinuous.Checked then Chessflag := True else ChessFlag := False;
//确定每个游戏窗口句柄
EnsureHwnd(WinnerQQ, LoserQQ);
//单组两人游戏
if rgModel.ItemIndex = 0 then
begin
if not cbSmart.Checked then hThread1 := CreateThread(nil, 0, @MyThreadFun, Ptr(1), 0, ID)
else hThread1 := CreateThread(nil, 0, @MyThreadFun, Ptr(2), 0, ID);
end else
begin
if not cbSmart.Checked then
begin
hThread1 := CreateThread(nil, 0, @MyThreadFun, Ptr(1), 0, ID);
Sleep(1500);
hThread2 := CreateThread(nil, 0, @MyThreadFun, Ptr(11), 0, ID);
end else
begin
hThread1 := CreateThread(nil, 0, @MyThreadFun, Ptr(2), 0, ID);
Sleep(1500);
hThread2 := CreateThread(nil, 0, @MyThreadFun, Ptr(22), 0, ID);
end;
end;
end;
procedure TfrmMain.btnExitClick(Sender: TObject);
begin
Close;
end;
procedure TfrmMain.cbAddSpeedClick(Sender: TObject);
begin
fSpeed := cbAddSpeed.Checked;
end;
{测试按钮2}
procedure TfrmMain.cbAutoContinuousClick(Sender: TObject);
begin
ChessFlag := cbAutoContinuous.Checked;
end;
procedure TfrmMain.cbbLoserDropDown(Sender: TObject);
var
id, i : Byte;
dwQQNum: Cardinal;
begin
if cbbWinner.Text = '' then
begin
ShowMessage('请先设置赢分的QQ号!');
Exit;
end;
if rgModel.ItemIndex = 0 then id := 2 else id := 4;
//初始化玩家
cbbLoser.Items.Clear;
for i := 0 to id-1 do
begin
GetNumber(hChess[i], BASEADDRQQ, @dwQQNum, SizeOf(dwQQNum));
cbbLoser.Items.Add(IntToStr(dwQQNum));
end;
end;
procedure TfrmMain.cbbLoserKeyDown(Sender: TObject; var Key: Word; Shift:
TShiftState);
begin
if Key = $2E then Key := 0;
end;
procedure TfrmMain.cbbLoserKeyPress(Sender: TObject; var Key: Char);
begin
Key := #0;
end;
procedure TfrmMain.cbbWinnerDropDown(Sender: TObject);
var
i, id : Byte;
dwQQNum: Cardinal;
begin
if rgModel.ItemIndex = 0 then id := 2 else id := 4;
Prepare(handle, id);
if rgModel.ItemIndex = 0 then
begin
//如果有一方为空,则提示双方均须进入游戏
if (hChess[0] = 0) or (hChess[1] = 0) then
begin
MessageBox(0, '双方均须进入游戏后再开始!', '提示', MB_OK);
Exit;
end;
end else
begin
//如果有一方为空,则提示双方均须进入游戏
if (hChess[0] = 0) or (hChess[1] = 0) or (hChess[2] = 0) or (hChess[3] = 0) then
begin
MessageBox(0, '两组双方均须进入游戏后再开始!', '提示', MB_OK);
Exit;
end;
end;
//初始化玩家
cbbWinner.Items.Clear;
for i := 0 to id-1 do
begin
GetNumber(hChess[i], BASEADDRQQ, @dwQQNum, SizeOf(dwQQNum));
cbbWinner.Items.Add(IntToStr(dwQQNum));
end;
end;
procedure TfrmMain.cbbWinnerKeyDown(Sender: TObject; var Key: Word; Shift:
TShiftState);
begin
if Key = $2E then Key := 0;
end;
procedure TfrmMain.cbbWinnerKeyPress(Sender: TObject; var Key: Char);
begin
Key := #0;
end;
procedure TfrmMain.cbHideClick(Sender: TObject);
var
i, id : Byte;
begin
if rgModel.ItemIndex = 0 then id := 2 else id:= 4;
if rgModel.ItemIndex = 0 then
begin
//如果有一方为空,则提示双方均须进入游戏
if (hChess[0] = 0) or (hChess[1] = 0) then
begin
MessageBox(0, '双方均须进入游戏后再开始!', '提示', MB_OK);
Exit;
end;
end else
begin
//如果有一方为空,则提示双方均须进入游戏
if (hChess[0] = 0) or (hChess[1] = 0) or (hChess[2] = 0) or (hChess[3] = 0) then
begin
MessageBox(0, '两组双方均须进入游戏后再开始!', '提示', MB_OK);
Exit;
end;
end;
if cbHide.Checked then
begin
for i := 0 to id-1 do
begin
//SendMessage(hChess[i], WM_SYSCOMMAND, SC_MINIMIZE, 0);
ShowWindow(hChess[i], SW_HIDE);
end;
end else
begin
for i := 0 to id-1 do
begin
//SendMessage(hChess[i], WM_SYSCOMMAND, SC_RESTORE, 0);
ShowWindow(hChess[i], SW_SHOW);
end;
end;
end;
procedure TfrmMain.cbSmartClick(Sender: TObject);
begin
edtDir.Enabled := cbSmart.Checked;
sbSetDir.Enabled := cbSmart.Checked;
end;
procedure TfrmMain.rgModelClick(Sender: TObject);
begin
if not bVerfyed then rgModel.ItemIndex := 0;
if rgModel.ItemIndex = 0 then cbbLoser.Enabled := False else cbbLoser.Enabled := true;
end;
procedure TfrmMain.sbSetDirClick(Sender: TObject);
begin
if odSetDir.Execute then
begin
edtDir.Enabled := True;
edtDir.Text := odSetDir.FileName;
sFileName := odSetDir.FileName;
// edtDir.Text := ExtractFilePath(odSetDir.FileName);
edtDir.Enabled := False;
end;
end;
end.
//自定义过程文件
unit uCustomProc;
interface
uses Windows, Messages, SysUtils;
procedure GetHWND(thewnd: HWND);
function ExistsInst: Boolean;
procedure Prepare(thewnd: HWND; id: Byte);//初始化游戏窗口句柄
procedure Start(h:HWND);
procedure AutoClick(hGameWin: HWND; bFlag: Boolean);
procedure AutoPlay(id: Byte);
procedure PlayLastStep(h1,h2:HWND);
procedure EnsureHwnd(Winner, Loser : Int64);
procedure ClickStep(hGamewin: HWND); //点跳过,胜方不得分
function GetNumber(hGameWin: HWND; const lpBase: Pointer; pBuf: PDWORD; bSize: Cardinal): Boolean;
function GetSpecificWnd(theWnd: HWND; sTip: string): HWND;
//function GetChildWnd(theWnd: HWND; sTip: string): HWND;
procedure SmartPlay(h1,h2: HWND; id: Byte);//根据复盘数据智能化下棋
procedure CustomPlay(h1,h2:HWND; id: Byte);
procedure CustomClick(hGameWin: HWND; pt1,pt2: TPoint);
procedure ReadChessFile(sFileName: string);
function ConvertXY(hX, hY: Integer; t: Byte): TPoint;
function ToXYPos(pt: TPoint): TPoint;
procedure InputChess(h: HWND; parr: Pointer);//导入复盘数据
procedure SetXY(x, y: PByte; t: Byte);//布局易位时修改坐标
var
hChess, hTmp: array of HWND; //两个人的游戏窗口句柄
ChessFlag, fSpeed, fPause, fInst: Boolean;
countOrders, fCount, Steps, fid, cTimes1, cTimes2, cHwnd:Integer;
bufPos: array of array of Byte;
bufChess1, bufChess2: array[1..30] of Byte;
pt3,pt4:TPoint;
sFileName: string;
const
BaseAddrQQ = Pointer($004C7BE0); //qq号地址
BaseAddrTimer = Pointer($00494D40); //计时器地址
BaseAddrSetNum = Pointer($004C7BEC);//座位号地址
implementation
function ExistsInst: Boolean;
var
h: HWND;
begin
Result := False;
h := FindWindow('TfrmMain', 'QQ四国军旗刷分器');
if h <> 0 then Result := True;
end;
procedure GetHWND(thewnd: HWND);
var
i: Byte;
h: HWND;
buf: array[Byte] of Char;
begin
i := 0;
h := GetWindow(thewnd, GW_HWNDFIRST);
while h <> 0 do
begin
GetWindowText(h, buf, Length(buf));
if buf = '四国军棋角色版' then
begin
SetLength(hTmp, i + 1);
hTmp[i] := h;
Inc(i);
end;
h := GetWindow(h, GW_HWNDNEXT);
end;
cHwnd := i;
end;
procedure Prepare(thewnd: HWND; id: Byte);
var
founded: Boolean;
i, j, k, sum: Byte;
h: HWND;
buf: array[Byte] of Char;
arrTmp: array of HWND;
begin
SetLength(hChess, id);
//取得 已开游戏句柄 hTmp[cHwnd]
i := 0;
h := GetWindow(thewnd, GW_HWNDFIRST);
while h <> 0 do
begin
GetWindowText(h, buf, Length(buf));
if buf = '四国军棋角色版' then
begin
SetLength(arrTmp, i + 1);
arrTmp[i] := h;
Inc(i);
end;
h := GetWindow(h, GW_HWNDNEXT);
end;
sum := i;
if (cHwnd + id) <> sum then
begin
if not fInst then
begin
MessageBox(0, '请先运行游戏!', '出错提示', 0);
Exit;
end else
begin
MessageBox(0, '请先运行刷分器再运行游戏,并确保所开游戏客户端个数符合刷分要求!', '出错提示', 0);
Exit;
end;
end;
//找出新开的游戏窗口句柄
k := 0;
founded := false;
if fInst = False then
begin
for i := 0 to id - 1 do hChess[i] := arrTmp[i];
end else
begin
for i := 0 to sum - 1 do
begin
for j := 0 to cHwnd - 1 do
begin
if arrTmp[i] = hTmp[j] then
begin
founded := True;
Break;
end;
end;
if not founded then
begin
hChess[k] := arrTmp[i];
Inc(k);
founded := False;
end;
end;
end;
end;
procedure EnsureHwnd(Winner, Loser : Int64);
var
i: integer;
h: HWND;
dwQQNum, dwTimer0,dwTimer1: Cardinal;
begin
if Length(hChess) = 4 then
begin
//如果是4个窗口,将相同号码的两个放在hChess[1]\hChess[2]
for i := 0 to 3 do
begin
GetNumber(hChess[i], BASEADDRQQ, @dwQQNum, SizeOf(dwQQNum));
if Winner = dwQQNum then
begin
h := hChess[0];
hChess[0] := hChess[i];
hChess[i] := h;
end else
if Loser = dwQQNum then
begin
h := hChess[3];
hChess[3] := hChess[i];
hChess[i] := h;
end;
end;
//确定两两组合
Start(hChess[0]);
Sleep(100);
Start(hChess[1]);
Sleep(300);
GetNumber(hChess[0], BaseAddrTimer, @dwTimer0, SizeOf(dwTimer0));
GetNumber(hChess[1], BaseAddrTimer, @dwTimer1, SizeOf(dwTimer1));
//如果没计时器信息,说明hChess[0]和hChess[1]不是同桌,需交换相同QQ号的句柄 ;
if (dwTimer0 = 0) and (dwTimer1 = 0) then
begin
h := hChess[1];
hChess[1] := hChess[2];
hChess[2] := h;
end;
end else
if Length(hChess)=2 then
begin
GetNumber(hChess[1], BASEADDRQQ, @dwQQNum, SizeOf(dwQQNum));
if Winner = dwQQNum then
begin
h := hChess[0];
hChess[0] := hChess[1];
hChess[1] := h;
end;
end else
begin
MessageBox(0, '打开游戏客户端数不符!', '出错提示', 0);
Exit;
end;
end;
procedure Start(h: HWND);
begin
//BringWindowToTop(h);
EnableWindow(h, True);
//摸拟鼠标点击 开始
SendMessage(h, WM_LBUTTONDOWN, 1, MakeLParam(863, 607));
SendMessage(h, WM_LBUTTONUP, 0, MakeLParam(863, 607));
end;
procedure AutoClick(hGamewin: HWND; bFlag: Boolean);
begin
if bFlag then
begin
PostMessage(hGameWin, WM_LBUTTONDOWN, 1, MakeLParam(430, 500));
PostMessage(hGameWin, WM_LBUTTONUP, 1, MakeLParam(430, 500));
Sleep(100);
PostMessage(hGameWin, WM_LBUTTONDOWN, 1, MakeLParam(430, 460));
PostMessage(hGameWin, WM_LBUTTONUP, 1, MakeLParam(430, 460));
end else
begin
PostMessage(hGameWin, WM_LBUTTONDOWN, 1, MakeLParam(430, 460));
PostMessage(hGameWin, WM_LBUTTONUP, 1, MakeLParam(430, 460));
Sleep(100);
PostMessage(hGameWin, WM_LBUTTONDOWN, 1, MakeLParam(430, 500));
PostMessage(hGameWin, WM_LBUTTONUP, 1, MakeLParam(430, 500));
end;
end;
{*********************************************************
** 功能:实现双方自动下棋
**
** 传入参数:赢分的玩家QQ号
**
**
***********************************************************}
procedure AutoPlay(id: Byte);
var
i: Byte;
hGame: array[0..1] of HWND;
dwTimer: Cardinal;
begin
//两组赋不同的句柄
if id = 1 then
begin
hGame[0] := hChess[0];
hGame[1] := hChess[1];
end else
if id = 2 then
begin
hGame[0] := hChess[2];
hGame[1] := hChess[3];
end;
//提示不保存时 xPos:= 547; yPos:= 457;
PostMessage(hGame[0], WM_LBUTTONDOWN, 1, MakeLParam(540, 460));
PostMessage(hGame[0], WM_LBUTTONUP, 0, MakeLParam(540, 460));
PostMessage(hGame[1], WM_LBUTTONDOWN, 1, MakeLParam(540, 460));
PostMessage(hGame[1], WM_LBUTTONUP, 0, MakeLParam(540, 460));
Start(hGame[0]);
Start(hGame[1]);
Sleep(500);
//如果不是hGame[0]先下,则跳过
GetNumber(hGame[0], BaseAddrTimer, @dwTimer, SizeOf(dwTimer));
if dwTimer = 0 then ClickStep(hGame[1]);
Sleep(500);
//自动下棋
i := 1;
while i< 9 do
begin
AutoClick(hGame[0], True);
while True do
begin
Sleep(200);
dwTimer := 0;
GetNumber(hGame[1], BaseAddrTimer, @dwTimer, SizeOf(dwTimer));
if dwTimer > 0 then Break;
end;
AutoClick(hGame[1], True);
while True do
begin
Sleep(200);
dwTimer := 0;
GetNumber(hGame[0], BaseAddrTimer, @dwTimer, SizeOf(dwTimer));
if dwTimer > 0 then Break;
end;
AutoClick(hGame[0], False);
while True do
begin
Sleep(200);
dwTimer := 0;
GetNumber(hGame[1], BaseAddrTimer, @dwTimer, SizeOf(dwTimer));
if dwTimer > 0 then Break;
end;
AutoClick(hGame[1], False);
while True do
begin
Sleep(200);
dwTimer := 0;
GetNumber(hGame[0], BaseAddrTimer, @dwTimer, SizeOf(dwTimer));
if dwTimer > 0 then Break;
end;
Inc(i);
end;
//最后一步
PlayLastStep(hGame[0], hGame[1]);
end;
procedure PlayLastStep(h1,h2:HWND);
var
//i : Byte;
dwTimer: Cardinal;
h, hBtn: HWND;
hGame: array[0..1] of HWND;
begin
hGame[0]:= h1;
hGame[1]:= h2;
//最后一步
//i := 1; //hGame[0]赢分时
Sleep(200);
clickstep(hGame[0]);
Sleep(500);
dwTimer := 0;
while True do
begin
Sleep(1000);
GetNumber(hGame[1], BaseAddrTimer, @dwTimer, SizeOf(dwTimer));
if dwTimer > 0 then Break;
end;
//hGame[1]点击投降
PostMessage(hGame[1], WM_LBUTTONDOWN, 1, MakeLParam(856, 659));
PostMessage(hGame[1], WM_LBUTTONUP, 0, MakeLParam(856, 659));
Sleep(300);
//投降确认
h := GetspecificWnd(hGame[0], '要投降吗'); //文本提示的窗口句柄
hBtn := FindWindowEx(h, 0, 'Button', nil); //右上角关闭按钮
hBtn := FindWindowEx(h, hBtn, 'Button', nil); //确定按钮
PostMessage(hBtn, BM_CLICK, 0, 0);
Sleep(600);
//全军覆没确认
h := GetspecificWnd(hGame[0], '投降,全军覆没');
if h = 0 then h := GetspecificWnd(hGame[0], '投降,全军覆没');
hBtn := FindWindowEx(h, 0, 'Button', nil); //确定按钮
hBtn := FindWindowEx(h, hBtn, 'Button', nil);
PostMessage(hBtn, BM_CLICK, 0, 0);
Sleep(500);
//提示不保存时 xPos:= 547; yPos:= 457;
h := GetspecificWnd(hGame[0], '是否需要保存');
if h <> 0 then
begin
hBtn := FindWindowEx(h, 0, 'Button', nil); //确定按钮
hBtn := FindWindowEx(h, hBtn, 'Button', nil);
PostMessage(hBtn, BM_CLICK, 0, 0);
end;
h := GetspecificWnd(hGame[1], '是否需要保存');
if h <> 0 then
begin
hBtn := FindWindowEx(h, 0, 'Button', nil); //确定按钮
hBtn := FindWindowEx(h, hBtn, 'Button', nil);
PostMessage(hBtn, BM_CLICK, 0, 0);
end;
Sleep(100);
PostMessage(hGame[0], WM_LBUTTONDOWN, 1, MakeLParam(540, 460));
PostMessage(hGame[0], WM_LBUTTONUP, 0, MakeLParam(540, 460));
Sleep(100);
PostMessage(hGame[1], WM_LBUTTONDOWN, 1, MakeLParam(540, 460));
PostMessage(hGame[1], WM_LBUTTONUP, 0, MakeLParam(540, 460));
//Sleep(800);
end;
{据复盘数据下棋}
procedure SmartPlay(h1,h2: HWND; id: Byte);
var
dwSitNum: Cardinal;
hGame: array[0..1] of HWND;
begin
hGame[0] := h1;
hGame[1] := h2;
//分析复盘数据 文件名如T-1-3,意思为第1位先下,第3位赢
ReadChessFile(sFileName);
//读入布局数据
GetNumber(hGame[0], BaseAddrSetNum, @dwSitNum, SizeOf(dwSitNum));
//右,下,左,上的座位分别对应0,1,2,3
if dwSitNum in [0, 3] then
begin
InputChess(hGame[0], @bufChess1);
end else InputChess(hGame[0], @bufChess2);
GetNumber(hGame[1], BaseAddrSetNum, @dwSitNum, SizeOf(dwSitNum));
//右,下,左,上的座位分别对应0,1,2,3
if dwSitNum in [0, 3] then
begin
InputChess(hGame[1], @bufChess1);
end else InputChess(hGame[1], @bufChess2);
Sleep(100);
//开始
start(hGame[0]);
Start(hGame[1]);
Sleep(500);
CustomPlay(hGame[0],hGame[1], id);
end;
procedure CustomPlay(h1,h2:HWND; id: Byte);
var
i, j : Integer;
pt1, pt2: TPoint;
dwTimer, dwSitNum1, dwSitNum2: Cardinal;
hGame: array[0..1] of HWND;
hTmp : HWND;
PosXY : array of array of array of Byte;
begin
Randomize;
hGame[0]:= h1;
hGame[1]:= h2;
//查座位方位
//右,下,左,上的座位分别对应0,1,2,3
GetNumber(hGame[0], BaseAddrSetNum, @dwSitNum1, SizeOf(dwSitNum1));
GetNumber(hGame[1], BaseAddrSetNum, @dwSitNum2, SizeOf(dwSitNum2));
//如果是hGame[1]先下,则交换两个句柄
if dwSitNum1 in [1,2] then
begin
hTmp := hGame[0];
hGame[0] := hGame[1];
hGame[1] := hTmp;
GetNumber(hGame[0], BaseAddrSetNum, @dwSitNum1, SizeOf(dwSitNum1));
GetNumber(hGame[1], BaseAddrSetNum, @dwSitNum2, SizeOf(dwSitNum2));
end;
SetLength(PosXY, 2, countOrders, 6);
for i := 0 to countOrders - 1 do
begin
for j := 0 to 5 do
begin
PosXY[0][i,j] := bufPos[i,j];
PosXY[1][i,j] := bufPos[i,j];
end;
end;
//确保是偶数步,便于最后的判断
if Odd(countOrders) then Dec(countOrders);
//如果加速,则定为30步
if fSpeed then Steps := 30 else Steps := countOrders;
//布局易位时,需转换起止坐标
if (dwSitNum1 in [1,3]) and (fid = 0) or (dwSitNum1 in [0,2]) and (fid = 1) then
begin
for i := 0 to Steps - 1 do
begin
SetXY(@PosXY[id][i,2], @PosXY[id][i,3], fid);
SetXY(@PosXY[id][i,4], @PosXY[id][i,5], fid);
end;
end;
//开始循环
for i := 0 to Steps - 1 do
begin
if Odd(i) then j := 1 else j := 0;
if bufPos[i,1]=$5F then
begin
//摸拟点起终两点
if j = 0 then
begin
pt1 := ConvertXY(PosXY[id][i,2], PosXY[id][i,3], dwSitNum1);
pt2 := ConvertXY(PosXY[id][i,4], PosXY[id][i,5], dwSitNum1);
end else
begin
pt1 := ConvertXY(PosXY[id][i,2], PosXY[id][i,3], dwSitNum2);
pt2 := ConvertXY(PosXY[id][i,4], PosXY[id][i,5], dwSitNum2);
end;
//转为像素坐标
pt1 := ToXYPos(pt1);
pt2 := ToXYPos(pt2);
Sleep(1000+Random(4000));
CustomClick(hGame[j], pt1, pt2);
end else
begin
//点跳过
Sleep(1000);
clickstep(hGame[j]);
end;
//据计时器判断是否要继续的“死循环”
while True do
begin
Sleep(100);
dwTimer := 0;
GetNumber(hGame[1-j], BaseAddrTimer, @dwTimer, SizeOf(dwTimer));
if dwTimer > 0 then Break;
end;
end;
//最后一步
PlayLastStep(h1,h2);
end;
procedure CustomClick(hGameWin: HWND; pt1,pt2: TPoint);
begin
PostMessage(hGameWin, WM_LBUTTONDOWN, 1, MakeLParam(pt1.X, pt1.Y));
PostMessage(hGameWin, WM_LBUTTONUP, 1, MakeLParam(pt1.X, pt1.Y));
PostMessage(hGameWin, WM_LBUTTONDOWN, 1, MakeLParam(pt2.X, pt2.Y));
PostMessage(hGameWin, WM_LBUTTONUP, 1, MakeLParam(pt2.X, pt2.Y));
end;
{--------------读文件
//根据复盘文件读入相关数据
//文件前28H字节为文件头;接下来4个玩家信息(从开始下的一方始顺时针存储),每个58H
//字节(前14H为用户名,接下来1E字节为布局)
//再下来是执行指令,每10字节为一组(其中第3字节为起始行列,第4字节为目的行列——
//以先保存的玩家方位开始计算,10H*10H数组)
//棋盘布局文件数据 Char[30]
//执行指令 5F 开始的10字节,控制(程序)指令F5开始 在19Ch(412)字节后开始 结
//尾1Ch(28)字节是系统或保留的
--------------------------}
procedure ReadChessFile(sFileName: string);
var
f: file;
buf1,buf2,buf3,buf4: array[1..30] of Byte;
bufOrder: array of array of Byte;
i, fsize: integer;
begin
try
AssignFile(f, sFileName);
Reset(f,1);
fsize := FileSize(f);
fsize := fsize - 412 - 28;
countOrders := fsize div 10;
if countOrders < 31 then
begin
MessageBox(0, '步数小于指定步数,请重试!', '提示', Mb_Ok);
Exit;
end;
//读棋盘布局
Seek(f,40+20+88*0);
BlockRead(f, buf1, 30);
if buf1[1] <> 0 then
begin
fid := 0; //0-2位对战 左右位
for i := 1 to 30 do bufchess1[i] := buf1[i];
//读对方布阵 即左位
Seek(f,40+20+88*2);
BlockRead(f, buf3, 30);
if buf3[1] <> 0 then
begin
for i := 1 to 30 do bufchess2[i] := buf3[i];
end else
begin
MessageBox(0, '复盘数据有误!', '提示', mb_ok);
exit;
end;
end else
begin
Seek(f,40+20+88*1);
BlockRead(f, buf2, 30);
if buf2[1] <> 0 then
begin
fid := 1; //1-3位对战 上下位
for i := 1 to 30 do bufchess2[i] := buf2[i];
//读对方布阵,即上位
Seek(f,40+20+88*3);
BlockRead(f, buf4, 30);
if buf4[1] <> 0 then
begin
for i := 1 to 30 do bufchess1[i] := buf4[i];
end else
begin
MessageBox(0, '复盘数据有误!', '提示', mb_ok);
exit;
end;
end;
end;
//读指令
SetLength(bufOrder, countOrders, 10);
Seek(f, 412);
for i := 0 to countOrders-1 do
begin
BlockRead(f, bufOrder[i, 0], 10);
end;
//从指令序数组中读出需要的,指令头,起始和目的行列
SetLength(bufPos, countOrders, 6);
for i := 0 to countOrders-1 do
begin
bufPos[i, 0] := i + 1; //步数
bufPos[i, 1] := bufOrder[i, 0]; //系统
bufPos[i, 2] := bufOrder[i, 2]; //起始X
bufPos[i, 3] := bufOrder[i, 3]; //起始y
bufPos[i, 4] := bufOrder[i, 4]; //终点x
bufPos[i, 5] := bufOrder[i, 5]; //终点y
end;
finally
CloseFile(f);
end;
end;
procedure InputChess(h: HWND; parr: Pointer);
var
pid, dwRead: Cardinal;
hProcess: THandle;
begin
GetWindowThreadProcessId(h, @pid);
hProcess := OpenProcess(PROCESS_ALL_ACCESS, False, pid);
WriteProcessMemory(hProcess, Pointer(Integer(BaseAddrSetNum)+4), parr, 30, dwRead);
CloseHandle(hProcess);
end;
function ConvertXY(hX, hY: Integer; t: Byte): TPoint;
begin
//保存的复盘,棋子定位均是以紫方(上座-3位)为基准来定位的的
//(从右往左0-16,从下往上0-16)
//转到0位
if t = 0 then
begin
Result.X := 16 - hY;
Result.Y := hX;
end else
if t = 1 then
begin
//转到1位 //转到2位
Result.X := hX;
Result.Y := hY;
end else
if t = 2 then
begin
//转到2位
Result.X := hY;
Result.Y := 16 - hX;
end else
begin
//转到3位
Result.X := 16 - hX;
Result.Y := 16 - hY;
end;
{ // id 为坐位标识,留着待用
//下面仅考虑任何两人复盘 转到2-4位(即上下位)下棋时的情况
if fid = 0 then
begin
if id=0 then
begin
//1-3改坐2-4先后不易位时
//1转到2 ;1转到4
Result.X := 16 - hY;
Result.Y := hX;
end else
begin
Result.X := hY;
Result.Y := 16 - hX;
end;
end else
begin
if id=0 then
begin
Result.X := 16 - hx;
Result.Y := 16 - hY;
end else
begin
Result.X := hX;
Result.y := hY;
end;
end; }
end;
function ToXYPos(pt: TPoint): TPoint;
begin
Result.X := 200 + 39*pt.x;
Result.Y := 70 + 39*pt.y;
end;
{点跳过,胜方不得分}
procedure ClickStep(hGamewin: HWND);
begin
PostMessage(hGamewin, WM_LBUTTONDOWN, 1, MakeLParam(850, 585));
PostMessage(hGamewin, WM_LBUTTONUP, 0, MakeLParam(850, 585));
end;
function GetNumber(hGameWin: HWND; const lpBase: Pointer; pBuf: PDWORD; bSize: Cardinal): Boolean;
var
pid, dwRead: Cardinal;
hProcess: THandle;
begin
GetWindowThreadProcessId(hGameWin, @pid);
hProcess := OpenProcess(PROCESS_VM_READ, False, pid);
ReadProcessMemory(hProcess, lpBase, pBuf, bSize, dwRead);
CloseHandle(hProcess);
Result := (pBuf^ <> 0);
end;
function GetSpecificWnd(theWnd: HWND; sTip: string): HWND;
var
h, hChild: HWND;
buf: array[Byte] of Char;
begin
Result := 0;
h := GetWindow(theWnd, GW_HWNDFIRST);
while h <> 0 do
begin
hChild := FindWindowEx(h, 0, 'Static', nil);
GetWindowText(hChild, buf, Length(buf));
if Pos(sTip, buf) > 0 then
begin
Result := h;
Exit;
end;
h := GetWindow(h, GW_HWNDNEXT);
end;
end;
procedure SetXY(x, y: PByte; t: Byte);
var
i : integer;
begin
if t = 0 then
begin
i := x^;
x^ := y^;
y^ := 16 - i;
end else
begin
i := x^;
x^ := 16 - y^;
y^ := i;
end;
end;
{function GetChildWnd(theWnd: HWND; sTip: string): HWND;
var
h, hChild: HWND;
buf: array[Byte] of Char;
begin
Result := 0;
h := GetWindow(theWnd, GW_CHILD);
while h <> 0 do
begin
hChild := FindWindowEx(h, 0, 'Static', nil);
GetWindowText(hChild, buf, Length(buf));
if Pos(sTip, buf) > 0 then
begin
Result := h;
Exit;
end;
h := GetWindow(h, GW_HWNDNEXT);
end;
end;}
end.
//注册单元文件(只是为了功能完善,所以没用算法)
unit uRegister;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, Registry;
type
TfrmRegister = class(TForm)
bbtnOK: TBitBtn;
Label1: TLabel;
Label2: TLabel;
edtUser: TEdit;
edtPsw: TEdit;
procedure bbtnOKClick(Sender: TObject);
procedure edtPswKeyPress(Sender: TObject; var Key: Char);
procedure edtUserKeyPress(Sender: TObject; var Key: Char);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
function Encrypt(const s: string): string;
var
frmRegister: TfrmRegister;
implementation
{$R *.dfm}
procedure TfrmRegister.bbtnOKClick(Sender: TObject);
var
reg: TRegistry;
begin
//如果不符合验证条件则退出
if (Length(Trim(edtUser.Text)) <> 8) or (Length(Trim(edtPsw.Text)) <> 16) then
begin
ModalResult := mrCancel;
end;
reg := TRegistry.Create;
try
reg.RootKey := HKEY_CURRENT_USER;
if Trim(edtPsw.Text) = Encrypt(Trim(edtUser.Text)) then
begin
if reg.OpenKey('\Software\ShiGuoSF', True) then
begin
reg.WriteString('user', Trim(edtUser.Text));
reg.WriteString('password', Trim(edtPsw.Text));
ModalResult := mrOk;
end;
end;
finally
reg.CloseKey;
reg.Free;
end;
end;
procedure TfrmRegister.edtPswKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then bbtnOKClick(Self);
end;
procedure TfrmRegister.edtUserKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then bbtnOKClick(Self);
end;
procedure TfrmRegister.FormShow(Sender: TObject);
begin
edtUser.SetFocus;
end;
function Encrypt(const s: string): string;
var
i : Integer;
const ss = 'zjdygddg';
begin
for i := 1 to Length(s) do
begin
Result := Result+ s[i] + ss[i];
end;
end;
end.
//帮助提示(用了一个默认窗口)
unit uHelp;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls;
type
TfrmHelp = class(TForm)
reHelp: TRichEdit;
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmHelp: TfrmHelp;
implementation
{$R *.dfm}
end.
//主窗体文件
object frmMain: TfrmMain
Left = 433
Top = 150
BorderIcons = [biSystemMenu, biMinimize]
BorderStyle = bsSingle
Caption = 'QQ'#22235#22269#20891#26071#21047#20998#22120'1.1'
ClientHeight = 319
ClientWidth = 450
Color = clMoneyGreen
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
OldCreateOrder = False
Position = poDesktopCenter
OnCreate = FormCreate
OnDestroy = FormDestroy
PixelsPerInch = 96
TextHeight = 13
object Label1: TLabel
Left = 3
Top = 91
Width = 124
Height = 13
Caption = #36873#25321#36194#20998#30340#29609#23478'QQ'#21495#65306
end
object sbSetDir: TSpeedButton
Left = 323
Top = 162
Width = 23
Height = 22
Caption = #23548#20837
Enabled = False
Flat = True
NumGlyphs = 2
OnClick = sbSetDirClick
end
object Bevel1: TBevel
Left = 1
Top = 148
Width = 348
Height = 3
end
object Bevel2: TBevel
Left = 1
Top = 206
Width = 347
Height = 3
end
object Bevel3: TBevel
Left = 3
Top = 245
Width = 343
Height = 3
end
object Label2: TLabel
Left = 4
Top = 119
Width = 124
Height = 13
Caption = #36873#25321#36755#20998#30340#29609#23478'QQ'#21495#65306
end
object Image1: TImage
Left = 353
Top = 40
Width = 140
Height = 211
Picture.Data = {
07544269746D6170A2660000424DA26600000000000032040000280000004600
00005E010000010008000000000070620000120B0000120B0000FF000000FF00
000000000000FFFFFF001C4B2F003A7C5600AAC6B6002C744C003C7455002358
3C002A634500357B550034755200316D4D003B7E5A0041805E004C8768004B7E
630046755C008AB39D003C6C5300538B6E0095B8A6002E765300448464003666
4E00588E73005D92780064967D006B99830076A38D00AECABC00B2CABE00EAF2
EE00E6EEEA00E2EAE600DEE6E2006D9F880080AA9600A5C3B5007CA69300739B
8A0085AC9C0095BBAB008BAD9F0092B4A600586B63009BB3A900BED3CA00BACF
C6008DB2A3009BBBAE00C6DAD20039735D00829D9300A7BDB500CBDBD5002D7C
600092ACA300A3B4AE00478E7700A1BDB40093A6A000B5CBC400C2D4CE00DEEA
E600DAE6E200D6E2DE00D2DEDA0095B5AB00ACC4BD0034856E005A776F00687E
7800A5C3BB009AB6AE0023715D00B6C6C200C6D6D200BECECA006CA89B008BA2
9D00B2C6C200BACECA006D8883001A675B00207A6B002B8B7C004296880074B4
A90083BAB10084A29D00579F950072908C0093C5BF00BAD6D300ADC6C30098AA
A8005D868200587B7800A1C7C400C0CAC9003AA59E009EB8B600BEDAD8009DAE
AD00BECFCE005AAEAA0088A7A600B2C7C6001B898800A9CFCE0047BCBD006CF0
F10078C2C2007799990023292900353D3D00A5BCBC00B9CFCF00B6CACA004D55
5500B0C2C200BACACA00B6C6C600C6D6D600C2D2D200CEDBDB00DAE6E600D6E2
E200D2DEDE00C7D2D200DAE2E200D6DEDE00D2DADA00E6EEEE00E2EAEA00DEE6
E600EAEEEE00E6EAEA00DEE2E200DADEDE00D6DADA00D2D6D6005CC9D0008FA3
A40014DAE9001B9FA8002CB0B9007F9FA200B8E6EA0091ACAE00A4B3B40019B7
C9008ACDD400A1D2D70037CDE100B0D6DB00C9E4E80061D3E8007CD4E40098B0
B40095D7E400ABBBBE00ACD8E300B1C2C600B6C6CA00BACACE00D6E6EA00AAB3
B500B7C0C200B4BCBE00BADAE300D1DEE20082959C009FAFB500C1D2D800C6D2
D600BECACE00CAD6DA00DAE6EA00CAD3D600BBC3C600C3CBCE008E949600E2E5
E600C5DCE500A5B4BA00B0BDC20073858D007C8C930094A4AB00CAD9E000D0DF
E600BECCD2006A7E88008B9BA300A2AAAE00CED6DA00999FA200DEE6EA00DAE2
E600D6DEE200D2DADE00E6EEF200E2EAEE00EEF2F400C3D5DF00ABB6BC006175
81009BA8B000B6C0C600516573005B6C7800C4CDD300BCC5CB003A5060004459
68004B5F6E00D2DAE200CED6DE00CAD2DA00DAE2EA00D6DEE600DADEE200D6DA
DE00D2D6DA00EAEEF200E6EAEE00E2E6EA00DEE2E600D2DAE600D6DEEA00CED2
DA00DEE2EA00DADEE600D6DAE200D2D6DE00E2E6EE00D2D6E200DADEEA00D6DA
E600F2F3F600C8CEE200CED2E100BAC1E400979ED800ACB2E100878CED00999E
EA007074F1005A5CF500E6E6EE00E2E2EA00EEEEF200EAEAEE00E6E6EA000708
3345150B12101852271C271C303B4965744324242427271A0E1202024A91916C
0E131827285B5B9A6F9D9AA0C8F29E9A9D9DAFAEA2BEDAC9EBC9D9C8C8C9EBEB
C4E7C4E7EA00170708330A0B12060F19191B2727262A2443432B282A2A24261A
1B16080708919791450F0E1C11529F99A29A9AA0ABF19D9A9AA2AEA09EA2DAC9
EBC9D9EAEAC9EBEBC4E7C4E7EA0012333333330612121013521B271A1923231B
2B652B2B2B241C1B1A130A054A919791530806183B5226BA9D9D9AA2C8F29D9A
9DCDAEA09EA2DAC9EBC9D9C8C8C9EBEBC4E7C4E7EA00084A3333330612061010
13181813181B1B27243B494343241B18130E0515549197974A07080E281B1A95
9A9D9ABEC8F299A0A0B1DB9B9BBEEBC9EBC9D9EAEAC9EBEBC4E7C4E7EA000708
3333330A121206101010130E18271C2830302B2B2A1A19131816050537979791
0907070D1A1C236A9A9AA0EAC8D9C0CDDAC4E7DBDAC9EBC9EBC9D9C8C8C9EBEB
C4E7C4E7EA0007070B330A17121212060A100F0F191B26382A2A285923191813
13050505156C91450C0507161A231C4E8E9DB8EAEAEDB3C4EBC4E7DBC4C9EBC9
EBC9D9EAEAC9EBEBC4E7C4E7EA00170733333312061206121210100F1B601C4F
2A5924261A181316050515050937450C090A0A16191C1B1A586DC8EAC8C9DBC4
EBC4E7DBDAC9DAC9EBC9D9C8C8C9EBEBC4C4C4E7EA0007070B12121233333317
120F100F522734382B28261B1813160505051515150909090C0C0D0D18231B19
6A7AC8EAEAEBDBC4EBC4B3DBE7BEAABEDAEBC9EAEAC9EBEBE7C4C4E7EA000202
080B173333331212101010135B2734592A591B1A0E16050505090909090D0C0D
0D0C0C0D0E181A192343C8EAEAC9DBC4EBE7DBDBDBA2A0A2DAEBC9C8C8C9EBEB
C4C4C4E7EA001707070817121717171212124647525B27344F59181916160505
05050C0C0909090C0903090C0E1818191A26AFEAEAC9DBC4EBC4DBAEA2A09EA2
DAEBC9EAEAC9DAEBE7C4C4E7EA000D067302081717171712122C464647525252
5B341A0E0D090505051509091515051515090916161319181B2A2AEAEAC9DBC4
EBE7DB9B9E9EA0CDDAEBC9C8C8C9DAEBC4C4C4E7EA0045101707071717177710
2C2C2C4647474747525B270D0C150505150A150915150A05050A150D0D0E1918
27301C44EAC9DBC4EBE7DBAEA09DA2C9EBEBC9EAEAC9DAEBE7C4C4E7EA001606
0B0873081717102C2C2C2C4746474646471B1A0D030D0C0E130E160905050A0A
05050B150D0E13131B262678C8C9E7C4EBCD9999A2A2CDC9EBEBC9C8C8C9DAEB
C4C4C4E7EA000F0A0B17081717122C2C2C2C2C472C4746461A5B1B191B192323
19181913090A1505050807080D160E1823232879C8D9DBEBDAA29E9EA2BEEBC9
EBEBC9EAEAC9DAEBE7C4C4E7EA000D0B0B17171212100F2C2C2C2C2C462C4746
1A461B1B272726241A181A19130F0B0B0702075564563A181C2A2A7CC8EADBDA
C9AEA09E9BC9EBC9EBEBC9EAEAC9DAEBC4C4C4E7EA0012080B0B1712122C2C2C
2C2C2C2C462C4652471B1A19271B26271A1A1A130E0F0A07020253979797561A
1C3078EAC8D9DBDAEBDBAE9BCDC9EBC9EBEBC9EAEAC9DAEBE7C4C4C4EA000B08
0A0B1712121010122C2C2C2C462C4647181A19181A27272719471A52130F0F08
02026C979797561B262B4979BFA2999BDADAE7B3EBC9EBEBEBEBC9EAEAC9DAEB
DAC4E0C4EA000537370B1217171077122C2C2C2C47474652195B1C1B27341C1C
1C1B1A191852130F0853919797975626433044686D9E9D9EAAC4DBDBDAC9C9C9
C9EBC9EAEAC9DAEBDAC4E0C4EA00536C450B0817171212172C2C2C2C2C474718
4727341C1C2A241C2434275218180F0E12456C9797975A303B35C4EAB8A09D9D
A2C4DBB3EBD9EBC9EBEBC9EAEAC9DAEBDAC4E0C4EA0054544A0B08171717122C
2C2C2C2C2C475247522734342A382A2A26261C271A470F1010166C9197641B43
353B6BC8D9AA9EA0CDC4DBDBDAD9C9C9EBC9C9EAEAC9DAEBDAC4E0C4EA005353
530B17121717100F2C46462C464747525BBC1C59382B312B241C1B1B34270F10
060F455464231C43313B447CC8D9AECDDAC4E7B3EBD9EBC9EBC9D9C8C8C9EBEB
DAC4E0C4EA005353150B0B33121210612C2C462C46474752344F4F2A2D2B313B
261C27271C272C1012100F161A2424434951B1C4C4D9E7C9C9C4E7DBEBD9C9C9
EBC9D9EAC8C9EBC9EBC4E0C4EA0055540B0B0B3333104656602C474747475252
344F5F2B492D493B312A2428241B0E10101046134E4E262B447CDDC8C8EAE7EB
C9C4E7DBEBD9EBC9EBC9D9C8DDC9EBC9EBC4E0C4EA006C55373733333310C16E
6460525247475B52343867393B3B313B48432A241C1A0E0E1318180F192326A1
A36DA2B8DDEAE7C9C9DAE7DBEBEAC9C9EBC9D9EAC8C9EBC9EBDAE0C4EA009790
6C55333333D29297975A52525B2C525B3438393BA1443B3B3B31302423130D0D
131B1918121323BA6D9A9AA0DDEAC4D9C9DAE7DBEBEAC9C9EBC9D9C8DDC9EBEB
C9EB84C4EA009790975545450F565A929A5A525BBC525B5B594339394435312B
312B241C190D030D1327181346171A629E9090A0DDEAE7C9C9DAE7DBEBEAC9C9
C9C9EAEAC8C9EBEBC9EBC9C4EA009791916C91556156565A694EBCB634343427
4F38382A2B30282B142A261A16160D0C181B13191B5226F59A9090A2DDC8C4EA
C9EBC4E7EBEAD9C9C9C9EAC8DDC9EBEBC9EBC9C4EA0091549797916C45615669
69933434344F34342B381B261C231C28112A1C13160E13181B271A1A1A2449A2
90909DB8E9EAE7C9C9EBC4E7EBEAC9D9C9C9EAEAC8C9EBC9C9EBC9C4EA004A54
976C544545565A93714FB63C4F3C344FAD24271C231B1A1B231A131813131818
1A27231C1C2465F3909AA0ABE9C8C4EAC9EBC4E7EBEAC9D9C9C9EAC8C8C9EBC9
EBEBC9C4EA0007536C5307D755565A57714F344FBC3C1C3428432A241C1A1819
0E160E0E0E1818131A1C1B262B2843AA9D9DBFC8E9EAC4C9C9DAC4E7EBEADFD9
D9C9EAC8EAC9C9C9C9C9C9C4EA00076C6C54545555565A714FB64F3434341B1B
1C2B43281C1B1313160C16160E1913131A271B1C2B2A49D9A2BFC9C8E9C8C4DA
D9DACDDBC9EAC9EAC9C9EAC8C8C9EBC9EBEBC9E0EA004A6C6C5455976C56605B
3434BC3434271A1B262B2B241A26190E0E0316160E1818131A231B262B2A43C8
C8DDD9AABEBE9BAABE9B9E9BDAC8C9EAEAC9EAC8C8C9C9C9C9C9C9E0EA006C6C
54545591975646472771594F2434271C2849432A261C180E18160C0D160E0E0E
181B1A1C302843C8C8DD9C6F94AAA0A0AAA09EA0BEC8C9EAC9C9EAC8C8C9C9C9
C9C9DFE0EA00976C545445556C164661696E59593C2A2626283830302A281B13
0E160C030C0D0D060F1A191B1C2843EAC8C7DDB8E5AAA0A0A2A29E99DAC8C9EA
C9C9EAEAEFC9EBEAD9C9DF84EA00546C4A55545533104760979A6A4F2A591B23
302B2B494330241C0E0C0C030306120B101A19231C2328C8C8E99CAAAA9B9BAA
BECD9BAEEBC8C9EAC9C9C8C8C8C9C9D9D9C9DF84EA0007535454373312104692
90901C594F1B1B1C28243031432B11281A0E0F030A0A0B0B12181A2323231C78
C8DDA29E9E99DAC8D9C9C4E7EBC8EAEAC9C9EAEADDEBC9EAEAD9DFC9EA000802
53544A33100F465697972727342628282828433131494328261B18160A0A120B
120F19231B1B1C43E99C9E9D9DA2DAC8EAEBC4E7EBC8EAEAEAC9C8C8DEC9C9EA
D9D9DFC9EA0009080B6C0B10100F46565A69344F2A3828592428302A43292B2A
261B1813060A0D06121013521A181C31DDAA9E9D9DA2DAC8EAC9C4C4EBC8EAEA
EAC9EAC8DDC9C9EAEAEADFC9EA00151545370B100F0F613A5A6A5F382D2D2A28
282A2A2A49313126241B18181616130D0610131B19181C35C09CA09DA0AAEBC8
EAC9C4E7C9C8C8EAEAC9C8C8C8C9C9C8EAEADFC9EA0016030C0C0D060F463A60
5A345F382D2D492B302B2A142B313028265B18461813181612100F195219283B
B3BFB8A2AAABB5C4EAC9E0C4EBEAC8C8EAC9EAC8C8EAEBC8EAEADFC9EA000D0E
0D0D0D030F0F3A5A60523467592B2D30492B492A2431282A261B19181B19180F
100F4619191A2849DEDCDDABE6C8EBC8C8C9E0E7C9C8EAC8EAC9C8DEC8EAC9C8
EAC883C9EA00160E0D160D0C0F333A6957594F6767382B492B30302B2A35282A
281B0E191B180E0D0F0F0F1A1B1A2431E9C7C7DEC7DEC9C8EAC9E0E7C9C8EAC8
EAC9EAC8C8EAC9EAC8EA83C9EA00160D03030D13186064976957593839672D3B
432B2B2B493B2B1128261918190E0F0F0F0F0E1B1B232430B1E4C7DEC7DEEBEA
C8C9EBE7C9C8EAC8EAC9C8E9C8EAC9C8EAC883C9EA00160C090C16181A5A9A9A
6E694E2867393B65314331253B2A2A11281C130E0E03030C0E0E161A1C1C283B
44DDC7DEDCDEC9C8C8C9EBC4C9C8EAC8EADFEAC8C8EAC9EAC8EA83C9EA00130C
0D16130E165A9090909A6957599635963B493B44491C1C1C30261C19090A0D03
0E130D1826262B3135C8C7DEE4DEEBABB8CDDAC4DFC8C8EAEAEAC8E9C8EAC9C8
EAC8C8DFEA0018090C1809053755979090908E574335A1353B443D4425282331
112424230C16130C0E1616181C26582343C9C8E9E4DEC9B89E9EAAC4C9C8C8C8
C8EAC8C8C8EAC9C8EAC8C8DFEA00180A020609080755909090908E583B787878
445E5050351126432B1C2826130E190E0E0D161923696E692B7CE4E9E4E9C9AA
9D9D99B1D9DEC8EAC8EAC8E9DEEADFC8C8DEC8DFEA000C090808050C15549790
909770583B743551503B48443B3B2550312A2A28231318160E160E1A5A9A906E
57447BE9C7E9D9A29D9D9ECDDFDEC8C8C8EAC8DEDEEADFC8EAC8C8DFEA000D0C
0A0B090C0C459797906457625E3B3B683D3B252531251E0429313143261B1C0E
160C45195A8E9A6E285068E9E4E9C9AA9E9D98CDEADEC8EAC8EAC8E9C8EAEAC8
C8C8DEDFEA00160A05080A030C3A9297923A2770584448442B35253B31445148
3B443B1428241C1A134564645A58704E24501EB1E4E9C9B8A09EA0CDDFDEDEC8
C8EAC8E9C8C8EADEC8C8DEDFEA000D05080705030E136492561061978E29443B
4325442531442525253D432B2A591C19133A64645A11112324253B50E4E9EAAB
B8A2CDDAC9E9C8C8C8EAC8E9C8EAC8E9DEDEDE83EA000305070708030D0E183A
180F6C9A9A3011303B443B313B442544503E252A3824270F0F163A561A244328
303549314DC7DFDEC8EAC9EBC9E9E9C8EAEAC8E9DEEAC8DEDEDEDE83EA000C07
0202081516160D16131391976E1A191A2A3B2B2A313B251E3E684B312B241B12
100F161B24242B303031314481C7EAE9DEEAC9E0DFE9DEDEC8C8C8E9DEEAC8E9
E9E9DEC8EA00090702074A5555450C0D0F3A91975A2313131C2611243B503D3D
813E51442D27270613100E27282A30302A3B3DC7E4C7EAE9DEEAC9EBDFE9E9DE
C8EAC8E9DEEAC8E9E9E9DEC8EA00090702539197979109030E1691921B1A1818
1C262824354850513E3D764B2D261C160F0F1A23262A2A2A2B253150E4C7EAE9
DEC8C9EBDFE9DEDEC8C8DEE9DEEAC8E9E9E9DEC8EA0009070254909090910C0C
063364561B1319231C1C1C232A3125504D2F3D3B28342319161A696E4E302630
43482B2BE4C7EAE9DEEAC9EBDFE9E9DEEAC8DEE9DEEAC8E9E9C7DEC8EA000908
5391979097560C0F0C10130E18181B24261B231A28293B1E2F503149341B1B1A
0D5A90906E572A2B43252B2A68C7EAE9DEC8C9EBEAC7DEDEC8C8DEC7DEC8C8E9
E9E982C8EA0009055397979097450C180F2C173345181C1C231A1C1C2B314844
48312A27271913130D4E9A909A70302A433B2A2B7CC7C8C7DEEADFC9EAC7E9DE
DEC8DEC7E9C8C8E9E9C7DEC8EA000315536C9197910D0D130F46176C643A1A18
0E181B263B25041D3531381B1B13130E0E3A6E909A70302831252B7BE8C7EAC7
E9C8DFEBEAC7E9DEDEC8DEC7E9DEC8E9E9E982C8EA00091537546C9145161616
120F91919716133A3A5618262A1E504B443538341B1A180E13135A6E575C2A2A
25503B76E4E4C8E9E9C8DFC9DFC7E9E9DEC8DEC7E9C8C8E9E9C7E9C8EA000909
0D0C453A1616160E12619791910E0E5692921A231C48443B312D4F34191A1A13
131A1B234E3B28294B7B6881E4C7DEE9E9C8DFC9DFC7E9E9DEC8DEC7E9DEC8E9
C7E9C7C8EA0009160C0D160E0E0D13190F919797530D18929792231C2A5C582A
2A24342734271913131B231C2344144BE4E3C6E4E8E4DEE9E9C8DFC9DFC7E9E9
DEC8E9C7E9DEDEC7E9C7E9DEEA000D16160D0C0D0E130E131A97979717185A9A
9792191C2598983B3934343434341B181B1C1B111CAA946DC7E8C6E4E8E4DEC7
DEC8DFC9EAC7E9E9DEC8DEE9C7DEDEE9C7C7C7DEEA000E0C160E09150E180E18
4E97929223195697975A1826506D6D4B1E5F342A34341C191C261C245A6F6F94
A6E3C6E4E8E4DEC7DEDEDFC9EAC7C7C7DEDEDEE9C7DEDEE9C7C7C7DEEA001609
160E0A050E0E0C1B5797975A1C1A3A926E4E282B512E4C68B4444F343C2A1B1B
1C303B25706F906F9CC6C6E4C6E4DEC7E9DEEAC9EAC7E9E9C7DEDEC7C7DEE9E9
C7E4C7DEEA000E030D0D09150D0D0D1A1C9269283019136469263B502F4C363E
634B393C4F3C1B1C2A242911576F6FA09CE3C6E4C6E4DEC7E9DEEAC9EAC7C7E9
C7E9DEE9C7DEE9C7C7E4C7DEEA000D0C0D0A0A030C03161818232624241A1923
2328504444665D68634B35394F383424241C2A113062A0B8B2C6E3E4C6E4DEE9
C7DEC8C9EAE4C7E9C7DEE9C7C7DEE9E4C7E4C7DEEA000D03100B0B0A0C0E1A18
18131C262423231C2328443148989E9B684B3538382D2A261C26262829427CB1
87C6E3E4E8E8DEE9C7DEEADFEAE4E4E9C7DEE9C7E9DEE9C7C7E4C7DEEA000E0A
060808080A0F1A1913132326241C242A1C28293048989E9B7D814B2D382D4326
1B232326303D3EC487C6E3E4C6E4C7E4C7DEC8DFC8E4C7E9C7DEE9C7C7DEE9C7
E4E4C7DEEA0013060B080808080B101618191C1C4E1C262B262A2A3B25626D80
807D63352D2A2D3026231B2A2A4B3EC887E3E3E4C6E4E9C7E9E9EADFC8E4E4C7
C7DEE9E9C7DEE9C7E4E4C7C7EA000D060B070807020805375656236969281C24
26142B1D4D3D51808042B34D2D2A492428261C3149444D84B7E3E3E8C6E4E9E9
C7C7C8DFC8E4C7E4C7DEE9C7C7E9C7C7E4E4E4C7EA00090B0707070202025397
90646497921C2326312B25793E2F688380807D4C35282B28241C303B393C68C4
87E3E3E8C6E4C7E4C7E9C8DFC8E4E4E4C7E9C7C7C7E9E9E4E8E4E4C7EA00030A
0202020202026C9090979797921B2B143B3B482F513D3E7D7DB14C2F3B282A30
2627302D5F474DC484E3E3E8C6E4C7E9E4C7C8DFC8E4E4E4C7E9E9E4E9E9C7E4
E4E4E4C7EA00090A0702020707076C9790649797641A2B3131253B2F8151817D
36364D44312811302426242A3452A76883E3E3FBC6E4C7C7E4E9DEDFC8E4E4E4
E4E9C7E4C7C7C7E4E4E4E4C7EA0009150A07020808539197915692973A133130
29045E2F364D4CC436362E353124302A1B1A1C24523CA98183E3E3C6C6E4E4E9
E4C7DEDFC8E4C7E4E4C7E9E4C7E9C7E4E4E8E4C7EA00090C0D030A0A0B549191
0C569264192314303B3D3D502F4C847D4283682F3D2543142426261C523979B3
E3E3E3FBE8E4E4E9E4C7DEDFDEE4E4E4E4E4C7E4C7C7E4E4E4E8E4C7EA00030C
16090A090A4A540707559264262A3131313D512F7936B336837F4C3E681E4825
492B2434274B2F81B7E3E3C6C6C6E4E9E4E4DEDFDEE4E4E4E4C7C7E4C7E9E4E4
E4E8E4C7EA00160D160C15090D060802079197971C1129253B1E5151443E4C7B
428280B14C4D253B31432A38383D4B36E3E3E3E3E3E8E4C7E4E4DEDFDEE4E4E4
E4E4C7E4E4C7E4E4E4E4E4C7EA0013160D09090316030B02539797971B30302B
25445C623D5D995D3E80423636683B31142B2B353B353D7DE3E3E3E3FBC6E4E4
E4E4DEDFDEE4E4E4E4E4E4E8E4C7E4E8E4E4E4C7EA000F3A45450C0C160D0A07
6C9797972324313148708E9E5C989E997C42807DB33E25492949313544441E36
E3E3E3E3E8C6E4E4E4E4DEDFDEC6E4E4E4E4C7E4E4C7E4E4E4E8E4C7EA000E55
5655090D0C0D09076C97909126283125629A908E8E9999664C364184364C3E2F
3131253D4C4D1E84E3E3E3E3C6C6E4E4E4E4E9DFDEC6E4E8E4E4C7E8E4C7E4E8
E4E8E4C7EA00606491550909090315085490906E6E573144989A9A9A5C62687D
7B36807D364C682F1D25444D3E362F3EE3E3E3E3E3E3E4E4E4E4DEEADEC6E4C6
E4E4C7E4E4E4E4E4E4E8E4E4EA004592916C150505091508539792929A8E3B3B
9D9A9A8E4462626D364C367D4C4C4C2F50501E3D3E4C427F86E3E3E3E3E3E4E4
E4E4E4EADEC6E4E8C6E4E4E8E4E4E4E8E4E8E4E4EA0033919791370B0A0A1507
05456497977044299D9A9A9875989D99683E4D7D7D364C681D501D3E80E389E3
E386E3E3E3E3E4E4E4E4C7EADEC6E4E8C6E4E4E4E4E4E4E4E4C6E4E4EA001692
979153080A0909080D166E9A9A5C51318E9A9A486D989E994D3E4D68427D364C
3D043B1EB32289E38686E3E3E3E3B7E4E4E4E4EADEC6E4FBC6E4E4E8E4E4E8E8
E4C6E4E4EA00569797974A080B0A030E181897979A31683D98A098445E6D6D5D
36363E36364CB14C4D483B1E7DCB8989E3E386E3E3E3E4E4E4E4C7DEDEC6E4E8
C6E4E4C6E8E4C6E8E8C6E4E4EA003A9797921608080A0C0E1A1A9A9A70252F51
48753D1D2F3E3D2FB14C367D4C4C36B151303B3B3E8389E38689E3E3E3E3C6E4
E4E4C7DEDEC6E4FBC6E4E4E8C6E4E8C6E8C6E4E4EA003A64925613030705150D
23196E9A5C484D2E3E362F2F3E4D3D442F2E4D4C7D363E3E4D1E143B7D3E42E3
89E386E3E3E3E8E4E4B7E4DEDEE3E4E8C6E4E4E8C6E4C6E8E8C6E8E4EA001919
45130E0C0505150C1B1C585C251E2F3E3E423D442E3E4D502E362F4C7D2E3D2F
2E502950854C3689E38689E3E3E3E3E4E4C6E4DEDEE387E3C6E4E4E8C6E4E8C6
C6C6E8E4EA0013160D0E130C051505091A23313D1E3D2F3E4C361D1E3E2E3E5D
6D5D3D1D442F4D254444314487847DFE8986E2E3E3E3E3E4E4E8E4DEDEE3B7E3
E3E4E4FBC6E4E3E8E8E8C6E4EA0019130D0E1309050509150E26253D3D3D3680
4C414D25514C7B6D9E991E443B2F3D481D3D441E41863EFA898989E3E3E3E3E4
E4C6E4DE82E3E8E3E3E4E4E8C6E4E8C6C6C6C6E4EA001A190C160E0915050505
1623442E3E3E80417D417D2F3D5D9BA09E993D443B3E6804503D4D3E83417D89
89FEE286E3E3E3E4E4E3E4DE82E3C6E3E387E4FBC6E4E3E8FBE8C6E4EA001319
160C160C0905050905131E3D2F3641807D80803E2F629E9D98752F04313B2504
442F513641418387FE89E286E3E3E3E4B7E3E4DEC7E3E8E3FBC6E4C6C6E8C6C6
C6E3C6E4EA0018180E030D090505050505231D3D2E4C8041427D427D3666989D
99511E1E3B3B2B3B1E3E3E7D7F2236428989FA86E3E3E3E4E4E3E4DEC7E3E3E3
E3C6E4E3E8E8E3E3E8FBC6E4EA00180E16090C05080805050D1A3B1D2F3E4280
41424266A2999B98753E1E44313D4C4D51687D7D7E837D368989E286E3E3E3E4
E4E3E4DEE4E3E3E3E3C6E4E3E3C6FBC6C6E3C6E8EA00130E030A090707070505
0E0D1C253D4C7D82828083999E9E9976251E367D1E418283364C4C427D808380
E289E289E3E3E3E4E4E3E4DEE4E3E3E3E3C6E4E3E3E8E3E3FBE3E8C6EA001813
0308080207546C543A132328043D3641877F4166A09E9951443E83427E7E4083
7F7D4C7D414242368989E2E2E3E3E3E4B7E3E8DEE4E3E3E3E3E887E3E3E3E3E3
E3E3C6C6EA0019180F07020253979797551A26243144367D7F4042325D9B6B7C
4C4CE33641827FC7877D7D3680364C428989E2E2E3E3E3E4B7E3B7E9E4E3E3E3
E3E3B7E3E3E3E3E3E3E3E8C6EA001A190E1707026C97979755161C31251D669B
A2AA682F3D1E1E1E2F864282E3877D7F834C3E4C7D3636368989E2E2E3E3E3E4
B7E3B7C7E4E3E3E3E3E3E4E3E3E3E3E3E3E3E8C6EA001B18130F075391919797
551529253D3E669E9D9E9B2E3E363D143E7D80E286867E8342362E3E3E7D7F83
E289E2E2E3E3E3E4E3E3E4E4E4E3E3E3E3E3C6E3E3E3E3E3C6E3FBC6EA001B13
0F0E0B4A6C979797371C31252F32B8A09D9E9B7D42363B3D8041868588868783
42832F3E3E3682868989E2E2E3E3E387E3E3B7E4E4E3E3E3E3FBC6E3E3E3E3E3
E3E3E8E8EA001A13100F0F376C9197562324313B3D3E7D9BA0A0B8417D4425E3
E1E18888E18886C88287C42E7D42E3E28989E2FA89E3E3B7E3E3FBE4E4E3E3E3
E3E3C6E3E3E3E3E3E3E3C6C6EA00191306170B3337536C3A1B113131442E8080
9C9C80424C1D3D4CE1E1E188E1E1E1E286868680828285E2E289E2E286E3E3E3
B7E3E3E4E4E3E3E3E3FBE3E3E3E3E3E3E3E3E3C6EA001813120808080B050913
1C2629251E3E7D824122838332363E1E42E1E1E1E1E1E1FD88FD88E1858988FD
8989E2E286E3E3E3E3E3E3E4E4E3E3E3E3E3E3E3E3E3E3E3E3E3FBC6EA00160D
0D0B0708080537561C2630253D4C4241414183422E4C322EE1E1E1E1E1E1E1E1
E1FD88E1E18888E28589E2E286FEE3E3E3E3E3E4E4E3E3E3E3E3E3E3E3E3E3E3
E3E3E3C6EA000C030D0C080705080518191B2431985D42427D4142423E4C7D80
FCE1E1E1E1E1E1E1E1FD88E1E1FD88FDE288E2E289E3E3E3E3E3E3E4E4E3E3FA
E3E3E3E386E3E3E3E3E3FBC6EA0009150D0D0508050502101A1A5A979A983636
36827F41327D4282E1E1E1E1E1E1E1E1E1E188E1E188FD85E285E2E2FAE3E3E3
E3E3E3E4E4E3E386E3E3E3E386E3E3E3E3E3E3C6EA0009090C03150505080802
1819929090702E3636404082424242427DFCE1E1E1FCE1E1E1FDE1E1E1888888
E288E2E2FA89E3E3E3E3E3E4FB86E3FA86E3E3E386E386E3E3E3E3C6EA000C09
030C090A05080508153A979090702F7D428287414180414187E1E1E1FCE1FCE1
E188E1E1E188FDE2E285E2E28989E3E3E386E3E4E486E3E386E3E3E3CBE386E3
E3E3E3E3EA00160C0D03090905090515155490909230043E4222827F41428340
FCFCFCE1E1E1E1E1E1E1E1FCE18888888588E2E2FA89E3E3E386E3E4FB86E3FA
86E3E3FACBE386E3E3E3E3E3EA000D0D0D0D0C0D090C0309055497906424303E
418241828241428287FCE1FCE1CCFCE1E1E1E1E1E188FDFDE2FD85E2E289E3E3
E386E387FB89FEE386E3E3E3CBE386E3E3E3E3E3EA00090C0C0D0909030D0C15
054A97921924242F364232427D7D3687FCCCFCE1E1E1CCE1E1E1E1FCE1E18888
888888E2E2E2E3E3E389E3B7B7E2E3EC89E3E386E2FACBE3E3E3E3E3EA000909
05150505150C0315050537451323303D324C3E32663242E2CCCCFCE1CCCCFCE1
E1E1E1E1E18888FDFDFD88E2E2FA86E3E389E3B7E3FA89E389E3E3E3E2E3E2E3
E3E3E3E3EA000A0915050A05150909090905150C163A291D99625D9BA0998086
CCFCCCE1CCFCCCFCE1E1E1FCE1E18888888888E2E289FAE3E386E3B7E3E386FA
86E3E386E2E3CBE3E3E3E3E3EA00090A05090A0505090E19191316134592585C
9E7099999DA07F8288FCCCFCCCFCCCFCE1E1E1CCE188888888FD8888E2FA89E3
E389E3E3E3FA86FA89E3E3E3E286FA86E3E3E3E3EA000A05050B0B0A03182323
2324281C11572599989899999EA28087CCFCCCFCCCFCCCFCE1E1E1CCE1E18888
85E3E3E2E28989FEE389E3E3E389E38989E3E386E2E3E286E3E3E3E3EA000305
08080B0F191B1C231131142929585C5C5C6D66759B5D4242FCCCE1CCFCFCCCFC
FCE1E1CCE1888888B7878786E2FA89E3E389E3E3E3FA89E2FAE3E389E2E2FA86
E3E3E3E3EA000A0B08080B0E181B241114313B29708E8E5C312E4C3E42367D42
228686CCFCCCCCFCFCE1FCCCFCE188FD878787E4E2E289E3E3FA89E3E389FA89
FA86E3E2E2FAE286E3E3E3E3EA000A0A080A100F1A1C11241131315C8E9D9D70
142E363E42424242418786FCCCCCCCCCFCE1FCCCFCE18888B787C687E2FA8986
E389FAE3E3E289E2E286E3E2E2E2FA86E386E3E3EA000C0D0F1813461A27262A
1431315C8E9D8E98142F363682427D7D3E7D86CCFCCCFCCCFCE1CCCCFCE18885
87B787C6E2E2FA89E38989E3E3E289E2FA89E3E2E2E2E2E2E386E3E3EA000D19
18180E46181B2A3814140462989D9E6D3B0436414142367D2E4C4C86CCCCCCCC
FCE1FCCCFCE1888687C68786E289FA89E3E289E3E3E2E2FAE286E3E2E2E2FAE2
E386E3E3EA000D191313131A1A34282A141D1D5D6D996D3D041D364141427D40
2E2F3E42FCCCCCFCFCFCCCCCFCE1888687E3E4E2E2E28989E3E289E3E3E2E2E2
E289E3E2E2E2E2E2E386E3E3EA00161A131A471C3427342814043E322E3D3D3E
2F2F3E42424236412E3236FCCCCCCCCCCCFCFCFCCCE1FC8687E387E2E2E2E289
E3E2E2E3E3E2E2E2E2FA86E2E2E2E2E2E386E3E3EA001A1A181A1A1B341C2624
142E2E3E322F2E323E1E2F3E3E4232364C1E2FCCCCCCCCFCFCFCCCCCCCE1E186
87B787E2E2E289FA86E2E2E3E3E2E2E2FA89E3E2E2E2E2E2E3E2E3E3EA001C1A
1A0E131B11142A311E2E1E2E3E4C36362E253E3E2E323E42413641CCCCCCCCCC
CCCCFCFCCCFC888787B78688E2E2898986E2E2FEE3E2E2E2E2E286E2E2E2E2E2
E3E2E3E3EA0023261A130E23241114252E2F3D3E323636363D1D322E2F324142
8588CCCCCCCCCCCCFCFCCCCCCCFCE287E3C68688FDE289FA89E2E2E3E3E2E2E2
FA89E3E2E2E2E2E2E3E2E3E3EA00232619160E182630311D3D3D2F3642424236
2E3D626D2E2E42364221CCCCCCCCCCCCCCCCCCCCCCFCE287E387E2E188E2E2E2
89E2E2FEE3E2E2E2E2E286E2E2E2E2E2E3E2E3E3EA00232619160D0E1A111429
62251D2E423236362F5C9E9E9B423E2E4221F0CCCCCCCCCCFCFCCCCCCCFC86E3
87E3E2E188E2E2FA89E2E2E386E2E2E2E2E2FAE2E2E2E2E286E2E3E3EA001A1C
1A16160E0E2358708E7029251D252F2E3D5C9D9DA04140868888CCF0CCF0CCCC
CCCCCCCCCCE187B7E386E1E188E289E289E2E2FE89E2E2E2E2E289E2E2E2E2E2
E3E2E3E3EA002324231A1A180E18578E908E57281114112F32999D9DA0AB4086
F0CCCCCCCCCCCCCCFCFCCCCCCC88E3B7E3E3E1E188E289E289E2E2FA89E2E2E2
E2FA89E2E2E2E2E286E2E3E3EA001C261B1A1A19561A566E906E231C24113004
419B9E9DA09C822141F0CCF0CCF0CCCCCCCCCCCCCCE2E3E38789E1E188E289E2
89E289FA89E2E2E2E2E289E2E2E2E2E2E3E2E3E3EA001C261B19195A6464563A
5623191C11311D322E5DA09EA0AB7F2140F0CCCCCCF0F0CCFCFCCCCCCC86E3E3
8788E1E188E289E289E2E2FA89E2E2E2E2FA89E2E2E2E2E286E286E3EA001C26
1A13181A64643A161313191C11312F2F2E3EAAAA9C7E822285F0F0CCF0CCCCCC
CCCCCCCCE186E3E386E1E1E188E2E2E289E2E28989E2E2E2E2E2E2E2E2E2E2E2
FAE2E3E3EA001C261A0F1319563A0E0D130E1B3026312F2E3D2E4240416B4476
7FF0F0CCF0F0CCCCFCFCCCCC88E3E38789E188E288E2E2E289E2E2E289E2E2E2
E2E2E2E2E2E2E2E289E286E3EA001C1C1A10100E0E0E0D0E19131911141D3E36
3E42822251A36B447DF0F0F0CCCCCCCCE1CCCCCCE286E3E389FD86E7DEE2E2E2
89E2E28989E2E2E2E2E2E2E285E2E2E2FAE286E3EA00231C18060F0D0C0D160E
13191C31251E2F2E3E42407FA15E76767CCCF0F0F0CCCCCCFCCCCCFC8686C686
8280C4B5D5DFE2E2E2FDE289E2E2E2E2E2E2E2E285E2E2E289FA86E3EA001B1C
130D0F0D090D16160E242B251E2F324242324C3274747876A5F0F0F0CCCCCCCC
FCCCCC858686E3858283B3B3B4D1E4E2E2E2E289E2E2FDE2E2E2E2E285E2E2E2
E2E286E3EA001B1B0E0D0E1655643A181C1431253D3E2F2F42322E2E7448446B
A5CCF0F0CCCCCCCCFCCCCC85E28686E28283C8C8B3B0B0E4E2FDE289E2E2E2FD
E2E2E2E285E2E2E2E2FA86E3EA001A1A160D0E5597906E4E11141D1E2E2E322E
3242417648746B6B5188F0F0CCCCCCFCCCCCCC88E2E4888680C8C8C883C4B581
E4E2E2E2E2FDE2E2E2E2E2E288E2E2E2E2E289E3EA0019190E0D0E5697909057
2B3B1E1E1E042F2E3D3E42783B74766B5186F0F0F0CCCCCCFCCCCCCC8686FC84
B3C8C8C88384B3C4C482E2E2E2E2E2FDE2E2E2E288E2E2E2E2E289E3EA001A19
0E16133A64909A5714293D3D2F251D2F1E3D3674446B76744C3FE1F0CCCCCCCC
CCCCCCCC8688E1C9807FC88383C9C4C4C4B382E2E2FDE2E2E2E2E2E288E2E2E2
E2E289E3EA001818160E18185A6969581431253D043D1D2E2F2F7D4944765E49
3E2188F0CCCCCCCCFCCCCCCC85CC887F83DE808083C9C980C4C4B3C8E2E2E2FD
E2E2E2E288E2E2E2E2E2E2E3EA001918130E191A234E24111431142F14043E3D
3E1E36433B5E7443418688CCF0CCCCCCCCCCCCE1FCCC888383C8808383C984C9
C984C481E4FDE2E2E2E2E2E288E2E2E2E2E28986EA001818131313181C231A24
3131312E251D1D1E2F3E2F49745E3B49872188F0CCCCF0CCFCCCCCE2E2CCFCE3
838083C880C9C9C9C9C9C9B183E2E2FDE2E2E2E288E2E2E2E2E2FA86EA000F13
13130E131A1923585C5C252E2E3D1E3D2F363D747848745E3F8620F0CCCCF0F0
CCCCCCE286CCCCFC89B7B7E2B7C98483C9C9C9C482E2E2E2E2E2E2E288E2E2E2
E2E2E286EA00100F0E0D0C0C1313648E9A70292536362E1E3E3225745048747C
3F2188F0CCF0F0CCCCCCCCE2E2FCCCFCE3C782B7E2E3C9C9C9C9C9C9E3888888
E2E2E2E288E2E2E2E2E2FA86EA00030F0E031603031A579A908E57112E413E2F
32326548445E74364086CCF0CCF0F0CCCCCCCCFD85CCE28588FDE4C7B7E2B7C9
84C9C47DE3E2FD88E2E2E2E288E2E2E2E2E2E286EA00060D0F0C190E1624588E
9A9E57313642404236427478445E7840218686CCCCF0F0CCCCCCCC8588E1C8B3
B5B5DFC78289E2B7C4C9C4B1B788FD88E2E2E2E288E2E2E2E2E2FA86EA00100D
0E131A1318112957985C112532413F873F7D786B5E6B76211F88202088CCF0CC
CCCCE18588887FC4B5B584DEEBDEE2FD82B3B3C4FA88FD88E2FDE2E288E2E2E2
E2E2E286EA000F0D160E1A1A2614313B1D322E3E2E42223F3F686B767A767D1F
CC8585858689CCCCCCCCFD85888882B0D48083C8E4C4DFE2E2E483B7E288FD88
FDE2E2E288E2E2E2E2E2FA86EA000F0D0D1324261125041D042F363E2E424122
3F787668A56B86F0CC8888E12121CCFCCCCC85E288E2C8B4D4848383C8E3E0DE
E288FA89E288FD88E2E2FDE288FDE2E2E2E2E287EA000E0D132328141425042F
2F2E41413236424122787951686BCCF0CCCC1F888640CCCCCCE1E285E1FC83D1
B0C4C9808083E3DEC9E28889E2E188FDFDE2E2E288E2E2E2E2E2DE76EA000E13
192311143131392F2F2E36363E3641874276A568A5B3F0F0F0CC1F208687FCCC
CCE18588E1CCB7D1D5C4C9C9C9C983E2DFE4E2E2FDE2E2E2E2E2FAE2FDFDE2E2
86C9A479EA000E0E191C241431312D39322E323636364286795168687621F0F0
F0F0CC8622827ECCCCE18888E189B3B46381B38483C9C4DE89C789E4D4D1D1BA
BABABABABABABAA1D0C2D0CEEA0013191A0E241425353947683E2E2E42323622
4451C0687AE1F0F0F0F0CC85212287CCCCE1E1888587D4B0B5D4B5B3C9C984C4
8389E2E2E2FAFD88E2E2FDE2FDE2E3C0A3C9FA89EA001919231311243504395B
A14D4D4C422F42365E7668B0AFCCF0F0F0F0CC88868787E1E1E1E188E2E384E7
81B5B0D5B5B1C9808483E2E2E2FDFD88FDE2E2E28887C079C8E2E289EA001C19
18132414351EB63C4450442E361D2E3B5076687687F0F0CCCCF0CCE185224088
E1E1E1888889E0B3D4B5A4BAB4D48483C9C987FDE288FD88E2E2FDE2E3A579E4
E2E2FA89EA0011261323241114354F353D7449041D29312A6B51A5A31FF0F0E3
82CCCC8885408285E1E1E188E1E4E7B3B3B0D1BAD1B0C484C9C983E2E288E188
FDE2E2E3C0B0E4E2E2E2E289EA00242413232624282A34254B3B2A3131283043
5E766BAF8988FCB3BAD4E32021414085FCE1888888C9B3C9DFB0BAD1D1D5D4D4
84808389E288FD88E2E2E37CB087E2E2E2E2FA89EA0024240E1A191A26272631
3B2B2A31042926495078744279A381B4ADC2B9E387368788E1E18888E1DFB3E4
DFD4D5B4D1B5B58184C9C982E2E1FDFDE289C07CE3E2E2E2E2E2E289EA00231A
181819191C1B2A43316A59313D43284944446BB7AF68A18FBDC2BC8122428285
FCE18888CCDFE7DEE0D4B0D5B3C4C9C9B3C4DEC48988E18886AFD4E388E2E2E2
E2E2FA89EA00231A1A191A23275930654328593B1D261C493B3B80827C79BA79
7AC2BBBC4C7D4185E1E18588E1C9E7C484DFE7B3B381DEE3B7E4E0B3FDDE88E2
C4AFE388E2E2E2E2E2E2E289EA001C23191A231C1A26283028237143281C2A2B
493B2184687AC07C68785FC2AC3D4188E1E1E28888C9DE82DEC481C9E0D4D5B5
E488E7DFE2B3FD80C486E2E2E2E2E2E2E289FA89EA0026261A1A232424231C24
1C601A30242B2B43493E874C4D79B06868A57874BC59B58588E1E288FDE08382
828283C9C9C9C4D5B589E386E3B37DC989E2FDE2E2E2E2E2E2E2E289EA001C24
1C1B242826271C2493601C494343433149412265B979686868687A742B43A1B3
88E185E189C4C4C484C9C88283C98482C9C9FDB7DED5C9E2E2E2E288E2E2E2E2
E2E2FA89EA002411282330281C712328715B716A3B3B3B652E4121C27A79B0B0
4DA57A74B97A76ADAF85888886C4C48484B3C4C88383C9C987E3E2E3C9B0FA88
E2FDE288E2E2E2E2E2E2E289EA001D31111C243071272793715B716A44445E44
42403696B0686879797976B07AB9A1A3ADD485E1FCE4E0C980C4C484C980C9C9
E488FDE2E4C4FDFD88E2E288E2E2E2E2E2E2FA89EA002511292826281C714E71
71605B9F4450A14240224C7AB0B06878767676B0B0B07A78A3ADB585CCDEDBE0
84C4C484C484C8C6E2E288E2FEC8E188E2FDE288E2E2E2E2E2E2E289EA001424
11142B28271C71715B605B49447451213F217C7A51B076BA76797979B06879A3
BAA367AFE2C9B38484848484C4C9E3E188FD88E2E4DEFD88FDE2FDE2E2E2E2E2
E2E2FA89EA00112824113B6A1A61525A606071659F6A42213F21794479797A50
796868B076A47979A37A78AD82C9B3B3C4C484808384C9E388FD88E2DEC7E188
E2E2E2FDE2E2E2E2E2E2E289EA00261C1C111D2A1860605B606071656A746820
8588823EA1A1785050A36868B0B0797979A47A78B3EBB3B3B3B3C484C9C984C8
E2FD88E2C4E4FD88E2FDE2E2E2E2E2E2E2E2FA89EA001C261125042660606060
606071439576A1211F1F2021838481837D7DA37968B07979A4A4A478C4DFB3B3
8181B3B3C4847DDEE288FDE2B3B7E188FDE2E288E2E2E2E2E2E2E289EA002811
141425261A5B60606060936AA176448720882020B581C4B3422285B0797979A4
79767A7A8AC9B3B381B581C484C4B17FE389FDE2B3E3FD88E2E2FDE2E2E2E2E2
E2E2FA89EA0031241129311C525B6060607193437651783F20888587C4B5B5B5
63DECC89B0A4797979A478B1E3C9B381D4B0B5C4C9C4C480C9C980E4B389FD88
E2E2E2FDE2E2E2E2E2E2E289EA00312411312B1C1B5B60606093443B79765E21
2282408D8285DE81D181E1E1E37AA47979BA787989C9D4B5D5B4B0B3B1B3C4C9
8484C482DBE2FD88E2FDE2E2E2E2E2E2E2E2E2E2EA00142811293026521B603A
609378747651782041765F71C267A1C484AFDEE18882A1A4A4A1A1A3E1DFD4D4
B4BAB4B0B0B0D4AFD4AFC8E4E7888888E2E2E2E2E2E2E2E2E2E2E2E2EA00111B
23142B1C1A1A61606171496A78796B2041763B8FBCBB8FB9BAB5E48988857D78
A3A19676CCE4D4B5D5D1D1D1D1D5D5B581DFE4C9EB88FD88E2E2FDE2E2E2E2E2
E2E2E2E2EA00113011253149275B60606171749595766B20426B5F59595F7478
C4B4CEDEFD8886B5B974AD84CCB7B5B4BABAA9D1D1D1D1D1D5C4DED4E0E18888
FDE2E2E2E2E2E2E2E2E2E2E2EA001425251D1D3B34276060619365436A6BA320
427AAC5B8F35A1787AE4D4A7D4E288E3C9A5AFB7E1C9D5CEADADADB9A8BABABA
D1B0B3B4E088FD88E2E2FDE2E2E2E2E2E2E2E2E2EA00250404041D5059346060
6071656A93505E2168505952C2AD4479A4A489C8B9D58885E287C786FCDEB3BA
D0D0BDD0C3BAD1D1D1D5D4CEEBE18888E2E2E2E2E2E2E2E2E2E2E2E2EA000425
2525253D4F596060617149956A4444414274ACBBAC67B9A4A57979E2DEBAD4FE
85E2B7E28887C8B3B3D5CED0C2BDCED1B4C4DFBADF8888E2E2E2FDE2E289E2E2
E2E2E2E2EA001E042525042F4F595260609343955965437D223DACC1BC6778BA
7AD579B0868AD1D5E285E4E28683B5D5D4C4C4D4BAD0BDC3CEE0FAB5DEE188FD
E2E2E2E2E289E2E2E2E2E2E2EA002F1D043E32513C59526060936A6A71436540
2122BCC1BCBDA1BABA78A4A47C8982D1C488E285E3C4D5BABA7AB0AFB3B0BAAD
D0D4FADFE4FD88E2E2E2FDE2E289FAFAE2E2E2E2EA002E1E2E3E3E2F4F595B60
6093285959493B4042A15B5BBC8FAD96A1A37A767A7C86DED48788C7D0C2C2C2
C2BD8FBDBD8FC2ACACBCC2C2C2BDD0C3B9CECEB9B996ADADC3B9B9B4EA002E3E
2E3E32504F595B6060717128593B7441356ACFBBBCC2BDD0B94B79A4A3A37C86
E4B7E1DFC2C1C1D3D3D3D3D3D3D3D3CFCFC1CFC1BBBBBBBBC1C1C1BBC1BBC1BB
C1BBBBACEA002E2E2E3636503C595B606026936A6A3B654D747160BCACC2ACC2
D0B9A4797A78BAB586E388E286B3D5A8BAA1BACEA1A1CEBAD5B584DEFAFDFDE2
FDFDE2E2E2FA89E2E2E2FA89EA001D2F3E36365038595B606093593059434976
3B52C1BCBBBCACBCACC2ADBA797A7AD1768988E389E0D1BABABABAD1BAB9B9D1
C4FBE3DF89E188E2E2E2E2E2FA89FA89E2E2E289EA001D1E364236443C285261
61276A6A9343313649BBCFCFC1BCBCBBC1BBBDA1A47979797A80E27EE4B0B9CE
BABABACED1B4B5C8E2FDE3E4E28888E2E2E2E2E2E286FA89E2E2FA89EA001D31
324132353C6A5261615B26955949314265CFD2D3BBBCBBC1CFBBC2AD7AA47979
797ACB82C7B3CEC3AD96B9B4C4E289E2E2FDE2E2E2FD88E2E2E2E2E2FA86FA89
E2E2E289EA00312E36363E35384F520F616093386A7444C4C2CFD8C1BCBBC1C1
C1BBACD078CE7A79A5788782C78883B0B0D483E3E3B7FD8888E2E2E2E2E188E2
E2E2E2E2FA86EC89E2E3C8C4EA003B2E362E3D2D2D4F6061611A59956A4950B5
C1D8CFD0ADBCCFCFC1BBAC67D0D0CE797976B1C77F8889E486898987E3B786E2
E4DEC8DF84E7DBB3D4D481D4D4D4B5D1A1A178A4EA00252F2F252F382A4F6061
615B6A956A6579B3C1D8BCD1BDACC2BBBBC1ACBDBDADB97979A4A57F8089E3B7
B7E386E480E489E2B7DEDEDEC8DFE0C4C4E7C4E7D4A3B9AD74C0C8E4EA006D2E
2F1D1E3859346161615B95436A4332DEBBD2D0BABCACC2ACACC2CECED0B9A179
7678BAB37FE389E3B7E482C880C4E48888E2E2E2E28888E2E2E3C87CA479AFC7
E3E2E289EA00323E2E1D3D3C24596161615B95956A74E2DEBBD8BCC2C5D0C2C2
ACD0B4D1E084A1A196B3BD81E48786E3B7DE84B384C484E288FDE2E2E2FDFD86
C9C0A5D4C9E4E386E2E2FA86EA0032323D1D2F4F4F4F6161605B95956A50CCB5
C1CFD3BCD0B4B4CEC3CEADA9C6C982C8C4AFACC9C6D1D489E483B3D4B0B3C487
FDE2E2E2E2E380AF7CC487E289E3FEE3E2E2E286EA0042362F043D38384F6061
615B439F9F79CCBAC1D08FC2D0BDACBAB5D1B9ACC2D0C9E289A9C2E3E2BDCE85
E483DBB3B5AFC4C9E2E2E282B1C4C9C7E3E2E2E289E3E386E2E2FA86EA002236
32323E38388F5261615B9FB96576FCBACFD0ADA3797AA196D0D181D5D0BBBC82
89B3D5FD88BDBAB7E3DE84E0C8C8E0B3B7B7E3C9C88688E2E2E2E2E289E3FEE3
E2E2FA86EA004241413F36392D3C5B46615B656565A4CCCED3ACBC8FA17AB068
68A378A3B0B5C2D0E4B7B785E4BDD1E38682C8D4D1DFE4EBDEEB8986E288E2E2
E2E2E2E286E3E386E2E2FA86EA00422286228196674F59D2615BADB965A4CCBD
D3C1BBBCAC96D1B0686868B07AD5C4B4D1E2C7B3EBBDD58786E382C9B3B5E489
C9C9E289E288E2E2E2E2E2E2E3E3FEE3E2E2FAE3EA00402288214B39394F5961
465B9F6565A4E1C2D3D3C1BBACC2ADA3A5B068B06876B0E3D4C7E2B3B4BDB082
E4E38783C483E3FAAFE0E289E2E2E2E2E2E2E2E2E3E3E3E3E2E2E2E3EA004242
21223596674FC261D271656565A4E196ACC1BCACC2BDADB9A3B0B06868B07886
89E288E3DBBDAFC7C787C7C8C4C7E2FDEA83E289E2FDE2E2E2E2E2E2E3E3FEE3
E2E289E3EA00364122223535673C596146719F6574A5E288B9CFBBACBDADB9A1
BA7879B0D576B0EC86E28588E4ADE0C782878783C6E3898582E4E289E2E2E2E2
E289E2E2E3E3E3E3E2E2E2E3EA003E21224096966767AC614671659FB97C89E3
BCCFC1BBAC5F96A1A1BABA78B380E3E2E2E2E28886BAC8C78287E3B1B3838282
DBC9C7C7C7E487C7C7C7C7C78282C7E4C6E3E480EA00411F8622CE3567673461
465B9F65747BB7B1BBD3C1ACC2D0B9A1BAA1A1C8E1FCE1E188E2E288C9B487B7
E382C782B1D9C8C8AF7DC9C9C9C98080C9C9C9C9C9DAC97DAFC0A374EA00CCFC
E341CEA16796716146719F9FB97D83D5CFD2D3C1C2ADA1BAA3A4A4787D88E1E1
FD8588FDB3B5E2E2E28782E3C7E3E2E2DFE487E4C6C6C7C883C8C8C8C4D4A4BA
A1BA76D4EA00F0FC89DF39CE5F96BC6046719F9F74C8D4C4CFD2D3C1C2ADB978
A3A4D579A479FDE188E18889B0B5FD8885E3C0D4C882DEC6DE89E2FAE2E2E2FA
89E3C7B37AA376AFC97FC7C7EA00F088898A5FA15F6734614671959FB982B5C4
C1D2D3C1ACD0ADCEA17A76A54D6BB7E1E1E1E1C6CEB38888FD7BA3A37CDE82B7
E4E2E28989FDE289C8C0A3A4AFC8B7E386E2E3E3EA00F089898B67965F5FBC60
4671959F65E4D5E7BBD2D2C1BC8FD0AD67A17A79797A87E1E185E2E4BDE088FD
8876A4A4A383E3E3B7E2E2FA89E2C7C07879C4C6E3E3E3E386E286E3EA00F089
898CCE8F96BD5B614671959F6582B5D4C1D2D2BBBCC2BD9FB9A178787879E2E1
88E285FB8FDEFD88867976A4A3C9E4E4B7E2E28987B3A4A5DA87E2E2E3E3E3E3
E3E2E3E3EA00F088898DCE3CA18F526146719F6565EAB5B5BBD3CFBBBCACC2D0
B9BAA378BAB0B1807FC7C6E3C2E388E2C8A4A5A4B0DE82C8E389E2DE76A3C9C6
86E3FA89E3E3E3E386E2E3E3EA00F0FD898DA84FA4C25246619365659FDFE0D1
BBCFD8C1BCBCACD0B9A1A3D1BA7AA47AA3787CE3C28988887DA4A57AB1E4E3E4
FB86C97A79C7E289FA86E289E3E3E3E3E3E2E3E3EA00F0898A8DA85F6734C146
466A65AD9FC9DFD1BBD2D7D2C1BCBC8F9FB974A1BAA37AA37AA478E98F89E285
B3A468A380E4E386E47C78AFE4E2E289E3E3E2FAE3E3E3E386E2E3E3EA00F086
878DB4674F5B4746616A65659583E2D4BCD8D8D3D3C1BCC2BD8FBDADB9CEA1CE
BA787CC7ADE2E2E2AFA4A5A382E3E3B7C0A3C4E389E2E286FE86E289E3E3E3E3
E3E2E3E3EA00CC89E38DB55F4FBB6046616AAD6595DECCE4ACD8D3BBCFCFBBBC
BCBCACC2BDBDBDBDADAF82D4CE88E2897CA4A5A382E3C7B076C8E2E3FAE2E289
E3E3E2E3E3E3E3E3E3E2E3E3EA0088B7B7B3635F4F5BCF46619565659583E1E3
ADD2D2C1C1BBBBC1C1BBBCACACBDADBAD483DAA1D588E2877979A4C087E4A5A4
8289898986E2E286E386E286E3FBE3E3E3E2E3E3EA00888484B4A85F4F5B4746
6195AD659FB1CCFBB3D2D8D3C1C1BBBCBCC1C1BCBCBCBCD0B0B3B5BDB588E280
78A5A4B1B7A5A5C789FAFAE3E3E2E289E3E3FAE3E3E3E3E3E3E2E3E3EA00B7A8
B4A7A85F4F5B6146619565659FC0FCE4D0D7D6D8D3CFC1C1BBBCBBC1C1BBBCAC
BDD5BABCB3E185C9A3A5A4B1C0A5E4E2FA8989FE86E2E2E3E3E3E286E3E4E3E3
E386E3E3EA008BB4A9A7A8675F5B6146479565659FA3FCDFCFD6D6D6D8D8D2D3
CFC1BBBBBBC1BBBC8FBDD0C1E7E188AF76A57676C087FAE289FA86E3E3E2E2FE
E3E3FAE3E3E4E3E3E386E3E3EA0022B5CEA9B4395FBB6146609FAD659F74CC86
D0BCACD7D6D6D6D7D2D2C1C1BBBCBCBCC2D0ACD3DFE1E26BA5A4747C87FA89E2
E3FA86FEE3E2E2E3E3E3E2E3E3E4E3E3E386E3E3EA00B78A81B4A8CE5F5BCF46
609F65659F9FE1DEDBD4CEADC2BBD2D7D7D6D6D3BBBBBCC2A1D5C2D3C78887A4
A574A1E3E289FAE2E386E3E3E3E2E2E3E3E386E3E3E4E3E3E386FBE3EA00B782
63B581B4675B4746609565659F9FB374C2ACACBAB3E0D4D0C1D7D6D6D7D3C1BC
D1E7BAC1E388B176BA74C8FDE2FA8989E389E3E3E3E2E2E3E3E386E3E3E4FBE3
E3E3E3E3EA00B78B4B63B56367524746C19FAD659F95A178BDBCBCBBACC296D1
B0BAD0C1D8D7D7CFD1C8B1C285887674A16BE2858989E389E3EC86E3E389E2E3
E3E386E3E3E4C6E3E386FBE3EA008B8DB4A9B5B567525246529565659F6A74BA
C1D3CFBBBBACC2D0B9BA74ADBDBBD7D3B9D484CE88E478A1A4B188E2FA86FE86
E3FE86E3E3E3E2E3E3E3E3E3E3E4E8E3E3E3E3C6EA008D63A8A78181395BBB61
5B6AAD659F9565ADCFCFC1CFBBBC8F8FADA3BAB98FD0C2C1CFD0C8D5E1B1BA76
A38288FADE86E389E3E386E3E3E3E2E3E3E3E3E3E3E4B7E8E3E3FBC6EA008DB4
A8B48B81C35B52615B6A9F656595A195C1C1C1CFC1BBBBBCC28FC28FB9C2BDA5
BDBCB0B385A576A4A57F87EAB9B0E3E3E3FEE3E3E3E3E2E3E3E3E3E3E3E4B7C6
E3E3E3C6EA0081A8A88488B567BC52615B959F9F9F95A4BAC1CFC1C1C1C1C1C1
CFBBBCBBACAC71BDACBCBAE082A379A37CB0A3CEC2BCB4E3E3E3E3E3E3E3E2E3
E3E3E3E3C6E4B7E8E3E3E3B7EA00B4A9C38385635F5BBB615B6A9F9F936AA3EA
C2C1C1CFC1CFC1C1C1C1BCBCACC1ACBCACD0D5D4C0A5A4A484687AADADACBCEB
E3E3E3E3E3E3E2E3E3E3E3E3B7E4E487E3E3C6B7EA00A9A7B683B7633C525B61
5B959F95939374DEC2BBBCBCBBBBBBBBC1BBBCC1BBACACBDA4C0A4B0A3C0A47C
C979D1797AADC2C2C4E3E3E3E3E3E2E3E3E3E3E3B7E4E4B7E3E3E887EA00A9C3
348489B58F525B475B6A9F9593939FB0CFCFC1BCBCBCBCBCBBBCBBBCACD1A4C0
7BDAB9D4C0C0A487C47879A4A46BBABDADC4E3E3E3E3E2E3E3E3E3E3B7E4E8E4
E3E3E8E4EA00675FB684FC8D8F52BB605B6A959F939393B9D2D2D3CFBBC1C1CF
D3BBADCEEAE4B1C07CC8DB8480A5B385A1AD79797A7AA3B9A1A1D4E3E3E3E3E3
E3E3E3E3E4E4E487C6E3C6E4EA00B65BBC83CCFD5F5B5B475B59959F939371B0
ACD2D2D2D8D2D8C18FB4E2E1E27EAFA5C4C7B1C8C8A5C686BA7879A4A3D17AA1
B9A1ADD4E3E386E3FBE3E3E3E4E4E8E4C6E3C6E4EA00BCBB348BFC883C5BBC47
5B93959F939371C0C9BA8FBBBCACB9D4E988E1E188C7A5C0C8C87C82C9C9FD87
79A479A3A37AA37A7ABAA1ADB0C6E3E3C6E3E3E3E4E4E4E4E8E3C6E4EA005BBB
C582E1FD8FBC71525B93959F6A93937488FD8CB5B4B581DF88FDE1E188C7C0C9
C7B380C7B386E2877A7AA4A3A37A7AA3A3A3BAA1ADC486E3E4E3E3E3E4E4E4E4
C6E3C6E4EA00BC52678A88893C3434475B716A9595939393E388B4A7C5B6B6C5
A7A98CE185C8C4C7C6C97FC7C0C888867D7AA3A37AA3A37AA37A7AA374B0E3E3
B7E3E3E387E4E4E4C6E3C6E4EA0034BB39B788B7674FAC52527193959F939371
E4FDB5C3C5B6B6B6B6C5C5A8E2C8C786E2C7C7C87CC4E2E2E2DFE7DBC8B1A3A3
A3D1A3A3A1AFE3E887E3E3E3E4E4E4E4C6E3E8E4EA00AC3CA78A8822AD8F5952
5271939F9F939371AFFD63B6C5C5B6B6B6B6C5C5B4DFE3E2E3C7E3C77CC9E2E2
E284B5B5D4DE83A378A3A3BAA3C8E3C6E4E3E3E3E4E4E4E4E8E3E4E4EA00B563
A98AFD22968F4F525271719F9F6A93939F89FD63C5BBB6C5B6BCB6B6A7B4E3E3
DFC6CBC77CC9E2DEC8B7E4D4D5B3E4C9BAA3A3A178C8E3C6E4C6E3C6E4E4E4E4
E4E3E4E4EA00898BB3B785B7CE5F8F525234716A959F939371C7FDFD8CC5BBBC
B6B6B6BC472CA9B7C5A786C4DB80877A9FC2C2BAD5B0DEE8B3A1BAB974C9E3B7
E4E8E3C6E4C7E4E4E4E3E4E4EA00FC888288FD86A967BD5B5B719393659F9393
71C0E2FDFD63BBB6BCB6B6B62C72D363BCBBB6B6DB7FE476B9C2C2B9D1CEB5E4
E4D4B9ADA1C7E3C6E4C6FBC6E4E4E4E4E4E3E4E4EA00FCFC888888864B965F5B
5B715993659595939395E3FDFE8AB6B6B6C5B6B6777277D37747C5A88287E4B0
AC8FBA78A3D4CEB4C7E4DBD5C4E4E3B7E4E8E3C6E4E4E4E4E4E3E4E4EA00FCFC
FCFCE28681965FAC4F7159936A959F939371B1E2FDFEBC47B6BCB6B673722C77
7377C5A982C6E4B0AC8FA1BABA7AC9CED5E4E3E9DEE4E387E487E3E8E4C7E4E4
E4E3E4E4EA00E1E188FCE28583A7674F5F34936A93659F959371B987FEFEC5BB
BCB6B6527372BB737373D3C382E38681ACC2B9A1A1BAA480B4D1FBC6DEE4E3E4
E4E4E3C6E4C7E4E4E4C6E4E4EA00E188E188FD88E396965F9F4F349559956A9F
939395C986FE8CC3C5C5B677722C637373722CD182E3E2C8C2C2ADA1B9BAA1D5
DED581E4E4E4E8E4E4E4E8E8E4C7E4E4E8C6E4E4EA00E188E188E18889A7A767
5F8F71496A93959F95937178E489B7B5A8C3D37372BCB3737373732CDFE3E4D4
ADD0ADD0B9A3BAA1D5C8D4EAAFBDBBBBC1C1C1C1C1C1C1C1C1C1C1C1EA00E1E1
E1E1E1888863A7398F5F6A7495939F959F9371ADD9E3E2FDFEC5737373A79673
73727277C387C8D5B9CEAD8FD0A1BAA17479C8DEE4C7E9E4E4E4E4E4E4C7E4E4
E4C6E4C7EA008888E1E188E1888296398F4F9F749F596A9F9F959393A3E4E2E2
FA477373BCB3C37373727377A8C7C8B0A1CEB98FAC8FB9BABABAA4E4E4E4E4E4
E4E4E8E4E4E9E4E4E4E8E4C7EA00E188E1E188FD8889D5675F595965656A9565
959F6A71A1C9E2E2FEBC772CB481BC737372722CC9C6DEB5BACEB9C2C1BBBDBA
A3A378B3E4E4C6E4E4E4E4E4E4E9E4C7E4E8E4C7EA00888888888888888941A1
8FAC5965956A749F9F9F957174A4E3E2E28AA7B583B5D373737377D5C7E384D5
BACED0ACC1BBC2B9A1A3787AE4E4C6E4E4E4E8E4E4E9C7C7E4E8C7C7EA00E188
E1888888FD8682B1789665496A95A3A1B9959F936578C8E2E2FAFA86C981B673
7377CEC9C7E4D4D1D1D1C2BBC1C1ACBDBDBAA3A3DFE4C6E4E4E4E4E4E4DEE4E9
C7E8E4C7EA00FD8888888888FD86827D7C7A749F6A957A7C6595956A65A3A586
E2E2E2C6C4B5967777C5C9C9C7E4D5D0D1ADACACBBBCC28FBDBAA3BAD4E9C6E4
E4E4E8E4E4DEC7E4C7C6E9C7EA008888FDE1FD8888FE8280B37978656A9F76AF
D4AF74C0DABABAC7FAE2E2E4D463BA96A1AFDA7DC7E3B9BBD0C2C2ACBCBDCEBA
BAB9A1B0CEDEC6E4C7E4E4E4E4C7E9C7C7E4E9C7EA00FD88888888FD8589E4C8
B16878659574B1DE87E3E487B7C078C889FAE28779BA968F95A3C0D4C9C8BCCF
C1C2B9D0BDD0D0B0B3B1B3CEADE9D5E4C7E4E4E4E4C7E9E9C7E4E9C7EA0088FD
88888888E289B7C7807C7A74655082E389E3E3E3E3C7D4C7E3E389E3B4968F5B
5295A174AFB3BBBDBDADBD8FB9CEBDBCACB3E4ADD1DED0E4E9E4E4E4C7E9C7E9
C7E4E9C7EA00FD8888FDFD88E2E2E3877FB17978A17987FA86E3E3E3B7E3C6E3
E286E2E3D167C26061AC9F9FC0B5CFAC8FA1A3BAA1CEBACEACC2EAC4EAC9D0E4
C7E4E4E4C7DEC7E9C7E4E9C7EA0088FDFD85E288E2E2E3E3E4C9C06B6B7CE4EC
86E3E3E387E3E2E2E3E3E282BA67C26046939F9FC0D1D3CFC1ACADA3A3BAA1A1
D5BABAC7DBD5D0E4E9E4E4E4C7DEC7E9C7E4E9E9EA00FD858588E2E28989E286
8780AF7979B3E486E3E3E3E3E4E3E2E2E3ECE383CE67C26061719F9FA5A1CFCF
BBBCC2ADA1A3A3BAA1AFC9DEEBBAD0C7C7E4E4E4C7DEC7DEC7E4E9E9EA0085E2
FDE285E2E2E289E2E3C8B3C07CB1C7E3E3E3E3E3E4E3FAE2E3FAE3C4965F8F60
D2719F9FC0C4BDC1BCC2BDADB9A178BA74D4E4E4E4D4B9C7E9C7E4E4C7DEC7DE
C7E4E9E9EA00FDE28585E2E2E2E289E28682C47CAF7DC7E3E3E3E3E3E4E3FA86
E3E386C4675F8F6046939F9FD4E4C2D3C1ACBDADADB9CEA4D4C8E4E4C7E7D1C7
E9E9E4C7C7DEC7DEE9E4E9E9EA00E2E285E2E2E2E2E289E289E4C9B3B1C9E4E3
E3E3E3E3E4E3FA86E3E3E3B3965FBD4761AC9F9FAFAFBBD2BBACBD96B9ADA1C4
DEDEE4E4E9D4B0C7DEE4C7E4C7DEC7DEE9E4DEDEEA00E2E2E2E2E2E2E2E289E2
89C6C87DC9C887E3E3E3FBE3E4E486E3E3C6C8B4675FBD60617195ADAFB5C1D2
D3ACADB974BA74BA81DEE4E4E9B4D5C7DEE9C7E9C7DEE9DEE9C7DEDEEA00E2E2
E2E2E2E2898989E289E382C8C7E4E3E3E3E3E3C6E4B7FAE3E3E4DED15F5F8F52
61719565AFB0BBD8D3BCBD9FB9A1BAA1A3DEE4E4DEB9B5C7DEE9C7E4C7DEE9DE
DEC7E9DEEA00E2E2E2E2E2E2898989E2ECE38787E3C6E3E3E3E3E3B7E4B7ECE3
E3C7C8B43CBD4F52617195ADAFD5BCD8CFBBC2BD95ADA174A3DEE4E4EABDB3E9
DEE9C7E9C7DEE9E9DEC7DEDEEA00E2E2E2E2E2E289FA89FECBE3C6E3E3E3E3E3
E3E3FBB7E4E4E3E3E3E483D58F67AC614693959FAFB4BBD2CFBCACC2ADB9B9AD
D1C4C8E9E9D0C4E9DEE9E4E9C7DEE9DEDEC7E9DEEA00E2E2E2E2E289E289E3E2
E3E3E3FA86FBE3E3E3E8C6E481C4E3E3E3E484D53CB9AC4661939F9FB3D1BCD2
D3BBBCC2D074B9B974BABAA3DBD0C9E9DEE9C7E9C7DEDEDEDEC7DEDEEA00E289
E2E2E2E2898986E2E2E3E3CBE3E3E3E3E3B7E884A7B5E4E3E382C4D55F8F5B46
61939F9FC4B5BBD7D8CFBBACBDD0ADADB9B9A1B9B0D0DFE9DEE9C7E9C7E9DEDE
DEC7E9DEEA00E289E2E2E28989E3E3E2E2E3E389E3E3E3E3E3B7E463CEB3C8C7
E8DEC9B596AC5246616A9F95C9EAACD7D3CFCFBBACACC28FBDBDD0D1D4B9C8DE
DEE9E9C7E9DEDEC8DEC7DEDEEA008989E2E2FA89E386E3E3CBE3E3ECE3E3E3E3
E3E8E4B4CEC4DFC9E4C8C46367AC524661959F95C9E4ADD8D3C1C1C1C1C1BCAC
C2BDBAB3BACEDEDEDEE9C7E9E9E9DEC8DEC7DEC8EA00FAE28989E2898986E3E3
CBE3E3E3E3E8E3E3E3E4E4B4A8C9C9C8C7D4B4CE6734C14661BD9F95DBE4BAD7
D8CFC1BBBBC1C1BBBBACCED5BDB9E9DEDEDEE9E9E9DEDEC8DEC7C8C8EA008989
8689E386E3E3E3FA86E3E3E3E3E8E3FBC6E8E4A8D5C484E4DEB49696674F5246
47959F95B0DEBCD6D6D8D2D3CFC1C1C1C1BBACADBCCEE9DEDEDEE9E9E9DEE9C8
DEE9DEC8EA00FA8689CB8686E3E3E38686E3E3E3E3E4C6FBC6E4E481A9B4C9E4
DE6396CE96C2C14660959F95A3E4BDBBD3D6D6D6D8D2CFBBBBBBACC2CFCEDEDE
E9DEE9E9E9DEDEDEC8C7C8C8EA0086E3CB86E386E3E3E3E3E3E3E3E3E3E4C6E8
C6E4E4B3A7A884C9C9C4B4BACE5F524660959F95A1DBBA96D0ADACCFD7D6D6D3
C1BCB9BAC1BAE9DEDEDEE9E9E9E9DEC8C8E9DEC8EA00E386E386E386E3E3E3EC
E3E3E3E3E3E4C6B7B7E4E48496CEB581C4C4A9A8A8BD5261C1959F959F74C2BB
ACBDB9A1D0BBD3D6D7D3CEEAC2D5DEDEC8E9E9DEE9DEDEC8C8E9C8C8EA0086E3
8686E3E3E3E3E3E3E3E3E3E3E3E4E4C6E4E4E4DE81CEB481B381A1CEB45F5261
526A9F9595B9BCD3C1C1BC8FB9A19FACD3D7BDEAD1D4DEC8C8E9E9DEE9E9DEEA
C8DEC8C8EA00E3E386E386E3E3E3E3E3E3E3E3E3E3E8E4E4E4E4E4C7C9A7D181
D4B4A7CEB55F5247526A9F95959FC1CFCFC1BCACBDADD0BDBDACBBCED4B3C8DE
C8E9DEDEE9DEDEC8C8DEC8C8EA00E3E386E386E3E3E3C6E3E3E3E3E3E3E4E4E4
E4E4E4E9C9A7B4B381A9CEB5AF5F5B615B6A9F9595B9C1CFCFCFC1C1C1BBBBC2
ACADD0BDB0EBC8C8C8DEE9DEE9E9DEEAC8DEEAC8EA00E3E386E3E3E3E3E387E3
E3C6C6E3E3E4E8E4E4E4E4E984A7B5D4A8CE67E0D48FBB615B6A959395D4C2CF
C1CFCFCFCFC1BBBBBBACC2CED5E0C8DEC8DEDEDEE9DEDEEAC8DEC8C8EA00E3E3
E3E3E3E3E3E3B7E3E3E3E8E8E3E4E4E4E4E4E4DEC9CEA7C39696B6C4B54F52C1
5295959393B0ACC1BBBBBBC1C1C1C1C1C2B9B3E7D1EBC8C8C8DEE9DEDEE9C8C8
EADEEAC8EA00E3E3E3E3E3E3C6C6B7E3E3E8C6E3C6E4E4E4E4E4E4DEDEC8CE5B
C25F34C4E7C25260526A959371B9CFD2CFBBBBC1D3BBACB9E7DFC8E7D4DFC8EA
C8DEDEDEE9DEC8EAEADEC8C8EA00E3E3E3E3E3E3C6C687E3E3E3E8E8C6E4E4E4
E4E4E4DEDEE4B4BCBCBCBCC4E45F52C15B6A9593719FBCD8D2D8D2D3BCBAC4DF
C8C8C8DEDEDFC8EAC8DEE9C8DEDEC8EAEAC8EAC8EA00E3E3C6E3E3E3B7B787E3
E3E8C6E8E3C7E4E4E4E4C7DEC8C7C95FBC52AC84E95F5B52526A9593719FE7BA
BDC2D0D5EBEAEAEAC8EAC8DEC8DFC8EAC8C8DEC8E9DEC8EAEAC8EAC8EA00E3E3
C6E3C6C6B7C687E3E3E4E8E8C6E9E4E4C7C7E9DEC8E9E4D54F478FC9DE5FBC52
529395939393B1E4E4E4E9C7DEC8DFEAC8EAC8DEC8DFEAC8DEC8C8C8DEDEC8EA
EAC8EAC8EA00C6C6E3C6C6C68787E4E3C6E4E4E4C6E9C7C7C7E4C7DEC8E9C683
C3C13CDFC867AC5252716A6A9371C082E4E4C7E9DEC8DFEAC8EAC8DEDEC9EAEA
C8C8DEC8E9C8C8EAEAC8EAC8EA00C6C6C6C6E3C6E4E887C6C6E4E4E4C6E9E4E9
E4E9C7DEEAC7E8E4A94FADC9DFAD4F5B52716A959371A182E4E4C7C7DEC8DFC8
C8EAEADEC8C9EAC8EAC8C8C8C8C8C8EAEAC8EAC8EA00E3C6C6C6C6B7C687E4FB
C6E4E4E4E8E9C7C7E9E9C7DEC8E9E8C7C9B5D1C9EA968F5B527193956A716AC8
E4C7E9C7DEC8EBDFEAEAEADEC8C9EAEAC8C8C8C8DDEAC8EAEAC8EAC8EA00C6B7
87878787E4E487E8C6E4E4E4E4E9E9E9C7C7E9DEEAE9E4E4C7DEE7C883A15FBC
527171956A7171D4E482DEE9C8EAC9C9C8C9EADEC8C9EAEAEAC8C8C8C8DEC8EA
DFC8EAC8EA00E487C687C687E487E4C6E8E4E4E4E8DEC7C7E9E9E9C8EAE9E4C7
E9C7E9DEC8D15FAC5B719395959371ADE4C7DEE9DEDFEBC9EAC9EAC8C8C9DFEA
C8C8EADEC8DEC8DFC9C8EAEAEA00C68787E48787E487E4C6E4E4E4E4E4DEE9E9
E9E9DEC8DFDEE4E9C7E9C7DEC8D4674F4F71936A956A7193B182DEE9E9C9C9C9
EAC9EADEC8C9DFEAEAC8C8C8C8C8C8EAC9C8EAEAEA00E4C6E487E8878787E4C6
E4E4E4C7E4DEE9E9DEDEDEC8DFE9E4E9C7DEC7DEE9C467BDBDAC59936A959371
BAC7DEC7DEC9EBC9C8C9EAC8EAC9DFEAEAEAC8C8C8C8C8C9C9C8EAC8EA008787
87878787E4E4E4E8E4C7C7C7E4DEDEE9DEE9DEC8DFDEE4C7C7DEE9E9E9C99667
8F596A6A93956A7195C9DEE9C8C9EBC9EAC9DFC8C8C9DFEAEAC8C8C8C8C8C8EA
C9EAEAC8EA00E487E487E487E4C7C7E8E4C7E4C7E4E9DEDEDEDEDEC8DFE9E4E9
E9E9E9E9E9C7D15F8F8F65955995959393A4DEE9C8C9EBC9EAC9DFC8EAC9C9EA
EAC8C8C8C8EAC8C9C9EAC9C8EA00E487E487E487C7E4C7E8E4C7E9E9C7DEDEE9
DEE9E9C8EADEE4E9E9E9DEE9E9C7C4AD4F71959F6A95959571ADC4E9C8C9EBC9
EAEBC9C8EAC9C9DFC8C8C8EAC8C8EAEAC9EAC9C8EA00E487C787E487C7C7C7E4
E4C7C7C7C7DEDEDEDEDEDEC8DFDEE4E9E9E9DEDEE9E9C8D58FC26A69589F9595
9395A4E9EAC9DAEAC8C9C9EAC8EBC9DFC8C8C8EAC8C8C8C9C9EAC9C8EA00E487
C787E487C7E4C7E4E4E9E9E9C7DEDEE9DEE9DEC8EADEE4E9E9E9C8C8C8E9C8DB
A4B98E9A707A9F6A6A95BADAEAC9EBEAEAEBC9EAC8EBEBC9C8EAC8EAC8C8EAC9
C9EAC9EAEA00C77EE4C7C7C7C7C7C7E4E4C7C7C7E4C8DEDEDEDEDEEADFDEC8C9
C8C93EB3B3DEC8DBC05C9A977079A4A174C0B9A5EAC9EBEAEAC9C9EAC8EBC9C9
EAEAC8EAC8C8C8C9C9EAC9EAEA00C7E4C7C7E4C7C7C7C7E4C7E9E9E9E9C8DEDE
C8E9DEC8C9C9B1B38468504D81C9C8DAD4989A9A62C4DFC8DE7FA4A4EAC9EBEA
EAEBC9EAC8EBC9C9EAC8EAC8EAC8EAC9C9EAC9EAEA00C7C7C7C7C7C7C7C7C7E4
C7E9E9E9C7C8DEC8C8DEDEC9B1B1B37C7B44507A68C4C8C9F1989A8EA5DEDE82
C7DEC9B1EAEBC9DFEAEBC9EAC8EBC9C9EAEAC8EAC8C8C8EBC9EAC9EAEA00C7E4
C7C7C7C7C7C7C7E4C7E9E9E9E9C8C8DEC8DEC8CDCD7B7B7C6850505068B3B3DD
F29D9A5CD4DEDEC8C7DEC8C8EAC9EBDFD9EBC9C8EAEBC9C9EAC8EAC8EAC8EAC9
C9D9C9EAEA00C7C7C7C7C7C7C7C7C7E4C7E9E9E9C7EAC8C8C8DED9CDAE517BAE
517676684D687CE9ED9E986BB3C8C8C88282EAC8D9EBC4C4C4E0EBEAEAEBEBC9
EAEAC8EAEAC8EAEBC9D9C9EAEA00C7C7C7C7C7C7C7C7C7E4C7E9DEDEE9C8DEC8
DEC8BEAE7CAFC4B17C68797C684D7BE9C8CDA5A5B1C8C8C882DEC8EAEAEBE7B1
DBAFC9EAEAEBEBC9EAC8EAEAEAC8EAEBC9D9C9EAEA00C7C7C7C7C7C7C7C7C7E9
C7DEE9DEE9DFC8C9C483BEAEAE7B7B7B7C76767568817CC7E9C9D4D4C4C8C8C8
8282DFC8C8DADBC4E7D4B3EAEAEBEBC9EAEAEAEAEAC8EAEBC9D9C9EAEA00C7C7
C7C7C7C7828282C7C7DEDEDEE9C8EAB181C4B17568B37B51766B6D706D5D7BDD
E9EAB1DB80C8C8C882DEC8EAEAC4C4DADAD4D4C4C9EBEBC9EAEAEAEAEAC8EAC9
EBC9C9EAEA00C7C7C7C7C7C782C782E9C7DEE9DEE9EADFB381B1B16B503D5044
5E6D70928E9E75BFDDC8C9C8DEC8C8C882DEEAC8EAE7B1C4E7AFAFB3DBC4EBC9
EAEAEAEAEAC8EAEBC9C9C9D9EA00C7C782C7C7C7828282C7C7DEDEC9C8B3B37C
7CB17B5E7A742974A35C6E979A9A99BFE9DDC8E9E9C8C8DEC782EAC8EAC4DBE7
E7AFAFDBAFD4C4C9EAEAEAC8EAC8EAC9EBEBC9D9EA00C7C782C7C7C782C7DEE9
C7DEC44D81AF81817CB3C04450443B3B485C9297979A99DDE9E9E9E9E9C8C8DE
C782EAC8EAC4DBC4B1D4AFDBDBD4DBC9EAC8C8EAEAC8EAEBEBC9C9D9EA00E9C7
82C7C7C782DE82C7E9C86879B3B3B3AFB5AF76354B503B7448746E97979299DD
E9C7E9E9C7DEC8C88282C9C8C8EBE7DAEBAFAFDBDBD4DBC9EAEAEAC8EAC8EAEB
EBEBC9D9EA00C7C782C782C7DEC7C8C7DE7C3579B3AF817C81515E487A483B25
6ABB606C919299E9E9C7E9C7C7DEC8C88282C9C8EAC9C4C4B6B5B3DBDBD4E7C9
EAC8C8EAEAC8EAEBEBC9C9D9EA00DEC7DE828282C87FC8C7E97950687C4DB068
81686B50445F730000000000726EAAE9E9C7E9E9C7C8C8C882DEDFE9C9DBB3EB
72A9C4DBDBD4E7C9EAEAEAEAD9C8D9EBEBEBC9D9EA0082827FC782827F82C8C7
E97944687C7944797C4D764D960072775B60BB5A004ED9E9E9E9C7C7C7C8C8C8
82DED4C5C5C3D4A800E7DADAB62CC4C9EAEAEAEAD9C8D9EBEBC9C9C9EA00DE82
C882C782DEC87FE9C476797C6850446B797979632C7276503528586272C2C8E9
E9C7E9E9CE730000007273737373B67777DBDBEA7300A9EBEAEAEAEAD9C8D9EB
EBEBC9C9EA00C7827F82C8C87F7FC8766844447A687A4DD4687C754BBB727C44
472B2B6200D9DE8BC147C7C7E9DEC8C882DEC9EAE7D4E700A7DBDBA800A7C4EB
D9EAEAEAD9C8D9EBEBC9EBC9EA00DE82C8C8C77FC8C83E3D815035504DB07C81
7CC07551A82C792C727372C572EAE9EA7273E9E9C7DEEAC882C8C9C8EBD4CE73
E7D4E7BCA7C4D4D4B3AFD4B5D5B0D5D5D5D5D5D5EA00DD7FC87FC8C87F7D447A
7C4B35766879B0684D7575B079792FBC435B357777EADE6300BBE9E9C7C8C8C8
DEC8C9EBE7D4C3D3D3B6B5C3EBE7B3AFDBDBDBD4D4D4B5B0D5D5B0B5EA00C882
C8C882C87F6850687C764B79797A7979797C7C6879797200000000000000B4BB
00E7E9E9C7C8DFC882C8A7777773772CC5B6D1C0DBC4C4EBD9EAEAEAC9EADFDA
EBEBEBC9EA00C87FC8C87F7F7D51687BAF68765078507A6868AFB57A7A3D4F52
732DB6737681E7472CE9E9E9C7C8C9C8DEB3D4EBE7D4B3D4D5D5B0C0D4DBC4EB
D9EAC8EAC9EAC9DADAEBEBC9EA00C87FC8C87F807C684CB3814D444450767CD4
68AF7C797A505E7377352C676878D5BCC3E9E9E9E9C8C983828BC9E0B5D5D4BC
2CC2BAB0C0AFC4EBC9EAEAEAC9EAC9EBDAEBEBC9EA00C8C8C8C8C87D7C4C7BB3
687A443B7663AF68B0817C794B6B445B5B3B527678656DAABEE9E9E9C7C8C983
DEC8EBEB77D372000047D1D5C0B0C4EBC9EAEAEAC9EAC9DADAEBEBC9EA00C8C8
C8C880B17DC97BAF7644764468AFB5B07C816879BB7352302B4335659F708E70
9BDDE9E9E9C8EA83DE83DFB5000077C372A9D4AFD4D1DBDBDFD9EAEAC9EAC9EB
DAEBEBC9EA00C8C8C8B1B17DC97C7C7C4D8168797CB5B07981D468793C000072
722C7465576E976E99DDE9E9E9C8C983C8EADFDF47C381D3BCD1CED4DBB0D4B5
C9D9EAEAC9EAC9DADAEBEBC9EA00C8C8C87B7BB17C4D7C68B3B1AF4468684D7C
B37C687A443B2B432B2A436A7092928E99DDE9E9DDC8D983C8C8DFC3D3727272
B4C0D5D1DBDBB0D4C9D9EAEAC9EAC9EBDAEBEBC9EA00C8C8B17B4C7B3E7C7C81
B1B1B37CAFD46881AF797A5E6549492B30242859706E6E98CDDDDDDDE9C8C9DF
C8C8DFA77372000000B6D5AFC4DBD1B5C9D9EAEAC9EAC9DADAEBEBC9EA00C8C8
4CB17B813E7C7B7CB3C4B37C81AFB0688150447443303026261C2430749862AA
E5DDE9DDE9C8C9C8C8C8D9EBE7E7AFB4C5A7B0DBEBE7B5D4C9D9EAEAC9EAC9EB
DAEBEBC9EA00C8807BB17D4C684C81AFB3B1B1B181B0B0B0B05E65302628281A
191C282B78A5AFC9E9DDDDDDE9C8C9C8C8C8C9C4E7DBAFDBAFB5C4C9EBDAD4B3
C9D9EAEAC9EAC9DADAEBEBC9EA0080B1C47D7DB17BB37B7CB3B3B1B17C68B079
4D503B302624281C1C2630307A68C0C9E9E9E9E9C7C8DFC8C8C8C9C4E7D4AFDB
DBD4D4EBC9E7B0DBC9D9EAEAC9D9C9EBDAEBEBC9EA00B14CC4C97DB1C4B14C7C
AFAFB3B1B079B04DB079504326282A1C232A433B7A68B1B1E9E9E9E9E9C8DF83
C8C8C9E7DBB3D4B3DBD4B0DAEBDBD5DBC9D9EAEAC9D9C9DADAEBEBC9EA00C47C
B17D7DB1B1B1B1B37C7CB3B37C68AF7C7C7C68492438282623283B50447AAFE9
E9E9E9E9DEC8C983C8C8C9C4DBD4D4DBDBB5B0DBDADBD5C4C9D9EAEAC9D9C9EB
DAEBEBC9EA00B17CB17DB17B7B7BB1B3AF7CB1C468D4B3D47CB579492A492428
1C2749657876AFC8E9E9E9E9C8C8C983C883C9E7DBD4D4AFB3C0D5B0B0C0D5DA
C9D9EAEAC9D9C9DADAEBEBC9EA00B17CB1B1B17B4C7B7DC4B3B3B1B37CAF81D4
7CA544492A433026231A24286B79DBC8E9E9DDDDC7EDF1F1F2D9C9DBF3D4D4C0
D5F5BABAD5B0D5EBDAEDD9EAC9D9C9EBDAEBEBC9EA00B3B17D7D7DB14C7B7BB1
B3B3C4B381D4D481B06B3B434943261A1B1B1C285E76B5EADDDDDDEEF3F8F8F8
F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F6F1C9D9C9DADAEBEBC9EA0080B1
B3B1C97D7B4C7CD4AFAFD4C07CD46868765E314349302623231C2628C0767CEA
EFDDDDF1F8F6F6F6F6F7F7F7F8F4F4F5F5CEF4F4F4F6F4F6F8F8F8F8C9D9C9EB
DAEBEBC9EA007DB1B17DC97DC47B7C7C7C8168797CB079B06BA344434324244E
69694E575C62AEEADDDDE6F5F8F1F1DF8380DFE7DBB0D5B5D4C0B4D1BAADD1F3
F5F6F8F9C9D9C9DADAEBEBC9EA00C4C4B1C9D97D7D7B68686868687968C079A5
6B443B492B274E9297924E5A5C99CDD9EFDDEFF7F8F8C9F1F7F8F9F6F3D4B3F9
B0D1F6F8F9F8F5DAD9EDF6F8C9D9C9EBDAEBEBC9EA007D7DB1C9807DB17B5179
68B57679797976796B4949492B235A9797976E577098CDDAD9DDDDF6F8F8F5F9
F8F5F5F6F9F7D4F8F5F9F8F4F5F6F9F7C9EAF6F8C9D9C9DADAEBEBC9EA007D7D
7D7DC97D7D7B5150505044507A4444764443652A282664979797925A6E98CDDA
EDC8EFF3F8F7F9F5DEC8EBDAD5F9B5F6F9F5B3AFD4B5F1F9EBC8F6F9C9D9C9EB
DAEBEBC9EA00C9C9C9C97D7DB17B4D44443B654444356535492B3828241B6497
90909092979874DAD9C8EAF2F8F2F983C8C8C9C4D4F8F5D5F9D4D4DBDBD4DBF6
F5D9F6F8C9D9C9DADAEBEBC9EA0080C9C9C97DC97B4C79443B49652B492A282A
433024281C566497909097976E5744DADAD9D9E5F8C8F9DFC8C8C9C4D4F8F581
F9D4D4DBC4DBC4F8F3EAF6F8C9D9C9EBDAEBEBC9EA0080C980C980C9C4AF3D74
492B24243B3B49493149301B1B5A64979797926957262B78796B68F3F8C8F8F7
C883C4B3F5F9B5B5F8F6C4DFC9E7F5F9EDF3F6F9C9D9C9DADAEBEBC9EA008080
80C9C9C97DB33D4474242A654835A1357449301C1B569197979297695828283B
744978F1F8F3F2F9F9F6F6F9F9F5D4DBD4F9F9F6F6F9F9F3C9F6F7F8C9D9C9EB
DAEBEBC9EA00C9C9C9C980C97D7C4D793538303B3B653B3B4343261C133A6492
91976469572A28493B2AB0E5F8F8F3D9F5F6F6F7DAE7C4EBDAE7F5F6F6F7E7F1
F7F8F8F8C9D9C9DADAEBEBC9EA00C9C9C9C9C97DB17C4D683530284343316565
4328261C1913566464925A6957282843652830A5F7F8F8F6F6F7F7F7F6F7F7F7
F7F7F7F6F6F6F6F8F8F8F8F8C9D9C9EBDAEBEBC9EA007DC9C9C9C97DB17BAF68
742A1C2A2B4935444449492423235A3A5A5A5A694E2830433B2A2851E6F5F6F6
F7F5F7F7F6F7F7F7F7F7F7F7F7F6F6F6F7F8F6EDC9D9C9DADAEBEBC9EA00C9C9
7DC9C97DB1B1B17C652A2849653174507878442826235A0E234E5A5A28242A2B
3B302BC8E9EAC983D9D9C9EBDAE0C4C9E0C4C4EBF2DBC4DAEBC9D9D9C9D9C9EB
DAEBEBC9EA007DC97DC9807DC97D817C503549444444787A4478784326233A0E
0E1B232324282A303B4344DDE9C8C9DF83C8C9DADAC4C4C9DAC4C4EBEBE7C4DA
C9C9EAD9C9D9C9DADAEBEBC9EA00C9C9C9C9C9C9C9C47B7C68503B7A507A7A79
4B784843271C161A1313232628282A284950DDDDE9C8C98383C8C9DAC4DAC4EB
C4E7C4EBEBE7C4DAEBC9D9C9D9C9C9C4C47D7DC9EA00C9C9C9C980C97D7DB1AF
7C5044504444787A5044493024230E19130E1A1C1C302A2A49314468E9C8C9C9
83C8C9DAC4E7DAC9C4E7C4EBEBE7C4DAC9C9C9C97D7D363632363636EA00C9C9
C9C9807DC9C9B1B3817A50787A7844787A652B2A261C1A180E1613192630242A
3B494976E9C8C9C983C8C9DAE7DBC4EBC4E7C4EBEBE7C4DAC9C98036367D3636
3636367DEA00C9C9C9C9C9C97DB1B1AF68795074505035354449302824261B18
130E131A28281B24744844DDE9C8DF848083C9DAE7DBC4C9C4E7C4EBEBE7C4DA
7D7D36367D367D363636367DEA007DC9C9C980C9B1B17BAF797A78447679743B
A149382826261A13163A131A2A2B2324785EB1DDE9C8EA80DF80C9DAC4DBDBDA
C4E7C4DAEBE7C4363636367D367D36363636367DEA00B1C97D7D7DC4B17BB37C
687950357478352B49433026231C0E16555518192A492328444DDDDDE9C8C8DF
80C9C9C9EBC4DBC4C4E7C4DAC97B3232367D7D7D7D367D363636367DEA00B37D
B1B1B17C4C7B817CB5687A35483BA149302A2623131816919164561A1C282728
747CE9DDE9C8C8C88380EBC9EBC4DAEBC4DBC4DA3632323636363636367D3636
3636367DEA00C47D7CB14C687C7C687C7C68794430262B301C28260E0E185697
9797561B1C241C4368DDDDDDE9C8C88383C9C9C9EBC4DAC9C4DBC43636323636
367D36367D7D36363636367DEA00}
end
object edtDir: TEdit
Left = 168
Top = 162
Width = 152
Height = 21
ImeName = #20013#25991' ('#31616#20307') - '#19975#33021#20116#31508#20869#32622#36755#20837#27861
TabOrder = 0
end
object cbbWinner: TComboBox
Left = 142
Top = 87
Width = 188
Height = 24
BevelInner = bvLowered
Ctl3D = False
Font.Charset = DEFAULT_CHARSET
Font.Color = clRed
Font.Height = -13
Font.Name = 'Tahoma'
Font.Style = [fsBold]
ImeName = #20013#25991' ('#31616#20307') - '#19975#33021#20116#31508#20869#32622#36755#20837#27861
ParentCtl3D = False
ParentFont = False
TabOrder = 1
OnDropDown = cbbWinnerDropDown
OnKeyDown = cbbWinnerKeyDown
OnKeyPress = cbbWinnerKeyPress
end
object cbAutoContinuous: TCheckBox
Left = 5
Top = 223
Width = 97
Height = 17
Caption = #36830#32493#33258#21160#21047
TabOrder = 2
OnClick = cbAutoContinuousClick
end
object cbHide: TCheckBox
Left = 180
Top = 222
Width = 97
Height = 17
Caption = #38544#34255#28216#25103#31383#21475
TabOrder = 3
OnClick = cbHideClick
end
object pnlTitle: TPanel
Left = 0
Top = 0
Width = 450
Height = 41
Align = alTop
BevelInner = bvRaised
BevelOuter = bvLowered
BorderWidth = 2
BorderStyle = bsSingle
Caption = 'QQ'#22235#22269#20891#26071#21047#20998#22120'v1.1'
Color = clTeal
Font.Charset = DEFAULT_CHARSET
Font.Color = clRed
Font.Height = -19
Font.Name = 'Courier New'
Font.Style = [fsBold]
ParentFont = False
TabOrder = 4
end
object cbSmart: TCheckBox
Left = 5
Top = 165
Width = 161
Height = 17
Caption = #26234#33021#23545#22869' '#38656#25351#23450#22797#30424#25991#20214
TabOrder = 5
OnClick = cbSmartClick
end
object rgModel: TRadioGroup
Left = 1
Top = 46
Width = 351
Height = 39
Align = alCustom
Caption = #36873#25321#21047#20998#27169#24335
Columns = 2
ItemIndex = 0
Items.Strings = (
'1'#32452#20004#20154#23545#25112
'2'#32452#20004#20154#23545#25112)
TabOrder = 6
OnClick = rgModelClick
end
object cbbLoser: TComboBox
Left = 142
Top = 117
Width = 188
Height = 24
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -13
Font.Name = 'Tahoma'
Font.Style = []
ImeName = #20013#25991' ('#31616#20307') - '#19975#33021#20116#31508#20869#32622#36755#20837#27861
ParentFont = False
TabOrder = 7
OnDropDown = cbbLoserDropDown
OnKeyDown = cbbLoserKeyDown
OnKeyPress = cbbLoserKeyPress
end
object btnAutoPlay: TButton
Left = 15
Top = 254
Width = 79
Height = 39
BiDiMode = bdLeftToRight
Caption = #24320#22987#21047#20998
Font.Charset = DEFAULT_CHARSET
Font.Color = clMenuHighlight
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
ParentBiDiMode = False
ParentFont = False
TabOrder = 8
OnClick = btnAutoPlayClick
end
object btnExit: TButton
Left = 229
Top = 254
Width = 79
Height = 39
Caption = #36864' '#20986
Font.Charset = DEFAULT_CHARSET
Font.Color = clInactiveCaption
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
ParentFont = False
TabOrder = 9
OnClick = btnExitClick
end
object cbAddSpeed: TCheckBox
Left = 38
Top = 187
Width = 61
Height = 12
Caption = ' '#21152' '#36895
Color = clMoneyGreen
Ctl3D = False
ParentColor = False
ParentCtl3D = False
TabOrder = 10
OnClick = cbAddSpeedClick
end
object bbtnHelp: TBitBtn
Left = 336
Top = 253
Width = 79
Height = 39
Cursor = crHelp
Hint = #21047#20998#22120#20351#29992#35828#26126
BiDiMode = bdRightToLeft
Caption = #24110' '#21161
DoubleBuffered = True
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -13
Font.Name = 'Tahoma'
Font.Style = []
Layout = blGlyphRight
ParentBiDiMode = False
ParentDoubleBuffered = False
ParentFont = False
ParentShowHint = False
ShowHint = True
TabOrder = 11
WordWrap = True
OnClick = bbtnHelpClick
end
object sbRegister: TStatusBar
Left = 0
Top = 292
Width = 450
Height = 27
BorderWidth = 2
Color = clMoneyGreen
Panels = <
item
Width = 170
end
item
Width = 100
end
item
Text = '//'#35282#33394#29256' 2.1 Beta06 Build020'
Width = 150
end>
end
object bbtnRegister: TBitBtn
Left = 122
Top = 253
Width = 79
Height = 39
Caption = #27880' '#20876
DoubleBuffered = True
ParentDoubleBuffered = False
TabOrder = 13
OnClick = bbtnRegisterClick
end
object odSetDir: TOpenDialog
DefaultExt = 'jgs'
Left = 328
Top = 119
end
end
//注册窗体文件
object frmRegister: TfrmRegister
Left = 504
Top = 235
BorderStyle = bsDialog
BorderWidth = 3
Caption = #27880#20876
ClientHeight = 122
ClientWidth = 208
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
OldCreateOrder = False
Position = poMainFormCenter
OnShow = FormShow
PixelsPerInch = 96
TextHeight = 13
object Label1: TLabel
Left = 10
Top = 16
Width = 48
Height = 13
Caption = #29992#25143#21517#65306
end
object Label2: TLabel
Left = 12
Top = 53
Width = 48
Height = 13
Caption = #27880#20876#30721#65306
end
object bbtnOK: TBitBtn
Left = 66
Top = 87
Width = 77
Height = 31
Caption = #30830' '#23450
DoubleBuffered = True
ParentDoubleBuffered = False
TabOrder = 0
OnClick = bbtnOKClick
end
object edtUser: TEdit
Left = 60
Top = 13
Width = 121
Height = 21
ImeName = #20013#25991' ('#31616#20307') - '#19975#33021#20116#31508#20869#32622#36755#20837#27861
TabOrder = 1
OnKeyPress = edtUserKeyPress
end
object edtPsw: TEdit
Left = 61
Top = 50
Width = 121
Height = 21
ImeName = #20013#25991' ('#31616#20307') - '#19975#33021#20116#31508#20869#32622#36755#20837#27861
TabOrder = 2
OnKeyPress = edtPswKeyPress
end
end
//帮助提示窗体文件
object frmHelp: TfrmHelp
Left = 526
Top = 320
BorderStyle = bsDialog
Caption = #21047#20998#22120#20351#29992#35828#26126
ClientHeight = 236
ClientWidth = 450
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
OldCreateOrder = False
Position = poMainFormCenter
PixelsPerInch = 96
TextHeight = 13
object reHelp: TRichEdit
Left = 2
Top = 3
Width = 446
Height = 233
BevelInner = bvLowered
BevelWidth = 2
BorderWidth = 1
Color = clSkyBlue
Font.Charset = GB2312_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
ImeName = #20013#25991' ('#31616#20307') - '#19975#33021#20116#31508#20869#32622#36755#20837#27861
Lines.Strings = (
' '#21047#20998#22120#20351#29992#35828#26126#65288'BlackSnake 2010.06.06'#65289
'1. '#21047#20998#22120#26377#20004#31181#27169#24335#65288#30446#21069#20165#25903#25345#20004#20154#29609#65289#65306#21363'1'#32452#20004#20154#29609#21644'2'#32452#20004#20154#29609
'2. 1'#32452#20004#20154#23545#25112#26102#65292#36873#25321#35201#36194#20998#30340'QQ'#21495#65292#21363#21487#20197#23454#29616#21047#20998#65307#22914#26524#21246#36873#8220#36830#32493#33258#21160#21047#8221
#21017#21487#20197#23454#29616#36830#32493#21047#20998#65307#22914#26524#24819#38544#34255#28216#25103#31383#21475#65292#21017#21487#20197#21246#36873#8220#38544#34255#28216#25103#31383#21475#8221#12290
'3. 2'#32452#20004#20154#23545#25112#65292#21363'ABC'#21047#20998#27169#24335#65292#29992'3'#20010#21495#65292#20551#35774#23567#21495#65288'C'#65289#22312#20302#20998#21306#36127#36131#36755#20998#65292#20013
#21495#65288'B'#65289#24320#20004#20010#25151#38388#20998#21035#36827#20837#39640#20998#21306#21644#20302#20998#21306#36127#36131#36716#20998'('#20998#25968#22312'50-59'#20998')'#65292#22823#21495#65288'A'#65289
#22312#39640#20998#21306#12290#24320'2'#32452#65292'1'#32452#20026'A'#23545#25112'B'#65292'1'#32452#20026'B'#23545#25112'C'#65292#21482#35201#36873#23450#35201#36194#20998#30340'QQ'#65288'A'#65289#21644#36755
#20998#30340'QQ'#65288'C'#65289#65292#37027#20040'A'#21487#20197#30452#25509#21047#21040#21496#20196#20197#19978#12290
'4. '#20026#22686#21152#36259#21619#24615#65292#26412#21047#20998#22120#22686#21152#20102#26234#33021#23545#22869#21151#33021#65292#20027#35201#21033#29992#20004#20154#22797#30424#25968#25454#23454#29616#65292#25152
#20197#19968#23450#35201#35774#23450#22797#30424#25991#20214#12290#21246#36873#8220#21152#36895#8221#21151#33021#26159#25351#36798#21040#35268#23450#27493#25968#21363#25552#21069#32456#27490#12290
#27880#24847#65306#30446#21069#20165#25903#25345#19978#19979#20301#30340#24773#24418#65292#21363#21452#26041#20998#21035#22352#22312#19978#20301#21644#19979#20301#65288#24038#21491#20301#21047#19981#20102#65289#12290
'5. '#22914#35201#25171#24320#22810#20010#21047#20998#22120#36827#34892#21047#20998#26102#65292#24517#39035#20808#36816#34892#21047#20998#22120#20877#36827#20837#28216#25103#12290
'6. '#26412#21047#20998#22120#20165#20379#23398#20064#20132#27969#20043#29992#65292#19981#24471#29992#20110#21830#19994#30446#30340#65292#21542#21017#21518#26524#33258#36127#12290
' ')
ParentFont = False
TabOrder = 0
end
end

浙公网安备 33010602011771号