added first iteration of breakpoint view for the debugger

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@21 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
fires.gc 2008-07-17 20:08:01 +00:00
parent d23af1a15e
commit fa6bd5d2e2
21 changed files with 1285 additions and 39 deletions

View File

@ -41,7 +41,7 @@ void* AllocateExecutableMemory(int size)
if ((u64)ptr >= 0x80000000)
{
PanicAlert("Executable memory ended up above 2GB! WTF!");
PanicAlert("Executable memory ended up above 2GB!");
// If this happens, we have to implement a free ram search scheme. ector knows how.
}

View File

@ -318,7 +318,7 @@ bool CBoot::EmulatedBIOS_Wii(bool _bDebug)
u32 iAppLoaderSize = VolumeHandler::Read32(iAppLoaderOffset + 0x14);
if ((iAppLoaderEntry == (u32)-1) || (iAppLoaderSize == (u32)-1))
{
LOG(BOOT, "Invalid apploader. WTF.");
LOG(BOOT, "Invalid apploader. Probably your image is corrupted.");
return false;
}
VolumeHandler::ReadToPtr(Memory::GetPointer(0x81200000), iAppLoaderOffset + 0x20, iAppLoaderSize);

View File

@ -21,14 +21,15 @@
#include "Common.h"
#include "../HW/CPU.h"
#include "../Host.h"
#include "Debugger_SymbolMap.h"
#include "Debugger_BreakPoints.h"
using namespace Debugger;
std::vector<TBreakPoint> CBreakPoints::m_iBreakPoints;
std::vector<TMemCheck> CBreakPoints::MemChecks;
CBreakPoints::TBreakPoints CBreakPoints::m_BreakPoints;
CBreakPoints::TMemChecks CBreakPoints::m_MemChecks;
u32 CBreakPoints::m_iBreakOnCount = 0;
TMemCheck::TMemCheck()
@ -54,7 +55,7 @@ bool CBreakPoints::IsAddressBreakPoint(u32 _iAddress)
{
std::vector<TBreakPoint>::iterator iter;
for (iter = m_iBreakPoints.begin(); iter != m_iBreakPoints.end(); ++iter)
for (iter = m_BreakPoints.begin(); iter != m_BreakPoints.end(); ++iter)
if ((*iter).iAddress == _iAddress)
return true;
@ -65,7 +66,7 @@ bool CBreakPoints::IsTempBreakPoint(u32 _iAddress)
{
std::vector<TBreakPoint>::iterator iter;
for (iter = m_iBreakPoints.begin(); iter != m_iBreakPoints.end(); ++iter)
for (iter = m_BreakPoints.begin(); iter != m_BreakPoints.end(); ++iter)
if ((*iter).iAddress == _iAddress && (*iter).bTemporary)
return true;
@ -75,7 +76,7 @@ bool CBreakPoints::IsTempBreakPoint(u32 _iAddress)
TMemCheck *CBreakPoints::GetMemCheck(u32 address)
{
std::vector<TMemCheck>::iterator iter;
for (iter = MemChecks.begin(); iter != MemChecks.end(); ++iter)
for (iter = m_MemChecks.begin(); iter != m_MemChecks.end(); ++iter)
{
if ((*iter).bRange)
{
@ -102,7 +103,9 @@ void CBreakPoints::AddBreakPoint(u32 _iAddress, bool temp)
pt.bTemporary = temp;
pt.iAddress = _iAddress;
m_iBreakPoints.push_back(pt);
m_BreakPoints.push_back(pt);
Host_UpdateBreakPointView();
}
}
@ -110,19 +113,28 @@ void CBreakPoints::RemoveBreakPoint(u32 _iAddress)
{
std::vector<TBreakPoint>::iterator iter;
for (iter = m_iBreakPoints.begin(); iter != m_iBreakPoints.end(); ++iter)
for (iter = m_BreakPoints.begin(); iter != m_BreakPoints.end(); ++iter)
{
if ((*iter).iAddress == _iAddress)
{
m_iBreakPoints.erase(iter);
m_BreakPoints.erase(iter);
break;
}
}
Host_UpdateBreakPointView();
}
void CBreakPoints::ClearAllBreakPoints()
{
m_iBreakPoints.clear();
m_BreakPoints.clear();
Host_UpdateBreakPointView();
}
void CBreakPoints::AddMemoryCheck(const TMemCheck& _rMemoryCheck)
{
m_MemChecks.push_back(_rMemoryCheck);
Host_UpdateBreakPointView();
}
void CBreakPoints::AddAutoBreakpoints()

View File

@ -14,6 +14,7 @@
// Official SVN repository and contact information can be found at
// http://code.google.com/p/dolphin-emu/
#ifndef _DEBUGGER_BREAKPOINTS_H
#define _DEBUGGER_BREAKPOINTS_H
@ -50,17 +51,13 @@ struct TMemCheck
class CBreakPoints
{
private:
enum { MAX_NUMBER_OF_CALLSTACK_ENTRIES = 16384};
enum { MAX_NUMBER_OF_BREAKPOINTS = 16};
static std::vector<TBreakPoint> m_iBreakPoints;
static u32 m_iBreakOnCount;
public:
static std::vector<TMemCheck> MemChecks;
typedef std::vector<TBreakPoint> TBreakPoints;
typedef std::vector<TMemCheck> TMemChecks;
static const TBreakPoints& GetBreakPoints() { return m_BreakPoints; }
static const TMemChecks& GetMemChecks() { return m_MemChecks; }
// is address breakpoint
static bool IsAddressBreakPoint(u32 _iAddress);
@ -80,9 +77,20 @@ public:
// Remove Breakpoint
static void RemoveBreakPoint(u32 _iAddress);
static void AddMemoryCheck(const TMemCheck& _rMemoryCheck);
static void ClearAllBreakPoints();
static void AddAutoBreakpoints();
private:
static TBreakPoints m_BreakPoints;
static TMemChecks m_MemChecks;
static u32 m_iBreakOnCount;
};
#endif

View File

@ -270,7 +270,8 @@ int LoadSymbolsFromO(const char* filename, unsigned int base, unsigned int count
fseek (ifil, ELF_SH.offset, SEEK_SET);
if (ELF_SH.size<0 || ELF_SH.size>0x10000000)
{
PanicAlert("WTF??");
PanicAlert("Failed to load symbols from object file.\n"
"Header size is invalid");
}
abuf = (unsigned char *)malloc (ELF_SH.size);
fread (abuf, 1, ELF_SH.size, ifil);

View File

@ -46,7 +46,8 @@ namespace Memory
// GLOABL DEFINES
#define NOCHECK
// #define NOCHECK
static const bool bFakeVMEM = false;
#ifndef LOGGING

View File

@ -99,23 +99,23 @@ int CSIDevice_GCController::RunBuffer(u8* _pBuffer, int _iLength)
switch(command)
{
case CMD_RESET:
{
*(u32*)&_pBuffer[0] = SI_GC_CONTROLLER; // | SI_GC_NOMOTOR;
iPosition = _iLength; // break the while loop
}
break;
{
*(u32*)&_pBuffer[0] = SI_GC_CONTROLLER; // | SI_GC_NOMOTOR;
iPosition = _iLength; // break the while loop
}
break;
case CMD_ORIGIN:
{
LOG(SERIALINTERFACE, "SI - Get Origin");
u8* pCalibration = reinterpret_cast<u8*>(&m_origin);
for (int i = 0; i < (int)sizeof(SOrigin); i++)
{
_pBuffer[i ^ 3] = *pCalibration++;
}
}
iPosition = _iLength;
break;
LOG(SERIALINTERFACE, "SI - Get Origin");
u8* pCalibration = reinterpret_cast<u8*>(&m_origin);
for (int i = 0; i < (int)sizeof(SOrigin); i++)
{
_pBuffer[i ^ 3] = *pCalibration++;
}
}
iPosition = _iLength;
break;
// Recalibrate (FiRES: i am not 100 percent sure about this)
case CMD_RECALIBRATE:

View File

@ -43,6 +43,7 @@ void Host_UpdateDisasmDialog();
void Host_UpdateLogDisplay();
void Host_UpdateMemoryView();
void Host_NotifyMapLoaded();
void Host_UpdateBreakPointView();
void Host_SetDebugMode(bool enable);
void Host_SetWaitCursor(bool enable);

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="8.00"
Version="8,00"
Name="DebuggerWX"
ProjectGUID="{4D3CD4C5-412B-4B49-9B1B-A68A2A129C77}"
RootNamespace="DebuggerWX"
@ -419,6 +419,14 @@
<Filter
Name="Controls"
>
<File
RelativePath=".\src\BreakpointView.cpp"
>
</File>
<File
RelativePath=".\src\BreakpointView.h"
>
</File>
<File
RelativePath=".\src\CodeView.cpp"
>
@ -436,6 +444,14 @@
>
</File>
</Filter>
<File
RelativePath=".\src\BreakpointWindow.cpp"
>
</File>
<File
RelativePath=".\src\BreakpointWindow.h"
>
</File>
<File
RelativePath=".\src\CodeWindow.cpp"
>

View File

@ -0,0 +1,306 @@
static const unsigned char toolbar_add_breakpoint_png[] = {
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d,
0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30,
0x08, 0x06, 0x00, 0x00, 0x00, 0x57, 0x02, 0xf9, 0x87, 0x00, 0x00, 0x00,
0x04, 0x73, 0x42, 0x49, 0x54, 0x08, 0x08, 0x08, 0x08, 0x7c, 0x08, 0x64,
0x88, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0b,
0x12, 0x00, 0x00, 0x0b, 0x12, 0x01, 0xd2, 0xdd, 0x7e, 0xfc, 0x00, 0x00,
0x00, 0x25, 0x74, 0x45, 0x58, 0x74, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61,
0x72, 0x65, 0x00, 0x4d, 0x61, 0x63, 0x72, 0x6f, 0x6d, 0x65, 0x64, 0x69,
0x61, 0x20, 0x46, 0x69, 0x72, 0x65, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20,
0x4d, 0x58, 0x20, 0x32, 0x30, 0x30, 0x34, 0x87, 0x76, 0xac, 0xcf, 0x00,
0x00, 0x00, 0x15, 0x74, 0x45, 0x58, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74,
0x69, 0x6f, 0x6e, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x00, 0x39, 0x2f, 0x31,
0x30, 0x2f, 0x30, 0x34, 0xb6, 0xfa, 0x8a, 0x30, 0x00, 0x00, 0x0d, 0x8f,
0x49, 0x44, 0x41, 0x54, 0x78, 0x9c, 0xed, 0x9a, 0x7b, 0x70, 0x5c, 0xd5,
0x79, 0xc0, 0x7f, 0xe7, 0xdc, 0x7b, 0xf7, 0xee, 0x43, 0x4f, 0x5b, 0x46,
0xb2, 0x8d, 0xf1, 0x82, 0x4d, 0x31, 0x31, 0x83, 0xd7, 0x35, 0xa4, 0xc0,
0x34, 0xb5, 0x30, 0x34, 0x9d, 0x90, 0x92, 0x38, 0x0d, 0x9d, 0x96, 0x86,
0x26, 0xea, 0x3f, 0x5a, 0x13, 0xa7, 0x18, 0x93, 0xb4, 0x03, 0x34, 0xc4,
0x32, 0xd3, 0xa6, 0xd3, 0x32, 0xc5, 0xf6, 0xd0, 0x92, 0xec, 0x86, 0x06,
0x98, 0x4e, 0x4b, 0xa7, 0x21, 0x05, 0x3c, 0x93, 0xc4, 0x34, 0x0c, 0x96,
0x0b, 0xc5, 0x6d, 0x20, 0xb0, 0x56, 0x81, 0xd6, 0xef, 0x15, 0x46, 0x92,
0x1f, 0xb2, 0xb4, 0x5a, 0x69, 0x1f, 0x77, 0xef, 0xe3, 0xeb, 0x1f, 0x77,
0x57, 0x96, 0xfc, 0x80, 0x64, 0xac, 0x94, 0xe9, 0x4c, 0xbf, 0x9d, 0x33,
0x7b, 0x57, 0xf7, 0x9e, 0x7b, 0xbe, 0xdf, 0xf9, 0xbe, 0xf3, 0x9d, 0xef,
0x9c, 0x23, 0x25, 0x22, 0xfc, 0x5f, 0x16, 0xfd, 0x51, 0x2b, 0x70, 0xb1,
0x62, 0x7e, 0xd8, 0x03, 0x6a, 0x93, 0x4a, 0xa2, 0x59, 0x5f, 0x2f, 0x4b,
0xd1, 0x24, 0xd1, 0x80, 0x26, 0x8f, 0x62, 0x1f, 0x9a, 0x7e, 0x34, 0x4f,
0x49, 0x9f, 0x14, 0x7e, 0xf1, 0xea, 0x9e, 0x47, 0xbf, 0x0b, 0xb9, 0x90,
0xfa, 0x8a, 0x6a, 0x43, 0xd3, 0x87, 0x66, 0x53, 0x5d, 0xe1, 0x33, 0x45,
0x9d, 0xf5, 0x3b, 0x2c, 0x4f, 0xa3, 0xe9, 0x93, 0x3f, 0x91, 0xfc, 0xff,
0x8a, 0xe6, 0x0d, 0x3d, 0xcf, 0x07, 0xa0, 0x36, 0xaa, 0x36, 0x34, 0xbb,
0x51, 0xa4, 0xb0, 0x80, 0x76, 0x58, 0x71, 0xc5, 0x0a, 0x6e, 0x5c, 0x7e,
0x03, 0xf3, 0xa3, 0xed, 0x58, 0x86, 0xc1, 0xc9, 0xa9, 0x93, 0xbc, 0x79,
0xec, 0x0d, 0x0e, 0x0f, 0x1d, 0xa5, 0x58, 0xa8, 0x34, 0x20, 0x0a, 0x68,
0xb6, 0xca, 0x03, 0xb2, 0xfd, 0x03, 0x1b, 0xfd, 0xb6, 0xea, 0x01, 0x72,
0xb2, 0x41, 0x72, 0xbf, 0x28, 0x80, 0xb7, 0xd0, 0xa4, 0xb0, 0x61, 0xc5,
0x9a, 0xab, 0xd8, 0xf6, 0x9b, 0xdb, 0x59, 0xd2, 0xbc, 0x04, 0x8d, 0xc6,
0xc0, 0x40, 0xd7, 0x3f, 0x06, 0x06, 0xef, 0x4d, 0x1d, 0xe5, 0x07, 0xf9,
0xef, 0x93, 0xdd, 0xf3, 0x14, 0xe3, 0x85, 0xa9, 0x06, 0x48, 0x3f, 0x9a,
0xcf, 0xc9, 0x1f, 0xcd, 0x76, 0x2b, 0xf5, 0xd7, 0x2a, 0x89, 0xe6, 0x49,
0x14, 0xdd, 0x28, 0x7a, 0x64, 0x83, 0x3c, 0x3d, 0xe7, 0x00, 0x6a, 0x83,
0xda, 0x86, 0xe6, 0x5e, 0x2c, 0xf8, 0xcc, 0xed, 0x9f, 0xe1, 0xe1, 0x5b,
0x1f, 0xc6, 0xc0, 0xe0, 0xa5, 0xfc, 0x8b, 0x1c, 0x2c, 0xbc, 0xc3, 0xa4,
0x3f, 0x86, 0x6d, 0x46, 0xb0, 0x0c, 0x83, 0xcb, 0x9b, 0xaf, 0x64, 0xcd,
0xbc, 0x9b, 0xb8, 0xba, 0x79, 0x15, 0xc3, 0xe5, 0x41, 0x1e, 0xdd, 0xf7,
0xa7, 0x3c, 0xfb, 0xea, 0x8b, 0xd4, 0x7c, 0x0f, 0x34, 0x39, 0x34, 0x37,
0xcb, 0xd7, 0x42, 0x08, 0xb5, 0x43, 0xf5, 0xa1, 0xd8, 0x82, 0x22, 0x74,
0x41, 0xe8, 0x93, 0xaf, 0xc8, 0xd6, 0x39, 0x05, 0x50, 0x69, 0x95, 0x42,
0xf1, 0x16, 0x1a, 0xae, 0x5b, 0xbb, 0x86, 0xec, 0xef, 0x7c, 0x87, 0x81,
0x13, 0xfb, 0xd8, 0xf1, 0xd3, 0x47, 0xa8, 0xa9, 0x49, 0xda, 0xe2, 0x71,
0xe2, 0xb6, 0x4d, 0xd4, 0xb2, 0xb0, 0x4c, 0x13, 0x53, 0x6b, 0xb4, 0xd6,
0xcc, 0xb7, 0x16, 0x70, 0x5b, 0xe7, 0x9d, 0xdc, 0xd0, 0x7a, 0x2b, 0x4f,
0x1e, 0x79, 0x94, 0x87, 0x7f, 0xb0, 0x8d, 0x62, 0xa9, 0x1c, 0x42, 0x28,
0xb6, 0xa2, 0xd9, 0x82, 0x22, 0xd5, 0x1a, 0x6d, 0xe5, 0xf7, 0xaf, 0xff,
0x3c, 0xff, 0xf4, 0xee, 0xb3, 0x9c, 0x2c, 0x14, 0xb7, 0xcb, 0x26, 0xd9,
0x7c, 0xb1, 0x00, 0x67, 0x87, 0xd1, 0x6d, 0x08, 0x90, 0x80, 0xfb, 0x6e,
0xfd, 0x2a, 0xbb, 0x0e, 0xff, 0x90, 0x07, 0xfe, 0xf5, 0x3e, 0x5c, 0x35,
0xc9, 0xbc, 0xa6, 0x26, 0x9a, 0xa3, 0x51, 0x22, 0xe6, 0x99, 0xc0, 0x65,
0x1a, 0x06, 0xf1, 0x48, 0x84, 0x9a, 0x39, 0xc5, 0xce, 0xd3, 0xdf, 0xe1,
0x89, 0x91, 0x87, 0xb9, 0x2b, 0xb9, 0x91, 0x17, 0x7a, 0xfe, 0x91, 0xae,
0xf6, 0x56, 0x08, 0x48, 0x11, 0xf0, 0x1c, 0x3e, 0xa9, 0x55, 0xf3, 0x57,
0xb1, 0xf7, 0x8b, 0xaf, 0xf0, 0xb9, 0x6b, 0x7f, 0x9d, 0x98, 0x69, 0x83,
0x47, 0xea, 0x62, 0x95, 0x9f, 0x05, 0xa0, 0xd2, 0x2a, 0x09, 0x74, 0x03,
0xdc, 0x7e, 0xcb, 0xed, 0x94, 0xdc, 0x29, 0x76, 0xbc, 0xf1, 0x08, 0x2d,
0xb1, 0x18, 0x2d, 0xf1, 0x38, 0x11, 0xd3, 0xa4, 0x52, 0x73, 0xc9, 0x1f,
0x3c, 0xc9, 0xbf, 0xbf, 0x7c, 0x88, 0x57, 0x7e, 0xfc, 0x5f, 0x0c, 0xe4,
0xde, 0x63, 0xac, 0x50, 0x02, 0x11, 0x2c, 0xd3, 0xe4, 0x7d, 0xef, 0x00,
0xdb, 0x8e, 0xdf, 0xc3, 0x92, 0xe8, 0x15, 0x3c, 0x7b, 0xd7, 0x33, 0x2c,
0x9c, 0xd7, 0x0e, 0x3e, 0xa4, 0x3a, 0x52, 0xbc, 0x72, 0xd7, 0x1e, 0x96,
0x37, 0xad, 0xc0, 0xd0, 0x1a, 0xe5, 0x03, 0xde, 0x5c, 0xa8, 0x3f, 0xdb,
0x02, 0x9b, 0x00, 0x94, 0x0d, 0xbf, 0x77, 0xfd, 0x9d, 0x3c, 0xfa, 0x1f,
0x7f, 0x41, 0x53, 0x34, 0x4a, 0x73, 0x2c, 0x86, 0x65, 0x18, 0x4c, 0x95,
0x2b, 0x1c, 0x7c, 0x7d, 0x84, 0x43, 0xfb, 0x8e, 0x73, 0xfa, 0x54, 0x91,
0xd1, 0x53, 0x93, 0xfc, 0xf7, 0x3b, 0x43, 0xbc, 0xf4, 0xe2, 0x00, 0xaf,
0xff, 0xf4, 0x30, 0xa5, 0x8a, 0x03, 0x80, 0x23, 0x15, 0xbe, 0x7b, 0xfa,
0x61, 0x16, 0x45, 0x92, 0x3c, 0xb2, 0x7e, 0x2b, 0x1f, 0x5f, 0xb4, 0x86,
0xfe, 0x2f, 0xbd, 0xcc, 0xa4, 0x1a, 0x65, 0x77, 0xed, 0xef, 0x59, 0xa4,
0xae, 0xe4, 0xb2, 0xae, 0x05, 0xe0, 0x87, 0x9d, 0x35, 0x97, 0x00, 0xeb,
0x01, 0x16, 0x2e, 0x5b, 0xc4, 0xab, 0xc7, 0x5e, 0x61, 0xd2, 0x2b, 0xd0,
0x14, 0x8b, 0x11, 0x8f, 0x44, 0xa8, 0xb8, 0x2e, 0xef, 0xbd, 0x35, 0xca,
0xc9, 0xa1, 0x22, 0x4e, 0xd5, 0x23, 0xf0, 0x04, 0xf1, 0x04, 0xaf, 0xe6,
0x53, 0x9a, 0xac, 0xf2, 0xce, 0xc0, 0x31, 0x76, 0xbe, 0xf0, 0x3a, 0xc7,
0x86, 0x4f, 0x53, 0xf3, 0x3c, 0xa6, 0xdc, 0x49, 0xb2, 0xa3, 0x5b, 0xb8,
0xb1, 0xfd, 0x16, 0x76, 0x7d, 0x71, 0x17, 0xb9, 0x5a, 0x3f, 0xdf, 0x2e,
0xdc, 0xcf, 0x81, 0xf2, 0x00, 0xae, 0x78, 0x78, 0xae, 0x3f, 0xb7, 0x16,
0xa8, 0xbb, 0x4f, 0x12, 0xe0, 0xfa, 0xab, 0xd7, 0xf0, 0xf2, 0xe0, 0xbf,
0x90, 0xb0, 0x6d, 0x9a, 0x6c, 0x1b, 0xad, 0x14, 0x85, 0x91, 0x12, 0x85,
0xe3, 0x65, 0xbc, 0x9a, 0x0f, 0x01, 0xb3, 0x8a, 0xf8, 0xe0, 0x3a, 0x3e,
0xe3, 0x63, 0x25, 0x76, 0xfd, 0xf0, 0x2d, 0x06, 0xde, 0x1e, 0xa4, 0xe2,
0xba, 0x4c, 0xd4, 0x8a, 0x3c, 0x33, 0xba, 0x83, 0x17, 0x0a, 0x7f, 0xcb,
0x3f, 0x9f, 0x7e, 0x82, 0xc9, 0x72, 0x99, 0xc3, 0x53, 0xfb, 0xd1, 0xd8,
0x61, 0x10, 0xf2, 0x41, 0x7d, 0x43, 0x5d, 0xf4, 0x38, 0x68, 0x58, 0x60,
0x2d, 0x80, 0x52, 0xa0, 0x62, 0x9a, 0x49, 0x77, 0x9c, 0x44, 0x34, 0x4a,
0xdc, 0xb6, 0x11, 0xa0, 0x34, 0x5a, 0xc5, 0x75, 0x3c, 0xf0, 0x81, 0x80,
0x1c, 0x3e, 0xc9, 0xcc, 0xb6, 0x5e, 0x95, 0xf9, 0xab, 0x5e, 0x85, 0x4f,
0x1f, 0x3e, 0x85, 0xc0, 0x15, 0x9c, 0x8a, 0xcb, 0x4f, 0x5e, 0x3b, 0xc4,
0xde, 0xd7, 0xf6, 0xe3, 0xd4, 0x6a, 0xe4, 0x4b, 0x87, 0xf8, 0xb7, 0xf1,
0x1f, 0x53, 0xaa, 0x56, 0x99, 0x74, 0x1c, 0x8a, 0x95, 0x0a, 0x45, 0xb7,
0x40, 0xa2, 0xc9, 0x0e, 0x2d, 0xe0, 0xd3, 0x7a, 0xb1, 0x00, 0x8d, 0x90,
0x12, 0xf6, 0x44, 0xb3, 0x62, 0xb4, 0x7c, 0x82, 0x98, 0x6d, 0x93, 0xb0,
0x6d, 0x62, 0x91, 0x08, 0x8e, 0xeb, 0xe2, 0x4c, 0xb8, 0xf8, 0x6e, 0x3d,
0xdc, 0x0a, 0x7d, 0xf2, 0x2d, 0x19, 0x9c, 0x7e, 0xc3, 0x36, 0xb6, 0xa6,
0x37, 0x65, 0xb7, 0xa3, 0xc8, 0x21, 0x24, 0x03, 0x84, 0x53, 0xc3, 0x93,
0x14, 0x27, 0x2a, 0xb4, 0xb4, 0xc6, 0x08, 0x82, 0x00, 0x3f, 0x08, 0xf0,
0x7d, 0x9f, 0x40, 0x84, 0x11, 0x67, 0x88, 0x8a, 0x53, 0x6b, 0xb8, 0x50,
0x12, 0xd8, 0x73, 0x31, 0x00, 0x0d, 0x0b, 0xa4, 0x00, 0x94, 0x52, 0xe4,
0x27, 0x8e, 0x10, 0xb5, 0x2c, 0xe2, 0x91, 0x08, 0xb6, 0x65, 0x21, 0x80,
0x37, 0xe5, 0x23, 0x22, 0x20, 0x90, 0xf9, 0x56, 0xef, 0x0b, 0x8d, 0xca,
0x59, 0xd2, 0xe1, 0x85, 0xcf, 0x76, 0x15, 0x90, 0x34, 0x95, 0xc1, 0xc2,
0x85, 0xed, 0xfc, 0xda, 0x6f, 0xac, 0xa0, 0xbd, 0x3d, 0x81, 0x69, 0x18,
0x28, 0xa5, 0x10, 0x11, 0xdc, 0x20, 0xa0, 0xea, 0xba, 0x1c, 0x99, 0xda,
0xcf, 0x82, 0xa6, 0x4e, 0x54, 0x00, 0xf8, 0xa1, 0xdb, 0x5e, 0x8c, 0x34,
0x2c, 0xd0, 0x06, 0xa0, 0x9b, 0xe1, 0xd2, 0x96, 0xc5, 0x78, 0x56, 0x91,
0x68, 0x24, 0x42, 0xc4, 0x34, 0xd1, 0x4a, 0x11, 0x04, 0x17, 0x7e, 0x41,
0x7a, 0x43, 0xb6, 0x47, 0x69, 0x7a, 0x4c, 0xc3, 0x60, 0xc9, 0xf2, 0x0e,
0x56, 0x5e, 0x77, 0x29, 0x2d, 0x89, 0x38, 0xb6, 0x65, 0x11, 0x88, 0x84,
0xca, 0xd7, 0x21, 0x3c, 0xdf, 0xe7, 0x50, 0xf1, 0x00, 0xf3, 0x12, 0x0b,
0x42, 0x0b, 0x48, 0xd8, 0xee, 0x5c, 0x00, 0x4c, 0x5b, 0xa0, 0xea, 0x57,
0x88, 0xc7, 0x4c, 0x6c, 0xd3, 0xc4, 0x32, 0x8c, 0xfa, 0x6c, 0x7b, 0x01,
0xe5, 0xd3, 0xd9, 0x6e, 0xe0, 0x49, 0x02, 0x45, 0xeb, 0xe5, 0x09, 0xe6,
0x5d, 0x99, 0xc0, 0x27, 0xa0, 0xe4, 0x38, 0x78, 0x41, 0x50, 0x87, 0x0f,
0xc2, 0x22, 0x82, 0x17, 0x04, 0x1c, 0x2a, 0x1e, 0xa4, 0xc3, 0x5a, 0x0c,
0x9e, 0x02, 0x91, 0xf3, 0x0e, 0xe2, 0x69, 0xcb, 0xce, 0x90, 0x5e, 0x32,
0x1f, 0x08, 0x10, 0x8a, 0x52, 0x8c, 0x56, 0x4f, 0x71, 0x45, 0x6b, 0x27,
0x96, 0x61, 0x84, 0x00, 0xa6, 0x89, 0x19, 0x33, 0x50, 0x13, 0x61, 0x2f,
0x4e, 0x3f, 0x9a, 0x56, 0x29, 0xe0, 0xb9, 0xf0, 0x97, 0x30, 0x71, 0xa4,
0xc4, 0xa1, 0x09, 0x8f, 0x91, 0xe6, 0x02, 0x89, 0x76, 0x1b, 0x3b, 0x62,
0x11, 0x6f, 0x8b, 0x60, 0x18, 0x06, 0x66, 0xdc, 0x00, 0x25, 0xd4, 0x3c,
0x8f, 0x8a, 0xeb, 0x12, 0x4f, 0xcc, 0x27, 0x92, 0x30, 0x70, 0x26, 0xce,
0x8d, 0xa5, 0x59, 0xd2, 0xa4, 0x37, 0x66, 0xdb, 0x08, 0x58, 0x8f, 0x90,
0x44, 0x28, 0x00, 0xfd, 0x64, 0xc8, 0x9d, 0x0f, 0x44, 0x89, 0x08, 0x2a,
0xad, 0x04, 0x20, 0x72, 0x99, 0x49, 0xd7, 0xd5, 0x6d, 0x2c, 0xeb, 0xec,
0x64, 0x49, 0x47, 0x07, 0x09, 0xdb, 0x66, 0x78, 0x6c, 0x8c, 0xd7, 0x5f,
0x3e, 0xcc, 0xf1, 0xc3, 0x13, 0x04, 0xa1, 0x2f, 0xad, 0x06, 0xf2, 0xc0,
0x6e, 0x98, 0x9d, 0x0e, 0x28, 0xa5, 0x50, 0x4a, 0xa1, 0xf5, 0xec, 0x6f,
0x15, 0x26, 0x6f, 0xe8, 0xa8, 0x02, 0x53, 0xe1, 0x2b, 0x1f, 0xb7, 0xe8,
0xe1, 0x57, 0x05, 0xc9, 0x88, 0x9a, 0xa5, 0xfc, 0xa6, 0x6c, 0x8a, 0x80,
0xe7, 0x14, 0x24, 0x15, 0x0a, 0xf1, 0x01, 0x11, 0x24, 0xa0, 0x1f, 0xd8,
0x9a, 0xc9, 0xf4, 0xf6, 0xcf, 0x84, 0x98, 0x0d, 0xb0, 0xd8, 0xa4, 0xf3,
0x9a, 0x36, 0xae, 0xec, 0xea, 0x62, 0x69, 0x47, 0x07, 0x4d, 0xb1, 0x18,
0xa7, 0x8a, 0x45, 0xde, 0xd8, 0x7b, 0x98, 0xc1, 0xdc, 0x29, 0x5c, 0xd7,
0x07, 0xe8, 0x96, 0x8c, 0xec, 0x51, 0x69, 0xb5, 0x94, 0x30, 0x8a, 0xa4,
0x08, 0xc7, 0x50, 0x77, 0xfd, 0xfb, 0x82, 0xb1, 0x5d, 0xa9, 0x33, 0xd7,
0x0d, 0x63, 0xce, 0x04, 0x50, 0x5f, 0x55, 0x29, 0x02, 0x76, 0x2b, 0x54,
0x5b, 0x34, 0x66, 0x11, 0x9d, 0x1f, 0x41, 0x5c, 0xa1, 0x7a, 0xb2, 0x46,
0xcd, 0x09, 0x27, 0x50, 0x60, 0x87, 0x64, 0xe4, 0xde, 0x46, 0x9d, 0x86,
0x0b, 0xe5, 0x81, 0xa4, 0x94, 0x05, 0x09, 0x02, 0x04, 0x50, 0x5a, 0x63,
0x6a, 0x4d, 0xc2, 0xb6, 0x69, 0xee, 0x88, 0x61, 0x18, 0xc6, 0x34, 0x00,
0xb0, 0x47, 0x32, 0x32, 0x08, 0x0c, 0x72, 0x26, 0x0c, 0x4e, 0xa7, 0xc6,
0x33, 0xe0, 0x1a, 0x25, 0x05, 0xb4, 0x89, 0x9c, 0x9b, 0x3e, 0xa8, 0xb4,
0x4a, 0x49, 0x46, 0x72, 0x59, 0xd2, 0xa0, 0x79, 0x52, 0x69, 0xda, 0x6c,
0xcb, 0x62, 0xd1, 0xea, 0x79, 0x74, 0x5e, 0xd2, 0x8a, 0x88, 0x30, 0x3a,
0x56, 0xe4, 0xf8, 0x3b, 0x13, 0x94, 0x8e, 0x3b, 0x04, 0x5e, 0xb0, 0x49,
0xa5, 0x55, 0xab, 0x64, 0xe4, 0x0f, 0xce, 0x05, 0xa8, 0x0a, 0xbe, 0x08,
0x41, 0x10, 0x20, 0x22, 0x28, 0xa5, 0x88, 0x47, 0x22, 0xb4, 0xce, 0x8f,
0x11, 0x89, 0x18, 0x38, 0x0e, 0x88, 0x90, 0xca, 0x92, 0xbe, 0xe0, 0xa0,
0xaa, 0xf7, 0xea, 0xd9, 0x70, 0x33, 0x15, 0x6e, 0xad, 0x03, 0x35, 0xe0,
0xc6, 0x01, 0xd2, 0x0f, 0x64, 0xd7, 0x62, 0x90, 0x52, 0x28, 0x12, 0x0b,
0x6d, 0x96, 0x2c, 0x9c, 0xc7, 0x65, 0x0b, 0x16, 0x20, 0x22, 0xb4, 0xc4,
0xe3, 0x04, 0x26, 0x8c, 0xe8, 0x31, 0x2a, 0x43, 0x35, 0x24, 0xa0, 0x47,
0xa5, 0xd5, 0x66, 0xc9, 0x48, 0xa1, 0x01, 0x90, 0x03, 0xba, 0x03, 0x07,
0x6a, 0x8e, 0x47, 0xb5, 0x56, 0xa3, 0xe6, 0xba, 0xb8, 0x9e, 0x87, 0x00,
0xb6, 0x1d, 0x21, 0xd2, 0x6e, 0xc2, 0xa4, 0x02, 0xce, 0x1f, 0x39, 0x7e,
0x56, 0x91, 0x8c, 0x4c, 0xd4, 0xc1, 0x66, 0xc3, 0x69, 0xf2, 0x48, 0xe3,
0x52, 0x11, 0x8d, 0x44, 0x68, 0x8e, 0xc5, 0x50, 0x80, 0x1f, 0x04, 0x14,
0x9a, 0x9a, 0x28, 0x2c, 0x2d, 0x51, 0x3d, 0xee, 0x21, 0x12, 0x80, 0xf0,
0x59, 0xe0, 0xe9, 0x46, 0x80, 0xcc, 0x01, 0x88, 0x04, 0x54, 0x8e, 0x38,
0x9c, 0x9e, 0x9a, 0x62, 0xac, 0x54, 0x62, 0xa2, 0x52, 0x61, 0xaa, 0x5a,
0xa5, 0xe6, 0xba, 0x88, 0x35, 0xed, 0xc3, 0xc9, 0x74, 0x3a, 0x9b, 0xbc,
0x18, 0x88, 0xf3, 0x49, 0xe6, 0xcf, 0x7a, 0x07, 0xd1, 0xe4, 0x45, 0x09,
0x4e, 0xd1, 0xc3, 0xa9, 0xb9, 0x68, 0x20, 0x62, 0x9a, 0xd8, 0x96, 0x15,
0xce, 0x4b, 0xb6, 0x89, 0x8e, 0x42, 0x7d, 0x55, 0x97, 0x82, 0x33, 0x2e,
0xf4, 0x7c, 0x08, 0x00, 0xd5, 0x11, 0x8f, 0x93, 0xba, 0x88, 0x89, 0x66,
0xb2, 0x52, 0x41, 0x6b, 0xcd, 0xf1, 0x53, 0x05, 0x2a, 0x27, 0x6a, 0x33,
0xc3, 0xe8, 0x52, 0x20, 0xaf, 0xfe, 0x52, 0x25, 0xd1, 0xf4, 0xa0, 0xc8,
0xd7, 0x4b, 0x2e, 0xb3, 0xb9, 0xf7, 0x43, 0xb7, 0x57, 0xce, 0xe7, 0x7e,
0xbd, 0x64, 0x48, 0xab, 0x6c, 0x4e, 0x20, 0x59, 0xf3, 0x3c, 0x26, 0x0a,
0x15, 0x2a, 0x0b, 0xdd, 0xe9, 0xd9, 0x5c, 0x6b, 0x8d, 0xa1, 0x14, 0xca,
0x56, 0x50, 0x3e, 0x0b, 0x40, 0x32, 0x32, 0xa1, 0xd2, 0xea, 0x29, 0xa0,
0x27, 0x08, 0x02, 0xa6, 0x86, 0xaa, 0xbc, 0x37, 0x3e, 0xca, 0xa9, 0xce,
0x22, 0xca, 0xd6, 0x54, 0x86, 0x1d, 0xaa, 0xa5, 0x5a, 0x23, 0x72, 0xe4,
0x24, 0x23, 0xa1, 0xf9, 0x0d, 0x5a, 0x51, 0x6c, 0x69, 0x6c, 0xb5, 0x28,
0x05, 0xe9, 0xc7, 0xb2, 0x10, 0xba, 0x47, 0x01, 0x21, 0x87, 0x90, 0x47,
0xc8, 0x13, 0x90, 0xcf, 0xdc, 0xd7, 0x9b, 0x87, 0xd9, 0x13, 0xd5, 0x2c,
0x18, 0x4d, 0x8e, 0x80, 0xf5, 0x7e, 0xe0, 0x33, 0x59, 0xac, 0x50, 0x72,
0x1c, 0x62, 0x91, 0x48, 0x38, 0x1e, 0x09, 0x03, 0x8b, 0xb2, 0x55, 0xc3,
0x02, 0x49, 0x38, 0x77, 0x4d, 0xbc, 0x0d, 0xb8, 0x17, 0xc2, 0x98, 0x6e,
0x18, 0xe1, 0x93, 0xe1, 0x6c, 0x2a, 0x00, 0x05, 0xc2, 0x30, 0xba, 0x6f,
0xba, 0xce, 0x76, 0x25, 0x4a, 0x83, 0xb6, 0x34, 0x86, 0xa1, 0xc3, 0xb8,
0x5f, 0xbf, 0x27, 0x02, 0xe2, 0x0b, 0x12, 0x08, 0x81, 0x2f, 0xe1, 0xb5,
0x2f, 0x39, 0x09, 0x98, 0x40, 0xe8, 0x27, 0xa0, 0x40, 0x40, 0x8e, 0x80,
0xbc, 0x3c, 0x24, 0x79, 0xb5, 0x45, 0xad, 0x25, 0xa0, 0x5f, 0xa3, 0x59,
0xb8, 0xb8, 0x8d, 0xeb, 0x7e, 0x65, 0x19, 0x8b, 0xdb, 0xdb, 0x29, 0x39,
0x0e, 0xef, 0x8d, 0x8e, 0x72, 0xe8, 0xc4, 0x09, 0x4e, 0x1c, 0x2c, 0x50,
0x3b, 0xe6, 0x85, 0xa9, 0xfc, 0xe3, 0xa2, 0x66, 0xcd, 0xc4, 0x92, 0x91,
0xcd, 0x2a, 0xad, 0x9e, 0x07, 0xfa, 0x44, 0xa4, 0xdb, 0xf3, 0x66, 0xed,
0x58, 0xe4, 0x81, 0xf5, 0x33, 0x95, 0x0f, 0x09, 0xc0, 0x30, 0x35, 0xdd,
0x57, 0x7d, 0x82, 0xc3, 0x13, 0xef, 0x12, 0xb3, 0x6d, 0x22, 0xa6, 0x19,
0x8e, 0x47, 0x01, 0xd7, 0xf5, 0x71, 0x3d, 0x8f, 0xaa, 0xe3, 0x52, 0xad,
0xba, 0x54, 0x2a, 0x4e, 0xaa, 0x5a, 0xae, 0xe1, 0xbb, 0xc1, 0xda, 0x19,
0x6f, 0xcf, 0xa9, 0xad, 0xaa, 0x1b, 0x28, 0xa0, 0x40, 0x24, 0x4c, 0xcd,
0xab, 0xae, 0x8b, 0x1b, 0x04, 0x78, 0xf5, 0x54, 0x64, 0xd6, 0x0e, 0x4a,
0xbd, 0x97, 0xce, 0xd9, 0x5a, 0x94, 0x8c, 0xec, 0xc9, 0x92, 0xbe, 0x39,
0x9d, 0xce, 0xae, 0xe2, 0xcc, 0xe4, 0x94, 0x07, 0x9e, 0xaf, 0x47, 0x90,
0xb3, 0x2a, 0xd0, 0xef, 0xfb, 0xd2, 0x1d, 0x8f, 0x44, 0x68, 0x49, 0x24,
0x68, 0x8e, 0x46, 0x69, 0x8a, 0x46, 0xc3, 0x41, 0x67, 0x18, 0x98, 0x86,
0x41, 0x20, 0x82, 0xe3, 0xba, 0x14, 0xcb, 0x65, 0x4e, 0x4e, 0x4c, 0x30,
0x74, 0x62, 0x9c, 0xf1, 0x93, 0xa5, 0x90, 0x30, 0xb4, 0x6a, 0x8f, 0x6c,
0x91, 0x89, 0x2c, 0xe9, 0x7d, 0xe9, 0x87, 0xb2, 0x48, 0x20, 0x78, 0x8e,
0x8f, 0xe7, 0x79, 0x78, 0x9e, 0x87, 0xeb, 0xfb, 0x78, 0xf5, 0x74, 0x7c,
0x1a, 0x42, 0x2e, 0x00, 0x00, 0xa1, 0x5f, 0xf6, 0x66, 0x32, 0xfb, 0x80,
0x7d, 0xe7, 0xbb, 0x3f, 0x4b, 0x82, 0xf0, 0x6d, 0x51, 0xcb, 0x66, 0x55,
0xc7, 0x6a, 0x06, 0xcb, 0xfb, 0xd1, 0x4a, 0x61, 0x6a, 0x4d, 0xb4, 0x9e,
0x92, 0x6b, 0xa5, 0xc2, 0x75, 0x85, 0xeb, 0x32, 0x59, 0xa8, 0x32, 0x79,
0xba, 0x0a, 0x41, 0x98, 0x9e, 0x23, 0xac, 0x97, 0x87, 0x42, 0xab, 0xf6,
0x92, 0x21, 0x4d, 0x36, 0x7c, 0xad, 0x1f, 0x26, 0x7f, 0xae, 0xef, 0x53,
0x73, 0x5d, 0x6a, 0x75, 0x88, 0xce, 0x96, 0x2e, 0xde, 0x67, 0x68, 0xba,
0xf9, 0x8b, 0xdf, 0x9d, 0x0e, 0x57, 0x68, 0x38, 0x6e, 0x99, 0xe5, 0xad,
0x57, 0x61, 0x1a, 0x06, 0xa2, 0x14, 0x7e, 0x3d, 0x7d, 0xf6, 0x3c, 0x0f,
0xc7, 0x75, 0x99, 0x28, 0x95, 0x79, 0xf7, 0xc0, 0x10, 0x43, 0xc3, 0xe3,
0x78, 0x35, 0x0f, 0x09, 0x97, 0xa4, 0x3d, 0x99, 0xaf, 0xf7, 0x4e, 0xcf,
0x07, 0x59, 0xd2, 0x0d, 0x28, 0x54, 0x7d, 0xec, 0x39, 0x9e, 0x47, 0xb5,
0x0e, 0xef, 0xfa, 0x3e, 0x09, 0xbf, 0xa9, 0xf1, 0x4c, 0x6e, 0x6e, 0x00,
0x7c, 0x0a, 0xe2, 0xc3, 0x60, 0xf1, 0x08, 0x97, 0xc6, 0x17, 0x87, 0x6e,
0x03, 0x20, 0x82, 0xef, 0xfb, 0x38, 0x9e, 0xc7, 0x58, 0xb1, 0xc4, 0x9b,
0x6f, 0x1f, 0x65, 0x68, 0x64, 0x0c, 0xcf, 0x99, 0x56, 0xfe, 0xa9, 0xcc,
0xd7, 0x7b, 0x9f, 0x3e, 0x27, 0xa4, 0x06, 0xa0, 0x44, 0x61, 0x46, 0x42,
0xd5, 0x6a, 0xae, 0x4b, 0xd9, 0x71, 0xa8, 0xd6, 0x6a, 0xac, 0x9c, 0x7f,
0x0d, 0x07, 0x86, 0x0e, 0x34, 0x00, 0x0a, 0x73, 0x05, 0x90, 0xc7, 0x83,
0x98, 0x15, 0x61, 0x59, 0xf3, 0x55, 0xc4, 0x6c, 0x1b, 0xdb, 0xb6, 0xb1,
0x4c, 0x13, 0xad, 0xc3, 0xa8, 0x14, 0x8d, 0x84, 0xeb, 0x8b, 0xfa, 0x9a,
0x3a, 0xac, 0xe3, 0xb3, 0x19, 0xce, 0x84, 0xd4, 0x2c, 0x69, 0xd2, 0x0f,
0x66, 0x3f, 0x4b, 0x00, 0x5a, 0x29, 0x22, 0x71, 0x0b, 0xa5, 0x35, 0x95,
0x3a, 0x40, 0xb9, 0x56, 0xe3, 0xf2, 0xb6, 0xe5, 0x30, 0x25, 0x73, 0x6c,
0x01, 0x8f, 0x3c, 0x3e, 0x04, 0xae, 0xd0, 0x62, 0xb6, 0xd1, 0x1c, 0x8b,
0xd1, 0x5c, 0x5f, 0x53, 0x5f, 0xd3, 0xba, 0x9a, 0xae, 0xf8, 0x22, 0x9a,
0x62, 0x51, 0x6e, 0x5c, 0x73, 0x15, 0x2b, 0x97, 0x5f, 0x4a, 0x44, 0x9b,
0xa8, 0x40, 0x25, 0xf1, 0x39, 0x9a, 0x7e, 0x28, 0xdb, 0x37, 0xad, 0xfc,
0x03, 0xd9, 0x24, 0x01, 0x7d, 0x4a, 0xc0, 0x32, 0x4c, 0x5a, 0x3a, 0x62,
0x68, 0xa0, 0xec, 0x38, 0x4c, 0x39, 0x0e, 0x95, 0x5a, 0x8d, 0x84, 0x4a,
0xd4, 0xd3, 0x6b, 0xa0, 0x9e, 0x3d, 0x7c, 0xe8, 0x01, 0xc7, 0x87, 0x8a,
0x1f, 0x9a, 0xd2, 0xad, 0x7a, 0xf8, 0xd4, 0x58, 0xd2, 0xb4, 0x84, 0x62,
0x70, 0x9a, 0x75, 0x2d, 0x77, 0xb0, 0xae, 0xe5, 0x0e, 0x86, 0x6b, 0x47,
0x79, 0xe2, 0xc4, 0x56, 0x2a, 0x41, 0x89, 0x1b, 0xd6, 0xfc, 0x12, 0x8b,
0x3a, 0xdb, 0xd9, 0xbb, 0xf7, 0x00, 0x93, 0x93, 0x95, 0x36, 0x3f, 0x08,
0xb6, 0xa4, 0x1f, 0xc8, 0x6e, 0x69, 0xf8, 0x3d, 0x01, 0x68, 0xad, 0x69,
0x6b, 0x8f, 0x33, 0xaf, 0xb3, 0x89, 0x00, 0x28, 0x55, 0xab, 0x94, 0x1c,
0x87, 0xee, 0xcb, 0x6e, 0x65, 0xe8, 0xc4, 0x70, 0x3d, 0x68, 0x00, 0xd0,
0x0f, 0x73, 0x60, 0x01, 0xd9, 0x2a, 0xfb, 0xf0, 0xc1, 0x52, 0x06, 0x11,
0x6d, 0xf2, 0xb1, 0xa6, 0x14, 0x1b, 0x3a, 0xb7, 0x72, 0x53, 0xfc, 0xd3,
0x6c, 0xda, 0xf9, 0x87, 0x1c, 0x73, 0xf6, 0xd3, 0xd3, 0x79, 0x3f, 0x51,
0xcb, 0x22, 0x66, 0x59, 0x2c, 0x4f, 0x2e, 0xe4, 0xf6, 0xdb, 0xd6, 0xb0,
0x2c, 0xd9, 0x45, 0xcc, 0xb2, 0x31, 0xd1, 0xa8, 0x00, 0x54, 0x00, 0x96,
0x36, 0x68, 0x6f, 0x49, 0xb0, 0xe4, 0x63, 0x1d, 0xc4, 0x22, 0x11, 0xaa,
0xae, 0xcb, 0x64, 0xb5, 0x8a, 0x0e, 0x4c, 0xee, 0xb8, 0xfa, 0xb7, 0xe9,
0x7f, 0x6d, 0x77, 0xa3, 0xd9, 0x7c, 0x3d, 0xe3, 0x9d, 0x03, 0x0b, 0x00,
0x78, 0x30, 0x36, 0x3a, 0xc5, 0xb0, 0x77, 0x90, 0xf5, 0x2d, 0x77, 0x53,
0xf5, 0xca, 0x74, 0x3f, 0xbe, 0x8e, 0x81, 0x91, 0x01, 0x76, 0x1d, 0xd9,
0xc9, 0xf7, 0x7b, 0x9f, 0x61, 0xe3, 0x25, 0x8f, 0xf0, 0xdd, 0xd3, 0x7d,
0x94, 0xfd, 0x12, 0xf3, 0xda, 0x9a, 0x59, 0xb7, 0xee, 0x1a, 0x46, 0x46,
0xc6, 0x39, 0xb0, 0x7f, 0x84, 0xe1, 0xc1, 0x71, 0x10, 0xe8, 0x5c, 0xda,
0xca, 0xa2, 0xe5, 0xed, 0x44, 0x22, 0x26, 0x15, 0xd7, 0x0d, 0xf7, 0x93,
0xaa, 0x55, 0xee, 0xf9, 0xe5, 0xaf, 0xd1, 0xbf, 0xbf, 0x9f, 0xc9, 0xb1,
0xa9, 0x46, 0x8b, 0xcf, 0x37, 0x2e, 0xe6, 0x06, 0xc0, 0xa7, 0xdf, 0xa9,
0x78, 0xdd, 0x86, 0xd6, 0x54, 0xbc, 0x12, 0x37, 0x3f, 0x76, 0x0b, 0x03,
0x23, 0x03, 0x20, 0x30, 0x32, 0x34, 0xce, 0xe7, 0x1f, 0xff, 0x5d, 0xbe,
0x77, 0xf7, 0x3f, 0xd0, 0x33, 0xef, 0x21, 0x9e, 0x1d, 0x7b, 0x9c, 0xa1,
0xda, 0x51, 0x0c, 0xad, 0xe9, 0xea, 0x6a, 0xa3, 0x6d, 0x7e, 0x82, 0xea,
0xf5, 0x2e, 0x35, 0xcf, 0x9b, 0xde, 0x43, 0x2a, 0xd7, 0x6a, 0x94, 0x2a,
0x15, 0x8a, 0x95, 0x0a, 0x9b, 0xd7, 0xfc, 0x31, 0x37, 0x2d, 0xf9, 0x55,
0x6e, 0xfb, 0xbb, 0xdb, 0x66, 0xb6, 0x38, 0x7d, 0x02, 0x34, 0x37, 0xa7,
0x94, 0x5e, 0xb8, 0xc5, 0xb8, 0xf7, 0xe0, 0x4f, 0xe8, 0xde, 0xbe, 0x8e,
0x81, 0x63, 0x03, 0x8d, 0x9d, 0x37, 0xf0, 0x61, 0x64, 0xa8, 0xc0, 0x6f,
0x3d, 0x76, 0x27, 0x6f, 0x8e, 0xbf, 0xc6, 0xdd, 0x9d, 0x7f, 0xce, 0x27,
0x5b, 0xee, 0x42, 0x79, 0x16, 0x8e, 0xe7, 0x21, 0x22, 0x18, 0x5a, 0x63,
0x68, 0x4d, 0x20, 0x42, 0xd9, 0x71, 0x28, 0x96, 0xcb, 0xb8, 0x9e, 0xc1,
0x83, 0x1f, 0xdf, 0xca, 0xa7, 0x96, 0x7d, 0x9a, 0x2d, 0x3f, 0xfa, 0x06,
0x53, 0xc7, 0xa7, 0x7b, 0xbf, 0xbf, 0xe1, 0x3e, 0xf0, 0x01, 0x87, 0x7c,
0x3f, 0x8f, 0xa8, 0x7b, 0xce, 0x24, 0x81, 0x33, 0x24, 0x07, 0x6c, 0x21,
0x5c, 0x6a, 0xa6, 0x10, 0xb0, 0xa3, 0x26, 0x1b, 0xbf, 0xf0, 0x05, 0xee,
0x5e, 0x79, 0x3f, 0x6d, 0x56, 0x07, 0xaf, 0x8d, 0xbf, 0xc4, 0xfe, 0xc9,
0x7d, 0x9c, 0x70, 0x8e, 0xf3, 0xf6, 0xd8, 0x5b, 0x2c, 0xb0, 0x2e, 0x45,
0x89, 0xc5, 0x8d, 0x97, 0xdc, 0xcc, 0x75, 0x5d, 0x37, 0x12, 0xb7, 0xe2,
0x3c, 0xb8, 0xfb, 0x41, 0x76, 0x7e, 0x6f, 0x67, 0xd8, 0x19, 0xa1, 0xa4,
0x66, 0x25, 0x93, 0x73, 0x02, 0xf0, 0x65, 0xb5, 0x05, 0xe8, 0x0b, 0x7f,
0x00, 0xd0, 0x27, 0x7f, 0x13, 0x1e, 0x1f, 0xa9, 0x2f, 0xab, 0x56, 0xc2,
0x88, 0x91, 0x6a, 0xe4, 0x2f, 0x2b, 0xaf, 0xbd, 0x82, 0x8d, 0x9f, 0xda,
0xc0, 0x27, 0x16, 0x7e, 0x92, 0x76, 0xbb, 0x83, 0x80, 0x00, 0x1f, 0x7f,
0xd6, 0xf7, 0xfb, 0x53, 0xc7, 0xf8, 0xe6, 0xab, 0xdf, 0xe4, 0xe5, 0x5d,
0xbb, 0xa1, 0x32, 0xdd, 0xd4, 0x76, 0xc9, 0xcc, 0x3e, 0xd5, 0x99, 0x1b,
0x80, 0xb4, 0xfa, 0x12, 0xf0, 0x54, 0x5d, 0xd1, 0x9e, 0x99, 0x26, 0xae,
0xdf, 0x6f, 0x25, 0x1c, 0x78, 0xdd, 0x33, 0xff, 0xde, 0xb5, 0xac, 0x8d,
0xd5, 0x2b, 0xaf, 0x65, 0xed, 0x8a, 0x75, 0xb8, 0xbe, 0x47, 0x2d, 0xf0,
0x70, 0x7d, 0x8f, 0xff, 0x1c, 0x7e, 0x9b, 0x1f, 0xed, 0x7d, 0x91, 0xe0,
0xb8, 0xcc, 0xec, 0xf9, 0x9c, 0x64, 0x64, 0xf5, 0x39, 0x6d, 0xcf, 0x11,
0xc0, 0x2a, 0x42, 0xd3, 0x7e, 0xe0, 0xa9, 0xa3, 0x4a, 0xab, 0x4d, 0x84,
0x96, 0x3a, 0x67, 0x4b, 0x51, 0x9b, 0x0a, 0x1d, 0xd5, 0x78, 0x53, 0xfe,
0x39, 0xf5, 0xa8, 0xaf, 0xd9, 0xcf, 0x97, 0x0d, 0xcf, 0x09, 0xc0, 0xcf,
0x23, 0xf5, 0x2d, 0x97, 0x3e, 0xa0, 0xe7, 0x67, 0xac, 0xb2, 0x1d, 0xe8,
0x3b, 0x6f, 0x2a, 0xcf, 0x47, 0x00, 0x30, 0xdd, 0x70, 0xe8, 0x56, 0x3d,
0x84, 0x6e, 0xd5, 0xd8, 0x66, 0x81, 0x70, 0xed, 0x91, 0x27, 0x74, 0xb9,
0xe7, 0xcf, 0x76, 0xc7, 0x73, 0xde, 0xf3, 0xff, 0xff, 0xad, 0xf2, 0x11,
0xcb, 0xff, 0x00, 0x23, 0xdd, 0xb3, 0x7f, 0xe6, 0x37, 0xca, 0x79, 0x00,
0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82,
};

View File

@ -0,0 +1,239 @@
static const unsigned char toolbar_add_memcheck_png[] = {
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d,
0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30,
0x08, 0x06, 0x00, 0x00, 0x00, 0x57, 0x02, 0xf9, 0x87, 0x00, 0x00, 0x00,
0x04, 0x73, 0x42, 0x49, 0x54, 0x08, 0x08, 0x08, 0x08, 0x7c, 0x08, 0x64,
0x88, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0b,
0x12, 0x00, 0x00, 0x0b, 0x12, 0x01, 0xd2, 0xdd, 0x7e, 0xfc, 0x00, 0x00,
0x00, 0x25, 0x74, 0x45, 0x58, 0x74, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61,
0x72, 0x65, 0x00, 0x4d, 0x61, 0x63, 0x72, 0x6f, 0x6d, 0x65, 0x64, 0x69,
0x61, 0x20, 0x46, 0x69, 0x72, 0x65, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20,
0x4d, 0x58, 0x20, 0x32, 0x30, 0x30, 0x34, 0x87, 0x76, 0xac, 0xcf, 0x00,
0x00, 0x00, 0x15, 0x74, 0x45, 0x58, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74,
0x69, 0x6f, 0x6e, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x00, 0x39, 0x2f, 0x31,
0x31, 0x2f, 0x30, 0x34, 0x0e, 0x46, 0xed, 0x55, 0x00, 0x00, 0x0a, 0x6a,
0x49, 0x44, 0x41, 0x54, 0x78, 0x9c, 0xd5, 0x9a, 0x5f, 0x8c, 0x5c, 0xd7,
0x5d, 0xc7, 0x3f, 0xe7, 0xdc, 0x7b, 0xe7, 0xde, 0x99, 0xd9, 0x3f, 0xb3,
0xb1, 0xbd, 0x76, 0xdc, 0x84, 0xac, 0x31, 0xa4, 0x89, 0xe8, 0x9f, 0x15,
0x15, 0x22, 0x45, 0x21, 0xb1, 0x1b, 0x25, 0x8a, 0x02, 0x28, 0xe6, 0x89,
0x07, 0x5a, 0x39, 0x7d, 0xe1, 0x01, 0x24, 0x12, 0x1e, 0x10, 0x52, 0xd5,
0x07, 0xf3, 0x08, 0xa8, 0x28, 0x41, 0x6a, 0xc0, 0x48, 0x34, 0x81, 0x8a,
0x06, 0x90, 0x4a, 0x8c, 0x10, 0x14, 0x89, 0x56, 0x5d, 0x22, 0x51, 0xda,
0xaa, 0x21, 0x9b, 0xe0, 0xa4, 0x69, 0x12, 0xdb, 0xeb, 0x64, 0xbd, 0xf6,
0xee, 0x7a, 0xff, 0xcd, 0xee, 0xcc, 0xce, 0xcc, 0x39, 0xbf, 0xf3, 0xe3,
0xe1, 0xdc, 0xd9, 0x5d, 0x68, 0xa5, 0xcc, 0xce, 0x5a, 0xa9, 0x7a, 0xa5,
0x9f, 0xe6, 0xce, 0x8e, 0xe6, 0xde, 0xef, 0xe7, 0xfc, 0xbe, 0xe7, 0xf7,
0x3b, 0xe7, 0xce, 0x1a, 0x55, 0xe5, 0x27, 0xf9, 0xb0, 0x3f, 0x6e, 0x01,
0x07, 0x3d, 0xd2, 0x5b, 0x75, 0xa1, 0xb5, 0xbf, 0xf8, 0x54, 0x43, 0x24,
0x9c, 0xf1, 0x5e, 0xce, 0x78, 0x91, 0x8f, 0x3b, 0x2f, 0x53, 0xce, 0x0b,
0xde, 0xcb, 0x9c, 0xf3, 0xf2, 0xaa, 0xf7, 0x72, 0xc1, 0x79, 0xb9, 0x70,
0xdf, 0x1f, 0xbf, 0xb9, 0x7e, 0xab, 0xee, 0x09, 0x60, 0x6e, 0x85, 0x85,
0xda, 0x5f, 0x7a, 0xe4, 0x9c, 0x97, 0xf0, 0xa4, 0xf7, 0xd2, 0xf0, 0x5e,
0x70, 0x65, 0xfc, 0xd0, 0xb9, 0x93, 0x75, 0xe7, 0xe5, 0x99, 0xfb, 0xff,
0xf4, 0xad, 0x73, 0x07, 0x97, 0x1e, 0x8f, 0x03, 0x01, 0xf8, 0x2f, 0x3f,
0xd6, 0xc0, 0x98, 0x17, 0x45, 0xe4, 0xd4, 0x1e, 0x91, 0x38, 0x2f, 0x24,
0x63, 0x35, 0xbc, 0x17, 0x36, 0x17, 0xd7, 0x76, 0x20, 0x5c, 0xf9, 0xb9,
0xf7, 0x32, 0xe3, 0xbc, 0xfc, 0xfa, 0xc3, 0xcf, 0xce, 0x1d, 0x38, 0x1b,
0x43, 0x03, 0x74, 0x9e, 0x7f, 0xb4, 0x91, 0xa5, 0xc9, 0x37, 0x8d, 0x35,
0xd3, 0xbe, 0x14, 0x6d, 0x8e, 0x1f, 0xa1, 0x72, 0xd7, 0x31, 0xd2, 0xd1,
0xdb, 0x40, 0x2b, 0xe0, 0xba, 0xb0, 0x75, 0x93, 0xce, 0xb5, 0x6b, 0x2c,
0x5e, 0x5a, 0xe0, 0xc6, 0xfc, 0x6a, 0x1f, 0x00, 0xe7, 0x65, 0xd6, 0x79,
0x7f, 0xfa, 0xb1, 0xbf, 0x9c, 0x3f, 0x10, 0xc4, 0xd0, 0x73, 0x20, 0xa8,
0xbe, 0x28, 0x21, 0x4c, 0x13, 0x20, 0xa4, 0x96, 0xe2, 0x97, 0x3f, 0x41,
0x32, 0xf9, 0x61, 0x28, 0x7e, 0x1e, 0xd2, 0x11, 0xa0, 0x0b, 0x74, 0x80,
0x0e, 0xc5, 0xcf, 0x5c, 0xe3, 0xae, 0x3b, 0xff, 0x8b, 0x89, 0x8b, 0xaf,
0xf2, 0xc6, 0xec, 0x55, 0xbc, 0x17, 0x80, 0x69, 0xe0, 0x45, 0xe0, 0xf4,
0x41, 0x00, 0x86, 0xca, 0xc0, 0xfa, 0xf9, 0x4f, 0x9d, 0x4d, 0x92, 0xe4,
0xf9, 0xc4, 0x1a, 0x4c, 0x96, 0x91, 0x3f, 0xfc, 0x4b, 0xd8, 0xc9, 0x5f,
0x05, 0x7b, 0x72, 0x57, 0xf8, 0xf6, 0x65, 0x68, 0x5f, 0x03, 0xe9, 0x40,
0x5e, 0x83, 0xf1, 0x06, 0x5c, 0xbb, 0x48, 0xeb, 0x3f, 0xfe, 0x95, 0x57,
0x5e, 0xbe, 0x4a, 0xbb, 0xdd, 0xeb, 0xdb, 0xea, 0x89, 0x33, 0xcf, 0x5d,
0xff, 0xeb, 0x61, 0x01, 0x86, 0xca, 0x80, 0x48, 0x38, 0x07, 0x10, 0x82,
0xa1, 0xfe, 0xe0, 0x2f, 0x60, 0x27, 0x1f, 0x01, 0xfb, 0x51, 0xd0, 0x4d,
0xd8, 0xfe, 0x6f, 0xd8, 0xf8, 0x2e, 0xb4, 0x9b, 0xd0, 0xe9, 0x40, 0xb7,
0x1b, 0x23, 0x00, 0x77, 0xde, 0x4b, 0xfd, 0x93, 0x0f, 0xf0, 0x91, 0xce,
0x37, 0xf8, 0xee, 0xcb, 0x73, 0xf1, 0x62, 0xaa, 0xe7, 0x80, 0xa1, 0x01,
0xf6, 0xdd, 0x07, 0x16, 0x9e, 0xbe, 0xff, 0x71, 0x2f, 0x61, 0xca, 0xfb,
0x80, 0x99, 0x18, 0x23, 0x3d, 0x7a, 0x0f, 0xd8, 0x7b, 0x41, 0x5b, 0xb0,
0xf5, 0x55, 0xd8, 0xfa, 0x0e, 0xf8, 0x0e, 0xa8, 0xc6, 0x08, 0x21, 0xbe,
0x8a, 0x83, 0xcb, 0xb3, 0xd0, 0xde, 0xa4, 0x71, 0xcf, 0x49, 0x0e, 0xdd,
0x36, 0x82, 0xa2, 0xa8, 0x32, 0xf5, 0x0f, 0xbf, 0x79, 0xe4, 0xf1, 0x0f,
0x0c, 0xa0, 0xac, 0xf5, 0x38, 0x2f, 0x54, 0x4e, 0x1c, 0x87, 0xec, 0x6e,
0xa0, 0x07, 0x9b, 0xff, 0x08, 0xdb, 0x0b, 0xe0, 0x7d, 0x0c, 0x91, 0x28,
0xbe, 0x0f, 0x60, 0x2d, 0x24, 0x09, 0xac, 0xde, 0x00, 0xf1, 0xdc, 0x75,
0x47, 0x03, 0x8c, 0x45, 0x55, 0x51, 0xd5, 0x33, 0xc3, 0x02, 0xec, 0xdb,
0x42, 0x5e, 0x64, 0xda, 0xaa, 0xc5, 0x06, 0xa5, 0x98, 0x3c, 0x02, 0xf9,
0xed, 0xd0, 0x7e, 0x0d, 0xb6, 0xae, 0x44, 0xb1, 0x7d, 0x80, 0x7e, 0xf4,
0x01, 0x8c, 0x81, 0x34, 0x8d, 0x20, 0xce, 0x71, 0xf8, 0xe8, 0x38, 0x58,
0x4b, 0x88, 0x00, 0xd3, 0xc3, 0x02, 0xec, 0x3b, 0x03, 0x5e, 0xc2, 0xb4,
0xf7, 0x42, 0x32, 0x5e, 0x07, 0x33, 0x02, 0xf4, 0xe0, 0xe6, 0x7f, 0xee,
0xfa, 0xbd, 0xd7, 0x8b, 0xe1, 0xdc, 0x2e, 0x40, 0x5f, 0x7c, 0xa5, 0x02,
0x45, 0x11, 0x23, 0xcb, 0x38, 0xd4, 0x28, 0x50, 0x20, 0x1c, 0x00, 0x60,
0xff, 0x19, 0xf0, 0x82, 0x35, 0x06, 0x71, 0x3e, 0xd6, 0x79, 0xb7, 0x0c,
0xad, 0x9b, 0xf1, 0x43, 0xd5, 0x68, 0x9d, 0xbd, 0x36, 0x52, 0x8d, 0xd6,
0xa9, 0x54, 0x20, 0xcf, 0xe3, 0x39, 0x44, 0x20, 0x63, 0x08, 0x41, 0x09,
0x61, 0xf8, 0x66, 0x3a, 0x14, 0x80, 0xb1, 0x06, 0xf1, 0x25, 0x40, 0x6b,
0x21, 0x8e, 0x3c, 0xec, 0x99, 0xb0, 0xa5, 0xff, 0xfb, 0x42, 0xb3, 0x0c,
0xaa, 0xd5, 0x08, 0x60, 0x4c, 0xcc, 0x0e, 0x10, 0x24, 0x10, 0x42, 0x38,
0x10, 0xc0, 0x30, 0x16, 0x9a, 0xf1, 0x3e, 0xb0, 0x71, 0x73, 0x03, 0xb6,
0x56, 0x61, 0x6b, 0x61, 0xd7, 0x2e, 0x7b, 0x85, 0x5b, 0x1b, 0x85, 0x17,
0x05, 0xd4, 0x6a, 0x31, 0x8a, 0x62, 0x37, 0x03, 0x22, 0xdc, 0xb8, 0xd9,
0x8a, 0x00, 0x1a, 0x66, 0x3e, 0x30, 0x00, 0xe7, 0x65, 0xce, 0x97, 0xeb,
0x9e, 0xf6, 0xc2, 0x42, 0xbc, 0x42, 0x5f, 0x78, 0xbf, 0xd2, 0xa4, 0x69,
0x1c, 0xed, 0x5a, 0x0d, 0xea, 0x75, 0x18, 0x1d, 0x8d, 0x19, 0x48, 0xd3,
0x98, 0xa1, 0x6e, 0x97, 0xcd, 0xb5, 0x2d, 0x9c, 0x73, 0x88, 0x28, 0x21,
0xe8, 0xdc, 0x07, 0x06, 0xe0, 0xbd, 0xcc, 0xf4, 0xcb, 0xe8, 0xcd, 0x77,
0x97, 0x61, 0xe9, 0x52, 0xfc, 0xa0, 0x6f, 0x95, 0xa2, 0x88, 0xa2, 0x47,
0x46, 0xa2, 0xf0, 0xd1, 0xd1, 0x08, 0x52, 0xa9, 0x44, 0xf1, 0xbd, 0x1e,
0xb4, 0x5a, 0x5c, 0x9d, 0x5b, 0x46, 0x7a, 0x3e, 0x66, 0x40, 0x86, 0xcf,
0xc0, 0x30, 0x73, 0xe0, 0x82, 0x31, 0x66, 0xdd, 0x18, 0xd3, 0xb8, 0x3e,
0xbf, 0xc2, 0xf1, 0xa5, 0xeb, 0xa4, 0x13, 0xe3, 0xbb, 0xe2, 0xf3, 0x3c,
0x9e, 0xf7, 0x81, 0x92, 0x64, 0xd7, 0xf7, 0xdd, 0x2e, 0x6c, 0x6e, 0xe2,
0x56, 0xd6, 0x78, 0xeb, 0xf2, 0x12, 0x5e, 0x04, 0x09, 0x61, 0x3d, 0xa8,
0x5e, 0x18, 0x16, 0x60, 0xdf, 0x19, 0x78, 0xe0, 0xe9, 0x77, 0x36, 0xbc,
0x97, 0x0b, 0xde, 0x0b, 0x9d, 0xed, 0x1e, 0x6f, 0xbf, 0x72, 0x09, 0x36,
0x9b, 0x71, 0x0e, 0x18, 0x13, 0x05, 0x67, 0xd9, 0xae, 0x78, 0x88, 0xe2,
0xdb, 0x6d, 0x68, 0x36, 0x61, 0x65, 0x85, 0xef, 0x7d, 0xef, 0x32, 0xad,
0xcd, 0x0e, 0x22, 0x01, 0x91, 0x70, 0xe1, 0xb7, 0xfe, 0xb9, 0xbd, 0xf1,
0x81, 0x01, 0x00, 0x38, 0x91, 0x73, 0xce, 0x0b, 0xbd, 0x9e, 0x67, 0xe1,
0xda, 0x1a, 0x8b, 0x97, 0x16, 0x60, 0x63, 0x23, 0x8a, 0xec, 0xf7, 0x00,
0xe7, 0x62, 0x6f, 0x68, 0xb5, 0xa2, 0xf0, 0xb5, 0x35, 0x58, 0x5a, 0xe2,
0xbd, 0xef, 0xbf, 0xcb, 0xe5, 0xcb, 0x4b, 0x38, 0xe7, 0x11, 0x09, 0x00,
0xe7, 0x86, 0x15, 0x3f, 0x34, 0xc0, 0x23, 0xcf, 0x5e, 0xbd, 0xfa, 0xd6,
0x68, 0xb8, 0xe0, 0xbd, 0xd0, 0xeb, 0xf6, 0x98, 0x9d, 0x7d, 0x8f, 0xf9,
0xd7, 0xaf, 0xc0, 0xf5, 0xeb, 0xb0, 0xb4, 0x04, 0xab, 0xab, 0x51, 0xf0,
0xda, 0x1a, 0xac, 0xac, 0xc0, 0x8d, 0x1b, 0x30, 0x3f, 0xcf, 0xa5, 0x57,
0xde, 0xe1, 0xa5, 0x6f, 0xbd, 0x4d, 0xb7, 0xeb, 0x10, 0x09, 0x7c, 0xe3,
0x28, 0x7c, 0xee, 0xa3, 0x7c, 0xf6, 0x20, 0x00, 0x43, 0x2d, 0xa7, 0x4f,
0xbf, 0x70, 0xe2, 0x09, 0x55, 0x7d, 0xee, 0xd3, 0xdf, 0x71, 0x4c, 0x6e,
0x29, 0x60, 0xb0, 0x89, 0x61, 0xf2, 0xc8, 0x18, 0x77, 0xff, 0xec, 0x24,
0x8d, 0x23, 0xe5, 0x9c, 0x00, 0x70, 0x8e, 0x95, 0xc5, 0x75, 0x2e, 0xbe,
0x7e, 0x8d, 0x77, 0xdf, 0x5b, 0xc1, 0x79, 0x41, 0xbc, 0x70, 0xbd, 0x80,
0x2f, 0x7e, 0xd8, 0x94, 0x55, 0x28, 0xcc, 0x8a, 0xe8, 0xe9, 0x8d, 0x3f,
0xe9, 0xec, 0x7b, 0x73, 0xb3, 0x6f, 0x80, 0x87, 0xfe, 0xfe, 0xa7, 0x9f,
0x00, 0x9e, 0x0b, 0x41, 0xc9, 0x7a, 0x81, 0xcf, 0xbe, 0xd4, 0x25, 0x77,
0xca, 0xce, 0x55, 0xac, 0xa1, 0x5e, 0x2f, 0xa8, 0xd7, 0x52, 0x42, 0x50,
0x9a, 0x9b, 0x5d, 0x36, 0x9a, 0xdb, 0x88, 0xf3, 0x71, 0xd2, 0x4a, 0xa0,
0x93, 0xc2, 0xd3, 0x1f, 0x49, 0x68, 0xa1, 0xfd, 0x32, 0x8a, 0x48, 0x98,
0x0d, 0x41, 0x4f, 0x6f, 0x7e, 0xa1, 0xbb, 0x2f, 0x88, 0x7d, 0x01, 0x9c,
0x7e, 0xe1, 0xc4, 0xb4, 0xb5, 0xe6, 0x9b, 0x40, 0x23, 0x04, 0xc5, 0x26,
0x86, 0xa9, 0x4a, 0xca, 0x03, 0x2f, 0x39, 0xf2, 0x1b, 0x4d, 0x50, 0xe2,
0xea, 0x12, 0x83, 0x6a, 0x29, 0x4c, 0xc3, 0xff, 0xe9, 0xb8, 0xcb, 0x87,
0x2c, 0x5f, 0x7b, 0xb0, 0xc2, 0x7c, 0xaa, 0xb8, 0x05, 0xa1, 0xd7, 0x94,
0x72, 0x32, 0x2b, 0x21, 0xe8, 0xcc, 0xe6, 0x17, 0xba, 0xfb, 0xda, 0xa1,
0xed, 0x6b, 0x0e, 0x84, 0xa0, 0xcf, 0x89, 0x68, 0x43, 0x44, 0xc9, 0xf2,
0x84, 0xa9, 0x7b, 0x1a, 0x3c, 0xfa, 0xc9, 0xdf, 0xe1, 0x57, 0xfe, 0x70,
0x86, 0x3b, 0x1e, 0xfe, 0x4c, 0xb9, 0xc3, 0x0a, 0x38, 0xe7, 0x63, 0x78,
0x8f, 0x2f, 0xf7, 0xc0, 0x21, 0x28, 0xaf, 0x7e, 0x2c, 0xe7, 0xab, 0xbf,
0x56, 0x65, 0xf5, 0x70, 0x4a, 0x3e, 0x9e, 0x51, 0xbd, 0x3b, 0x23, 0xbf,
0x33, 0xc3, 0x5a, 0xd3, 0xbf, 0xc5, 0xa9, 0xda, 0x53, 0x95, 0xb3, 0xfb,
0xd1, 0x34, 0x70, 0x06, 0xee, 0xff, 0x9b, 0x9f, 0x7a, 0xd2, 0x18, 0xf3,
0xb4, 0x31, 0x50, 0x54, 0x53, 0x4e, 0xde, 0x7b, 0x1b, 0x9f, 0xfe, 0xd0,
0xe7, 0xf9, 0xc5, 0xb1, 0xc7, 0xe8, 0x69, 0x8f, 0xd7, 0xb7, 0xbe, 0xcd,
0xd7, 0xdf, 0xfc, 0x2b, 0xda, 0x5f, 0x9f, 0x61, 0x62, 0x6e, 0x9b, 0xb1,
0x1b, 0x3d, 0x82, 0x2a, 0x6b, 0x47, 0x52, 0xae, 0xdf, 0x91, 0xf1, 0xda,
0xc7, 0x2a, 0xac, 0xd5, 0xc0, 0xc7, 0xe5, 0x33, 0xc6, 0x58, 0xc0, 0xe2,
0x83, 0xd0, 0x5c, 0xec, 0xd0, 0x7e, 0xbb, 0x8b, 0x73, 0x81, 0x10, 0x74,
0x3d, 0x84, 0x70, 0xa2, 0xf3, 0x67, 0x7e, 0x20, 0x2b, 0x0d, 0xd4, 0xc8,
0xee, 0xfb, 0xd2, 0x1d, 0x0d, 0x63, 0xcc, 0x39, 0x63, 0x20, 0x49, 0x0d,
0x47, 0xa7, 0x46, 0x78, 0xe8, 0xd0, 0x67, 0xf8, 0xc4, 0xd8, 0xc3, 0x78,
0x1c, 0xff, 0x7e, 0xf3, 0x05, 0xfe, 0x6e, 0xfe, 0x19, 0xbc, 0x0d, 0xf8,
0x87, 0xc6, 0x71, 0x32, 0x82, 0x0b, 0x01, 0x2f, 0x01, 0x27, 0x01, 0x1f,
0x04, 0x27, 0x01, 0x95, 0x80, 0x86, 0x80, 0xb1, 0x09, 0x49, 0x92, 0x90,
0x25, 0x29, 0xd6, 0xe4, 0x98, 0x63, 0x16, 0x59, 0x0b, 0xf8, 0x1b, 0x3d,
0x20, 0x34, 0x54, 0x79, 0x9c, 0x01, 0xb7, 0x99, 0x03, 0x01, 0x84, 0xa0,
0x67, 0x8d, 0xa1, 0x61, 0x8c, 0xd2, 0x38, 0x52, 0xe3, 0x58, 0xed, 0x04,
0xa7, 0x0e, 0xff, 0x06, 0xed, 0xd0, 0xe2, 0xcb, 0xef, 0xfe, 0x11, 0xdf,
0x5a, 0xfd, 0x37, 0x24, 0x28, 0x12, 0x02, 0x3e, 0x84, 0xf2, 0x3c, 0x46,
0xd0, 0xe8, 0xfd, 0xa0, 0xbb, 0x61, 0x51, 0x52, 0x6b, 0xa9, 0xa4, 0x19,
0x79, 0x96, 0x91, 0xa6, 0x09, 0xbd, 0x93, 0x42, 0x67, 0xd5, 0xe1, 0xdb,
0x40, 0xec, 0x0d, 0x03, 0x01, 0x0c, 0x34, 0x07, 0x44, 0xf4, 0x29, 0x11,
0x85, 0xc4, 0x90, 0x37, 0x12, 0x1e, 0x3d, 0x7a, 0x96, 0x6d, 0x69, 0xf3,
0xb5, 0xc5, 0xaf, 0x30, 0xb3, 0xfc, 0x2f, 0x74, 0xbd, 0xa7, 0xe7, 0x3d,
0x3d, 0x11, 0x7a, 0x22, 0xb8, 0x20, 0x78, 0x89, 0x30, 0x3e, 0x28, 0x7e,
0x07, 0x28, 0x20, 0xaa, 0x44, 0xd7, 0x5a, 0xf2, 0x2c, 0xa5, 0x5e, 0x14,
0x8c, 0x55, 0xeb, 0x8c, 0x8f, 0xd6, 0xc8, 0x6f, 0xcf, 0x00, 0x83, 0x2a,
0x53, 0xe9, 0x6f, 0xdb, 0x81, 0x36, 0x39, 0xef, 0x9b, 0x81, 0xe9, 0x67,
0x8f, 0x4d, 0x1b, 0x63, 0xa6, 0x8c, 0x51, 0xf2, 0xdb, 0x32, 0x3e, 0x54,
0xdc, 0xcd, 0xf1, 0xda, 0x49, 0xde, 0xde, 0xba, 0xc8, 0xdf, 0x5e, 0xf9,
0x62, 0x7f, 0x63, 0x5e, 0x8e, 0x6e, 0xd8, 0x15, 0x1a, 0xb4, 0x04, 0x08,
0x31, 0x33, 0x12, 0x5f, 0x43, 0x09, 0x90, 0x24, 0x96, 0x4a, 0x96, 0x51,
0xcb, 0x73, 0x82, 0x2a, 0x1d, 0xef, 0xc8, 0x27, 0x9b, 0xd8, 0x2b, 0x1d,
0xbc, 0x57, 0x54, 0x79, 0x10, 0x98, 0x3d, 0x30, 0x80, 0x88, 0x3e, 0x6e,
0x4c, 0x5c, 0xe6, 0x68, 0x55, 0xf9, 0xb9, 0xc6, 0x7d, 0xb4, 0xa5, 0xc5,
0x57, 0xae, 0xfc, 0x39, 0x1d, 0xe7, 0x50, 0xd8, 0x03, 0x50, 0x46, 0x39,
0xd2, 0x7d, 0xf1, 0x12, 0x34, 0x02, 0x94, 0x05, 0xc3, 0x5a, 0x4b, 0x25,
0x49, 0xa9, 0x56, 0x72, 0x6a, 0x79, 0x0e, 0x40, 0xd7, 0x79, 0xf2, 0x5a,
0x86, 0x29, 0x2c, 0xda, 0x15, 0x54, 0x39, 0x05, 0x3c, 0x73, 0x60, 0x80,
0x10, 0xf4, 0x94, 0x31, 0x8a, 0xad, 0x59, 0x9c, 0x06, 0x8e, 0xd5, 0xa6,
0xf8, 0x9f, 0xb5, 0x97, 0x79, 0x63, 0xed, 0x22, 0xfd, 0x0a, 0x56, 0xee,
0x6b, 0x63, 0xed, 0xd7, 0x5d, 0xef, 0xef, 0xcd, 0x46, 0x28, 0x37, 0xf6,
0x59, 0x92, 0x52, 0x54, 0x2a, 0xd4, 0x8a, 0x82, 0xb1, 0x6a, 0x95, 0x91,
0xa2, 0x40, 0x24, 0x50, 0xc9, 0x32, 0x2a, 0x69, 0x86, 0xa9, 0x02, 0x1b,
0x8a, 0xaa, 0x4e, 0xbd, 0x9f, 0xb6, 0x81, 0x00, 0x44, 0x74, 0xca, 0x18,
0x30, 0x05, 0xf8, 0x00, 0x79, 0x5a, 0xe5, 0xdb, 0xf3, 0x2f, 0x11, 0x94,
0xb2, 0x51, 0x29, 0xaa, 0x01, 0x51, 0xca, 0xdd, 0x95, 0xee, 0xd8, 0xa4,
0x0f, 0x85, 0x31, 0x58, 0x6b, 0x49, 0x93, 0x84, 0x6a, 0xa5, 0x60, 0xac,
0x56, 0x67, 0xa2, 0x3e, 0xc2, 0x58, 0xad, 0x4e, 0xad, 0x52, 0xa1, 0xe3,
0x1c, 0xa9, 0xb5, 0x24, 0xd6, 0x62, 0xaa, 0xb6, 0x9c, 0x23, 0xdc, 0x9a,
0x39, 0x10, 0x42, 0x98, 0x02, 0x83, 0x0d, 0x71, 0xb9, 0xd0, 0xd5, 0x6d,
0xde, 0xdb, 0xbe, 0x4c, 0x9a, 0x66, 0x88, 0x04, 0x34, 0x08, 0x12, 0x4c,
0xf9, 0xe8, 0x04, 0x50, 0xc5, 0x98, 0x78, 0x1e, 0x17, 0xd3, 0x86, 0xc4,
0x5a, 0xb2, 0x34, 0xa5, 0xc8, 0x2a, 0x8c, 0x56, 0x6b, 0x4c, 0x8c, 0x8c,
0x70, 0x68, 0x74, 0x94, 0xb1, 0x5a, 0x8d, 0xc4, 0x18, 0x7a, 0xde, 0xef,
0xc0, 0x6b, 0xd9, 0xcd, 0x07, 0x3d, 0x06, 0xc9, 0x00, 0xc6, 0x28, 0xbe,
0x6b, 0xc1, 0x58, 0x7e, 0xd0, 0xbc, 0x88, 0x37, 0x1d, 0x46, 0x8a, 0x2a,
0x12, 0x02, 0x4e, 0x04, 0x5f, 0x56, 0x9d, 0xa0, 0x71, 0xe9, 0x40, 0xf9,
0x18, 0xc8, 0x60, 0x49, 0x12, 0xbb, 0x63, 0x9b, 0x7a, 0x5e, 0x30, 0x56,
0xab, 0x31, 0x51, 0xaf, 0x33, 0x56, 0xab, 0x92, 0x67, 0x95, 0x58, 0xbd,
0xbc, 0x67, 0xdb, 0x39, 0xba, 0xce, 0x21, 0x1d, 0x19, 0x58, 0xfc, 0xa0,
0x00, 0x73, 0xc6, 0x30, 0x65, 0xda, 0x42, 0xd7, 0x0b, 0x3f, 0xd8, 0x78,
0x8d, 0x6a, 0x25, 0x27, 0x4b, 0x53, 0x8c, 0x31, 0xd1, 0xe3, 0x22, 0x3b,
0x15, 0x27, 0x8e, 0x5e, 0xec, 0xb4, 0x89, 0x4d, 0xc8, 0xd2, 0x84, 0x3c,
0x8d, 0xd5, 0xa6, 0x9e, 0xe7, 0xd4, 0x8b, 0x9c, 0x5a, 0xf9, 0x7d, 0x09,
0x81, 0x76, 0xb7, 0xcb, 0xc6, 0xf6, 0x36, 0x1b, 0xad, 0x16, 0xad, 0x4e,
0x07, 0xb7, 0x26, 0x7d, 0x0b, 0xcd, 0xdd, 0x12, 0x80, 0x10, 0xc2, 0x2c,
0x98, 0x29, 0xda, 0x81, 0xed, 0xe5, 0x2e, 0x6f, 0xe4, 0xdf, 0xe7, 0x78,
0xe3, 0x30, 0x69, 0x92, 0x90, 0x67, 0x29, 0xd6, 0xd8, 0x58, 0xa1, 0xe2,
0xaa, 0x1a, 0x00, 0x4b, 0xe9, 0x79, 0x6b, 0x49, 0x92, 0x84, 0x4a, 0x9a,
0x92, 0xa5, 0x69, 0x7c, 0x4d, 0x12, 0x4c, 0x69, 0x9b, 0x56, 0xa7, 0xc3,
0xca, 0xe6, 0x26, 0xcb, 0xcd, 0x26, 0x8b, 0xcd, 0x26, 0x9b, 0x0b, 0x1d,
0x64, 0x3b, 0xf4, 0x6f, 0xfd, 0xbe, 0x25, 0x74, 0x20, 0x00, 0x11, 0xbd,
0x00, 0x7a, 0x26, 0x04, 0x08, 0xd7, 0x61, 0x29, 0xdb, 0x40, 0x55, 0x99,
0x1c, 0x1f, 0x07, 0x53, 0xa3, 0xc8, 0x2c, 0x59, 0x92, 0x90, 0xd8, 0x84,
0xc4, 0x5a, 0xac, 0xd9, 0x23, 0xbe, 0x0c, 0x5b, 0xfe, 0xdd, 0x00, 0xae,
0xb4, 0xcc, 0x56, 0xb7, 0xcb, 0xfa, 0xd6, 0x16, 0x8b, 0xcd, 0x26, 0xd7,
0x56, 0x57, 0x59, 0x5e, 0xdc, 0x60, 0xfb, 0x52, 0x6f, 0xaf, 0xff, 0x07,
0xda, 0x27, 0x0f, 0x04, 0x60, 0x0c, 0xeb, 0x40, 0x43, 0xbb, 0x9e, 0xf4,
0x8a, 0xb2, 0xd8, 0x5a, 0xa7, 0x79, 0x7b, 0x87, 0xc3, 0x63, 0x63, 0x4c,
0xd4, 0xeb, 0x8c, 0xe4, 0x39, 0x45, 0xa5, 0xb2, 0x33, 0xc2, 0x18, 0x13,
0x6b, 0x7e, 0x7f, 0x62, 0x8a, 0x10, 0x42, 0xc0, 0x8b, 0xd0, 0x75, 0x8e,
0x56, 0x69, 0x9b, 0x9b, 0xcd, 0x26, 0x8b, 0x1b, 0x1b, 0xac, 0x5c, 0xdb,
0xa4, 0xf5, 0x66, 0x87, 0xe0, 0x76, 0x46, 0x7f, 0x7d, 0x50, 0x80, 0x81,
0x56, 0xa3, 0x93, 0x9f, 0x1f, 0x79, 0x10, 0x98, 0x31, 0x7d, 0x8b, 0x58,
0x43, 0x52, 0x4b, 0x31, 0x93, 0x86, 0x62, 0x22, 0x67, 0xb4, 0x5e, 0x65,
0xb4, 0x5a, 0xa5, 0x9e, 0xe7, 0xd4, 0x4a, 0x90, 0x24, 0x49, 0xb0, 0xc4,
0x1e, 0xd1, 0x9f, 0xec, 0x9d, 0x5e, 0x8f, 0xad, 0x6e, 0x97, 0xcd, 0x76,
0x3b, 0xfa, 0x7e, 0xbd, 0xc5, 0xd6, 0x3b, 0x5d, 0x3a, 0x4b, 0x8e, 0x10,
0xc2, 0xde, 0x5b, 0x9e, 0xd1, 0xf3, 0xfa, 0x4f, 0xb7, 0x0c, 0x00, 0xe0,
0xf0, 0xe7, 0x6a, 0x67, 0x81, 0xe7, 0x77, 0xbe, 0x68, 0xc0, 0x18, 0x83,
0xb5, 0x09, 0x66, 0xdc, 0x60, 0x47, 0x13, 0xb2, 0x7a, 0x42, 0x3a, 0x92,
0x90, 0xa5, 0xe9, 0x8e, 0x9d, 0x20, 0xf6, 0x03, 0x27, 0x42, 0xcf, 0x7b,
0xba, 0x5b, 0x8e, 0xce, 0x6a, 0x8f, 0xee, 0xb2, 0xa7, 0xb7, 0x1a, 0xf7,
0xc6, 0xff, 0x4f, 0xc2, 0x53, 0x7a, 0x5e, 0xdf, 0xb7, 0x03, 0xef, 0x1b,
0x00, 0x60, 0xe2, 0x0f, 0xaa, 0x1f, 0x2f, 0x21, 0x76, 0x9a, 0x4c, 0xff,
0xc9, 0x79, 0x84, 0x32, 0x3b, 0x11, 0x6a, 0xfd, 0xb6, 0x50, 0x76, 0xe7,
0x6d, 0x25, 0x74, 0x04, 0xef, 0xcb, 0xa5, 0xc6, 0x0f, 0x0b, 0x07, 0x78,
0x42, 0xcf, 0xeb, 0xbe, 0x7e, 0xad, 0x19, 0x6a, 0x53, 0x3f, 0xfe, 0xfb,
0xc5, 0x93, 0xaa, 0x9c, 0x03, 0x1a, 0xa0, 0x3b, 0x42, 0xfa, 0x4d, 0xa8,
0x5f, 0x95, 0xfa, 0xef, 0xe3, 0x33, 0xdf, 0x72, 0x59, 0x1d, 0x7e, 0x64,
0xa3, 0x9a, 0x2d, 0xc5, 0xbf, 0xba, 0x5f, 0x2d, 0x07, 0xfa, 0x9d, 0xb8,
0xfe, 0x7b, 0x95, 0xb3, 0xc0, 0x19, 0xe0, 0x4c, 0xbc, 0xcc, 0x6e, 0x27,
0xdd, 0x0b, 0xd0, 0x7f, 0xff, 0x23, 0x9e, 0x42, 0xcf, 0x00, 0xcf, 0xef,
0x77, 0xd4, 0xf7, 0x1e, 0xb7, 0xe4, 0x97, 0xfa, 0xe2, 0x77, 0xd3, 0x71,
0x55, 0xa6, 0x81, 0x53, 0xaa, 0x9c, 0x2a, 0x05, 0x9f, 0xda, 0x05, 0x51,
0x88, 0x8d, 0x69, 0x8e, 0x38, 0xda, 0xb3, 0xc0, 0x8c, 0x9e, 0xd7, 0xab,
0x07, 0xbd, 0xf7, 0x2d, 0x01, 0xf8, 0x71, 0x1e, 0x3f, 0xf1, 0xff, 0xad,
0xf2, 0xbf, 0xbd, 0x42, 0x09, 0x81, 0x50, 0xaf, 0xf9, 0xba, 0x00, 0x00,
0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82,
};

View File

@ -0,0 +1,244 @@
static const unsigned char toolbar_delete_png[] = {
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d,
0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30,
0x08, 0x06, 0x00, 0x00, 0x00, 0x57, 0x02, 0xf9, 0x87, 0x00, 0x00, 0x00,
0x01, 0x73, 0x52, 0x47, 0x42, 0x00, 0xae, 0xce, 0x1c, 0xe9, 0x00, 0x00,
0x00, 0x06, 0x62, 0x4b, 0x47, 0x44, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff,
0xa0, 0xbd, 0xa7, 0x93, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 0x73,
0x00, 0x00, 0x0b, 0x12, 0x00, 0x00, 0x0b, 0x12, 0x01, 0xd2, 0xdd, 0x7e,
0xfc, 0x00, 0x00, 0x00, 0x07, 0x74, 0x49, 0x4d, 0x45, 0x07, 0xd8, 0x03,
0x16, 0x0a, 0x1d, 0x39, 0xad, 0x95, 0x27, 0xb3, 0x00, 0x00, 0x0a, 0xd8,
0x49, 0x44, 0x41, 0x54, 0x68, 0xde, 0xd5, 0x99, 0x4b, 0x6c, 0x5c, 0x55,
0xb6, 0x86, 0xbf, 0x7d, 0x1e, 0x55, 0x75, 0xaa, 0xec, 0x7a, 0x04, 0x63,
0x85, 0x58, 0x76, 0x8c, 0x70, 0x26, 0x0c, 0x88, 0x6f, 0x2c, 0x4b, 0x91,
0x12, 0xab, 0x6d, 0xae, 0x10, 0x77, 0x80, 0x44, 0x9a, 0x48, 0x28, 0x19,
0x98, 0x38, 0x01, 0xcc, 0x53, 0x10, 0x26, 0x88, 0x47, 0x44, 0xa7, 0xc7,
0x48, 0x90, 0x48, 0x4c, 0x91, 0xd3, 0xaa, 0x49, 0x04, 0x12, 0x97, 0x86,
0x11, 0x08, 0x70, 0x5a, 0x4c, 0x1c, 0x45, 0xe9, 0xb8, 0x13, 0x84, 0x15,
0x24, 0x8c, 0x1f, 0x89, 0x1d, 0x97, 0x53, 0xe5, 0x53, 0xa7, 0xde, 0x8f,
0x73, 0xce, 0x1d, 0xdc, 0xda, 0x5b, 0x27, 0x26, 0x49, 0x5f, 0x3b, 0xe9,
0xa4, 0xef, 0x96, 0xb6, 0xe4, 0x2a, 0x9f, 0xb3, 0x6b, 0xff, 0x6b, 0xfd,
0x6b, 0xad, 0x7f, 0xaf, 0x2d, 0x7c, 0xdf, 0xe7, 0xff, 0xf3, 0x30, 0xee,
0xf6, 0x82, 0xcf, 0x3d, 0xf7, 0xdc, 0x30, 0xd0, 0xeb, 0xfb, 0x7e, 0x6f,
0xeb, 0xab, 0x69, 0x60, 0x2e, 0x9d, 0x4e, 0x4f, 0xff, 0x2b, 0x00, 0x88,
0xbb, 0xe1, 0x81, 0x23, 0x47, 0x8e, 0x0c, 0x03, 0x63, 0xbe, 0xef, 0x3f,
0x0d, 0x24, 0x7d, 0xdf, 0x27, 0x38, 0x5b, 0xc3, 0x06, 0xfe, 0x02, 0x9c,
0x48, 0xa7, 0xd3, 0x73, 0xff, 0x16, 0x00, 0x5e, 0x78, 0xe1, 0x85, 0x7e,
0xe0, 0x63, 0x60, 0x18, 0x50, 0x9b, 0x5d, 0x0f, 0x60, 0x1d, 0x10, 0x80,
0x93, 0xc0, 0xf1, 0x74, 0x3a, 0x6d, 0xdf, 0x57, 0x00, 0xe3, 0xe3, 0xe3,
0x93, 0x72, 0xf3, 0x72, 0xe3, 0x96, 0x65, 0x11, 0x8f, 0xc7, 0x09, 0x87,
0xc3, 0x18, 0x86, 0x81, 0xe7, 0x79, 0x54, 0x2a, 0x15, 0x8a, 0xc5, 0x22,
0x6b, 0x6b, 0x6b, 0x78, 0x9e, 0x27, 0x1f, 0x9f, 0x03, 0xfe, 0x78, 0xa7,
0xd4, 0xba, 0x23, 0x00, 0x2f, 0xbf, 0xfc, 0xf2, 0x1f, 0x80, 0x33, 0xf2,
0x73, 0x34, 0x1a, 0x65, 0x60, 0x60, 0x80, 0xed, 0xdb, 0xb7, 0xd3, 0xd1,
0xd1, 0x81, 0x65, 0x59, 0x78, 0x9e, 0x47, 0xb1, 0x58, 0xe4, 0xda, 0xb5,
0x6b, 0x5c, 0xbc, 0x78, 0x91, 0x5f, 0x7f, 0xfd, 0x95, 0x62, 0xb1, 0xa8,
0x68, 0xa5, 0x69, 0xda, 0xe3, 0xa7, 0x4e, 0x9d, 0xba, 0x70, 0xdf, 0x62,
0xe0, 0xd5, 0x57, 0x5f, 0xfd, 0x6f, 0x60, 0x1f, 0x40, 0x22, 0x91, 0xe0,
0xcd, 0x37, 0xdf, 0xc4, 0xf7, 0x7d, 0x3c, 0xcf, 0x23, 0x97, 0xcb, 0x61,
0x18, 0x86, 0x02, 0x52, 0xab, 0xd5, 0xb8, 0x70, 0xe1, 0x02, 0x53, 0x53,
0x53, 0x14, 0x0a, 0x05, 0x49, 0x2d, 0xdb, 0x30, 0x8c, 0xff, 0xfc, 0xf4,
0xd3, 0x4f, 0xff, 0x7e, 0x5f, 0x00, 0xbc, 0xfe, 0xfa, 0xeb, 0xdb, 0x5b,
0x74, 0xc0, 0xf7, 0x7d, 0x76, 0xed, 0xda, 0x45, 0x28, 0x14, 0x22, 0x97,
0xcb, 0xe1, 0xba, 0x2e, 0x9e, 0xe7, 0xa1, 0x69, 0x1a, 0xdb, 0xb6, 0x6d,
0xe3, 0xd1, 0x47, 0x1f, 0x25, 0x16, 0x8b, 0x71, 0xee, 0xdc, 0x39, 0xce,
0x9d, 0x3b, 0x87, 0x6d, 0xdb, 0x78, 0x9e, 0x87, 0xef, 0xfb, 0x73, 0x89,
0x44, 0x62, 0xe0, 0xe4, 0xc9, 0x93, 0xb9, 0x8d, 0xfe, 0xbe, 0x76, 0xbb,
0x7f, 0xbe, 0xf4, 0xd2, 0x4b, 0xfd, 0xaf, 0xbc, 0xf2, 0xca, 0xd8, 0xed,
0x9e, 0xf9, 0xe4, 0x93, 0x4f, 0xe6, 0x35, 0x4d, 0x3b, 0xa1, 0x69, 0x1a,
0x9a, 0xa6, 0x71, 0xe1, 0xc2, 0x05, 0xb2, 0xd9, 0x2c, 0x9a, 0xa6, 0xa1,
0xeb, 0x3a, 0x9a, 0xa6, 0xe1, 0xba, 0x2e, 0x0b, 0x0b, 0x0b, 0x7c, 0xf7,
0xdd, 0x77, 0xcc, 0xcd, 0xcd, 0x31, 0x38, 0x38, 0xc8, 0xae, 0x5d, 0xbb,
0x88, 0xc5, 0x62, 0x98, 0xa6, 0x89, 0xae, 0xeb, 0xbd, 0x8e, 0xe3, 0x7c,
0xbc, 0x19, 0x03, 0x6a, 0xb7, 0xdb, 0xbc, 0xa6, 0x69, 0x93, 0x42, 0x88,
0x89, 0xd7, 0x5e, 0x7b, 0x6d, 0xdf, 0x6d, 0x17, 0xd1, 0xb4, 0xe3, 0x9a,
0xa6, 0xd9, 0x12, 0x84, 0x04, 0x10, 0x9c, 0xba, 0xae, 0x03, 0x70, 0xf1,
0xe2, 0x45, 0x16, 0x17, 0x17, 0x19, 0x18, 0x18, 0xa0, 0xa7, 0xa7, 0x07,
0xd3, 0x34, 0x31, 0x0c, 0x03, 0xe0, 0xb9, 0x43, 0x87, 0x0e, 0x8d, 0xdc,
0x15, 0x00, 0xe3, 0xe3, 0xe3, 0xbd, 0x42, 0x88, 0x49, 0x21, 0x44, 0x52,
0x08, 0x81, 0xa6, 0x69, 0x13, 0x6f, 0xbc, 0xf1, 0x46, 0xff, 0xad, 0x16,
0x39, 0x71, 0xe2, 0x44, 0x3e, 0xe8, 0x85, 0x7c, 0x3e, 0xaf, 0xa8, 0xb3,
0x1e, 0x84, 0x69, 0x9a, 0xcc, 0xcc, 0xcc, 0x60, 0xdb, 0x36, 0x03, 0x03,
0x03, 0x24, 0x93, 0x49, 0x0c, 0xc3, 0x40, 0xd7, 0x75, 0x7c, 0xdf, 0xff,
0xe0, 0xae, 0x00, 0x10, 0x42, 0x4c, 0xc8, 0xcd, 0xb7, 0x66, 0x52, 0xd3,
0xb4, 0x89, 0xb7, 0xde, 0x7a, 0x2b, 0x79, 0xab, 0x85, 0x3e, 0xfa, 0xe8,
0xa3, 0x3f, 0x6b, 0x9a, 0x36, 0x27, 0x37, 0xbb, 0xba, 0xba, 0x4a, 0xe0,
0x7d, 0x74, 0x5d, 0xc7, 0x30, 0x0c, 0x4c, 0xd3, 0x24, 0x1c, 0x0e, 0x33,
0x3b, 0x3b, 0x4b, 0x67, 0x67, 0x27, 0x9d, 0x9d, 0x9d, 0x92, 0x46, 0x08,
0x21, 0x86, 0x47, 0x47, 0x47, 0xfb, 0xef, 0x08, 0xc0, 0xf8, 0xf8, 0xf8,
0x21, 0x21, 0xc4, 0x70, 0xf0, 0xc7, 0x5b, 0xb3, 0x5f, 0xd3, 0xb4, 0x89,
0x7f, 0x42, 0xa5, 0xa3, 0x2d, 0x8f, 0xe1, 0x38, 0x0e, 0xcd, 0x66, 0x13,
0xf9, 0x59, 0x08, 0x81, 0x61, 0x18, 0x84, 0x42, 0x21, 0x55, 0x23, 0x32,
0x99, 0x0c, 0x7d, 0x7d, 0x7d, 0x41, 0x00, 0x00, 0x87, 0xee, 0x08, 0x80,
0x10, 0xe2, 0xb8, 0xdc, 0x74, 0x38, 0x1c, 0xe6, 0xe1, 0x87, 0x1f, 0x0e,
0x82, 0xd8, 0xf7, 0xf6, 0xdb, 0x6f, 0xff, 0xe9, 0x56, 0x8b, 0x7d, 0xf8,
0xe1, 0x87, 0x7f, 0xd5, 0x34, 0xed, 0x8c, 0x7c, 0x3e, 0x9b, 0xcd, 0xaa,
0x77, 0x0d, 0xc3, 0x50, 0x00, 0x22, 0x91, 0x08, 0x91, 0x48, 0x04, 0xc7,
0x71, 0x78, 0xe0, 0x81, 0x07, 0x88, 0xc5, 0x62, 0x0a, 0xa4, 0x4c, 0xc9,
0x9b, 0x02, 0xf0, 0xe2, 0x8b, 0x2f, 0x0e, 0x03, 0xbd, 0x2d, 0x6b, 0xb2,
0x67, 0xcf, 0x1e, 0x0e, 0x1c, 0x38, 0xc0, 0x43, 0x0f, 0x3d, 0x14, 0x04,
0x71, 0xfc, 0xdd, 0x77, 0xdf, 0xbd, 0xe5, 0x8f, 0x08, 0x21, 0x7a, 0xe5,
0xb3, 0xb6, 0x6d, 0xd3, 0x68, 0x34, 0xd0, 0x75, 0x1d, 0x5d, 0xd7, 0x09,
0x85, 0x42, 0xca, 0x03, 0xa1, 0x50, 0x08, 0x5d, 0xd7, 0xa9, 0x54, 0x2a,
0x44, 0x22, 0x11, 0x34, 0x4d, 0x6d, 0xa5, 0x77, 0x74, 0x74, 0x34, 0xb9,
0x59, 0x0f, 0x3c, 0x2d, 0xff, 0xb0, 0x2c, 0x8b, 0xae, 0xae, 0x2e, 0xc2,
0xe1, 0x30, 0x63, 0x63, 0x63, 0x58, 0x96, 0x15, 0x04, 0x31, 0xf1, 0xfe,
0xfb, 0xef, 0xff, 0x8e, 0xab, 0xef, 0xbc, 0xf3, 0xce, 0x84, 0x34, 0x80,
0x34, 0x42, 0xad, 0x56, 0x43, 0xd3, 0xb4, 0xdf, 0x59, 0x3f, 0x14, 0x0a,
0x61, 0x18, 0x06, 0x8d, 0x46, 0x03, 0xd3, 0x34, 0xd7, 0x2f, 0xb5, 0x73,
0xb3, 0x00, 0x86, 0x5b, 0x6e, 0x24, 0x14, 0x0a, 0xd1, 0xd5, 0xd5, 0xc5,
0xe5, 0xcb, 0x97, 0x29, 0x97, 0xcb, 0x1c, 0x39, 0x72, 0x84, 0x48, 0x24,
0x22, 0x9f, 0x4b, 0x0a, 0x21, 0x26, 0x3e, 0xf8, 0xe0, 0x83, 0x24, 0xc0,
0xb1, 0x63, 0xc7, 0x86, 0xdf, 0x7b, 0xef, 0xbd, 0x49, 0x60, 0x4c, 0xbe,
0x0f, 0xd0, 0xdd, 0xdd, 0x4d, 0x22, 0x91, 0x50, 0x81, 0x1b, 0x89, 0x44,
0xb0, 0x2c, 0x8b, 0x70, 0x38, 0x8c, 0x69, 0x9a, 0x68, 0x9a, 0x46, 0xbd,
0x5e, 0xbf, 0x99, 0xd8, 0xdb, 0x74, 0x0c, 0xf4, 0xfb, 0xbe, 0x8f, 0x10,
0x82, 0x8e, 0x8e, 0x0e, 0x1a, 0x8d, 0x06, 0xe7, 0xcf, 0x9f, 0x67, 0x6a,
0x6a, 0x8a, 0x78, 0x3c, 0xce, 0xfe, 0xfd, 0xfb, 0x83, 0x6a, 0xb3, 0xdf,
0xf3, 0xbc, 0x0b, 0xc7, 0x8e, 0x1d, 0xfb, 0xcd, 0xf7, 0xfd, 0xc9, 0xa0,
0x22, 0xb5, 0x2c, 0x8b, 0x27, 0x9e, 0x78, 0x82, 0xc7, 0x1f, 0x7f, 0x5c,
0x59, 0xde, 0xb2, 0x2c, 0x2c, 0xcb, 0x22, 0x12, 0x89, 0x10, 0x0e, 0x87,
0x55, 0x5d, 0x28, 0x95, 0x4a, 0x34, 0x9b, 0xcd, 0xa0, 0xc8, 0xdb, 0x1c,
0x80, 0xe7, 0x9f, 0x7f, 0xbe, 0xbf, 0xc5, 0x61, 0x00, 0xda, 0xdb, 0xdb,
0xb9, 0x74, 0xe9, 0x92, 0xe2, 0xf2, 0xf7, 0xdf, 0x7f, 0x4f, 0x77, 0x77,
0x37, 0xfb, 0xf7, 0xef, 0x57, 0x16, 0xf3, 0x3c, 0xaf, 0xd7, 0xf7, 0xfd,
0x5e, 0xf9, 0xb9, 0xb3, 0xb3, 0x93, 0xa7, 0x9e, 0x7a, 0x8a, 0xa3, 0x47,
0x8f, 0xb2, 0x73, 0xe7, 0x4e, 0x66, 0x66, 0x66, 0x08, 0x87, 0xc3, 0x58,
0x96, 0x45, 0x34, 0x1a, 0x25, 0x1a, 0x8d, 0x62, 0x59, 0x96, 0xda, 0xbc,
0xe7, 0x79, 0xb8, 0xae, 0x4b, 0xb5, 0x5a, 0xc5, 0x75, 0xdd, 0x4d, 0x79,
0x21, 0x78, 0x22, 0x4b, 0x04, 0x02, 0x91, 0xf6, 0xf6, 0x76, 0xae, 0x5e,
0xbd, 0xaa, 0xb2, 0x83, 0x6d, 0xdb, 0x9c, 0x3f, 0x7f, 0x9e, 0xdd, 0xbb,
0x77, 0x33, 0x34, 0x34, 0xc4, 0x8f, 0x3f, 0xfe, 0xa8, 0x62, 0x65, 0xc7,
0x8e, 0x1d, 0x0c, 0x0e, 0x0e, 0xf2, 0xe0, 0x83, 0x0f, 0xe2, 0x79, 0x1e,
0x99, 0x4c, 0x86, 0x9f, 0x7e, 0xfa, 0x09, 0xd7, 0x75, 0xb1, 0x2c, 0x8b,
0x58, 0x2c, 0x46, 0x2c, 0x16, 0x23, 0x1a, 0x8d, 0x62, 0x18, 0x06, 0xae,
0xeb, 0xe2, 0xba, 0x2e, 0xf5, 0x7a, 0x9d, 0x46, 0xa3, 0x41, 0xb1, 0x58,
0x54, 0xba, 0x29, 0x20, 0xb5, 0x37, 0x06, 0x20, 0x88, 0x5e, 0x06, 0x9f,
0xeb, 0xba, 0x37, 0xe4, 0xe8, 0xf9, 0xf9, 0x79, 0x84, 0x10, 0x0c, 0x0d,
0x0d, 0xfd, 0x6f, 0x20, 0x24, 0x93, 0xec, 0xd8, 0xb1, 0x83, 0x70, 0x38,
0x8c, 0xef, 0xfb, 0xac, 0xac, 0xac, 0x70, 0xf9, 0xf2, 0x65, 0xd6, 0xd6,
0xd6, 0x30, 0x4d, 0x53, 0x59, 0xbd, 0xad, 0xad, 0x8d, 0x58, 0x2c, 0x46,
0x28, 0x14, 0xc2, 0xf7, 0x7d, 0xea, 0xf5, 0x3a, 0xf5, 0x7a, 0x9d, 0x5a,
0xad, 0x86, 0x6d, 0xdb, 0x54, 0xab, 0xd5, 0xe0, 0xe6, 0xed, 0x74, 0x3a,
0x3d, 0xbf, 0x29, 0x00, 0x12, 0x84, 0x10, 0x82, 0x7c, 0x3e, 0xaf, 0xaa,
0xa7, 0x4c, 0x83, 0xbe, 0xef, 0x73, 0xf5, 0xea, 0x55, 0x7e, 0xfb, 0xed,
0x37, 0xf6, 0xec, 0xd9, 0xa3, 0x16, 0x99, 0x9f, 0x9f, 0x67, 0x7e, 0x7e,
0x5e, 0xc9, 0xe7, 0x68, 0x34, 0xaa, 0xa8, 0x23, 0x2d, 0x2f, 0x13, 0x40,
0xad, 0x56, 0xa3, 0x5a, 0xad, 0x52, 0xa9, 0x54, 0xa8, 0x56, 0xab, 0x5c,
0xbf, 0x7e, 0x9d, 0x46, 0xa3, 0x11, 0xa4, 0xd0, 0x99, 0x4d, 0x51, 0xc8,
0xf7, 0xfd, 0xb9, 0xe0, 0xf1, 0x6f, 0x69, 0x69, 0x89, 0x9e, 0x9e, 0x1e,
0x55, 0xfe, 0xa5, 0x17, 0x7c, 0xdf, 0xe7, 0xe7, 0x9f, 0x7f, 0xc6, 0x75,
0x5d, 0xca, 0xe5, 0x32, 0x2b, 0x2b, 0x2b, 0xd4, 0x6a, 0x35, 0x84, 0x10,
0x44, 0xa3, 0x51, 0x95, 0x71, 0x64, 0xd0, 0x46, 0xa3, 0x51, 0x42, 0xa1,
0x10, 0x42, 0x08, 0xea, 0xf5, 0x3a, 0xd5, 0x6a, 0x95, 0x72, 0xb9, 0x4c,
0xa9, 0x54, 0x62, 0x6d, 0x6d, 0x0d, 0xdb, 0xb6, 0xd7, 0x07, 0xf1, 0x97,
0x9b, 0x3e, 0x0f, 0x1c, 0x3e, 0x7c, 0xd8, 0x37, 0x0c, 0x43, 0xa5, 0xbc,
0xee, 0xee, 0x6e, 0x52, 0xa9, 0x14, 0x91, 0x48, 0xe4, 0x77, 0x20, 0x5a,
0x3a, 0xfe, 0x06, 0xad, 0x63, 0x9a, 0xa6, 0x2a, 0x54, 0xc1, 0x74, 0x09,
0xd0, 0x68, 0x34, 0x28, 0x95, 0x4a, 0x38, 0x8e, 0x83, 0x6d, 0xdb, 0xe4,
0xf3, 0x79, 0x66, 0x66, 0x66, 0x70, 0x1c, 0x87, 0x5a, 0xad, 0x26, 0xd7,
0x5b, 0x4a, 0xa7, 0xd3, 0x5d, 0x9b, 0x4e, 0xa3, 0xbe, 0xef, 0x4f, 0xfb,
0xbe, 0xaf, 0x82, 0xcc, 0xb6, 0x6d, 0x5c, 0xd7, 0x05, 0x50, 0x95, 0x34,
0x12, 0x89, 0x10, 0x8b, 0xc5, 0x68, 0x6f, 0x6f, 0x27, 0x1e, 0x8f, 0x13,
0x8f, 0xc7, 0x49, 0x26, 0x93, 0x37, 0xcc, 0x44, 0x22, 0xa1, 0x2c, 0x0f,
0x50, 0xaf, 0xd7, 0x29, 0x97, 0xcb, 0x14, 0x0a, 0x05, 0x1c, 0xc7, 0xa1,
0x58, 0x2c, 0xb2, 0xb0, 0xb0, 0x40, 0xb1, 0x58, 0xa4, 0xd1, 0x68, 0x28,
0x63, 0x78, 0x9e, 0x97, 0x3c, 0x70, 0xe0, 0x40, 0xff, 0x1d, 0x01, 0x90,
0x9b, 0x97, 0x16, 0xcb, 0xe7, 0xf3, 0x8a, 0xa3, 0x42, 0x08, 0x45, 0x11,
0x09, 0x22, 0x91, 0x48, 0x28, 0x20, 0x6d, 0x6d, 0x6d, 0x6a, 0xe3, 0xba,
0xae, 0xab, 0x14, 0x29, 0xd7, 0xc9, 0xe7, 0xf3, 0x38, 0x8e, 0xc3, 0xf2,
0xf2, 0x32, 0x99, 0x4c, 0x86, 0x7a, 0xbd, 0x7e, 0x43, 0xfa, 0x14, 0x42,
0x44, 0x75, 0x5d, 0x9f, 0x3c, 0x78, 0xf0, 0x60, 0xff, 0xa6, 0x00, 0x78,
0x9e, 0x77, 0xc6, 0xf3, 0x3c, 0x9a, 0xcd, 0x26, 0xcd, 0x66, 0x93, 0x5a,
0xad, 0xc6, 0xea, 0xea, 0x2a, 0x85, 0x42, 0x81, 0x5a, 0xad, 0x46, 0xad,
0x56, 0xa3, 0xd9, 0x6c, 0xaa, 0x4c, 0x25, 0xe3, 0x43, 0x6a, 0x1c, 0xc3,
0x30, 0x10, 0x42, 0xa8, 0xf3, 0xaf, 0xa4, 0xcc, 0xda, 0xda, 0x1a, 0x6b,
0x6b, 0x6b, 0xe4, 0xf3, 0x79, 0x56, 0x56, 0x56, 0x58, 0x58, 0x58, 0x50,
0x59, 0x2e, 0x98, 0x38, 0x5a, 0x27, 0xb8, 0xa4, 0xa6, 0x69, 0x13, 0x07,
0x0f, 0x1e, 0x4c, 0x6e, 0xb4, 0x0e, 0x00, 0x7c, 0xe9, 0x79, 0x1e, 0x42,
0x08, 0x1a, 0x8d, 0x06, 0x42, 0x08, 0x4a, 0xa5, 0x12, 0x57, 0xae, 0x5c,
0x51, 0xdc, 0xbf, 0x59, 0xaf, 0x47, 0xc6, 0x84, 0x2c, 0x4e, 0x12, 0xbc,
0xb4, 0xbe, 0x9c, 0x8b, 0x8b, 0x8b, 0x64, 0x32, 0x19, 0xb5, 0x79, 0x49,
0x9d, 0xbd, 0x7b, 0xf7, 0xb2, 0xb4, 0xb4, 0xc4, 0xc2, 0xc2, 0x82, 0x2c,
0xa4, 0xfd, 0xbe, 0xef, 0x4f, 0x00, 0x7f, 0xdc, 0xf0, 0xa1, 0x7e, 0x74,
0x74, 0xf4, 0x63, 0xe0, 0xa8, 0x4c, 0x9d, 0x41, 0xca, 0x6c, 0xdd, 0xba,
0x95, 0x2d, 0x5b, 0xb6, 0x28, 0x49, 0x10, 0x0a, 0x85, 0xd4, 0x91, 0x50,
0x5a, 0x5e, 0x16, 0xa8, 0x5a, 0xad, 0xa6, 0x52, 0x65, 0xa1, 0x50, 0x60,
0x61, 0x61, 0xe1, 0x06, 0x3a, 0xca, 0xcd, 0x3f, 0xf3, 0xcc, 0x33, 0x3c,
0xf9, 0xe4, 0x93, 0x9c, 0x3d, 0x7b, 0x96, 0x6f, 0xbe, 0xf9, 0x86, 0x95,
0x95, 0x15, 0x15, 0x83, 0xae, 0xeb, 0x1e, 0x3d, 0x7d, 0xfa, 0xf4, 0xc9,
0x8d, 0xf6, 0x46, 0x8f, 0x03, 0xfb, 0x5c, 0xd7, 0xed, 0x0d, 0x48, 0x06,
0x5c, 0xd7, 0xa5, 0x56, 0xab, 0xe1, 0x38, 0x0e, 0x9d, 0x9d, 0x9d, 0x2a,
0x65, 0xca, 0x3a, 0x11, 0x94, 0x06, 0x8d, 0x46, 0x43, 0xa5, 0xcc, 0xd5,
0xd5, 0x55, 0x95, 0x6a, 0x65, 0xba, 0x94, 0xeb, 0xf6, 0xf5, 0xf5, 0x51,
0xa9, 0x54, 0x10, 0x42, 0xb0, 0x7b, 0xf7, 0x6e, 0xb2, 0xd9, 0x2c, 0x3f,
0xfc, 0xf0, 0x03, 0xa5, 0x52, 0x49, 0x49, 0xf7, 0x67, 0x9f, 0x7d, 0xf6,
0xaf, 0x9f, 0x7d, 0xf6, 0xd9, 0xdc, 0x86, 0xda, 0x2a, 0xa3, 0xa3, 0xa3,
0x3b, 0x5b, 0x05, 0x45, 0x9e, 0x89, 0x95, 0x37, 0xa4, 0x38, 0x4b, 0x24,
0x12, 0xb4, 0xb7, 0xb7, 0x2b, 0x20, 0x92, 0x4a, 0xcd, 0x66, 0x53, 0x05,
0x6d, 0x2e, 0x97, 0xa3, 0xd1, 0x68, 0xd0, 0x6c, 0x36, 0x6f, 0xb0, 0xba,
0x61, 0x18, 0xf4, 0xf4, 0xf4, 0xd0, 0xd1, 0xd1, 0xa1, 0xfe, 0xde, 0xbb,
0x77, 0x2f, 0x8e, 0xe3, 0x70, 0xfa, 0xf4, 0x69, 0x2e, 0x5d, 0xba, 0x14,
0xf4, 0xc2, 0xa9, 0xcf, 0x3f, 0xff, 0xfc, 0xf0, 0x86, 0xfb, 0x42, 0x2d,
0x10, 0x5f, 0x4a, 0x7d, 0x1f, 0xcc, 0xf7, 0x72, 0x1a, 0x86, 0x11, 0x3c,
0x49, 0xe1, 0x79, 0x9e, 0xf2, 0x82, 0x9c, 0xf2, 0x3b, 0xf9, 0x3b, 0xf1,
0x78, 0x9c, 0xbe, 0xbe, 0x3e, 0xa5, 0x89, 0xe4, 0xba, 0x83, 0x83, 0x83,
0x6c, 0xdb, 0xb6, 0x8d, 0xd9, 0xd9, 0x59, 0xbe, 0xfa, 0xea, 0x2b, 0x32,
0x99, 0x4c, 0x70, 0x9d, 0x87, 0xbf, 0xf8, 0xe2, 0x8b, 0xb9, 0x0d, 0xb5,
0x55, 0xd2, 0xe9, 0xf4, 0x3f, 0x80, 0x7e, 0x59, 0x19, 0x25, 0x95, 0x9a,
0xcd, 0x26, 0x8d, 0x46, 0x43, 0x71, 0x3c, 0x38, 0x65, 0xe0, 0x4a, 0x91,
0x26, 0x2d, 0x2f, 0x37, 0xff, 0xd8, 0x63, 0x8f, 0x31, 0x34, 0x34, 0x44,
0x32, 0x99, 0x54, 0x31, 0x23, 0xe9, 0x36, 0x35, 0x35, 0x85, 0xe3, 0x38,
0xa4, 0x52, 0x29, 0x7a, 0x7b, 0x7b, 0xd7, 0x27, 0x8d, 0x3f, 0xdd, 0x51,
0x67, 0x6e, 0x74, 0x74, 0xf4, 0x0f, 0xad, 0xd8, 0x18, 0xde, 0x8c, 0x66,
0xef, 0xea, 0xea, 0x62, 0x60, 0x60, 0x80, 0x44, 0x22, 0x41, 0xb5, 0x5a,
0xc5, 0x71, 0x1c, 0x1c, 0xc7, 0xa1, 0x52, 0xa9, 0xdc, 0x50, 0xc8, 0x1e,
0x79, 0xe4, 0x11, 0xb6, 0x6f, 0xdf, 0xce, 0xf2, 0xf2, 0x32, 0xdf, 0x7e,
0xfb, 0x2d, 0xd9, 0x6c, 0x36, 0xe8, 0xd1, 0xd4, 0xd7, 0x5f, 0x7f, 0x6d,
0x6f, 0xa8, 0x33, 0x17, 0xf0, 0xc6, 0xdf, 0xd2, 0xe9, 0xf4, 0x48, 0xcb,
0x23, 0xa7, 0xfe, 0x2f, 0x72, 0x57, 0x66, 0x9b, 0x54, 0x2a, 0x45, 0x77,
0x77, 0xb7, 0xea, 0xd0, 0x49, 0xa9, 0x62, 0x9a, 0xe6, 0xef, 0xbc, 0x30,
0x3b, 0x3b, 0xab, 0xce, 0xc8, 0x5b, 0xb6, 0x6c, 0x51, 0xf4, 0x6b, 0x01,
0x7c, 0xfa, 0x8e, 0x6f, 0x68, 0x5a, 0xb4, 0x3a, 0xdc, 0xf2, 0xca, 0xf6,
0x56, 0x7c, 0xf4, 0x06, 0xce, 0xc1, 0xd3, 0xd9, 0x6c, 0xf6, 0xe5, 0x4a,
0xa5, 0xf2, 0x5f, 0xb2, 0xa9, 0x1b, 0x89, 0x44, 0x58, 0x59, 0x59, 0x21,
0x1e, 0x8f, 0x63, 0x9a, 0xa6, 0x9a, 0xe1, 0x70, 0x98, 0x4a, 0xa5, 0x02,
0xa0, 0xa8, 0x56, 0xad, 0x56, 0xc9, 0x64, 0x32, 0x98, 0xa6, 0x49, 0x22,
0x91, 0x40, 0xd7, 0x75, 0x9a, 0xcd, 0xa6, 0xa4, 0xef, 0xbe, 0xd6, 0x05,
0xc9, 0xdd, 0xb9, 0x62, 0x6a, 0x69, 0xf6, 0x79, 0xe0, 0x6f, 0xc1, 0xef,
0x47, 0x46, 0x46, 0xa6, 0x81, 0x69, 0xd7, 0x75, 0x93, 0xf5, 0x7a, 0x9d,
0x62, 0xb1, 0x48, 0x2e, 0x97, 0xe3, 0xfa, 0xf5, 0xeb, 0x4a, 0x95, 0xea,
0xba, 0x4e, 0x38, 0x1c, 0x56, 0x20, 0x84, 0x10, 0xaa, 0xfa, 0x2f, 0x2e,
0x2e, 0xb2, 0x75, 0xeb, 0x56, 0xf5, 0x6c, 0xc0, 0x03, 0xfd, 0x1b, 0x6e,
0xee, 0x6e, 0x66, 0x4c, 0x4e, 0x4e, 0xce, 0x03, 0x27, 0x64, 0x4a, 0x2d,
0x97, 0xcb, 0xe4, 0xf3, 0x79, 0x96, 0x96, 0x96, 0xc8, 0xe7, 0xf3, 0x54,
0xab, 0x55, 0x7c, 0xdf, 0xc7, 0x34, 0x4d, 0xe5, 0xa1, 0x56, 0x6f, 0x54,
0x55, 0xf0, 0x4a, 0xa5, 0x82, 0xe7, 0x79, 0xea, 0x82, 0xa4, 0x35, 0x7b,
0xef, 0x09, 0x80, 0x16, 0x88, 0x3f, 0xb7, 0xbc, 0x40, 0xbd, 0x5e, 0xa7,
0x50, 0x28, 0x90, 0xcd, 0x66, 0xb9, 0x72, 0xe5, 0x0a, 0x85, 0x42, 0x81,
0x4a, 0xa5, 0xa2, 0xea, 0x41, 0xb0, 0x43, 0x21, 0x53, 0xaa, 0x1c, 0x12,
0x88, 0x9c, 0xf7, 0x0c, 0x40, 0x6b, 0x8c, 0x01, 0xb6, 0xe4, 0xb6, 0xe3,
0x38, 0x5c, 0xbb, 0x76, 0xed, 0x06, 0x10, 0xae, 0xeb, 0xa2, 0x69, 0x9a,
0x8a, 0x0b, 0x5d, 0xd7, 0x89, 0xc7, 0xe3, 0x00, 0xe4, 0x72, 0x39, 0xca,
0xe5, 0x72, 0x10, 0x80, 0x7d, 0x4f, 0x01, 0x4c, 0x4e, 0x4e, 0xfe, 0x03,
0x38, 0x2a, 0xb3, 0x4c, 0xa9, 0x54, 0x22, 0x97, 0xcb, 0xb1, 0xb8, 0xb8,
0xc8, 0xfc, 0xfc, 0x3c, 0xb6, 0x6d, 0x53, 0x2a, 0x95, 0xa8, 0xd7, 0xeb,
0x48, 0x01, 0x99, 0x4a, 0xa5, 0xb0, 0x2c, 0x8b, 0x72, 0xb9, 0xcc, 0x2f,
0xbf, 0xfc, 0xa2, 0x52, 0x68, 0x0b, 0xc0, 0x99, 0x7b, 0x72, 0x4f, 0xbc,
0x0e, 0xc4, 0x5f, 0x46, 0x46, 0x46, 0x86, 0x3d, 0xcf, 0x1b, 0x93, 0x20,
0xa4, 0xd4, 0x2e, 0x14, 0x0a, 0x74, 0x74, 0x74, 0xa8, 0xe6, 0x56, 0x22,
0x91, 0x20, 0x95, 0x4a, 0x91, 0xcd, 0x66, 0x39, 0x7b, 0xf6, 0xac, 0x6a,
0xd1, 0x07, 0x54, 0xef, 0x97, 0xff, 0xb2, 0x7b, 0xe2, 0x7f, 0x36, 0x46,
0x46, 0x46, 0x26, 0x80, 0xb1, 0x20, 0x5d, 0xe4, 0x19, 0xa2, 0xad, 0xad,
0x8d, 0x54, 0x2a, 0x45, 0x28, 0x14, 0x62, 0x69, 0x69, 0x89, 0xe5, 0xe5,
0xe5, 0x9b, 0x75, 0xeb, 0xa6, 0x27, 0x27, 0x27, 0xff, 0xe3, 0xbe, 0x01,
0x08, 0x82, 0x90, 0xe2, 0x50, 0x0a, 0xc4, 0xa0, 0x64, 0x08, 0xaa, 0xd5,
0xc0, 0xb0, 0x81, 0xfe, 0x56, 0x76, 0xbb, 0x7f, 0x00, 0x5a, 0x20, 0x3e,
0x06, 0x8e, 0x06, 0x1b, 0x68, 0xeb, 0x8e, 0xb4, 0xeb, 0x5f, 0x99, 0x06,
0xc6, 0x5a, 0xf1, 0x74, 0xcf, 0xb3, 0xd0, 0xcd, 0x62, 0xe2, 0xad, 0x96,
0x9e, 0x9a, 0xbe, 0xd9, 0x8d, 0xfe, 0xfa, 0x9b, 0x2b, 0x60, 0xf8, 0x76,
0x9b, 0xbf, 0xe7, 0x1e, 0x58, 0xe7, 0x8d, 0xa7, 0x5b, 0xa9, 0xb6, 0x3f,
0x20, 0x45, 0xce, 0xb4, 0xc0, 0x9d, 0xb8, 0x15, 0x65, 0xfe, 0x6d, 0x00,
0xdc, 0xad, 0xf1, 0x3f, 0x1b, 0xc1, 0xe6, 0x81, 0xe7, 0x14, 0x15, 0x38,
0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82,
};

View File

@ -0,0 +1,77 @@
// Copyright (C) 2003-2008 Dolphin Project.
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, version 2.0.
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License 2.0 for more details.
// A copy of the GPL 2.0 should have been included with the program.
// If not, see http://www.gnu.org/licenses/
// Official SVN repository and contact information can be found at
// http://code.google.com/p/dolphin-emu/
#include "Debugger.h"
#include "Common.h"
#include "BreakpointView.h"
#include "Debugger/Debugger_BreakPoints.h"
#include "Debugger/Debugger_SymbolMap.h"
BEGIN_EVENT_TABLE(CBreakPointView, wxListCtrl)
END_EVENT_TABLE()
CBreakPointView::CBreakPointView(wxWindow* parent, const wxWindowID id, const wxPoint& pos, const wxSize& size, long style)
: wxListCtrl(parent, id, pos, size, style)
{
SetFont(wxFont(9, wxSWISS, wxNORMAL, wxNORMAL, false, wxT("Segoe UI")));
Refresh();
}
void
CBreakPointView::Update()
{
ClearAll();
InsertColumn(0, wxT("Active"), wxLIST_FORMAT_LEFT, 50);
InsertColumn(1, wxT("Type"), wxLIST_FORMAT_LEFT, 50);
InsertColumn(2, wxT("Function"), wxLIST_FORMAT_CENTER, 200);
const CBreakPoints::TBreakPoints& rBreakPoints = CBreakPoints::GetBreakPoints();
for (size_t i=0; i<rBreakPoints.size(); i++)
{
const TBreakPoint& rBP = rBreakPoints[i];
if (!rBP.bTemporary)
{
int Item = InsertItem(0, rBP.bOn ? "on" : " ");
SetItem(Item, 1, "BP");
Debugger::XSymbolIndex index = Debugger::FindSymbol(rBP.iAddress);
if (index > 0)
{
SetItem(Item, 2, Debugger::GetDescription(rBP.iAddress));
}
else
{
char szBuffer[32];
sprintf(szBuffer, "0x%08x", rBP.iAddress);
SetItem(Item, 2, szBuffer);
}
}
}
Refresh();
}
void CBreakPointView::DeleteCurrentSelection()
{
}

View File

@ -0,0 +1,41 @@
// Copyright (C) 2003-2008 Dolphin Project.
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, version 2.0.
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License 2.0 for more details.
// A copy of the GPL 2.0 should have been included with the program.
// If not, see http://www.gnu.org/licenses/
// Official SVN repository and contact information can be found at
// http://code.google.com/p/dolphin-emu/
#ifndef __BREAKPOINTVIEW_h__
#define __BREAKPOINTVIEW_h__
#include <wx/listctrl.h>
#include "Common.h"
class CBreakPointView
: public wxListCtrl
{
public:
CBreakPointView(wxWindow* parent, const wxWindowID id, const wxPoint& pos, const wxSize& size, long style);
void Update();
void DeleteCurrentSelection();
private:
DECLARE_EVENT_TABLE()
};
#endif

View File

@ -0,0 +1,160 @@
//__________________________________________________________________________________________________
// F|RES and ector 2003-2008
//
#include "Debugger.h"
#include "BreakPointWindow.h"
#include "BreakpointView.h"
#include "wx/mstream.h"
extern "C" {
#include "../resources/toolbar_add_breakpoint.c"
#include "../resources/toolbar_add_memorycheck.c"
#include "../resources/toolbar_delete.c"
}
static const long TOOLBAR_STYLE = wxTB_FLAT | wxTB_DOCKABLE | wxTB_TEXT;
BEGIN_EVENT_TABLE(CBreakPointWindow, wxFrame)
EVT_CLOSE(CBreakPointWindow::OnClose)
EVT_MENU(IDM_DELETE, CBreakPointWindow::OnDelete)
EVT_MENU(IDM_ADD_BREAKPOINT, CBreakPointWindow::OnAddBreakPoint)
EVT_MENU(IDM_ADD_MEMORYCHECK, CBreakPointWindow::OnAddMemoryCheck)
END_EVENT_TABLE()
#define wxGetBitmapFromMemory(name) _wxGetBitmapFromMemory(name, sizeof(name))
inline wxBitmap _wxGetBitmapFromMemory(const unsigned char* data, int length)
{
wxMemoryInputStream is(data, length);
return(wxBitmap(wxImage(is, wxBITMAP_TYPE_ANY, -1), -1));
}
CBreakPointWindow::CBreakPointWindow(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& position, const wxSize& size, long style)
: wxFrame(parent, id, title, position, size, style)
, m_BreakPointListView(NULL)
{
InitBitmaps();
CreateGUIControls();
// Create the toolbar
RecreateToolbar();
}
CBreakPointWindow::~CBreakPointWindow()
{}
void
CBreakPointWindow::CreateGUIControls()
{
SetTitle(wxT("Breakpoints"));
SetIcon(wxNullIcon);
SetSize(8, 8, 400, 370);
Center();
m_BreakPointListView = new CBreakPointView(this, ID_BPS, wxDefaultPosition, GetSize(),
wxLC_REPORT | wxSUNKEN_BORDER | wxLC_ALIGN_LEFT | wxLC_SINGLE_SEL | wxLC_SORT_ASCENDING);
NotifyUpdate();
}
void
CBreakPointWindow::PopulateToolbar(wxToolBar* toolBar)
{
int w = m_Bitmaps[Toolbar_Delete].GetWidth(),
h = m_Bitmaps[Toolbar_Delete].GetHeight();
toolBar->SetToolBitmapSize(wxSize(w, h));
toolBar->AddTool(IDM_DELETE, _T("Delete"), m_Bitmaps[Toolbar_Delete], _T("Refresh"));
toolBar->AddSeparator();
toolBar->AddTool(IDM_ADD_BREAKPOINT, _T("BP"), m_Bitmaps[Toolbar_Add_BreakPoint], _T("Open file..."));
toolBar->AddTool(IDM_ADD_MEMORYCHECK, _T("MemCheck"), m_Bitmaps[Toolbar_Add_Memcheck], _T("Refresh"));
// after adding the buttons to the toolbar, must call Realize() to reflect
// the changes
toolBar->Realize();
}
void
CBreakPointWindow::RecreateToolbar()
{
// delete and recreate the toolbar
wxToolBarBase* toolBar = GetToolBar();
long style = toolBar ? toolBar->GetWindowStyle() : TOOLBAR_STYLE;
delete toolBar;
SetToolBar(NULL);
style &= ~(wxTB_HORIZONTAL | wxTB_VERTICAL | wxTB_BOTTOM | wxTB_RIGHT | wxTB_HORZ_LAYOUT | wxTB_TOP);
wxToolBar* theToolBar = CreateToolBar(style, ID_TOOLBAR);
PopulateToolbar(theToolBar);
SetToolBar(theToolBar);
}
void
CBreakPointWindow::InitBitmaps()
{
// load orignal size 48x48
m_Bitmaps[Toolbar_Delete] = wxGetBitmapFromMemory(toolbar_delete_png);
m_Bitmaps[Toolbar_Add_BreakPoint] = wxGetBitmapFromMemory(toolbar_add_breakpoint_png);
m_Bitmaps[Toolbar_Add_Memcheck] = wxGetBitmapFromMemory(toolbar_add_memcheck_png);
// scale to 24x24 for toolbar
for (size_t n = Toolbar_Delete; n < WXSIZEOF(m_Bitmaps); n++)
{
m_Bitmaps[n] = wxBitmap(m_Bitmaps[n].ConvertToImage().Scale(16, 16));
}
}
void
CBreakPointWindow::OnClose(wxCloseEvent& /*event*/)
{
Hide();
}
void CBreakPointWindow::NotifyUpdate()
{
if (m_BreakPointListView != NULL)
{
m_BreakPointListView->Update();
}
}
void
CBreakPointWindow::OnDelete(wxCommandEvent& event)
{
if (m_BreakPointListView)
{
m_BreakPointListView->DeleteCurrentSelection();
}
}
void
CBreakPointWindow::OnAddBreakPoint(wxCommandEvent& event)
{
}
void
CBreakPointWindow::OnAddMemoryCheck(wxCommandEvent& event)
{
}

View File

@ -0,0 +1,65 @@
//__________________________________________________________________________________________________
// F|RES and ector 2003-2008
//
#ifndef __BREAKPOINTWINDOW_h__
#define __BREAKPOINTWINDOW_h__
class CBreakPointView;
#undef BREAKPOINT_WINDOW_STYLE
#define BREAKPOINT_WINDOW_STYLE wxCAPTION | wxSYSTEM_MENU | wxCLOSE_BOX | wxRESIZE_BORDER
class CBreakPointWindow
: public wxFrame
{
private:
DECLARE_EVENT_TABLE();
public:
CBreakPointWindow(wxWindow* parent, wxWindowID id = 1, const wxString& title = wxT("Breakpoints"),
const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(400, 250),
long style = BREAKPOINT_WINDOW_STYLE);
virtual ~CBreakPointWindow();
void NotifyUpdate();
private:
enum
{
ID_TOOLBAR = 500,
ID_BPS = 1002,
IDM_DELETE,
IDM_ADD_BREAKPOINT,
IDM_ADD_MEMORYCHECK
};
enum
{
Toolbar_Delete,
Toolbar_Add_BreakPoint,
Toolbar_Add_Memcheck,
Bitmaps_max
};
CBreakPointView* m_BreakPointListView;
wxBitmap m_Bitmaps[Bitmaps_max];
void OnClose(wxCloseEvent& event);
void CreateGUIControls();
void RecreateToolbar();
void PopulateToolbar(wxToolBar* toolBar);
void InitBitmaps();
void OnDelete(wxCommandEvent& event);
void OnAddBreakPoint(wxCommandEvent& event);
void OnAddMemoryCheck(wxCommandEvent& event);
};
#endif

View File

@ -19,6 +19,7 @@
#include "RegisterWindow.h"
#include "LogWindow.h"
#include "BreakpointWindow.h"
#include "wx/button.h"
#include "wx/textctrl.h"
@ -62,7 +63,8 @@ enum
IDM_INTERPRETER,
IDM_DUALCORE,
IDM_LOGWINDOW,
IDM_REGISTERWINDOW
IDM_REGISTERWINDOW,
IDM_BREAKPOINTWINDOW
};
BEGIN_EVENT_TABLE(CCodeWindow, wxFrame)
@ -78,6 +80,7 @@ EVT_LISTBOX(IDM_CALLSTACKLIST, CCodeWindow::OnCallstackListChange)
EVT_HOST_COMMAND(wxID_ANY, CCodeWindow::OnHostMessage)
EVT_MENU(IDM_LOGWINDOW, CCodeWindow::OnToggleLogWindow)
EVT_MENU(IDM_REGISTERWINDOW, CCodeWindow::OnToggleRegisterWindow)
EVT_MENU(IDM_BREAKPOINTWINDOW, CCodeWindow::OnToggleBreakPointWindow)
END_EVENT_TABLE()
@ -130,6 +133,9 @@ CCodeWindow::CCodeWindow(const SCoreStartupParameter& _LocalCoreStartupParameter
m_RegisterWindow = new CRegisterWindow(this);
m_RegisterWindow->Show(true);
m_BreakpointWindow = new CBreakPointWindow(this);
m_BreakpointWindow->Show(true);
UpdateButtonStates();
}
@ -162,6 +168,9 @@ void CCodeWindow::CreateMenu(const SCoreStartupParameter& _LocalCoreStartupParam
wxMenuItem* pRegister = pDebugDialogs->Append(IDM_REGISTERWINDOW, _T("&Registers"), wxEmptyString, wxITEM_CHECK);
pRegister->Check(true);
wxMenuItem* pBreakPoints = pDebugDialogs->Append(IDM_BREAKPOINTWINDOW, _T("&BreakPoints"), wxEmptyString, wxITEM_CHECK);
pBreakPoints->Check(true);
pMenuBar->Append(pDebugDialogs, _T("&Dialogs"));
}
@ -420,6 +429,33 @@ void CCodeWindow::OnToggleRegisterWindow(wxCommandEvent& event)
}
}
void CCodeWindow::OnToggleBreakPointWindow(wxCommandEvent& event)
{
bool show = GetMenuBar()->IsChecked(event.GetId());
if (show)
{
if (!m_BreakpointWindow)
{
m_BreakpointWindow = new CBreakPointWindow(this);
}
m_BreakpointWindow->Show(true);
}
else // hide
{
// If m_dialog is NULL, then possibly the system
// didn't report the checked menu item status correctly.
// It should be true just after the menu item was selected,
// if there was no modeless dialog yet.
wxASSERT(m_BreakpointWindow != NULL);
if (m_BreakpointWindow)
{
m_BreakpointWindow->Hide();
}
}
}
void CCodeWindow::OnHostMessage(wxCommandEvent& event)
{
@ -447,6 +483,16 @@ void CCodeWindow::OnHostMessage(wxCommandEvent& event)
}
break;
case IDM_UPDATEBREAKPOINTS:
if (m_BreakpointWindow)
{
m_BreakpointWindow->NotifyUpdate();
}
break;
}
}

View File

@ -29,6 +29,7 @@
class CRegisterWindow;
class CLogWindow;
class CBreakPointWindow;
class CCodeWindow
: public wxFrame
@ -54,6 +55,7 @@ class CCodeWindow
// sub dialogs
CLogWindow* m_logwindow;
CRegisterWindow* m_RegisterWindow;
CBreakPointWindow* m_BreakpointWindow;
CCodeView* codeview;
wxListBox* callstack;
@ -75,6 +77,7 @@ class CCodeWindow
void OnAddrBoxChange(wxCommandEvent& event);
void OnToggleRegisterWindow(wxCommandEvent& event);
void OnToggleBreakPointWindow(wxCommandEvent& event);
void OnToggleLogWindow(wxCommandEvent& event);
void OnHostMessage(wxCommandEvent& event);

View File

@ -36,6 +36,7 @@ enum
IDM_UPDATEDISASMDIALOG,
IDM_UPDATEGUI,
IDM_UPDATESTATUSBAR,
IDM_UPDATEBREAKPOINTS,
IDM_HOST_MESSAGE,
IDM_BOOTING_STARTED,
IDM_BOOTING_ENDED,

View File

@ -188,6 +188,17 @@ void Host_UpdateMainFrame()
}
}
void Host_UpdateBreakPointView()
{
wxCommandEvent event(wxEVT_HOST_COMMAND, IDM_UPDATEBREAKPOINTS);
wxPostEvent(main_frame, event);
if (code_frame)
{
wxPostEvent(code_frame, event);
}
}
void Host_UpdateMemoryView()
{}

View File

@ -71,6 +71,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Plugin_DSP_NULL", "Plugins\
{C573CAF7-EE6A-458E-8049-16C0BF34C2E9} = {C573CAF7-EE6A-458E-8049-16C0BF34C2E9}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Plugin_PadDX9", "Plugins\Plugin_PadDX9\Plugin_PadDX9.vcproj", "{805B34AA-82A5-4875-8DC7-3C85BDC0BCEE}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
@ -249,6 +251,18 @@ Global
{9AC65CBE-7854-4A86-AA10-D73FF9E5D61F}.Release|Win32.Build.0 = Release|Win32
{9AC65CBE-7854-4A86-AA10-D73FF9E5D61F}.Release|x64.ActiveCfg = Release|x64
{9AC65CBE-7854-4A86-AA10-D73FF9E5D61F}.Release|x64.Build.0 = Release|x64
{805B34AA-82A5-4875-8DC7-3C85BDC0BCEE}.Debug|Win32.ActiveCfg = Debug|Win32
{805B34AA-82A5-4875-8DC7-3C85BDC0BCEE}.Debug|Win32.Build.0 = Debug|Win32
{805B34AA-82A5-4875-8DC7-3C85BDC0BCEE}.Debug|x64.ActiveCfg = Debug|x64
{805B34AA-82A5-4875-8DC7-3C85BDC0BCEE}.Debug|x64.Build.0 = Debug|x64
{805B34AA-82A5-4875-8DC7-3C85BDC0BCEE}.DebugFast|Win32.ActiveCfg = DebugFast|Win32
{805B34AA-82A5-4875-8DC7-3C85BDC0BCEE}.DebugFast|Win32.Build.0 = DebugFast|Win32
{805B34AA-82A5-4875-8DC7-3C85BDC0BCEE}.DebugFast|x64.ActiveCfg = DebugFast|x64
{805B34AA-82A5-4875-8DC7-3C85BDC0BCEE}.DebugFast|x64.Build.0 = DebugFast|x64
{805B34AA-82A5-4875-8DC7-3C85BDC0BCEE}.Release|Win32.ActiveCfg = Release|Win32
{805B34AA-82A5-4875-8DC7-3C85BDC0BCEE}.Release|Win32.Build.0 = Release|Win32
{805B34AA-82A5-4875-8DC7-3C85BDC0BCEE}.Release|x64.ActiveCfg = Release|x64
{805B34AA-82A5-4875-8DC7-3C85BDC0BCEE}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE