修改io功能等

This commit is contained in:
wangxx1809 2024-04-09 16:53:02 +08:00
parent d3684d1cbb
commit abb3d9959b
52 changed files with 23857 additions and 13863 deletions

View File

@ -1,5 +1,11 @@
#include "DataHandle.h"
void DataHandle::DataCallBackProc(void* pthis, const ReadData& msg) {
DataHandle* p = (DataHandle*)pthis;
p->DataCallBackHandle(msg);
}
DataHandle::DataHandle()
: m_dataCallBack(nullptr)
, m_streamClient(nullptr){
@ -15,16 +21,14 @@ void DataHandle::Init() {
m_streamClient->SetCallBackFunc(this,&DataHandle::DataCallBackProc);
m_streamClient->Init();
SetPushMsg(VERSIONREQ); //获取版本信息
}
void DataHandle::DataCallBackProc(void* pthis, const ReadData& msg) {
DataHandle* p = (DataHandle*)pthis;
std::istringstream issKey(msg.nameKey),issVal(msg.strValue);
void DataHandle::DataCallBackHandle(const ReadData& msg) {
std::istringstream issKey(msg.nameKey), issVal(msg.strValue);
string key, value;
if (msg.dataType == TIMEDATA) {
switch (msg.dataType) {
case TIMEDATA:
SysParam::Lck();
while (issKey >> key && issVal >> value) {
size_t pos = value.find("_");
@ -39,15 +43,9 @@ void DataHandle::DataCallBackProc(void* pthis, const ReadData& msg) {
case iSHORT:
param.sysParamW->SetValue((short)atoi(val.c_str()));
break;
//case iUSHORT:
// param.sysParamB->SetValue((bool)atoi(val.c_str()));
// break;
case iINT:
param.sysParamI->SetValue(atoi(val.c_str()));
break;
//case iUINT:
// param.sysParamB->SetValue((bool)atoi(val.c_str()));
// break;
case iFLOAT:
param.sysParamB->SetValue(atof(val.c_str()));
break;
@ -55,6 +53,15 @@ void DataHandle::DataCallBackProc(void* pthis, const ReadData& msg) {
}
}
SysParam::UnLck();
break;
case VERSIONRSP:
m_version = msg.strValue;
break;
default:break;
}
}
}

View File

@ -22,6 +22,14 @@ public:
// }
//}
void SetPushMsg(WRITETYPE dataType) {
if (m_streamClient) {
WriteData* msg = new WriteData();
msg->dataType = dataType;
m_streamClient->SetPushMsg(msg);
}
}
void SetPushMsg(WRITETYPE dataType,const string& nameKey,const string& strValue,DATATYPE valueType) {
if (m_streamClient) {
WriteData* msg = new WriteData();
@ -33,13 +41,19 @@ public:
}
}
string GetVersion()const {
return m_version;}
private:
DataHandle();
virtual ~DataHandle();
//DataHandle(const DataHandle& d) = delete;
//DataHandle& operator = (const DataHandle& d) = delete;
void DataCallBackHandle(const ReadData& msg);
DataHandle(const DataHandle& d) = delete;
DataHandle& operator = (const DataHandle& d) = delete;
private:
DataCallBack m_dataCallBack;
StreamClient* m_streamClient;
string m_version; //软件版本
};

View File

@ -83,7 +83,7 @@ void StreamClient::AllStream() {
WriteData writeData;
if (GetPushMsg(writeData)) {
RequestInfo request;
request.set_namekey("hello server." + std::to_string(std::time(nullptr)));
request.set_namekey(writeData.nameKey);
request.set_datatype(writeData.dataType);
request.set_strvalue(writeData.strValue);
request.set_valuetype((::stream::RequestInfo_TYPE)writeData.valueType);

View File

@ -14,9 +14,20 @@ using stream::RequestInfo;
using stream::ResponseInfo;
enum READTYPE {
ALARM = 0, //报警
ProcReadPLC0 = 0, //snap7 数据
ProcReadPLC1,
ProcReadPLC2,
ProcReadPLC3,
ProcReadPLC4,
ProcReadPLC5,
ProcReadPLC6,
ProcReadPLCData0 = 100,
ALARM, //报警
RESPOND, //回应
TIMEDATA //定时数据 一次大概50个左右
TIMEDATA, //定时数据
INITERRORINFOSRSP, //返回初始化错误信息
VERSIONRSP, //返回版本信息
};
enum DATATYPE {
@ -44,26 +55,43 @@ enum WRITETYPE {
GET = 0,
SET,
LOAD, //载入
SUPPLYAXLEAFTER, //供粉轴后移
LOADOUT, //载出
SUPPLYAXLEAFTER, //供粉轴后移
SUPPLYAXLEFRONT, //供粉轴前移
SUPPLYAXLEAFTERCONT, //供粉轴后移连续
SUPPLYAXLEFRONTCONT, //供粉轴前移连续
SUPPLYAXLEAFTERCONTSTART, //供粉轴后移连续开始
SUPPLYAXLEAFTERCONTSTOP, //供粉轴后移连续停止
SUPPLYAXLEFRONTCONTSTART, //供粉轴前移连续开始
SUPPLYAXLEFRONTCONTSTOP, //供粉轴前移连续停止
PAVEAXLEFRONT, // 铺粉臂前移
PAVEAXLEFRONTCONT, //铺粉臂前移连续
PAVEAXLEFRONTCONTSTART, //铺粉臂前移连续
PAVEAXLEFRONTCONTSTOP, //铺粉臂前移连续
PAVEAXLEAFTER, //铺粉臂后移
PAVEAXLEAFTERCONT, //铺粉臂后移连续
PAVEAXLEAFTERCONTSTART, //铺粉臂后移连续开始
PAVEAXLEAFTERCONTSTOP, //铺粉臂后移连续停止
PAVEAXLECLEAR, //铺粉臂清零
PRINTAXLEUP, //成型缸上升
PRINTAXLEUPCONT, //成型缸连续上升
PRINTAXLEUPCONTSTART, //成型缸连续上升开始
PRINTAXLEUPCONTSTOP, //成型缸连续上升停止
PRINTAXLEDOWN, //成型缸下降
PRINTAXLEDOWNCONT, //成型缸连续下降
PRINTAXLEDOWNCONTSTART, //成型缸连续下降开始
PRINTAXLEDOWNCONTSTOP, //成型缸连续下降停止
PRINTAXLECLEAR, //成型缸清零
TRANSFERAXIELEFT, //移栽轴左移
TRANSFERAXIELEFTCONT, //移栽轴连续左移
TRANSFERAXIERIGHT, //移栽轴右移
TRANSFERAXIERIGHTCONT, //移栽轴连续右移
TRANSFERAXIECLEAR //移栽轴清零
TRANSFERAXIELEFT, //移载轴左移
TRANSFERAXIELEFTCONTSTART, //移载轴连续左移开始
TRANSFERAXIELEFTCONTSTOP, //移载轴连续左移停止
TRANSFERAXIERIGHT, //移载轴右移
TRANSFERAXIERIGHTCONTSTART, //移载轴连续右移开始
TRANSFERAXIERIGHTCONTSTOP, //移载轴连续右移停止
TRANSFERAXIECLEAR, //移载轴清零
SCANERSTART, //开始扫描
SCANERSTOP, //停止扫描
STARTHEATINGSCANNERTEST, //开始振镜预热测试
STOPHEATINGSCANNERTEST, //停止振镜预热
INITERRORINFOSREQ, //初始化错误信息
VERSIONREQ, //获取版本信息
IOSIGNAL, //io 信号
};
struct WriteData {

View File

@ -158,8 +158,8 @@ void LanguageManager::VarIOTrans()
m_IOTr["Laser"] = _(u8"激光器");
m_IOTr["Laser1Enable"] = _(u8"激光1使能");
m_IOTr["Laser1Start"] = _(u8"激光1启动");
m_IOTr["Laser1Red"] = _(u8"激光1红光");
m_IOTr["Laser2Enable"] = _(u8"激光2使能");
m_IOTr["Laser1Red"] = _(u8"激光1红光");
m_IOTr["Laser2Start"] = _(u8"激光2启动");
m_IOTr["Laser2Red"] = _(u8"激光2红光");
m_IOTr["Laser3Enable"] = _(u8"激光3使能");

File diff suppressed because it is too large Load Diff

View File

@ -66,6 +66,8 @@ public:
//void DrawPowderCtrl(bool* winShow);
//void DrawServoState(bool* winShow);
virtual void CheckIO();
void InitSignal(SignalStateWrapper* ssw, void* cc);
void InitSysParam(SysParamWrapper* spw, void* cc);
//void InitPLCCommand(vector<S7Command*>& vecs);
@ -75,11 +77,11 @@ public:
bool CheckPrintHigh(float jobhigh);
private:
//static void CheckIO_V0(vector<string>&ins, IOCfgWrapper* iocfgWrapper, string str, int type);
//static void CheckIO_V1(vector<string>&ins, IOCfgWrapper* iocfgWrapper, string str, int type);
//static void CheckIO_V2(vector<string>&ins, IOCfgWrapper* iocfgWrapper, string str, int type);
//static void CheckIO_V3(vector<string>&ins, IOCfgWrapper* iocfgWrapper, string str, int type);
//static void CheckIO_V4(vector<string>& ins, IOCfgWrapper* iocfgWrapper, string str, int type);
/*static*/ void CheckIO_V0(/*vector<string>&ins, IOCfgWrapper* iocfgWrapper, string str, int type*/);
/*static*/ void CheckIO_V1(/*vector<string>&ins, IOCfgWrapper* iocfgWrapper, string str, int type*/);
/*static*/ void CheckIO_V2(/*vector<string>&ins, IOCfgWrapper* iocfgWrapper, string str, int type*/);
/*static*/ void CheckIO_V3(/*vector<string>&ins, IOCfgWrapper* iocfgWrapper, string str, int type*/);
/*static*/ void CheckIO_V4(/*vector<string>& ins, IOCfgWrapper* iocfgWrapper, string str, int type*/);
//static void ProcReadPLC(void* pobject, Command* pcommand);
//static void ProcReadPLCData(void* pobject, Command* pcommand);

File diff suppressed because it is too large Load Diff

View File

@ -63,8 +63,8 @@ public:
//AxisCfg* CreateEleAxisCfg();
void DrawSignal(bool* isshow);
void DrawAxisCfg();
void DrawPowderCtrl(bool* winShow);
//void DrawAxisCfg();
//void DrawPowderCtrl(bool* winShow);
void DrawAnalogExt();
void DrawServoState(bool* winShow);
@ -85,10 +85,14 @@ public:
//void InitPLCCommand(vector<S7Command*>& vecs);
void GetAlarmState(SignalState& signalState);
//bool CheckPrintMoldReady();
virtual void CheckIO();
private:
//static void CheckIO_V0(vector<string>& ins, IOCfgWrapper* iocfgWrapper, string str, int type);
/*static*/ void CheckIO_V0(/*vector<string>& ins, IOCfgWrapper* iocfgWrapper, string str, int type*/);
//static void ProcReadPLC(void* pobject, Command* pcommand);
//static void ProcReadPLCData(void* pobject, Command* pcommand);
void LoadInRun() {}
void LoadOutRun() {}
bool IsLoadAxisCanMoveLeft();

File diff suppressed because it is too large Load Diff

View File

@ -86,10 +86,12 @@ public:
//void InitPLCCommand(vector<S7Command*>& vecs);
//void GetAlarmState(SignalState& signalState);
//bool CheckPrintMoldReady();
virtual void CheckIO();
private:
//static void CheckIO_V0(vector<string>&ins, IOCfgWrapper* iocfgWrapper, string str, int type);
/*static*/ void CheckIO_V0(/*vector<string>&ins, IOCfgWrapper* iocfgWrapper, string str, int type*/);
//static void ProcReadPLC(void* pobject, Command* pcommand);
//static void ProcReadPLCData(void* pobject, Command* pcommand);
void LoadInRun() {}
void LoadOutRun() {}

File diff suppressed because it is too large Load Diff

View File

@ -59,6 +59,7 @@ public:
//void CheckIO_NEW(vector<string>&ins, IOCfgWrapper* iocfgWrapper);
//AxisCfg* CreateMoldAxisCfg();
//AxisCfg* CreateLoadAxisCfg();
//AxisCfg* CreateArmAxisCfg();
@ -89,10 +90,12 @@ public:
//void GetAlarmState(SignalState& signalState);
//bool CheckPrintMoldReady();
//bool CheckPrintHigh(float jobhigh);
virtual void CheckIO();
private:
//static void CheckIO_V0(vector<string>&ins, IOCfgWrapper* iocfgWrapper, string str, int type);
/*static*/ void CheckIO_V0(/*vector<string>&ins, IOCfgWrapper* iocfgWrapper, string str, int type*/);
//static void ProcReadPLC(void* pobject, Command* pcommand);
//static void ProcReadPLCData(void* pobject, Command* pcommand);
void LoadInRun() {}
void LoadOutRun() {}

File diff suppressed because it is too large Load Diff

View File

@ -74,8 +74,9 @@ public:
//void InitPLCCommand(vector<S7Command*>& vecs);
//void GetAlarmState(SignalState& signalState);
//bool CheckPrintMoldReady();
virtual void CheckIO();
private:
//static void CheckIO_V0(vector<string>&ins, IOCfgWrapper* iocfgWrapper, string str, int mtype);
/*static*/ void CheckIO_V0(/*vector<string>&ins, IOCfgWrapper* iocfgWrapper, string str, int mtype*/);
//static void ProcReadPLC(void* pobject, Command* pcommand);
//static void ProcReadPLCData(void* pobject, Command* pcommand);

View File

@ -1,13 +1,19 @@
#include "Machine.h"
#include "../external/imgui/imgui.h"
#include "../external/imgui/imgui_internal.h"
#include "../external/imgui/imgui_custom.h"
#include "HBD1000.h"
#include "HBD1200.h"
#include "HBD1200OLD.h"
#include "HBD1500.h"
#include "HBDE1000.h"
#include "../global.h"
#include "../config/configmanager.h"
Machine::Machine(MachineTypeCfg::MachineTypeId type) {
Machine::Machine(MachineTypeCfg::MachineTypeId type)
: m_Type(type)
, m_IOCfgWrapper(nullptr)
, m_RunCfg(nullptr){
}
@ -16,6 +22,14 @@ Machine::~Machine() {
}
void Machine::Init() {
m_IOCfgWrapper = ConfigManager::Instance()->GetIoCfgWrapper();
m_RunCfg = ConfigManager::Instance()->GetRunCfg();
CheckIO();
}
Machine* Machine::CreateInstance(int type)
{
Machine* machine = nullptr;
@ -109,4 +123,61 @@ void Machine::DrawAnalogExt()
ui->m_PrintAirRenewalPresRelValue->SetValue(ui->m_PrintAirRenewalPresRelValue->GetValue());
}
ImGui::EndGroup();
}
}
void Machine::DrawIO(bool* isShow)
{
ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, ImVec2(4, 6));
ImGui::Begin(_(u8"IO调试").c_str(), isShow, ImGuiWindowFlags_NoDocking | ImGuiWindowFlags_NoNav | ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_HorizontalScrollbar);
ImGui::PopStyleVar();
ImGui::BeginTabBar(u8"IO_TAB");
if (ImGui::BeginTabItem(_(u8"输出").c_str())) {
int group_cnt = ceil(m_IOCfgWrapper->m_OutputCfgs.size() / 20.0f);
for (int i = 0; i < group_cnt; i++) {
ImGui::BeginGroup();
for (int j = 0; j < 20 && (i * 20 + j) < m_IOCfgWrapper->m_OutputCfgs.size(); j++) {
IOCfg* ocfg = m_IOCfgWrapper->m_OutputCfgs[i * 20 + j];
if (ImGui::ToggleButton((to_string(ocfg->m_Id) + ocfg->m_Code).c_str(), ocfg->IsActive(), g_Admin >= ocfg->m_AuthLess)) {
ocfg->SetActive(!ocfg->IsActive());
}
ImGui::SameLine();
ImGui::Text("%s", ocfg->m_ShowContent.c_str());
}
ImGui::EndGroup();
if (i < group_cnt - 1) {
ImGui::SameLine();
ImGui::SeparatorEx(ImGuiSeparatorFlags_Vertical);
ImGui::SameLine();
}
}
ImGui::EndTabItem();
}
if (ImGui::BeginTabItem(_(u8"输入").c_str())) {
int group_cnt = ceil(m_IOCfgWrapper->m_InputCfgs.size() / 21.0f);
for (int i = 0; i < group_cnt; i++) {
ImGui::BeginGroup();
for (int j = 0; j < 21 && (i * 21 + j) < m_IOCfgWrapper->m_InputCfgs.size(); j++) {
IOCfg* ocfg = m_IOCfgWrapper->m_InputCfgs[i * 21 + j];
ImGui::ToggleButton((to_string(ocfg->m_Id) + ocfg->m_Code).c_str(), ocfg->IsActive(), false);
ImGui::SameLine();
ImGui::Text("%s", ocfg->m_ShowContent.c_str());
}
ImGui::EndGroup();
if (i < group_cnt - 1) {
ImGui::SameLine();
ImGui::SeparatorEx(ImGuiSeparatorFlags_Vertical);
ImGui::SameLine();
}
}
ImGui::EndTabItem();
}
ImGui::EndTabBar();
ImGui::End();
}

View File

@ -1,16 +1,24 @@
#pragma once
#include "../config/bean/IOCfg.h"
#include "../config/bean/SystemBase.h"
#include "../plc/SysParam.h"
#include "../plc/SignalState.h"
#include "../LanguageManager.h"
class Machine {
public:
Machine(MachineTypeCfg::MachineTypeId type);
virtual ~Machine();
static Machine* CreateInstance(int type);
//void SetIO (IOCfgWrapper* io){
// m_IOCfgWrapper = io;
//}
void Init();
void SetAxisAndSignal(SysParamWrapper* sysParamWrapper, AxisRecordWrapper* axisRecordWrapper/*, PLCAxis* axis*/)
{
m_SysParamWrapper = sysParamWrapper;
@ -18,12 +26,20 @@ public:
/*m_Axis = axis;*/
}
virtual void CheckIO() {}
void DrawIO(bool* isShow);
virtual void DrawAnalogExt();
protected:
MachineTypeCfg::MachineTypeId m_Type;
SysParamWrapper* m_SysParamWrapper;
AxisRecordWrapper* m_AxisRecordWrapper;
SignalStateWrapper* m_SignalStateWrapper;
SignalState m_SignalState;
void* m_PLC; //wxxtest
//AlarmCfgWrapper* m_AlarmCfgWrapper;
IOCfgWrapper* m_IOCfgWrapper;
RunCfg* m_RunCfg;
//PLCAxis* m_Axis;
};

View File

@ -139,8 +139,14 @@
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="ChartletManager.cpp" />
<ClCompile Include="config\bean\BaseConfig.cpp" />
<ClCompile Include="config\bean\HbdLanguage.cpp" />
<ClCompile Include="config\bean\IOCfg.cpp" />
<ClCompile Include="config\bean\IOVersion.cpp" />
<ClCompile Include="config\bean\MachineCfg.cpp" />
<ClCompile Include="config\bean\RunCfg.cpp" />
<ClCompile Include="config\bean\SystemBase.cpp" />
<ClCompile Include="config\ConfigManager.cpp" />
<ClCompile Include="DataManage\DataHandle.cpp" />
<ClCompile Include="DataManage\StreamClient.cpp" />
<ClCompile Include="external\i18n\Entry.cpp" />
@ -217,8 +223,14 @@
</ItemGroup>
<ItemGroup>
<ClInclude Include="ChartletManager.h" />
<ClInclude Include="config\bean\BaseConfig.h" />
<ClInclude Include="config\bean\HbdLanguage.h" />
<ClInclude Include="config\bean\IOCfg.h" />
<ClInclude Include="config\bean\IOVersion.h" />
<ClInclude Include="config\bean\MachineCfg.h" />
<ClInclude Include="config\bean\RunCfg.h" />
<ClInclude Include="config\bean\SystemBase.h" />
<ClInclude Include="config\ConfigManager.h" />
<ClInclude Include="DataManage\DataHandle.h" />
<ClInclude Include="DataManage\StreamClient.h" />
<ClInclude Include="external\i18n\Entry.h" />
@ -300,6 +312,7 @@
<ClInclude Include="SystemInfo.h" />
<ClInclude Include="Toast.h" />
<ClInclude Include="UI\Controller.h" />
<ClInclude Include="UI\ICON.h" />
<ClInclude Include="UI\TextureBean.h" />
<ClInclude Include="UI\UIBean.h" />
<ClInclude Include="UI\UIWin.h" />

View File

@ -291,6 +291,24 @@
<ClCompile Include="UI\Controller.cpp">
<Filter>UI</Filter>
</ClCompile>
<ClCompile Include="config\bean\MachineCfg.cpp">
<Filter>config\bean</Filter>
</ClCompile>
<ClCompile Include="config\bean\IOVersion.cpp">
<Filter>config\bean</Filter>
</ClCompile>
<ClCompile Include="config\bean\IOCfg.cpp">
<Filter>config\bean</Filter>
</ClCompile>
<ClCompile Include="config\ConfigManager.cpp">
<Filter>config</Filter>
</ClCompile>
<ClCompile Include="config\bean\RunCfg.cpp">
<Filter>config\bean</Filter>
</ClCompile>
<ClCompile Include="config\bean\BaseConfig.cpp">
<Filter>config\bean</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="protobuf\stream.grpc.pb.h">
@ -573,6 +591,27 @@
<ClInclude Include="UI\Controller.h">
<Filter>UI</Filter>
</ClInclude>
<ClInclude Include="UI\ICON.h">
<Filter>UI</Filter>
</ClInclude>
<ClInclude Include="config\bean\MachineCfg.h">
<Filter>config\bean</Filter>
</ClInclude>
<ClInclude Include="config\bean\IOVersion.h">
<Filter>config\bean</Filter>
</ClInclude>
<ClInclude Include="config\bean\IOCfg.h">
<Filter>config\bean</Filter>
</ClInclude>
<ClInclude Include="config\ConfigManager.h">
<Filter>config</Filter>
</ClInclude>
<ClInclude Include="config\bean\RunCfg.h">
<Filter>config\bean</Filter>
</ClInclude>
<ClInclude Include="config\bean\BaseConfig.h">
<Filter>config\bean</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<None Include="protobuf\stream.proto">

View File

@ -1,5 +1,5 @@
#include "Controller.h"
#include "../config/ConfigManager.h"
Controller::Controller()
: m_Machine(nullptr)
@ -7,7 +7,8 @@ Controller::Controller()
, m_StateCtrlWrapper(nullptr)
, m_SysParamWrapper(nullptr)
, m_AxisRecordWrapper(nullptr)
, m_SignalStateWrapper(nullptr) {
, m_SignalStateWrapper(nullptr)
, m_MachineCfg(nullptr){
}
@ -21,18 +22,20 @@ Controller::~Controller() {
DELP(m_AxisRecordWrapper);
DELP(m_SignalStateWrapper);
DELP(m_Machine);
DELP(m_MachineCfg);
}
void Controller::Init() {
bool Controller::Init() {
m_StateCtrlWrapper = new StateCtrlWrapper();
m_SysParamWrapper = new SysParamWrapper();
m_AxisRecordWrapper = new AxisRecordWrapper();
m_SignalStateWrapper = new SignalStateWrapper();
m_Machine = Machine::CreateInstance(MachineTypeCfg::MachineTypeId::HBD_1000);
ConfigManager::Instance()->Init();
m_Machine = ConfigManager::Instance()->GetMachine();
m_Machine->SetAxisAndSignal(m_SysParamWrapper, m_AxisRecordWrapper);
m_MachineCfg = ConfigManager::Instance()->GetMachineCfg();
return true;
}

View File

@ -3,6 +3,7 @@
#include "../stdafx.h"
#include "../Machine/Machine.h"
#include "UIBean.h"
#include "../config/bean/MachineCfg.h"
//#include "../PLC/MachineCtrl.h"
//#include "../PLC/CoreCommunication.h"
//#include "../Config/ConfigManager.h"
@ -13,7 +14,7 @@ public:
Controller();
~Controller();
void Init();
bool Init();
public:
@ -25,8 +26,11 @@ public:
SignalStateWrapper* m_SignalStateWrapper;
SystemAssist m_SystemAssist;
MachineCfg* m_MachineCfg;
string m_version; //版本
//MachineCtrl* m_MachineCtrl;
//RemoteClient* m_RemoteClient;
//ComServer* m_ComServer;

928
PrintC/UI/ICON.h Normal file
View File

@ -0,0 +1,928 @@
#pragma once
#include "../external/imgui/glfw3.h"
unsigned char icon_16x16_data[] =
{
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0x00, 0x68, 0xB7, 0xC9, 0x00, 0x68, 0xB7, 0x92, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x31,
0x00, 0x68, 0xB7, 0xDF, 0x00, 0x68, 0xB7, 0x99, 0x00, 0x68, 0xB7, 0xF7, 0x00, 0x68, 0xB7, 0xFD,
0x00, 0x68, 0xB7, 0xFD, 0x00, 0x6D, 0xC0, 0xD5, 0x60, 0x3F, 0x71, 0x2F, 0xE1, 0x07, 0x12, 0xC6,
0xD8, 0x0C, 0x19, 0xF5, 0xD7, 0x0C, 0x19, 0xFE, 0xD7, 0x0C, 0x19, 0xD5, 0xD7, 0x0C, 0x19, 0x30,
0x00, 0x68, 0xB7, 0xDC, 0x00, 0x68, 0xB7, 0x9A, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x2B,
0x00, 0x68, 0xB7, 0xFA, 0x00, 0x68, 0xB7, 0x6F, 0x00, 0x68, 0xB7, 0x66, 0x00, 0x68, 0xB7, 0x67,
0x00, 0x68, 0xB7, 0x6A, 0x00, 0x6C, 0xBE, 0xEC, 0x36, 0x51, 0x90, 0x92, 0xD6, 0x0C, 0x1A, 0xDC,
0xD9, 0x0B, 0x17, 0xC6, 0xD7, 0x0C, 0x19, 0x8C, 0xD7, 0x0C, 0x19, 0xE9, 0xD7, 0x0C, 0x19, 0xB1,
0x00, 0x68, 0xB7, 0xD1, 0x00, 0x68, 0xB7, 0xC1, 0x00, 0x68, 0xB7, 0x5F, 0x00, 0x68, 0xB7, 0x80,
0x00, 0x68, 0xB7, 0xF9, 0x00, 0x68, 0xB7, 0x5D, 0x00, 0x68, 0xB7, 0x56, 0x00, 0x68, 0xB7, 0x5C,
0x00, 0x68, 0xB7, 0x5E, 0x00, 0x6C, 0xBE, 0xE3, 0x35, 0x51, 0x90, 0x95, 0xD6, 0x0C, 0x1A, 0xE2,
0xD9, 0x0B, 0x17, 0x75, 0xD7, 0x0C, 0x19, 0x00, 0xD7, 0x0C, 0x19, 0x79, 0xD7, 0x0C, 0x19, 0xF1,
0x00, 0x68, 0xB7, 0xC7, 0x00, 0x68, 0xB7, 0xFE, 0x00, 0x68, 0xB7, 0xFD, 0x00, 0x68, 0xB7, 0xFE,
0x00, 0x68, 0xB7, 0xF6, 0x00, 0x68, 0xB7, 0x83, 0x00, 0x68, 0xB7, 0xEE, 0x00, 0x68, 0xB7, 0xFB,
0x00, 0x68, 0xB7, 0xFC, 0x00, 0x6C, 0xBF, 0xFF, 0x3E, 0x4D, 0x89, 0x79, 0xD9, 0x0B, 0x18, 0xE1,
0xD9, 0x0B, 0x17, 0x7D, 0xD7, 0x0C, 0x19, 0x00, 0xD7, 0x0C, 0x19, 0x65, 0xD7, 0x0C, 0x19, 0xFB,
0x00, 0x68, 0xB7, 0xD5, 0x00, 0x68, 0xB7, 0xA9, 0x00, 0x68, 0xB7, 0x26, 0x00, 0x68, 0xB7, 0x56,
0x00, 0x68, 0xB7, 0xFC, 0x00, 0x68, 0xB7, 0x4F, 0x00, 0x68, 0xB7, 0x16, 0x00, 0x68, 0xB7, 0x17,
0x00, 0x68, 0xB7, 0x1D, 0x00, 0x6B, 0xBC, 0xE0, 0x2B, 0x55, 0x97, 0xAC, 0xD3, 0x0E, 0x1C, 0xE4,
0xDA, 0x0B, 0x17, 0x7C, 0xD7, 0x0C, 0x19, 0x00, 0xD7, 0x0C, 0x19, 0x98, 0xD7, 0x0C, 0x19, 0xEB,
0x00, 0x68, 0xB7, 0xE2, 0x00, 0x68, 0xB7, 0x9E, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x35,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0x8C, 0x00, 0x68, 0xB7, 0xB4, 0x00, 0x68, 0xB7, 0xB8,
0x00, 0x68, 0xB7, 0xBB, 0x00, 0x6C, 0xBE, 0xFF, 0x3E, 0x4E, 0x8A, 0x80, 0xDA, 0x0A, 0x17, 0xE2,
0xDB, 0x0A, 0x16, 0xE6, 0xD8, 0x0B, 0x18, 0xC3, 0xD9, 0x0B, 0x17, 0xFF, 0xDA, 0x0B, 0x17, 0x93,
0x00, 0x68, 0xB7, 0x8B, 0x00, 0x68, 0xB7, 0x62, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x23,
0x00, 0x68, 0xB7, 0x9B, 0x00, 0x68, 0xB7, 0x67, 0x00, 0x68, 0xB7, 0xA9, 0x00, 0x68, 0xB7, 0xB0,
0x00, 0x68, 0xB7, 0xB1, 0x00, 0x6C, 0xBF, 0x84, 0x6A, 0x3B, 0x6A, 0x0D, 0xE7, 0x05, 0x0D, 0x8E,
0xDA, 0x0B, 0x17, 0xAA, 0xDC, 0x0A, 0x15, 0xB1, 0xD4, 0x0D, 0x1B, 0x89, 0xCD, 0x10, 0x20, 0x11,
0x00, 0x68, 0xB7, 0x1A, 0x00, 0x68, 0xB7, 0x0F, 0x00, 0x68, 0xB7, 0x16, 0x00, 0x68, 0xB7, 0x0B,
0x00, 0x68, 0xB7, 0x16, 0x00, 0x68, 0xB7, 0x25, 0x00, 0x68, 0xB7, 0x36, 0x00, 0x68, 0xB7, 0x27,
0x00, 0x68, 0xB7, 0x15, 0x00, 0x68, 0xB8, 0x1C, 0x10, 0x62, 0xAD, 0x21, 0x4B, 0x48, 0x80, 0x10,
0x41, 0x4C, 0x87, 0x19, 0x4A, 0x49, 0x81, 0x0F, 0x30, 0x53, 0x94, 0x24, 0x18, 0x5E, 0xA6, 0x03,
0x00, 0x68, 0xB7, 0x73, 0x00, 0x68, 0xB7, 0x8C, 0x00, 0x68, 0xB7, 0x90, 0x00, 0x68, 0xB7, 0x5B,
0x00, 0x68, 0xB7, 0x6E, 0x00, 0x68, 0xB7, 0xB0, 0x00, 0x68, 0xB7, 0xBB, 0x00, 0x68, 0xB7, 0x70,
0x00, 0x68, 0xB7, 0x92, 0x00, 0x68, 0xB7, 0x88, 0x00, 0x69, 0xB9, 0xAF, 0x00, 0x6D, 0xBF, 0x44,
0x00, 0x6C, 0xBE, 0x8A, 0x00, 0x6D, 0xBF, 0x7E, 0x00, 0x6B, 0xBD, 0xB1, 0x00, 0x6A, 0xBB, 0x45,
0x00, 0x68, 0xB7, 0x73, 0x00, 0x68, 0xB7, 0x7F, 0x00, 0x68, 0xB7, 0xA1, 0x00, 0x68, 0xB7, 0x25,
0x00, 0x68, 0xB7, 0x73, 0x00, 0x68, 0xB7, 0xB7, 0x00, 0x68, 0xB7, 0xAA, 0x00, 0x68, 0xB7, 0x45,
0x00, 0x68, 0xB7, 0xA2, 0x00, 0x68, 0xB7, 0xA4, 0x00, 0x68, 0xB7, 0xA9, 0x00, 0x68, 0xB7, 0x51,
0x00, 0x68, 0xB7, 0x88, 0x00, 0x68, 0xB7, 0x99, 0x00, 0x68, 0xB7, 0xB5, 0x00, 0x68, 0xB7, 0x60,
0x00, 0x68, 0xB7, 0x88, 0x00, 0x68, 0xB7, 0x5F, 0x00, 0x68, 0xB7, 0xD0, 0x00, 0x68, 0xB7, 0x15,
0x00, 0x68, 0xB7, 0x87, 0x00, 0x68, 0xB7, 0x9F, 0x00, 0x68, 0xB7, 0xB0, 0x00, 0x68, 0xB7, 0x8E,
0x00, 0x68, 0xB7, 0xB5, 0x00, 0x68, 0xB7, 0x93, 0x00, 0x68, 0xB7, 0xAD, 0x00, 0x68, 0xB7, 0x7F,
0x00, 0x68, 0xB7, 0xA9, 0x00, 0x68, 0xB7, 0x63, 0x00, 0x68, 0xB7, 0xD2, 0x00, 0x68, 0xB7, 0x54,
0x00, 0x68, 0xB7, 0x6E, 0x00, 0x68, 0xB7, 0x70, 0x00, 0x68, 0xB7, 0x5E, 0x00, 0x68, 0xB7, 0x5E,
0x00, 0x68, 0xB7, 0x5D, 0x00, 0x68, 0xB7, 0x20, 0x00, 0x68, 0xB7, 0x93, 0x00, 0x68, 0xB7, 0x50,
0x00, 0x68, 0xB7, 0x63, 0x00, 0x68, 0xB7, 0x2F, 0x00, 0x68, 0xB7, 0x56, 0x00, 0x68, 0xB7, 0x46,
0x00, 0x68, 0xB7, 0x7F, 0x00, 0x68, 0xB7, 0x61, 0x00, 0x68, 0xB7, 0x88, 0x00, 0x68, 0xB7, 0x5D,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00
};
unsigned char icon_32x32_data[] =
{
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0x00, 0x68, 0xB7, 0x93, 0x00, 0x68, 0xB7, 0xEE, 0x00, 0x68, 0xB7, 0xEA, 0x00, 0x68, 0xB7, 0x31,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x50,
0x00, 0x68, 0xB7, 0xED, 0x00, 0x68, 0xB7, 0xEE, 0x00, 0x68, 0xB7, 0x69, 0x00, 0x68, 0xB7, 0x7B,
0x00, 0x68, 0xB7, 0xEE, 0x00, 0x68, 0xB7, 0xED, 0x00, 0x68, 0xB7, 0xED, 0x00, 0x68, 0xB7, 0xED,
0x00, 0x68, 0xB7, 0xED, 0x00, 0x68, 0xB7, 0xEE, 0x00, 0x68, 0xB7, 0xE9, 0x00, 0x6A, 0xBB, 0x9C,
0x1C, 0x5C, 0xA3, 0x09, 0xC9, 0x12, 0x23, 0x03, 0xDB, 0x0A, 0x16, 0xBD, 0xD7, 0x0C, 0x19, 0xE8,
0xD7, 0x0C, 0x19, 0xE8, 0xD7, 0x0C, 0x19, 0xE9, 0xD7, 0x0C, 0x19, 0xE9, 0xD7, 0x0C, 0x19, 0xEA,
0xD7, 0x0C, 0x19, 0xDF, 0xD7, 0x0C, 0x19, 0x92, 0xD7, 0x0C, 0x19, 0x0E, 0xD7, 0x0C, 0x19, 0x00,
0x00, 0x68, 0xB7, 0xA1, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0x36,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x58,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0x73, 0x00, 0x68, 0xB7, 0x8C,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB8, 0xFF,
0x00, 0x6B, 0xBC, 0x76, 0x8E, 0x2B, 0x4F, 0x00, 0xE3, 0x07, 0x11, 0xD5, 0xD7, 0x0C, 0x19, 0xFF,
0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF,
0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xA2, 0xD7, 0x0C, 0x19, 0x01,
0x00, 0x68, 0xB7, 0x9E, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFB, 0x00, 0x68, 0xB7, 0x35,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x56,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0x74, 0x00, 0x68, 0xB7, 0x61,
0x00, 0x68, 0xB7, 0xBB, 0x00, 0x68, 0xB7, 0xBB, 0x00, 0x68, 0xB7, 0xBB, 0x00, 0x68, 0xB7, 0xBB,
0x00, 0x68, 0xB7, 0xBB, 0x00, 0x68, 0xB7, 0xBD, 0x00, 0x68, 0xB7, 0xF2, 0x00, 0x68, 0xB7, 0xFF,
0x00, 0x6E, 0xC1, 0xD9, 0x65, 0x3D, 0x6D, 0x10, 0xE4, 0x06, 0x0F, 0xCD, 0xD7, 0x0C, 0x19, 0xFF,
0xD7, 0x0C, 0x19, 0xFB, 0xD7, 0x0C, 0x19, 0xE2, 0xD7, 0x0C, 0x19, 0xE0, 0xD7, 0x0C, 0x19, 0xE3,
0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0x44,
0x00, 0x68, 0xB7, 0x9E, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFB, 0x00, 0x68, 0xB7, 0x32,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x54,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0x7C, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x8F, 0x00, 0x68, 0xB7, 0xFF,
0x00, 0x6D, 0xC0, 0xF7, 0x55, 0x44, 0x7A, 0x30, 0xE0, 0x09, 0x13, 0xC9, 0xD8, 0x0C, 0x18, 0xFF,
0xD7, 0x0C, 0x19, 0xE1, 0xD7, 0x0C, 0x19, 0x16, 0xD7, 0x0C, 0x19, 0x0B, 0xD7, 0x0C, 0x19, 0x0C,
0xD7, 0x0C, 0x19, 0x6E, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0x9A,
0x00, 0x68, 0xB7, 0x9E, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFB, 0x00, 0x68, 0xB7, 0x3B,
0x00, 0x68, 0xB7, 0x08, 0x00, 0x68, 0xB7, 0x08, 0x00, 0x68, 0xB7, 0x08, 0x00, 0x68, 0xB7, 0x5B,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0x7B, 0x00, 0x68, 0xB7, 0x04,
0x00, 0x68, 0xB7, 0x0D, 0x00, 0x68, 0xB7, 0x0D, 0x00, 0x68, 0xB7, 0x0D, 0x00, 0x68, 0xB7, 0x0D,
0x00, 0x68, 0xB7, 0x0D, 0x00, 0x68, 0xB7, 0x0F, 0x00, 0x68, 0xB7, 0xA4, 0x00, 0x68, 0xB7, 0xFF,
0x00, 0x6D, 0xC0, 0xF8, 0x53, 0x44, 0x7A, 0x34, 0xDF, 0x09, 0x13, 0xC8, 0xD8, 0x0C, 0x18, 0xFF,
0xD7, 0x0C, 0x19, 0xE0, 0xD7, 0x0C, 0x19, 0x07, 0xD7, 0x0C, 0x19, 0x00, 0xD7, 0x0C, 0x19, 0x00,
0xD7, 0x0C, 0x19, 0x08, 0xD7, 0x0C, 0x19, 0xE1, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xCC,
0x00, 0x68, 0xB7, 0x9E, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFE, 0x00, 0x68, 0xB7, 0xDF,
0x00, 0x68, 0xB7, 0xD6, 0x00, 0x68, 0xB7, 0xD6, 0x00, 0x68, 0xB7, 0xD6, 0x00, 0x68, 0xB7, 0xE4,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0x6E, 0x00, 0x68, 0xB7, 0x4F,
0x00, 0x68, 0xB7, 0xEF, 0x00, 0x68, 0xB7, 0xEE, 0x00, 0x68, 0xB7, 0xEE, 0x00, 0x68, 0xB7, 0xEE,
0x00, 0x68, 0xB7, 0xEE, 0x00, 0x68, 0xB7, 0xEF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF,
0x00, 0x6E, 0xC0, 0xD2, 0x68, 0x3C, 0x6B, 0x12, 0xE3, 0x07, 0x10, 0xCD, 0xD7, 0x0C, 0x19, 0xFF,
0xD7, 0x0C, 0x19, 0xE0, 0xD7, 0x0C, 0x19, 0x0B, 0xD7, 0x0C, 0x19, 0x00, 0xD7, 0x0C, 0x19, 0x00,
0xD7, 0x0C, 0x19, 0x00, 0xD7, 0x0C, 0x19, 0xBA, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xE8,
0x00, 0x68, 0xB7, 0x9E, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0x6C, 0x00, 0x68, 0xB7, 0x5A,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF,
0x00, 0x6C, 0xBF, 0xA6, 0x7A, 0x34, 0x5D, 0x01, 0xE5, 0x06, 0x0F, 0xCF, 0xD7, 0x0C, 0x19, 0xFF,
0xD7, 0x0C, 0x19, 0xE0, 0xD7, 0x0C, 0x19, 0x0B, 0xD7, 0x0C, 0x19, 0x00, 0xD7, 0x0C, 0x19, 0x00,
0xD7, 0x0C, 0x19, 0x00, 0xD7, 0x0C, 0x19, 0xB4, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xEF,
0x00, 0x68, 0xB7, 0x9E, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFE, 0x00, 0x68, 0xB7, 0xD8,
0x00, 0x68, 0xB7, 0xCF, 0x00, 0x68, 0xB7, 0xCF, 0x00, 0x68, 0xB7, 0xCF, 0x00, 0x68, 0xB7, 0xE0,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0x71, 0x00, 0x68, 0xB7, 0x3D,
0x00, 0x68, 0xB7, 0xB8, 0x00, 0x68, 0xB7, 0xB7, 0x00, 0x68, 0xB7, 0xB7, 0x00, 0x68, 0xB7, 0xB7,
0x00, 0x68, 0xB7, 0xB7, 0x00, 0x68, 0xB7, 0xBA, 0x00, 0x68, 0xB7, 0xF5, 0x00, 0x68, 0xB7, 0xFF,
0x00, 0x6E, 0xC1, 0xEE, 0x58, 0x42, 0x76, 0x26, 0xE0, 0x08, 0x12, 0xCA, 0xD8, 0x0C, 0x19, 0xFF,
0xD7, 0x0C, 0x19, 0xE0, 0xD7, 0x0C, 0x19, 0x0B, 0xD7, 0x0C, 0x19, 0x00, 0xD7, 0x0C, 0x19, 0x00,
0xD7, 0x0C, 0x19, 0x01, 0xD7, 0x0C, 0x19, 0xCA, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xE8,
0x00, 0x68, 0xB7, 0x9E, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xF9, 0x00, 0x68, 0xB7, 0x35,
0x00, 0x68, 0xB7, 0x06, 0x00, 0x68, 0xB7, 0x06, 0x00, 0x68, 0xB7, 0x06, 0x00, 0x68, 0xB7, 0x61,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0x7C, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0xA9, 0x00, 0x68, 0xB7, 0xFF,
0x00, 0x6D, 0xBF, 0xFE, 0x48, 0x49, 0x82, 0x4C, 0xDC, 0x0A, 0x16, 0xC6, 0xD8, 0x0B, 0x18, 0xFF,
0xD7, 0x0C, 0x19, 0xE0, 0xD7, 0x0C, 0x19, 0x07, 0xD7, 0x0C, 0x19, 0x00, 0xD7, 0x0C, 0x19, 0x00,
0xD7, 0x0C, 0x19, 0x1A, 0xD7, 0x0C, 0x19, 0xF2, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xCB,
0x00, 0x68, 0xB7, 0x9E, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xF9, 0x00, 0x68, 0xB7, 0x2D,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x5B,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0x7C, 0x00, 0x68, 0xB7, 0x04,
0x00, 0x68, 0xB7, 0x06, 0x00, 0x68, 0xB7, 0x06, 0x00, 0x68, 0xB7, 0x06, 0x00, 0x68, 0xB7, 0x06,
0x00, 0x68, 0xB7, 0x06, 0x00, 0x68, 0xB7, 0x08, 0x00, 0x68, 0xB7, 0xB2, 0x00, 0x68, 0xB7, 0xFF,
0x00, 0x6D, 0xC0, 0xFC, 0x4D, 0x47, 0x7F, 0x3F, 0xDD, 0x09, 0x14, 0xC7, 0xD8, 0x0C, 0x18, 0xFF,
0xD7, 0x0C, 0x19, 0xE1, 0xD7, 0x0C, 0x19, 0x16, 0xD7, 0x0C, 0x19, 0x0B, 0xD7, 0x0C, 0x19, 0x0E,
0xD7, 0x0C, 0x19, 0x8C, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0x97,
0x00, 0x68, 0xB7, 0x9E, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xF9, 0x00, 0x68, 0xB7, 0x30,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x5D,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0x73, 0x00, 0x68, 0xB7, 0x72,
0x00, 0x68, 0xB7, 0xD8, 0x00, 0x68, 0xB7, 0xD8, 0x00, 0x68, 0xB7, 0xD8, 0x00, 0x68, 0xB7, 0xD8,
0x00, 0x68, 0xB7, 0xD8, 0x00, 0x68, 0xB7, 0xDA, 0x00, 0x68, 0xB7, 0xFC, 0x00, 0x68, 0xB7, 0xFF,
0x00, 0x6E, 0xC2, 0xDC, 0x63, 0x3E, 0x6E, 0x13, 0xE4, 0x07, 0x0F, 0xCD, 0xD7, 0x0C, 0x19, 0xFF,
0xD7, 0x0C, 0x19, 0xFB, 0xD7, 0x0C, 0x19, 0xE3, 0xD7, 0x0C, 0x19, 0xE1, 0xD7, 0x0C, 0x19, 0xE5,
0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0x3F,
0x00, 0x68, 0xB7, 0xA4, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0x32,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x60,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0x76, 0x00, 0x68, 0xB7, 0x90,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB8, 0xFF,
0x00, 0x6A, 0xBA, 0x65, 0x96, 0x27, 0x49, 0x00, 0xE1, 0x07, 0x11, 0xD8, 0xD7, 0x0C, 0x19, 0xFF,
0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF,
0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0x91, 0xD7, 0x0C, 0x19, 0x00,
0x00, 0x68, 0xB7, 0x7E, 0x00, 0x68, 0xB7, 0xCB, 0x00, 0x68, 0xB7, 0xC6, 0x00, 0x68, 0xB7, 0x26,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x4A,
0x00, 0x68, 0xB7, 0xCB, 0x00, 0x68, 0xB7, 0xCB, 0x00, 0x68, 0xB7, 0x5A, 0x00, 0x68, 0xB7, 0x6B,
0x00, 0x68, 0xB7, 0xCB, 0x00, 0x68, 0xB7, 0xCA, 0x00, 0x68, 0xB7, 0xCB, 0x00, 0x68, 0xB7, 0xCB,
0x00, 0x68, 0xB7, 0xCB, 0x00, 0x68, 0xB7, 0xCB, 0x00, 0x68, 0xB7, 0xC0, 0x00, 0x6B, 0xBC, 0x6A,
0x2B, 0x56, 0x98, 0x00, 0xDB, 0x0A, 0x16, 0x03, 0xE1, 0x07, 0x12, 0xA5, 0xD8, 0x0B, 0x18, 0xC9,
0xDC, 0x0A, 0x16, 0xC9, 0xDF, 0x08, 0x13, 0xC9, 0xDB, 0x0A, 0x16, 0xC9, 0xDA, 0x0B, 0x17, 0xC9,
0xE0, 0x08, 0x13, 0xBE, 0xE1, 0x08, 0x11, 0x73, 0xE2, 0x07, 0x11, 0x04, 0xE3, 0x07, 0x10, 0x00,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x04, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x02,
0x00, 0x68, 0xB7, 0x05, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x02,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x03,
0x00, 0x68, 0xB7, 0x04, 0x00, 0x68, 0xB7, 0x02, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x6A, 0xBA, 0x00,
0x1C, 0x5E, 0xA6, 0x00, 0x6B, 0x3B, 0x69, 0x00, 0xB6, 0x1A, 0x32, 0x00, 0xDC, 0x0A, 0x16, 0x04,
0xC2, 0x15, 0x29, 0x03, 0xA6, 0x22, 0x3F, 0x00, 0xC8, 0x13, 0x24, 0x02, 0xD2, 0x0E, 0x1D, 0x04,
0xA2, 0x23, 0x40, 0x00, 0x94, 0x29, 0x4B, 0x00, 0x87, 0x2E, 0x54, 0x00, 0x61, 0x3F, 0x70, 0x00,
0x00, 0x68, 0xB7, 0x17, 0x00, 0x68, 0xB7, 0x11, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x23, 0x00, 0x68, 0xB7, 0x27, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x2D, 0x00, 0x68, 0xB7, 0x20, 0x00, 0x68, 0xB7, 0x30, 0x00, 0x68, 0xB7, 0x06,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x32, 0x00, 0x68, 0xB7, 0x09,
0x00, 0x6A, 0xBA, 0x00, 0x00, 0x6D, 0xBF, 0x35, 0x09, 0x65, 0xB1, 0x23, 0x3D, 0x4E, 0x8A, 0x00,
0x19, 0x5E, 0xA5, 0x05, 0x02, 0x69, 0xB9, 0x3D, 0x1E, 0x5B, 0xA1, 0x04, 0x2B, 0x56, 0x98, 0x00,
0x01, 0x68, 0xB7, 0x33, 0x00, 0x69, 0xBA, 0x22, 0x00, 0x6B, 0xBC, 0x00, 0x00, 0x6E, 0xC1, 0x00,
0x00, 0x68, 0xB7, 0x48, 0x00, 0x68, 0xB7, 0xC9, 0x00, 0x68, 0xB7, 0x69, 0x00, 0x68, 0xB7, 0x88,
0x00, 0x68, 0xB7, 0x86, 0x00, 0x68, 0xB7, 0xA2, 0x00, 0x68, 0xB7, 0x97, 0x00, 0x68, 0xB7, 0x07,
0x00, 0x68, 0xB7, 0x20, 0x00, 0x68, 0xB7, 0xA0, 0x00, 0x68, 0xB7, 0xCA, 0x00, 0x68, 0xB7, 0x5D,
0x00, 0x68, 0xB7, 0xD5, 0x00, 0x68, 0xB7, 0xBE, 0x00, 0x68, 0xB7, 0xED, 0x00, 0x68, 0xB7, 0x4C,
0x00, 0x68, 0xB7, 0x67, 0x00, 0x68, 0xB7, 0xBF, 0x00, 0x68, 0xB7, 0xDA, 0x00, 0x68, 0xB7, 0x5F,
0x00, 0x68, 0xB7, 0x68, 0x00, 0x68, 0xB7, 0xBD, 0x00, 0x69, 0xB9, 0x96, 0x00, 0x6C, 0xBE, 0x00,
0x00, 0x6A, 0xBB, 0x15, 0x00, 0x69, 0xB8, 0xEC, 0x00, 0x6A, 0xBB, 0x3B, 0x00, 0x6B, 0xBC, 0x17,
0x00, 0x69, 0xB8, 0xC5, 0x00, 0x69, 0xB8, 0xA4, 0x00, 0x68, 0xB8, 0x31, 0x00, 0x68, 0xB7, 0x1C,
0x00, 0x68, 0xB7, 0x5A, 0x00, 0x68, 0xB7, 0x74, 0x00, 0x68, 0xB7, 0x74, 0x00, 0x68, 0xB7, 0xB3,
0x00, 0x68, 0xB7, 0x3A, 0x00, 0x68, 0xB7, 0xC3, 0x00, 0x68, 0xB7, 0xCA, 0x00, 0x68, 0xB7, 0x06,
0x00, 0x68, 0xB7, 0x68, 0x00, 0x68, 0xB7, 0xC9, 0x00, 0x68, 0xB7, 0xE2, 0x00, 0x68, 0xB7, 0x8D,
0x00, 0x68, 0xB7, 0xE2, 0x00, 0x68, 0xB7, 0x8A, 0x00, 0x68, 0xB7, 0xC6, 0x00, 0x68, 0xB7, 0x15,
0x00, 0x68, 0xB7, 0x4B, 0x00, 0x68, 0xB7, 0xDD, 0x00, 0x68, 0xB7, 0x87, 0x00, 0x68, 0xB7, 0x24,
0x00, 0x68, 0xB7, 0xCA, 0x00, 0x68, 0xB7, 0xE8, 0x00, 0x68, 0xB7, 0x90, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x7D, 0x00, 0x68, 0xB7, 0xFB, 0x00, 0x68, 0xB7, 0xCC, 0x00, 0x68, 0xB7, 0x93,
0x00, 0x68, 0xB7, 0xE4, 0x00, 0x68, 0xB7, 0xD6, 0x00, 0x68, 0xB7, 0x9D, 0x00, 0x68, 0xB7, 0x50,
0x00, 0x68, 0xB7, 0xAE, 0x00, 0x68, 0xB7, 0x9F, 0x00, 0x68, 0xB7, 0x91, 0x00, 0x68, 0xB7, 0xAD,
0x00, 0x68, 0xB7, 0x0B, 0x00, 0x68, 0xB7, 0xDA, 0x00, 0x68, 0xB7, 0x78, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x28, 0x00, 0x68, 0xB7, 0xA9, 0x00, 0x68, 0xB7, 0xDA, 0x00, 0x68, 0xB7, 0x67,
0x00, 0x68, 0xB7, 0xC4, 0x00, 0x68, 0xB7, 0xB7, 0x00, 0x68, 0xB7, 0x70, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x7C, 0x00, 0x68, 0xB7, 0xF5, 0x00, 0x68, 0xB7, 0xB5, 0x00, 0x68, 0xB7, 0x82,
0x00, 0x68, 0xB7, 0x4F, 0x00, 0x68, 0xB7, 0xBD, 0x00, 0x68, 0xB7, 0x95, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x32, 0x00, 0x68, 0xB7, 0xEC, 0x00, 0x68, 0xB7, 0x43, 0x00, 0x68, 0xB7, 0x12,
0x00, 0x68, 0xB7, 0xC6, 0x00, 0x68, 0xB7, 0xB2, 0x00, 0x68, 0xB7, 0x25, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x21, 0x00, 0x68, 0xB7, 0xC9, 0x00, 0x68, 0xB7, 0x47, 0x00, 0x68, 0xB7, 0x97,
0x00, 0x68, 0xB7, 0xAD, 0x00, 0x68, 0xB7, 0xE9, 0x00, 0x68, 0xB7, 0x21, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x42, 0x00, 0x68, 0xB7, 0xBF, 0x00, 0x68, 0xB7, 0xDC, 0x00, 0x68, 0xB7, 0x6D,
0x00, 0x68, 0xB7, 0xCC, 0x00, 0x68, 0xB7, 0x9D, 0x00, 0x68, 0xB7, 0x95, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x48, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xA9, 0x00, 0x68, 0xB7, 0x54,
0x00, 0x68, 0xB7, 0xC0, 0x00, 0x68, 0xB7, 0xC6, 0x00, 0x68, 0xB7, 0x95, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x1F, 0x00, 0x68, 0xB7, 0xED, 0x00, 0x68, 0xB7, 0xA3, 0x00, 0x68, 0xB7, 0xC3,
0x00, 0x68, 0xB7, 0xC9, 0x00, 0x68, 0xB7, 0xCB, 0x00, 0x68, 0xB7, 0xEC, 0x00, 0x68, 0xB7, 0x2C,
0x00, 0x68, 0xB7, 0x58, 0x00, 0x68, 0xB7, 0xC9, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x47,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0x8E, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x02,
0x00, 0x68, 0xB7, 0x3C, 0x00, 0x68, 0xB7, 0xB0, 0x00, 0x68, 0xB7, 0xCD, 0x00, 0x68, 0xB7, 0x72,
0x00, 0x68, 0xB7, 0xE7, 0x00, 0x68, 0xB7, 0x5D, 0x00, 0x68, 0xB7, 0xBB, 0x00, 0x68, 0xB7, 0x34,
0x00, 0x68, 0xB7, 0x7B, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xF9, 0x00, 0x68, 0xB7, 0x82,
0x00, 0x68, 0xB7, 0x68, 0x00, 0x68, 0xB7, 0xCA, 0x00, 0x68, 0xB7, 0xDD, 0x00, 0x68, 0xB7, 0x5A,
0x00, 0x68, 0xB7, 0xC5, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0x5A, 0x00, 0x68, 0xB7, 0x71,
0x00, 0x68, 0xB7, 0x96, 0x00, 0x68, 0xB7, 0x95, 0x00, 0x68, 0xB7, 0xCA, 0x00, 0x68, 0xB7, 0x0B,
0x00, 0x68, 0xB7, 0xC0, 0x00, 0x68, 0xB7, 0xAF, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x72,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xBC, 0x00, 0x68, 0xB7, 0x1D, 0x00, 0x68, 0xB7, 0x02,
0x00, 0x68, 0xB7, 0x54, 0x00, 0x68, 0xB7, 0xEC, 0x00, 0x68, 0xB7, 0xA5, 0x00, 0x68, 0xB7, 0x71,
0x00, 0x68, 0xB7, 0xE3, 0x00, 0x68, 0xB7, 0x7E, 0x00, 0x68, 0xB7, 0xC2, 0x00, 0x68, 0xB7, 0x7E,
0x00, 0x68, 0xB7, 0xA0, 0x00, 0x68, 0xB7, 0xDA, 0x00, 0x68, 0xB7, 0x7F, 0x00, 0x68, 0xB7, 0x73,
0x00, 0x68, 0xB7, 0x97, 0x00, 0x68, 0xB7, 0xDD, 0x00, 0x68, 0xB7, 0xB1, 0x00, 0x68, 0xB7, 0x1E,
0x00, 0x68, 0xB7, 0x54, 0x00, 0x68, 0xB7, 0xF1, 0x00, 0x68, 0xB7, 0x20, 0x00, 0x68, 0xB7, 0x04,
0x00, 0x68, 0xB7, 0xE7, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0x39, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x6B, 0x00, 0x68, 0xB7, 0xFD, 0x00, 0x68, 0xB7, 0x8D, 0x00, 0x68, 0xB7, 0xCB,
0x00, 0x68, 0xB7, 0x50, 0x00, 0x68, 0xB7, 0xD6, 0x00, 0x68, 0xB7, 0xE8, 0x00, 0x68, 0xB7, 0x1B,
0x00, 0x68, 0xB7, 0x3F, 0x00, 0x68, 0xB7, 0xDE, 0x00, 0x68, 0xB7, 0x13, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0xCC, 0x00, 0x68, 0xB7, 0xD1, 0x00, 0x68, 0xB7, 0xEC, 0x00, 0x68, 0xB7, 0x57,
0x00, 0x68, 0xB7, 0x35, 0x00, 0x68, 0xB7, 0xC4, 0x00, 0x68, 0xB7, 0x67, 0x00, 0x68, 0xB7, 0x04,
0x00, 0x68, 0xB7, 0x02, 0x00, 0x68, 0xB7, 0xBF, 0x00, 0x68, 0xB7, 0x98, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x6B, 0x00, 0x68, 0xB7, 0xFA, 0x00, 0x68, 0xB7, 0x43, 0x00, 0x68, 0xB7, 0x81,
0x00, 0x68, 0xB7, 0xC9, 0x00, 0x68, 0xB7, 0xEA, 0x00, 0x68, 0xB7, 0xCA, 0x00, 0x68, 0xB7, 0x2F,
0x00, 0x68, 0xB7, 0x20, 0x00, 0x68, 0xB7, 0x72, 0x00, 0x68, 0xB7, 0x77, 0x00, 0x68, 0xB7, 0x2E,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x24, 0x00, 0x68, 0xB7, 0x82, 0x00, 0x68, 0xB7, 0x0A,
0x00, 0x68, 0xB7, 0x8A, 0x00, 0x68, 0xB7, 0x4C, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x06,
0x00, 0x68, 0xB7, 0xA3, 0x00, 0x68, 0xB7, 0x53, 0x00, 0x68, 0xB7, 0x23, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0xAF, 0x00, 0x68, 0xB7, 0x5A, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0xA0, 0x00, 0x68, 0xB7, 0x78, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x80, 0x00, 0x68, 0xB7, 0xBB, 0x00, 0x68, 0xB7, 0x6A, 0x00, 0x68, 0xB7, 0x78,
0x00, 0x68, 0xB7, 0x0F, 0x00, 0x68, 0xB7, 0x37, 0x00, 0x68, 0xB7, 0xA9, 0x00, 0x68, 0xB7, 0x21,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00
};
unsigned char icon_48x48_data[] =
{
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0x00, 0x68, 0xB7, 0x6D, 0x00, 0x68, 0xB7, 0xFA, 0x00, 0x68, 0xB7, 0xEC, 0x00, 0x68, 0xB7, 0xF6,
0x00, 0x68, 0xB7, 0xAE, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x71,
0x00, 0x68, 0xB7, 0xFB, 0x00, 0x68, 0xB7, 0xEC, 0x00, 0x68, 0xB7, 0xF7, 0x00, 0x68, 0xB7, 0xA1,
0x00, 0x68, 0xB7, 0x05, 0x00, 0x68, 0xB7, 0xC7, 0x00, 0x68, 0xB7, 0xF3, 0x00, 0x68, 0xB7, 0xEC,
0x00, 0x68, 0xB7, 0xEC, 0x00, 0x68, 0xB7, 0xEC, 0x00, 0x68, 0xB7, 0xEC, 0x00, 0x68, 0xB7, 0xEC,
0x00, 0x68, 0xB7, 0xEC, 0x00, 0x68, 0xB7, 0xEC, 0x00, 0x68, 0xB7, 0xEC, 0x00, 0x68, 0xB7, 0xEE,
0x00, 0x68, 0xB7, 0xD0, 0x00, 0x69, 0xB8, 0x53, 0x00, 0x6A, 0xBA, 0x00, 0x91, 0x2A, 0x4C, 0x00,
0xE2, 0x07, 0x11, 0x01, 0xD7, 0x0C, 0x19, 0xAB, 0xD7, 0x0C, 0x19, 0xEC, 0xD7, 0x0C, 0x19, 0xE3,
0xD7, 0x0C, 0x19, 0xE4, 0xD7, 0x0C, 0x19, 0xE4, 0xD7, 0x0C, 0x19, 0xE6, 0xD7, 0x0C, 0x19, 0xE6,
0xD7, 0x0C, 0x19, 0xE8, 0xD7, 0x0C, 0x19, 0xE9, 0xD7, 0x0C, 0x19, 0xE4, 0xD7, 0x0C, 0x19, 0xB7,
0xD7, 0x0C, 0x19, 0x48, 0xD7, 0x0C, 0x19, 0x00, 0xD7, 0x0C, 0x19, 0x00, 0xD7, 0x0C, 0x19, 0x00,
0x00, 0x68, 0xB7, 0x76, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF,
0x00, 0x68, 0xB7, 0xBC, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x7A,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xAE,
0x00, 0x68, 0xB7, 0x06, 0x00, 0x68, 0xB7, 0xD7, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFC, 0x00, 0x6C, 0xBF, 0x4E, 0x3D, 0x4F, 0x8C, 0x00,
0xDA, 0x0B, 0x17, 0x02, 0xD9, 0x0B, 0x18, 0xC1, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF,
0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF,
0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF,
0xD7, 0x0C, 0x19, 0xFE, 0xD7, 0x0C, 0x19, 0x6A, 0xD7, 0x0C, 0x19, 0x00, 0xD7, 0x0C, 0x19, 0x00,
0x00, 0x68, 0xB7, 0x76, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF,
0x00, 0x68, 0xB7, 0xBC, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x7A,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xAE,
0x00, 0x68, 0xB7, 0x06, 0x00, 0x68, 0xB7, 0xD7, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x69, 0xB9, 0xD1, 0x0B, 0x64, 0xB0, 0x09,
0xBE, 0x17, 0x2C, 0x00, 0xDC, 0x0A, 0x15, 0xC1, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF,
0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF,
0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF,
0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xF9, 0xD7, 0x0C, 0x19, 0x42, 0xD7, 0x0C, 0x19, 0x00,
0x00, 0x68, 0xB7, 0x76, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF,
0x00, 0x68, 0xB7, 0xBC, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x7A,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xAF,
0x00, 0x68, 0xB7, 0x06, 0x00, 0x68, 0xB7, 0xCF, 0x00, 0x68, 0xB7, 0xFC, 0x00, 0x68, 0xB7, 0xF5,
0x00, 0x68, 0xB7, 0xF5, 0x00, 0x68, 0xB7, 0xF5, 0x00, 0x68, 0xB7, 0xF5, 0x00, 0x68, 0xB7, 0xF5,
0x00, 0x68, 0xB7, 0xF5, 0x00, 0x68, 0xB7, 0xF5, 0x00, 0x68, 0xB7, 0xF6, 0x00, 0x68, 0xB7, 0xFE,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x69, 0xB8, 0xFF, 0x00, 0x69, 0xB9, 0x4F,
0x99, 0x27, 0x48, 0x00, 0xE1, 0x08, 0x12, 0xC1, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF,
0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF,
0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF,
0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xBC, 0xD7, 0x0C, 0x19, 0x01,
0x00, 0x68, 0xB7, 0x76, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF,
0x00, 0x68, 0xB7, 0xBC, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x7A,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xB2,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x19, 0x00, 0x68, 0xB7, 0x21, 0x00, 0x68, 0xB7, 0x20,
0x00, 0x68, 0xB7, 0x20, 0x00, 0x68, 0xB7, 0x20, 0x00, 0x68, 0xB7, 0x20, 0x00, 0x68, 0xB7, 0x20,
0x00, 0x68, 0xB7, 0x20, 0x00, 0x68, 0xB7, 0x1F, 0x00, 0x68, 0xB7, 0x1B, 0x00, 0x68, 0xB7, 0xA3,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB8, 0xFF, 0x00, 0x6C, 0xBE, 0x8B,
0x7F, 0x32, 0x5A, 0x00, 0xE4, 0x06, 0x10, 0xC0, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF,
0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0x9F, 0xD7, 0x0C, 0x19, 0x53, 0xD7, 0x0C, 0x19, 0x5C,
0xD7, 0x0C, 0x19, 0x5A, 0xD7, 0x0C, 0x19, 0x5A, 0xD7, 0x0C, 0x19, 0xB4, 0xD7, 0x0C, 0x19, 0xFF,
0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFD, 0xD7, 0x0C, 0x19, 0x3E,
0x00, 0x68, 0xB7, 0x76, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF,
0x00, 0x68, 0xB7, 0xBC, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x7A,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xB2,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x55,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x6D, 0xC0, 0xAB,
0x75, 0x36, 0x61, 0x00, 0xE5, 0x06, 0x0F, 0xBF, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF,
0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0x67, 0xD7, 0x0C, 0x19, 0x00, 0xD7, 0x0C, 0x19, 0x00,
0xD7, 0x0C, 0x19, 0x00, 0xD7, 0x0C, 0x19, 0x00, 0xD7, 0x0C, 0x19, 0x0F, 0xD7, 0x0C, 0x19, 0xD0,
0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0x83,
0x00, 0x68, 0xB7, 0x76, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF,
0x00, 0x68, 0xB7, 0xBB, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x79,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xB2,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x6A,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x6D, 0xC0, 0xAD,
0x75, 0x36, 0x62, 0x00, 0xE5, 0x06, 0x0F, 0xBF, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF,
0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0x67, 0xD7, 0x0C, 0x19, 0x00, 0xD7, 0x0C, 0x19, 0x00,
0xD7, 0x0C, 0x19, 0x00, 0xD7, 0x0C, 0x19, 0x00, 0xD7, 0x0C, 0x19, 0x00, 0xD7, 0x0C, 0x19, 0x76,
0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xB4,
0x00, 0x68, 0xB7, 0x76, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF,
0x00, 0x68, 0xB7, 0xD9, 0x00, 0x68, 0xB7, 0x71, 0x00, 0x68, 0xB7, 0x70, 0x00, 0x68, 0xB7, 0x71,
0x00, 0x68, 0xB7, 0x71, 0x00, 0x68, 0xB7, 0x71, 0x00, 0x68, 0xB7, 0x67, 0x00, 0x68, 0xB7, 0xB5,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xB2,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x51, 0x00, 0x68, 0xB7, 0x9D, 0x00, 0x68, 0xB7, 0x94,
0x00, 0x68, 0xB7, 0x94, 0x00, 0x68, 0xB7, 0x94, 0x00, 0x68, 0xB7, 0x94, 0x00, 0x68, 0xB7, 0x94,
0x00, 0x68, 0xB7, 0x94, 0x00, 0x68, 0xB7, 0x93, 0x00, 0x68, 0xB7, 0x95, 0x00, 0x68, 0xB7, 0xE3,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB8, 0xFF, 0x00, 0x6C, 0xBE, 0x8C,
0x7E, 0x33, 0x5B, 0x00, 0xE4, 0x06, 0x0F, 0xC0, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF,
0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0x67, 0xD7, 0x0C, 0x19, 0x00, 0xD7, 0x0C, 0x19, 0x00,
0xD7, 0x0C, 0x19, 0x00, 0xD7, 0x0C, 0x19, 0x00, 0xD7, 0x0C, 0x19, 0x00, 0xD7, 0x0C, 0x19, 0x43,
0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xD5,
0x00, 0x68, 0xB7, 0x76, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xB1,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x8E, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x69, 0xB9, 0xFB, 0x00, 0x68, 0xB7, 0x41,
0xA0, 0x24, 0x42, 0x00, 0xE0, 0x08, 0x12, 0xC1, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF,
0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0x67, 0xD7, 0x0C, 0x19, 0x00, 0xD7, 0x0C, 0x19, 0x00,
0xD7, 0x0C, 0x19, 0x00, 0xD7, 0x0C, 0x19, 0x00, 0xD7, 0x0C, 0x19, 0x00, 0xD7, 0x0C, 0x19, 0x2A,
0xD7, 0x0C, 0x19, 0xF8, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xE9,
0x00, 0x68, 0xB7, 0x76, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xB1,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x8E, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x69, 0xB9, 0xE1, 0x08, 0x65, 0xB1, 0x10,
0xB8, 0x19, 0x30, 0x00, 0xDD, 0x09, 0x15, 0xC1, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF,
0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0x67, 0xD7, 0x0C, 0x19, 0x00, 0xD7, 0x0C, 0x19, 0x00,
0xD7, 0x0C, 0x19, 0x00, 0xD7, 0x0C, 0x19, 0x00, 0xD7, 0x0C, 0x19, 0x00, 0xD7, 0x0C, 0x19, 0x27,
0xD7, 0x0C, 0x19, 0xF6, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xEF,
0x00, 0x68, 0xB7, 0x76, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xB1,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x8E, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x69, 0xB8, 0xFF, 0x00, 0x6A, 0xBA, 0x66,
0x90, 0x2B, 0x4E, 0x00, 0xE2, 0x07, 0x11, 0xC1, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF,
0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0x67, 0xD7, 0x0C, 0x19, 0x00, 0xD7, 0x0C, 0x19, 0x00,
0xD7, 0x0C, 0x19, 0x00, 0xD7, 0x0C, 0x19, 0x00, 0xD7, 0x0C, 0x19, 0x00, 0xD7, 0x0C, 0x19, 0x35,
0xD7, 0x0C, 0x19, 0xFB, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xEB,
0x00, 0x68, 0xB7, 0x76, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF,
0x00, 0x68, 0xB7, 0xDE, 0x00, 0x68, 0xB7, 0x91, 0x00, 0x68, 0xB7, 0x91, 0x00, 0x68, 0xB7, 0x92,
0x00, 0x68, 0xB7, 0x92, 0x00, 0x68, 0xB7, 0x92, 0x00, 0x68, 0xB7, 0x8B, 0x00, 0x68, 0xB7, 0xCA,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xB2,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x3D, 0x00, 0x68, 0xB7, 0x77, 0x00, 0x68, 0xB7, 0x70,
0x00, 0x68, 0xB7, 0x70, 0x00, 0x68, 0xB7, 0x70, 0x00, 0x68, 0xB7, 0x70, 0x00, 0x68, 0xB7, 0x70,
0x00, 0x68, 0xB7, 0x70, 0x00, 0x68, 0xB7, 0x6E, 0x00, 0x68, 0xB7, 0x72, 0x00, 0x68, 0xB7, 0xDC,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x6E, 0xC1, 0xAD,
0x71, 0x38, 0x65, 0x00, 0xE5, 0x06, 0x0E, 0xBF, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF,
0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0x67, 0xD7, 0x0C, 0x19, 0x00, 0xD7, 0x0C, 0x19, 0x00,
0xD7, 0x0C, 0x19, 0x00, 0xD7, 0x0C, 0x19, 0x00, 0xD7, 0x0C, 0x19, 0x00, 0xD7, 0x0C, 0x19, 0x57,
0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xDA,
0x00, 0x68, 0xB7, 0x76, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF,
0x00, 0x68, 0xB7, 0xB2, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x83,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xB2,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x85,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x6E, 0xC2, 0xCC,
0x64, 0x3E, 0x6E, 0x07, 0xE4, 0x06, 0x0F, 0xBE, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF,
0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0x67, 0xD7, 0x0C, 0x19, 0x00, 0xD7, 0x0C, 0x19, 0x00,
0xD7, 0x0C, 0x19, 0x00, 0xD7, 0x0C, 0x19, 0x00, 0xD7, 0x0C, 0x19, 0x00, 0xD7, 0x0C, 0x19, 0x8F,
0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xBB,
0x00, 0x68, 0xB7, 0x76, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF,
0x00, 0x68, 0xB7, 0xB2, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x83,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xB2,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x79,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x6E, 0xC2, 0xC9,
0x66, 0x3D, 0x6C, 0x06, 0xE4, 0x06, 0x0F, 0xBE, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF,
0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0x67, 0xD7, 0x0C, 0x19, 0x00, 0xD7, 0x0C, 0x19, 0x00,
0xD7, 0x0C, 0x19, 0x00, 0xD7, 0x0C, 0x19, 0x00, 0xD7, 0x0C, 0x19, 0x17, 0xD7, 0x0C, 0x19, 0xE0,
0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0x8D,
0x00, 0x68, 0xB7, 0x76, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF,
0x00, 0x68, 0xB7, 0xB2, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x83,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xB2,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x14, 0x00, 0x68, 0xB7, 0x1A, 0x00, 0x68, 0xB7, 0x19,
0x00, 0x68, 0xB7, 0x19, 0x00, 0x68, 0xB7, 0x19, 0x00, 0x68, 0xB7, 0x19, 0x00, 0x68, 0xB7, 0x19,
0x00, 0x68, 0xB7, 0x19, 0x00, 0x68, 0xB7, 0x17, 0x00, 0x68, 0xB7, 0x17, 0x00, 0x68, 0xB7, 0xB7,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x6E, 0xC1, 0xA8,
0x74, 0x37, 0x63, 0x00, 0xE5, 0x06, 0x0E, 0xBF, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF,
0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0x7F, 0xD7, 0x0C, 0x19, 0x1B, 0xD7, 0x0C, 0x19, 0x28,
0xD7, 0x0C, 0x19, 0x26, 0xD7, 0x0C, 0x19, 0x28, 0xD7, 0x0C, 0x19, 0xA4, 0xD7, 0x0C, 0x19, 0xFF,
0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0x4A,
0x00, 0x68, 0xB7, 0x76, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF,
0x00, 0x68, 0xB7, 0xB2, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x83,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xAE,
0x00, 0x68, 0xB7, 0x07, 0x00, 0x68, 0xB7, 0xD0, 0x00, 0x68, 0xB7, 0xF8, 0x00, 0x68, 0xB7, 0xF2,
0x00, 0x68, 0xB7, 0xF2, 0x00, 0x68, 0xB7, 0xF2, 0x00, 0x68, 0xB7, 0xF2, 0x00, 0x68, 0xB7, 0xF2,
0x00, 0x68, 0xB7, 0xF2, 0x00, 0x68, 0xB7, 0xF2, 0x00, 0x68, 0xB7, 0xF3, 0x00, 0x68, 0xB7, 0xFE,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x69, 0xB8, 0xFF, 0x00, 0x6A, 0xBB, 0x66,
0x8F, 0x2B, 0x4F, 0x00, 0xE2, 0x07, 0x11, 0xC1, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF,
0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFA, 0xD7, 0x0C, 0x19, 0xF7, 0xD7, 0x0C, 0x19, 0xF7,
0xD7, 0x0C, 0x19, 0xF7, 0xD7, 0x0C, 0x19, 0xF9, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF,
0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xC9, 0xD7, 0x0C, 0x19, 0x07,
0x00, 0x68, 0xB7, 0x76, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF,
0x00, 0x68, 0xB7, 0xB2, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x83,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xAE,
0x00, 0x68, 0xB7, 0x07, 0x00, 0x68, 0xB7, 0xDB, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x69, 0xB9, 0xD8, 0x0A, 0x65, 0xB2, 0x11,
0xB9, 0x19, 0x2F, 0x00, 0xDD, 0x09, 0x15, 0xC1, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF,
0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF,
0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF,
0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFD, 0xD7, 0x0C, 0x19, 0x4D, 0xD7, 0x0C, 0x19, 0x00,
0x00, 0x68, 0xB7, 0x76, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF,
0x00, 0x68, 0xB7, 0xB2, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x83,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xAE,
0x00, 0x68, 0xB7, 0x07, 0x00, 0x68, 0xB7, 0xDB, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xF7, 0x00, 0x6D, 0xBF, 0x4A, 0x3F, 0x4E, 0x8B, 0x00,
0xDA, 0x0A, 0x16, 0x02, 0xD9, 0x0B, 0x18, 0xC1, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF,
0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF,
0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0xFF,
0xD7, 0x0C, 0x19, 0xFF, 0xD7, 0x0C, 0x19, 0x75, 0xD7, 0x0C, 0x19, 0x00, 0xD7, 0x0C, 0x19, 0x00,
0x00, 0x68, 0xB7, 0x6A, 0x00, 0x68, 0xB7, 0xF3, 0x00, 0x68, 0xB7, 0xE6, 0x00, 0x68, 0xB7, 0xF1,
0x00, 0x68, 0xB7, 0xA1, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x77,
0x00, 0x68, 0xB7, 0xF6, 0x00, 0x68, 0xB7, 0xE6, 0x00, 0x68, 0xB7, 0xF1, 0x00, 0x68, 0xB7, 0x9C,
0x00, 0x68, 0xB7, 0x06, 0x00, 0x68, 0xB7, 0xC5, 0x00, 0x68, 0xB7, 0xEB, 0x00, 0x68, 0xB7, 0xE5,
0x00, 0x68, 0xB7, 0xE5, 0x00, 0x68, 0xB7, 0xE6, 0x00, 0x68, 0xB7, 0xE6, 0x00, 0x68, 0xB7, 0xE6,
0x00, 0x68, 0xB7, 0xE6, 0x00, 0x68, 0xB7, 0xE6, 0x00, 0x68, 0xB7, 0xE7, 0x00, 0x68, 0xB7, 0xE4,
0x00, 0x68, 0xB7, 0xB8, 0x00, 0x69, 0xB8, 0x41, 0x00, 0x69, 0xB8, 0x00, 0xA2, 0x23, 0x40, 0x00,
0xE7, 0x05, 0x0E, 0x02, 0xD7, 0x0C, 0x19, 0xAD, 0xD7, 0x0C, 0x19, 0xED, 0xD7, 0x0C, 0x19, 0xE4,
0xD7, 0x0C, 0x19, 0xE4, 0xD8, 0x0C, 0x18, 0xE4, 0xD8, 0x0C, 0x18, 0xE4, 0xD7, 0x0C, 0x19, 0xE4,
0xD7, 0x0C, 0x19, 0xE4, 0xD7, 0x0C, 0x19, 0xE5, 0xD7, 0x0C, 0x19, 0xE0, 0xD9, 0x0C, 0x18, 0xB8,
0xD9, 0x0B, 0x18, 0x50, 0xD9, 0x0B, 0x18, 0x00, 0xDC, 0x0A, 0x16, 0x00, 0xDE, 0x09, 0x14, 0x00,
0x00, 0x68, 0xB7, 0x06, 0x00, 0x68, 0xB7, 0x0E, 0x00, 0x68, 0xB7, 0x0D, 0x00, 0x68, 0xB7, 0x0E,
0x00, 0x68, 0xB7, 0x09, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x07,
0x00, 0x68, 0xB7, 0x0E, 0x00, 0x68, 0xB7, 0x0D, 0x00, 0x68, 0xB7, 0x0E, 0x00, 0x68, 0xB7, 0x09,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x0A, 0x00, 0x68, 0xB7, 0x0C, 0x00, 0x68, 0xB7, 0x0C,
0x00, 0x68, 0xB7, 0x0C, 0x00, 0x68, 0xB7, 0x0D, 0x00, 0x68, 0xB7, 0x0D, 0x00, 0x68, 0xB7, 0x0D,
0x00, 0x68, 0xB7, 0x0D, 0x00, 0x68, 0xB7, 0x0D, 0x00, 0x68, 0xB7, 0x0D, 0x00, 0x68, 0xB7, 0x0B,
0x00, 0x68, 0xB7, 0x02, 0x00, 0x69, 0xB9, 0x00, 0x07, 0x65, 0xB2, 0x00, 0x84, 0x2F, 0x55, 0x00,
0xC3, 0x15, 0x27, 0x00, 0xE5, 0x06, 0x0E, 0x09, 0xE0, 0x08, 0x13, 0x0C, 0xD9, 0x0B, 0x17, 0x0C,
0xE0, 0x08, 0x13, 0x0C, 0xE1, 0x07, 0x12, 0x0C, 0xE2, 0x07, 0x11, 0x0C, 0xE3, 0x07, 0x10, 0x0C,
0xDB, 0x0B, 0x16, 0x0C, 0xDF, 0x08, 0x13, 0x0C, 0xE1, 0x08, 0x12, 0x0A, 0xDB, 0x0A, 0x16, 0x02,
0xD7, 0x0C, 0x18, 0x00, 0xDA, 0x0A, 0x17, 0x00, 0xBB, 0x17, 0x2D, 0x00, 0xAC, 0x1E, 0x38, 0x00,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x6B, 0xBB, 0x00,
0x18, 0x5E, 0xA5, 0x00, 0x60, 0x3F, 0x71, 0x00, 0xA5, 0x21, 0x3E, 0x00, 0xD7, 0x0C, 0x18, 0x00,
0xA4, 0x22, 0x3F, 0x00, 0x59, 0x42, 0x75, 0x00, 0x59, 0x42, 0x76, 0x00, 0x85, 0x30, 0x56, 0x00,
0xCC, 0x11, 0x20, 0x00, 0xA5, 0x21, 0x3E, 0x00, 0x58, 0x42, 0x77, 0x00, 0x43, 0x4B, 0x86, 0x00,
0x3A, 0x4F, 0x8D, 0x00, 0x41, 0x4C, 0x87, 0x00, 0x0E, 0x62, 0xAD, 0x00, 0x04, 0x67, 0xB5, 0x00,
0x00, 0x68, 0xB7, 0x04, 0x00, 0x68, 0xB7, 0x16, 0x00, 0x68, 0xB7, 0x01, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x01, 0x00, 0x68, 0xB7, 0x2D, 0x00, 0x68, 0xB7, 0x1E,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x25, 0x00, 0x68, 0xB7, 0x1C,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x2E, 0x00, 0x68, 0xB7, 0x16, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x20,
0x00, 0x68, 0xB7, 0x19, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x69, 0xB8, 0x09,
0x00, 0x6A, 0xBB, 0x3D, 0x00, 0x6E, 0xC1, 0x1E, 0x07, 0x66, 0xB4, 0x00, 0x27, 0x57, 0x99, 0x00,
0x06, 0x67, 0xB5, 0x00, 0x00, 0x6E, 0xC1, 0x26, 0x00, 0x6E, 0xC1, 0x31, 0x00, 0x6B, 0xBD, 0x05,
0x16, 0x5E, 0xA6, 0x00, 0x07, 0x66, 0xB4, 0x00, 0x00, 0x6D, 0xC1, 0x27, 0x00, 0x6D, 0xBF, 0x31,
0x00, 0x6C, 0xBE, 0x08, 0x00, 0x6D, 0xBF, 0x00, 0x00, 0x6A, 0xBA, 0x00, 0x00, 0x69, 0xB9, 0x00,
0x00, 0x68, 0xB7, 0x20, 0x00, 0x68, 0xB7, 0xE1, 0x00, 0x68, 0xB7, 0x79, 0x00, 0x68, 0xB7, 0x22,
0x00, 0x68, 0xB7, 0x3B, 0x00, 0x68, 0xB7, 0x3C, 0x00, 0x68, 0xB7, 0x3F, 0x00, 0x68, 0xB7, 0x3A,
0x00, 0x68, 0xB7, 0x6A, 0x00, 0x68, 0xB7, 0x78, 0x00, 0x68, 0xB7, 0x05, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x01, 0x00, 0x68, 0xB7, 0xBF, 0x00, 0x68, 0xB7, 0xF3,
0x00, 0x68, 0xB7, 0x21, 0x00, 0x68, 0xB7, 0x09, 0x00, 0x68, 0xB7, 0xB3, 0x00, 0x68, 0xB7, 0xFA,
0x00, 0x68, 0xB7, 0xB1, 0x00, 0x68, 0xB7, 0xED, 0x00, 0x68, 0xB7, 0xBD, 0x00, 0x68, 0xB7, 0x11,
0x00, 0x68, 0xB7, 0x22, 0x00, 0x68, 0xB7, 0x51, 0x00, 0x68, 0xB7, 0x8D, 0x00, 0x68, 0xB7, 0xF3,
0x00, 0x68, 0xB7, 0xB9, 0x00, 0x68, 0xB7, 0x2B, 0x00, 0x68, 0xB7, 0x41, 0x00, 0x68, 0xB7, 0x18,
0x00, 0x68, 0xB7, 0xF9, 0x00, 0x68, 0xB7, 0xC6, 0x00, 0x69, 0xB9, 0x04, 0x00, 0x6B, 0xBC, 0x00,
0x00, 0x69, 0xB9, 0x00, 0x00, 0x68, 0xB7, 0x8C, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB8, 0x39,
0x00, 0x6A, 0xBB, 0x00, 0x00, 0x69, 0xB9, 0x00, 0x00, 0x68, 0xB7, 0x8F, 0x00, 0x68, 0xB7, 0xFF,
0x00, 0x68, 0xB7, 0x60, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x02, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x9C, 0x00, 0x68, 0xB7, 0xF4, 0x00, 0x68, 0xB7, 0x7B,
0x00, 0x68, 0xB7, 0xED, 0x00, 0x68, 0xB7, 0xDA, 0x00, 0x68, 0xB7, 0xC6, 0x00, 0x68, 0xB7, 0xC9,
0x00, 0x68, 0xB7, 0xF3, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0x5D, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x5E, 0x00, 0x68, 0xB7, 0x80, 0x00, 0x68, 0xB7, 0xDF, 0x00, 0x68, 0xB7, 0xFA,
0x00, 0x68, 0xB7, 0xAF, 0x00, 0x68, 0xB7, 0xD4, 0x00, 0x68, 0xB7, 0xD8, 0x00, 0x68, 0xB7, 0xF7,
0x00, 0x68, 0xB7, 0x68, 0x00, 0x68, 0xB7, 0xFB, 0x00, 0x68, 0xB7, 0xC1, 0x00, 0x68, 0xB7, 0x09,
0x00, 0x68, 0xB7, 0x9F, 0x00, 0x68, 0xB7, 0xEC, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xCF,
0x00, 0x68, 0xB7, 0x54, 0x00, 0x68, 0xB7, 0x50, 0x00, 0x68, 0xB7, 0xF1, 0x00, 0x68, 0xB7, 0x6A,
0x00, 0x68, 0xB7, 0xF3, 0x00, 0x68, 0xB7, 0xCE, 0x00, 0x68, 0xB7, 0x04, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x8C, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0x73,
0x00, 0x68, 0xB7, 0x3D, 0x00, 0x68, 0xB7, 0x53, 0x00, 0x68, 0xB7, 0xB6, 0x00, 0x68, 0xB7, 0xFF,
0x00, 0x68, 0xB7, 0x97, 0x00, 0x68, 0xB7, 0x6E, 0x00, 0x68, 0xB7, 0xAA, 0x00, 0x68, 0xB7, 0x16,
0x00, 0x68, 0xB7, 0x5D, 0x00, 0x68, 0xB7, 0x5D, 0x00, 0x68, 0xB7, 0x5C, 0x00, 0x68, 0xB7, 0x0F,
0x00, 0x68, 0xB7, 0xC0, 0x00, 0x68, 0xB7, 0x78, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x14,
0x00, 0x68, 0xB7, 0xE5, 0x00, 0x68, 0xB7, 0xF7, 0x00, 0x68, 0xB7, 0x20, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x6A, 0x00, 0x68, 0xB7, 0x9C, 0x00, 0x68, 0xB7, 0xE5, 0x00, 0x68, 0xB7, 0xFF,
0x00, 0x68, 0xB7, 0x9F, 0x00, 0x68, 0xB7, 0x85, 0x00, 0x68, 0xB7, 0xDA, 0x00, 0x68, 0xB7, 0xEE,
0x00, 0x68, 0xB7, 0x45, 0x00, 0x68, 0xB7, 0xFB, 0x00, 0x68, 0xB7, 0x5D, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x06, 0x00, 0x68, 0xB7, 0x41, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0x8B,
0x00, 0x68, 0xB7, 0x04, 0x00, 0x68, 0xB7, 0x08, 0x00, 0x68, 0xB7, 0xD2, 0x00, 0x68, 0xB7, 0xD9,
0x00, 0x68, 0xB7, 0xFB, 0x00, 0x68, 0xB7, 0xCC, 0x00, 0x68, 0xB7, 0x02, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x89, 0x00, 0x68, 0xB7, 0xE3, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFC,
0x00, 0x68, 0xB7, 0xC9, 0x00, 0x68, 0xB7, 0xAB, 0x00, 0x68, 0xB7, 0xDD, 0x00, 0x68, 0xB7, 0xFF,
0x00, 0x68, 0xB7, 0xD0, 0x00, 0x68, 0xB7, 0xB2, 0x00, 0x68, 0xB7, 0xBA, 0x00, 0x68, 0xB7, 0x30,
0x00, 0x68, 0xB7, 0xB5, 0x00, 0x68, 0xB7, 0xEA, 0x00, 0x68, 0xB7, 0x42, 0x00, 0x68, 0xB7, 0xB0,
0x00, 0x68, 0xB7, 0xB0, 0x00, 0x68, 0xB7, 0xB2, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x3A,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xBF, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0xC0, 0x00, 0x68, 0xB7, 0xFD,
0x00, 0x68, 0xB7, 0x30, 0x00, 0x68, 0xB7, 0x0C, 0x00, 0x68, 0xB7, 0xB9, 0x00, 0x68, 0xB7, 0xEF,
0x00, 0x68, 0xB7, 0x71, 0x00, 0x68, 0xB7, 0xD7, 0x00, 0x68, 0xB7, 0x0C, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x91, 0x00, 0x68, 0xB7, 0xCE, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xE3,
0x00, 0x68, 0xB7, 0xE5, 0x00, 0x68, 0xB7, 0x4F, 0x00, 0x68, 0xB7, 0x52, 0x00, 0x68, 0xB7, 0x4C,
0x00, 0x68, 0xB7, 0xF7, 0x00, 0x68, 0xB7, 0xCE, 0x00, 0x68, 0xB7, 0x04, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x21, 0x00, 0x68, 0xB7, 0xAB, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0x65,
0x00, 0x68, 0xB7, 0x09, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x8F, 0x00, 0x68, 0xB7, 0xFF,
0x00, 0x68, 0xB7, 0x66, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x4A, 0x00, 0x68, 0xB7, 0xCA, 0x00, 0x68, 0xB7, 0xB6, 0x00, 0x68, 0xB7, 0xA4,
0x00, 0x68, 0xB7, 0x48, 0x00, 0x68, 0xB7, 0xEE, 0x00, 0x68, 0xB7, 0x1A, 0x00, 0x68, 0xB7, 0x83,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0x71, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x4F, 0x00, 0x68, 0xB7, 0xAF, 0x00, 0x68, 0xB7, 0xE9, 0x00, 0x68, 0xB7, 0xFB,
0x00, 0x68, 0xB7, 0xE3, 0x00, 0x68, 0xB7, 0xC5, 0x00, 0x68, 0xB7, 0xC5, 0x00, 0x68, 0xB7, 0xE8,
0x00, 0x68, 0xB7, 0x93, 0x00, 0x68, 0xB7, 0xA5, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x2C, 0x00, 0x68, 0xB7, 0xCB, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xA9,
0x00, 0x68, 0xB7, 0x22, 0x00, 0x68, 0xB7, 0xB0, 0x00, 0x68, 0xB7, 0x9A, 0x00, 0x68, 0xB7, 0x19,
0x00, 0x68, 0xB7, 0xFA, 0x00, 0x68, 0xB7, 0xCE, 0x00, 0x68, 0xB7, 0x04, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x8B, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0x39,
0x00, 0x68, 0xB7, 0x2D, 0x00, 0x68, 0xB7, 0x4B, 0x00, 0x68, 0xB7, 0xB2, 0x00, 0x68, 0xB7, 0xFF,
0x00, 0x68, 0xB7, 0xA0, 0x00, 0x68, 0xB7, 0x98, 0x00, 0x68, 0xB7, 0x37, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x4A, 0x00, 0x68, 0xB7, 0xF0, 0x00, 0x68, 0xB7, 0x50,
0x00, 0x68, 0xB7, 0x03, 0x00, 0x68, 0xB7, 0xE4, 0x00, 0x68, 0xB7, 0xA2, 0x00, 0x68, 0xB7, 0xDB,
0x00, 0x68, 0xB7, 0xF0, 0x00, 0x68, 0xB7, 0x1F, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x29, 0x00, 0x68, 0xB7, 0x68, 0x00, 0x68, 0xB7, 0xD9, 0x00, 0x68, 0xB7, 0xFF,
0x00, 0x68, 0xB7, 0x71, 0x00, 0x68, 0xB7, 0x3B, 0x00, 0x68, 0xB7, 0xBE, 0x00, 0x68, 0xB7, 0xF2,
0x00, 0x68, 0xB7, 0x4E, 0x00, 0x68, 0xB7, 0xE9, 0x00, 0x68, 0xB7, 0x3C, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x09, 0x00, 0x68, 0xB7, 0xDA, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xED,
0x00, 0x68, 0xB7, 0x36, 0x00, 0x68, 0xB7, 0x46, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0x95,
0x00, 0x68, 0xB7, 0xF1, 0x00, 0x68, 0xB7, 0xCD, 0x00, 0x68, 0xB7, 0x04, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x8E, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xD2,
0x00, 0x68, 0xB7, 0xC4, 0x00, 0x68, 0xB7, 0xF9, 0x00, 0x68, 0xB7, 0xDC, 0x00, 0x68, 0xB7, 0xC7,
0x00, 0x68, 0xB7, 0xDF, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xC1, 0x00, 0x68, 0xB7, 0x04,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0xB8, 0x00, 0x68, 0xB7, 0xDE, 0x00, 0x68, 0xB7, 0x0A,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x89, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF,
0x00, 0x68, 0xB7, 0x84, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x01,
0x00, 0x68, 0xB7, 0x01, 0x00, 0x68, 0xB7, 0x03, 0x00, 0x68, 0xB7, 0xCA, 0x00, 0x68, 0xB7, 0xF8,
0x00, 0x68, 0xB7, 0x1B, 0x00, 0x68, 0xB7, 0x40, 0x00, 0x68, 0xB7, 0xC5, 0x00, 0x68, 0xB7, 0xF7,
0x00, 0x68, 0xB7, 0x17, 0x00, 0x68, 0xB7, 0xCF, 0x00, 0x68, 0xB7, 0xB1, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x34, 0x00, 0x68, 0xB7, 0xFB, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFE,
0x00, 0x68, 0xB7, 0xEF, 0x00, 0x68, 0xB7, 0x43, 0x00, 0x68, 0xB7, 0x82, 0x00, 0x68, 0xB7, 0x49,
0x00, 0x68, 0xB7, 0xF2, 0x00, 0x68, 0xB7, 0xE3, 0x00, 0x68, 0xB7, 0x8B, 0x00, 0x68, 0xB7, 0x28,
0x00, 0x68, 0xB7, 0xA5, 0x00, 0x68, 0xB7, 0xF6, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xA9,
0x00, 0x68, 0xB7, 0x10, 0x00, 0x68, 0xB7, 0xB6, 0x00, 0x68, 0xB7, 0xA7, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0xA2, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0x5B, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x63, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0x7E, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x48, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xF9,
0x00, 0x68, 0xB7, 0x2E, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x01,
0x00, 0x68, 0xB7, 0x96, 0x00, 0x68, 0xB7, 0xCD, 0x00, 0x68, 0xB7, 0xF6, 0x00, 0x68, 0xB7, 0xF9,
0x00, 0x68, 0xB7, 0xD0, 0x00, 0x68, 0xB7, 0xF6, 0x00, 0x68, 0xB7, 0xFA, 0x00, 0x68, 0xB7, 0xF1,
0x00, 0x68, 0xB7, 0x0A, 0x00, 0x68, 0xB7, 0x9D, 0x00, 0x68, 0xB7, 0xF1, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x79, 0x00, 0x68, 0xB7, 0xF8, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xC3,
0x00, 0x68, 0xB7, 0xC1, 0x00, 0x68, 0xB7, 0x73, 0x00, 0x68, 0xB7, 0x70, 0x00, 0x68, 0xB7, 0xAC,
0x00, 0x68, 0xB7, 0xFE, 0x00, 0x68, 0xB7, 0xFE, 0x00, 0x68, 0xB7, 0xD4, 0x00, 0x68, 0xB7, 0x33,
0x00, 0x68, 0xB7, 0xBB, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFD, 0x00, 0x68, 0xB7, 0x3C,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x5C, 0x00, 0x68, 0xB7, 0xFB, 0x00, 0x68, 0xB7, 0x9E,
0x00, 0x68, 0xB7, 0xFB, 0x00, 0x68, 0xB7, 0xB9, 0x00, 0x68, 0xB7, 0x02, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x97, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0x76, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x04, 0x00, 0x68, 0xB7, 0xB9, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xFF,
0x00, 0x68, 0xB7, 0xC5, 0x00, 0x68, 0xB7, 0x28, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x1F, 0x00, 0x68, 0xB7, 0x76, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xA1,
0x00, 0x68, 0xB7, 0x30, 0x00, 0x68, 0xB7, 0x34, 0x00, 0x68, 0xB7, 0xC8, 0x00, 0x68, 0xB7, 0xFE,
0x00, 0x68, 0xB7, 0x3C, 0x00, 0x68, 0xB7, 0xAF, 0x00, 0x68, 0xB7, 0xFB, 0x00, 0x68, 0xB7, 0x27,
0x00, 0x68, 0xB7, 0xC6, 0x00, 0x68, 0xB7, 0x8D, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0x8A,
0x00, 0x68, 0xB7, 0x08, 0x00, 0x68, 0xB7, 0xB5, 0x00, 0x68, 0xB7, 0xB6, 0x00, 0x68, 0xB7, 0x93,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xCF, 0x00, 0x68, 0xB7, 0x09, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x15, 0x00, 0x68, 0xB7, 0x99, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0x3C,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x04, 0x00, 0x68, 0xB7, 0xC1, 0x00, 0x68, 0xB7, 0xFF,
0x00, 0x68, 0xB7, 0xF6, 0x00, 0x68, 0xB7, 0x35, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x38, 0x00, 0x68, 0xB7, 0xFD, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0x4C,
0x00, 0x68, 0xB7, 0x7F, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0x69, 0x00, 0x68, 0xB7, 0x98,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xEF, 0x00, 0x68, 0xB7, 0x75, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x9F, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0x32,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0xB9, 0x00, 0x68, 0xB7, 0xFF,
0x00, 0x68, 0xB7, 0xD8, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xDF, 0x00, 0x68, 0xB7, 0x30,
0x00, 0x68, 0xB7, 0x7E, 0x00, 0x68, 0xB7, 0x39, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0x8A,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x07, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x18,
0x00, 0x68, 0xB7, 0xFB, 0x00, 0x68, 0xB7, 0xCD, 0x00, 0x68, 0xB7, 0x03, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x13, 0x00, 0x68, 0xB7, 0x9B, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0x3B,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x66, 0x00, 0x68, 0xB7, 0xF1, 0x00, 0x68, 0xB7, 0xFD,
0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xC2, 0x00, 0x68, 0xB7, 0x4A, 0x00, 0x68, 0xB7, 0x02,
0x00, 0x68, 0xB7, 0x04, 0x00, 0x68, 0xB7, 0xCB, 0x00, 0x68, 0xB7, 0xE0, 0x00, 0x68, 0xB7, 0xAE,
0x00, 0x68, 0xB7, 0xF4, 0x00, 0x68, 0xB7, 0x5F, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x09,
0x00, 0x68, 0xB7, 0xA5, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0x95, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x50, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0x7A, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0xBC, 0x00, 0x68, 0xB7, 0xF3,
0x00, 0x68, 0xB7, 0x56, 0x00, 0x68, 0xB7, 0xB6, 0x00, 0x68, 0xB7, 0x59, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x34, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0x8A,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x19,
0x00, 0x68, 0xB7, 0xFB, 0x00, 0x68, 0xB7, 0xCE, 0x00, 0x68, 0xB7, 0x02, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0xAB, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xF5, 0x00, 0x68, 0xB7, 0x5B,
0x00, 0x68, 0xB7, 0xB2, 0x00, 0x68, 0xB7, 0xF2, 0x00, 0x68, 0xB7, 0x79, 0x00, 0x68, 0xB7, 0x33,
0x00, 0x68, 0xB7, 0xCD, 0x00, 0x68, 0xB7, 0xFF, 0x00, 0x68, 0xB7, 0xCF, 0x00, 0x68, 0xB7, 0x10,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x5C, 0x00, 0x68, 0xB7, 0x2C, 0x00, 0x68, 0xB7, 0x52,
0x00, 0x68, 0xB7, 0x40, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x07, 0x00, 0x68, 0xB7, 0x6A, 0x00, 0x68, 0xB7, 0x1E, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x83, 0x00, 0x68, 0xB7, 0x85, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x90, 0x00, 0x68, 0xB7, 0xAB,
0x00, 0x68, 0xB7, 0x0B, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x30, 0x00, 0x68, 0xB7, 0xE5, 0x00, 0x68, 0xB7, 0x6E,
0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x17,
0x00, 0x68, 0xB7, 0xCE, 0x00, 0x68, 0xB7, 0x96, 0x00, 0x68, 0xB7, 0x02, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x1B, 0x00, 0x68, 0xB7, 0xC3, 0x00, 0x68, 0xB7, 0x95, 0x00, 0x68, 0xB7, 0x48,
0x00, 0x68, 0xB7, 0x80, 0x00, 0x68, 0xB7, 0x1B, 0x00, 0x68, 0xB7, 0x00, 0x00, 0x68, 0xB7, 0x00,
0x00, 0x68, 0xB7, 0x16, 0x00, 0x68, 0xB7, 0x99, 0x00, 0x68, 0xB7, 0x41, 0x00, 0x68, 0xB7, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00
};
GLFWimage icons[3] = {
{
16,
16,
icon_16x16_data
},
{
32,
32,
icon_32x32_data
},
{
48,
48,
icon_48x48_data
},
};

File diff suppressed because it is too large Load Diff

View File

@ -24,6 +24,13 @@ private:
void DrawTitleBar();
void Draw();
void DrawToolBar();
void DrawMain();
void DrawIO();
static void GLFWMouseWheelCallback(GLFWwindow* window, double xoffset, double yoffset);
static void GLFWMousePositionCallback(GLFWwindow* window, double xpos, double ypos);
static void GLFWMouseButtonCallback(GLFWwindow* window, int button, int action, int mods);
static void GLFWKeyCallback(GLFWwindow* window, int key, int scancode, int action, int mods);
private:
GLFWwindow* m_GLFWWin;
GLFWwindow* m_SplashWin;

View File

@ -0,0 +1,21 @@
#include "ConfigManager.h"
ConfigManager::ConfigManager()
: m_IOCfgWrapper(nullptr)
, m_MachineCfg(new MachineCfg())
, m_Machine(nullptr){
}
ConfigManager::~ConfigManager() {
DELP(m_IOCfgWrapper);
DELP(m_MachineCfg);
}
void ConfigManager::Init() {
m_IOCfgWrapper = new IOCfgWrapper();
m_Machine = Machine::CreateInstance(m_MachineCfg->m_MachineType);
m_Machine->Init();
m_IOCfgWrapper->Init();
}

View File

@ -0,0 +1,33 @@
#pragma once
#include "bean/IOCfg.h"
#include "bean/MachineCfg.h"
#include "bean/RunCfg.h"
#include "../Machine/Machine.h"
class ConfigManager {
public:
static ConfigManager* Instance() {
static ConfigManager cfm;
return &cfm;
}
void Init();
IOCfgWrapper* GetIoCfgWrapper() { return m_IOCfgWrapper; }
MachineCfg* GetMachineCfg() { return m_MachineCfg; }
Machine* GetMachine() { return m_Machine; }
RunCfg* GetRunCfg() { return &m_RunCfg; }
private:
ConfigManager();
virtual ~ConfigManager();
ConfigManager(const ConfigManager& cfg) {};
ConfigManager& operator= (const ConfigManager& cfg) {};
private:
Machine* m_Machine;
IOCfgWrapper* m_IOCfgWrapper;
MachineCfg* m_MachineCfg;
RunCfg m_RunCfg;
};

View File

@ -0,0 +1,19 @@
#include "BaseConfig.h"
BaseConfig::BaseConfig()
{
}
BaseConfig::~BaseConfig()
{
}
const string BaseConfig::TABLE_NAME="BaseConfig";
const string BaseConfig::FIELD_ID="id";
const string BaseConfig::FIELD_CONFIG_NAME="config_name";
const string BaseConfig::FIELD_CONFIG_CODE="config_code";
const string BaseConfig::FIELD_CONFIG_VALUE="config_value";

View File

@ -0,0 +1,25 @@
#pragma once
#include <string>
using namespace std;
class BaseConfig
{
public:
BaseConfig();
~BaseConfig();
public:
static const string TABLE_NAME;
static const string FIELD_ID;
static const string FIELD_CONFIG_NAME;
static const string FIELD_CONFIG_CODE;
static const string FIELD_CONFIG_VALUE;
public:
int m_id;
string m_ConfigName;
string m_ConfigCode;
string m_ConfigValue;
};

3902
PrintC/config/bean/IOCfg.cpp Normal file

File diff suppressed because it is too large Load Diff

2150
PrintC/config/bean/IOCfg.h Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,21 @@
#include "IOVersion.h"
IOVersion::IOVersion(int id, int mid, int vid, string vcode)
:m_Id(id)
,m_MachineId(mid)
,m_VersionId(vid)
,m_VersionCode(vcode)
{
}
IOVersion::~IOVersion()
{
}
const string IOVersion::TABLE_NAME = "IOVersion";
const string IOVersion::FIELD_ID = "id";
const string IOVersion::FIELD_MACHINE_ID = "MachineID";
const string IOVersion::FIELD_VERSION_ID = "VersionID";
const string IOVersion::FIELD_VERSION_CODE = "VersionCode";

View File

@ -0,0 +1,29 @@
#pragma once
#include <string>
using namespace std;
class IOVersion
{
public:
IOVersion(int id,int mid,int vid,string vcode);
~IOVersion();
public:
int m_Id;
int m_MachineId;
int m_VersionId;
string m_VersionCode;
public:
static const string TABLE_NAME;
static const string FIELD_ID;
static const string FIELD_MACHINE_ID;
static const string FIELD_VERSION_ID;
static const string FIELD_VERSION_CODE;
//static const int IO_NEWEST_CODE;
};

View File

@ -0,0 +1,160 @@
#include "MachineCfg.h"
#include "../../utils/TimeHelper.h"
#include "../../utils/StringHelper.h"
#include "SystemBase.h"
#include "HbdLanguage.h"
#include "IOVersion.h"
MachineCfg::MachineCfg()
{
m_serial = "";
m_Name = "HBD1200";
m_language = HbdLanguage::zh_CN;
m_I18NLang = "zh_CN";
m_MachineType = MachineTypeCfg::HBD_1200;
m_ScanControl = RTC5;
m_PulifierType = PurifierTypeCfg::HBD_PURIFIER_3;
m_fontSize = 25.0f;
m_fontScale = 0.8f;
m_lastStartTime = time(0);
m_lastShutdownTime = time(0);
m_LockPassword = "123";
m_LockAlpha = 1.0f;
m_LockIdleTime = 10;
m_ExpriedTime = time(0);
//m_IsRemoteConnect = true;
m_ConnectPassword = "hbd_remote";
m_Location = "";
m_PlatformShape = 0;
m_SupportNonEncMagic = true;
m_PrintStrategy = DATA; //¶à¼¤¹â´òÓ¡²ßÂÔ
m_PlatformLength = 600;
m_PlatformWidth = 600;
m_IsIntelli = true;
m_IOVersion = 0;
m_MachineCode = "";
m_CodeMap[MachineTypeCfg::HBD_1000].push_back("HBD 1000");
m_CodeMap[MachineTypeCfg::HBD_1200].push_back("HBD 1200");
m_CodeMap[MachineTypeCfg::HBD_1200_OLD].push_back("HBD 1200V0");
m_CodeMap[MachineTypeCfg::HBD_1500].push_back("HBD 1500");
m_CodeMap[MachineTypeCfg::HBD_E1000].push_back("HBD E1000");
}
MachineCfg::~MachineCfg()
{
}
void MachineCfg::GetUpdateSql(vector<string>& ups)
{
char buffer[512];
string updateSql = "UPDATE " + TABLE_NAME + " SET " + FIELD_VALUE + "='%s' WHERE " + FIELD_CODE + "='%s'";
sprintf_s(buffer, sizeof(buffer), updateSql.c_str(), m_serial.c_str(), CODE_SERIAL.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), updateSql.c_str(), m_Name.c_str(), CODE_NAME.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), updateSql.c_str(), to_string(m_language).c_str(), CODE_LANGUAGE.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), updateSql.c_str(), to_string(m_MachineType).c_str(), CODE_MACHINE_TYPE.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), updateSql.c_str(), to_string(m_ScanControl).c_str(), CODE_SCAN_CONTROL.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), updateSql.c_str(), to_string(m_PulifierType).c_str(), CODE_PULIFIER_TYPE.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), updateSql.c_str(), to_string(m_lastStartTime).c_str(), CODE_LAST_START_TIME.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), updateSql.c_str(), to_string(m_lastShutdownTime).c_str(), CODE_LAST_SHUTDOWN_TIME.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), updateSql.c_str(), m_LockPassword.c_str(), CODE_LOCK_PASSWORD.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), updateSql.c_str(), to_string(m_LockAlpha).c_str(), CODE_LOCK_ALPHA.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), updateSql.c_str(), to_string(m_LockIdleTime).c_str(), CODE_LOCK_IDLE_TIME.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), updateSql.c_str(), to_string(m_ExpriedTime).c_str(), CODE_EXPIRED_TIME.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), updateSql.c_str(), m_ConnectPassword.c_str() , CODE_CONNECT_PASSWORD.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), updateSql.c_str(), m_Location.c_str(), CODE_LOCATION.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), updateSql.c_str(), to_string(m_PlatformShape).c_str(), CODE_SHAPE.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), updateSql.c_str(), to_string(m_SupportNonEncMagic).c_str(), CODE_SUPPORT_NON_ENC_MAGIC.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), updateSql.c_str(), to_string(m_PrintStrategy).c_str(), CODE_PRINT_STRATEGY.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), updateSql.c_str(), to_string(m_PlatformLength).c_str(), CODE_PLATFORM_LENGTH.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), updateSql.c_str(), to_string(m_PlatformWidth).c_str(), CODE_PLATFORM_WIDTH.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), updateSql.c_str(), m_IsIntelli ? "1" : "0", CODE_IS_INTELLI.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), updateSql.c_str(), to_string(m_IOVersion).c_str(), CODE_IO_VERSION.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), updateSql.c_str(), to_string(m_SupplyMachineVersion).c_str(), CODE_SUPPLY_MACHINE_VERSION.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), updateSql.c_str(), m_MachineCode.c_str(), CODE_MACHINE_CODE.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), updateSql.c_str(), m_I18NLang.c_str(), CODE_I18N_LANG.c_str());
ups.push_back(buffer);
}
const string MachineCfg::TABLE_NAME = "MachineCfg";
const string MachineCfg::FIELD_CODE = "code";
const string MachineCfg::FIELD_VALUE = "value";
const string MachineCfg::CODE_SERIAL = "Serial";
const string MachineCfg::CODE_NAME = "name";
const string MachineCfg::CODE_LANGUAGE = "Language";
const string MachineCfg::CODE_MACHINE_TYPE = "machine_type";
const string MachineCfg::CODE_SCAN_CONTROL = "scan_control";
const string MachineCfg::CODE_PULIFIER_TYPE = "purifier_type";
const string MachineCfg::CODE_LAST_START_TIME = "last_start_time";
const string MachineCfg::CODE_LAST_SHUTDOWN_TIME = "last_shutdown_time";
const string MachineCfg::CODE_FONT_SIZE = "font_size";
const string MachineCfg::CODE_FONT_SCALE = "font_scale";
const string MachineCfg::CODE_LOCK_PASSWORD = "lock_password";
const string MachineCfg::CODE_LOCK_ALPHA = "lock_alpha";
const string MachineCfg::CODE_LOCK_IDLE_TIME = "idle_time";
const string MachineCfg::CODE_EXPIRED_TIME = "expired_time";
const string MachineCfg::CODE_HEATING_ENABLE = "heat_enable";
//const string MachineCfg::CODE_IS_REMOTE_CONNECT = "is_remote_connect";
const string MachineCfg::CODE_CONNECT_PASSWORD = "connect_password";
const string MachineCfg::CODE_LOCATION = "location";
const string MachineCfg::CODE_SHAPE = "shape";
const string MachineCfg::CODE_SUPPORT_NON_ENC_MAGIC = "support_non_enc_magic";
const string MachineCfg::CODE_PRINT_STRATEGY = "print_strategy";
const string MachineCfg::CODE_PLATFORM_WIDTH = "platform_width";
const string MachineCfg::CODE_PLATFORM_LENGTH = "platform_length";
const string MachineCfg::CODE_IS_INTELLI = "is_intelli";
const string MachineCfg::CODE_IO_VERSION = "io_version";
const string MachineCfg::CODE_SUPPLY_MACHINE_VERSION = "SupplyMachineVersion";
const string MachineCfg::CODE_MACHINE_CODE = "MachineCode";
const string MachineCfg::CODE_I18N_LANG = "I18NLang";
map<int, vector<string>> MachineCfg::m_CodeMap = map<int, vector<string>>();

View File

@ -0,0 +1,108 @@
#pragma once
#include <string>
#include <vector>
#include <map>
using namespace std;
class MachineCfg
{
public:
enum PrintStrategy {
DATA = 0, //¸ù¾ÝScanField
DATA_SEQ, //data order
DATA_SEQ_OPT,
};
enum ScanType{
RTC4 = 0,
RTC5,
RTC6_ETH
};
enum SupplyMachineVersion {
VERSION_1_0 = 0,
VERSION_2_1,
VERSION_2_2
};
MachineCfg();
~MachineCfg();
void GetUpdateSql(vector<string>& ups);
bool IsDataStrategy() {
return true;
}
bool IsDataSeqStragegy() {
if (m_PrintStrategy == DATA_SEQ || m_PrintStrategy == DATA_SEQ_OPT) {
return true;
}
else return false;
}
public:
string m_serial;
string m_Name;
int m_language;
string m_I18NLang;
int m_MachineType;
int m_ScanControl;
bool m_IsIntelli;
int m_PulifierType;
float m_fontSize;
float m_fontScale;
time_t m_lastStartTime;
time_t m_lastShutdownTime;
string m_LockPassword;
float m_LockAlpha;
int m_LockIdleTime;
time_t m_ExpriedTime;
string m_ConnectPassword;
string m_Location;
int m_PlatformShape;
bool m_SupportNonEncMagic;
int m_PrintStrategy;
int m_PlatformLength;
int m_PlatformWidth;
int m_IOVersion;
int m_SupplyMachineVersion;
string m_MachineCode;
char m_MachineCodeAss[64];
public:
static const string TABLE_NAME;
static const string FIELD_CODE;
static const string FIELD_VALUE;
static const string CODE_SERIAL;
static const string CODE_NAME;
static const string CODE_LANGUAGE;
static const string CODE_MACHINE_TYPE;
static const string CODE_SCAN_CONTROL;
static const string CODE_PULIFIER_TYPE;
static const string CODE_LAST_START_TIME;
static const string CODE_LAST_SHUTDOWN_TIME;
static const string CODE_FONT_SIZE;
static const string CODE_FONT_SCALE;
static const string CODE_LOCK_PASSWORD;
static const string CODE_LOCK_ALPHA;
static const string CODE_LOCK_IDLE_TIME;
static const string CODE_EXPIRED_TIME;
static const string CODE_HEATING_ENABLE;
//static const string CODE_IS_REMOTE_CONNECT;
static const string CODE_CONNECT_PASSWORD;
static const string CODE_LOCATION;
static const string CODE_SHAPE;
static const string CODE_SUPPORT_NON_ENC_MAGIC;
static const string CODE_PRINT_STRATEGY;
static const string CODE_PLATFORM_LENGTH;
static const string CODE_PLATFORM_WIDTH;
static const string CODE_IS_INTELLI;
static const string CODE_IO_VERSION;
static const string CODE_SUPPLY_MACHINE_VERSION;
static const string CODE_MACHINE_CODE;
static const string CODE_I18N_LANG;
static map<int, vector<string>> m_CodeMap;
};

View File

@ -0,0 +1,679 @@
#include "RunCfg.h"
#include "BaseConfig.h"
RunCfg::RunCfg()
{
m_IsDebugMode=false;
m_TargeOxygen=1000.0f;
m_WarnOxygen=2000.0f;
m_AlarmOxygen=3000.0f;
m_StartCycleOxygen=4000.0f;
m_DangerousOxygen = 8000.0f;
m_AlarmTemperture=75.0f;
m_AlarmTempertureMin=7.5f;
m_AlarmTempertureMax=175.0f;
m_AlarmWaterTempDown=5.0f;
m_AlarmWaterTempDownMin=0.5f;
m_AlarmWaterTempDownMax=50.0f;
m_AlarmWaterTempUp=50.0f;
m_AlarmWaterTempUpMin=5.0f;
m_AlarmWaterTempUpMax=100.0f;
m_LogPersistInteval= 10000;
m_StatisticsInteval= 10000;
m_OffsetRotateEnable=true;
m_StableWindStep= 0.05f;
m_SSRTimeLimit=300;
m_SSRTimeLimitMin=100;
m_SSRTimeLimitMax=3000;
m_HeatingDeleyDisableMinute = 0;
m_HighOxygenHeatingTemp = 40.0f;
m_LowOxygenHeatingTemp = 80.0f;
m_UseHeatingMotion = false;
m_HeatingMotionPeriodSecond = 10;
m_HeatingMotionDistance = 500.0;
m_FanVoltageOverLimit = 9.0;
m_IsAutoReleasePressureWhenFinish = false;
m_ReleasePressureSeconds = 120;
m_ReleasePressureTargeValue = 0.5f;
m_PrintRestEnable = false;
m_PrintContinueMinute = 120;
m_PrintRestMinutes = 30;
m_BlowbackNotifyTimeout = 120;
m_BlowbackTimeoutExecute = true;
m_DownSkinStopTimes = 0;
m_TimePowerCompensateEnable = false;
m_IsPreparePrint = false;
m_PrepareParamType = RunCfg::Default;
m_WarnAlarmNotifySecond = 20;
m_HadSetBasePlatformPoint = false;
m_PowderAlarmPos = 0;
m_VoltageAlarmOffset = 10.0f;
m_ScannerPowerLogTick = 500;
m_ScannerPowerLogCount = 50;
m_ScannerVoltageMinLimit = 28.0f;
m_ScannerVoltageMaxLimit = 32.0f;
m_PrintAutoRenewalGas = false;
m_MoldDeoxygenEnable = true;
m_AddPowderWarnPos = 20.0f;
m_PowderStickLowLevelAlarmPos = 5.0f;
m_UseCoverWindSignal = false;
m_MoldServoPosWarnOffset = 300;
m_LayerLinearPosAlarmOffset = 3;
m_PrintLinearAccDevAlarmOffset = 100;
m_CoverSimulateTimeOffset = 5000.0;
m_CoverWindSimulateTimeOffset = 10000.0;
m_LogDebugInfo = false;
m_AutoShutdownPower = false;
m_FilterOxygenAlarmValue = 0.5f;
m_FanFreqLowLimit = 5.0f;
m_PrintLayerDelay = 0;
m_CoverLayerDelay = 0;
m_SmartCoverEnable = false;
m_PowderStickCalcLength = 400;
m_PurifierFilterNotifyHour = 1000;
m_CheckDiskSpaceG = 5.0;
m_PerlayerSpaceK = 600.0;
m_ShowUnloadHandPos = false;
m_PurifierDisconnectAlarmJudgeSecond = 20;
m_PurifierKeepAliveAlarmJudgeSecond = 20;
m_OxygenSensorDisconnectAlarmJudgeSecond = 20;
m_HeatingDisconnectAlarmJudgeSecond = 20;
m_ChillerDisconnectAlarmJudgeSecond = 20;
InitializeCriticalSection(&m_CS);
}
RunCfg::~RunCfg()
{
DeleteCriticalSection(&m_CS);
}
void RunCfg::GetUpdateSql(vector<string>& ups)
{
char buffer[512];
sprintf_s(buffer, sizeof(buffer), "UPDATE %s set %s=",
BaseConfig::TABLE_NAME.c_str(),
BaseConfig::FIELD_CONFIG_VALUE.c_str()
);
string strhead(buffer);
sprintf_s(buffer, sizeof(buffer), " WHERE %s='%s' AND %s=",
BaseConfig::FIELD_CONFIG_NAME.c_str(),
CONFIG_NAME.c_str(),
BaseConfig::FIELD_CONFIG_CODE.c_str()
);
string strtail(buffer);
sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'",
strhead.c_str(),
to_string(m_IsDebugMode?1:0).c_str(),
strtail.c_str(),
FIELD_IS_DEBUG_MODE.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'",
strhead.c_str(),
to_string(m_TargeOxygen).c_str(),
strtail.c_str(),
FIELD_TARGE_OXYGEN.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'",
strhead.c_str(),
to_string(m_WarnOxygen).c_str(),
strtail.c_str(),
FIELD_WARN_OXYGEN.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'",
strhead.c_str(),
to_string(m_AlarmOxygen).c_str(),
strtail.c_str(),
FIELD_ALARM_OXYGEN.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'",
strhead.c_str(),
to_string(m_DangerousOxygen).c_str(),
strtail.c_str(),
FIELD_DANGEROUS_OXYGEN.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'",
strhead.c_str(),
to_string(m_AlarmTemperture).c_str(),
strtail.c_str(),
FIELD_ALARM_TEMPERTURE.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'",
strhead.c_str(),
to_string(m_AlarmWaterTempDown).c_str(),
strtail.c_str(),
FIELD_ALARM_WATER_TEMP_DOWN.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'",
strhead.c_str(),
to_string(m_AlarmWaterTempUp).c_str(),
strtail.c_str(),
FIELD_ALARM_WATER_TEMP_UP.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'",
strhead.c_str(),
to_string(m_StartCycleOxygen).c_str(),
strtail.c_str(),
FIELD_START_CYCLE_OXYGEN.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'",
strhead.c_str(),
to_string(m_LogPersistInteval).c_str(),
strtail.c_str(),
FIELD_LOG_PERSIST_INTEVAL.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'",
strhead.c_str(),
to_string(m_StatisticsInteval).c_str(),
strtail.c_str(),
FIELD_STATISTICS_INTEVAL.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'",
strhead.c_str(),
to_string(m_StableWindStep).c_str(),
strtail.c_str(),
FIELD_STABLE_WIND_STEP.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'",
strhead.c_str(),
to_string(m_SSRTimeLimit).c_str(),
strtail.c_str(),
FIELD_SSR_TIME_LIMIT.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'",
strhead.c_str(),
to_string(m_HeatingDeleyDisableMinute).c_str(),
strtail.c_str(),
FIELD_HEATING_DELAY_DISABLE_MINUTE.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'",
strhead.c_str(),
to_string(m_HighOxygenHeatingTemp).c_str(),
strtail.c_str(),
FIELD_HIGH_OXYGEN_HEATING_TEMP.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'",
strhead.c_str(),
to_string(m_LowOxygenHeatingTemp).c_str(),
strtail.c_str(),
FIELD_LOW_OXYGEN_HEATING_TEMP.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'",
strhead.c_str(),
m_UseHeatingMotion ? "1" : "0",
strtail.c_str(),
FIELD_USE_HEATING_MOTION.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'",
strhead.c_str(),
to_string(m_HeatingMotionPeriodSecond).c_str(),
strtail.c_str(),
FIELD_HEATING_MOTION_PERIOD_SECOND.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'",
strhead.c_str(),
to_string(m_HeatingMotionDistance).c_str(),
strtail.c_str(),
FIELD_HEATING_MOTION_DISTANCE.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'",
strhead.c_str(),
to_string(m_FanVoltageOverLimit).c_str(),
strtail.c_str(),
FIELD_FAN_VOLTAGE_OVER_LIMIT.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'",
strhead.c_str(),
m_IsAutoReleasePressureWhenFinish?"1":"0",
strtail.c_str(),
FIELD_IS_AUTO_RELEASE_PRESSURE_WHEN_FINISH.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'",
strhead.c_str(),
to_string(m_ReleasePressureSeconds).c_str(),
strtail.c_str(),
FIELD_RELEASE_PRESSURE_SECONDS.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'",
strhead.c_str(),
to_string(m_ReleasePressureTargeValue).c_str(),
strtail.c_str(),
FIELD_RELEASE_PRESSURE_TARGE_VALUE.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'",
strhead.c_str(),
m_PrintRestEnable ? "1" : "0",
strtail.c_str(),
FIELD_PRINT_REST_ENABLE.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'",
strhead.c_str(),
to_string(m_PrintContinueMinute).c_str(),
strtail.c_str(),
FIELD_PRINT_CONTINUE_MINUTES.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'",
strhead.c_str(),
to_string(m_PrintRestMinutes).c_str(),
strtail.c_str(),
FIELD_PRINT_REST_MINUTES.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'",
strhead.c_str(),
to_string(m_BlowbackNotifyTimeout).c_str(),
strtail.c_str(),
FIELD_BLOW_BACK_NOTIFY_TIMEOUT.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'",
strhead.c_str(),
m_BlowbackTimeoutExecute?"1":"0",
strtail.c_str(),
FIELD_BLOW_BACK_TIMEOUT_EXECUTE.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'",
strhead.c_str(),
to_string(m_DownSkinStopTimes).c_str(),
strtail.c_str(),
FIELD_DOWM_SKIN_STOP_TIMES.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'",
strhead.c_str(),
m_TimePowerCompensateEnable ? "1" : "0",
strtail.c_str(),
FIELD_TIME_POWER_COMPENSATE_ENABLE.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'",
strhead.c_str(),
m_IsPreparePrint ? "1" : "0",
strtail.c_str(),
FIELD_IS_PREPARE_PRINT.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'",
strhead.c_str(),
to_string(m_PrepareParamType).c_str(),
strtail.c_str(),
FIELD_PREPARE_PARAM_TYPE.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'",
strhead.c_str(),
to_string(m_WarnAlarmNotifySecond).c_str(),
strtail.c_str(),
FIELD_WARN_ALARM_NOTIFY_SECOND.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'",
strhead.c_str(),
to_string(m_PowderAlarmPos).c_str(),
strtail.c_str(),
FIELD_POWDER_ALARM_POS.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'",
strhead.c_str(),
to_string(m_VoltageAlarmOffset).c_str(),
strtail.c_str(),
FIELD_VOLTAGE_ALARM_OFFSET.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'",
strhead.c_str(),
to_string(m_ScannerPowerLogTick).c_str(),
strtail.c_str(),
FIELD_SCANNER_POWER_LOG_TICK.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'",
strhead.c_str(),
to_string(m_ScannerPowerLogCount).c_str(),
strtail.c_str(),
FIELD_SCANNER_POWER_LOG_COUNT.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'",
strhead.c_str(),
to_string(m_ScannerVoltageMinLimit).c_str(),
strtail.c_str(),
FIELD_SCANNER_VOLTAGE_MIN_LIMIT.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'",
strhead.c_str(),
to_string(m_ScannerVoltageMaxLimit).c_str(),
strtail.c_str(),
FIELD_SCANNER_VOLTAGE_MAX_LIMIT.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'",
strhead.c_str(),
m_PrintAutoRenewalGas?"1":"0",
strtail.c_str(),
FIELD_PRINT_AUTO_RENEWAL_GAS.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'",
strhead.c_str(),
m_MoldDeoxygenEnable ? "1" : "0",
strtail.c_str(),
FIELD_MOLD_DEOXYGEN_ENABLE.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'",
strhead.c_str(),
to_string(m_AddPowderWarnPos).c_str(),
strtail.c_str(),
FIELD_ADD_POWDER_WARN_POS.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'",
strhead.c_str(),
to_string(m_PowderStickLowLevelAlarmPos).c_str(),
strtail.c_str(),
FIELD_POWDER_STICK_LOW_LEVEL_ALARM_POS.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'",
strhead.c_str(),
m_UseCoverWindSignal ? "1" : "0",
strtail.c_str(),
FIELD_USE_COVER_WIND_SIGNAL.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'",
strhead.c_str(),
to_string(m_MoldServoPosWarnOffset).c_str(),
strtail.c_str(),
FIELD_MOLD_SERVO_POS_WARN_OFFSET.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'",
strhead.c_str(),
to_string(m_LayerLinearPosAlarmOffset).c_str(),
strtail.c_str(),
FIELD_LAYER_LINEAR_POS_ALARM_OFFSET.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'",
strhead.c_str(),
m_UseLinearJudgePos?"1":"0",
strtail.c_str(),
FIELD_USE_LINEAR_JUDGE_POS.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'",
strhead.c_str(),
to_string(m_PrintLinearAccDevAlarmOffset).c_str(),
strtail.c_str(),
FIELD_PRINT_LINEAR_ACC_DEV_ALARM_OFFSET.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'",
strhead.c_str(),
to_string(m_CoverSimulateTimeOffset).c_str(),
strtail.c_str(),
FIELD_COVER_SIMULATE_TIME_OFFSET.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'",
strhead.c_str(),
to_string(m_CoverWindSimulateTimeOffset).c_str(),
strtail.c_str(),
FIELD_COVER_WIND_SIMULATE_TIME_OFFSET.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'",
strhead.c_str(),
m_LogDebugInfo ? "1" : "0",
strtail.c_str(),
FIELD_LOG_DEBUG_INFO.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'",
strhead.c_str(),
m_AutoShutdownPower ? "1" : "0",
strtail.c_str(),
FIELD_AUTO_SHUTDOWN_POWER.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'",
strhead.c_str(),
to_string(m_FilterOxygenAlarmValue).c_str(),
strtail.c_str(),
FIELD_FILTER_OXYGEN_ALARM_VALUE.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'",
strhead.c_str(),
to_string(m_FanFreqLowLimit).c_str(),
strtail.c_str(),
FIELD_FAN_FREQ_LOW_LIMIT.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'",
strhead.c_str(),
to_string(m_PrintLayerDelay).c_str(),
strtail.c_str(),
FIELD_PRINT_LAYER_DELAY.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'",
strhead.c_str(),
to_string(m_CoverLayerDelay).c_str(),
strtail.c_str(),
FIELD_COVER_LAYER_DELAY.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'",
strhead.c_str(),
m_SmartCoverEnable ? "1" : "0",
strtail.c_str(),
FIELD_SMART_COVER_ENABLE.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'",
strhead.c_str(),
to_string(m_PowderStickCalcLength).c_str(),
strtail.c_str(),
FIELD_POWDER_STICK_CALC_LENGTH.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'",
strhead.c_str(),
to_string(m_PurifierFilterNotifyHour).c_str(),
strtail.c_str(),
FIELD_PURIFIER_FILTER_NOTIFY_HOUR.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'",
strhead.c_str(),
to_string(m_CheckDiskSpaceG).c_str(),
strtail.c_str(),
FIELD_CHECK_DISK_SPACE_G.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'",
strhead.c_str(),
to_string(m_PerlayerSpaceK).c_str(),
strtail.c_str(),
FIELD_PERLAYER_SPACE_K.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'",
strhead.c_str(),
m_ShowUnloadHandPos ? "1" : "0",
strtail.c_str(),
FIELD_SHOW_UNLOAD_HAND_POS.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'",
strhead.c_str(),
to_string(m_PurifierDisconnectAlarmJudgeSecond).c_str(),
strtail.c_str(),
FIELD_PURIFIER_DISCONNECT_ALARM_JUDGE_SECOND.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'",
strhead.c_str(),
to_string(m_PurifierKeepAliveAlarmJudgeSecond).c_str(),
strtail.c_str(),
FIELD_PURIFIER_KEEP_ALIVE_ALARM_JUDGE_SECOND.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'",
strhead.c_str(),
to_string(m_OxygenSensorDisconnectAlarmJudgeSecond).c_str(),
strtail.c_str(),
FIELD_OXYGEN_SENSOR_DISCONNECT_ALARM_JUDGE_SECOND.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'",
strhead.c_str(),
to_string(m_HeatingDisconnectAlarmJudgeSecond).c_str(),
strtail.c_str(),
FIELD_HEATING_DISCONNECT_ALARM_JUDGE_SECOND.c_str());
ups.push_back(buffer);
sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'",
strhead.c_str(),
to_string(m_ChillerDisconnectAlarmJudgeSecond).c_str(),
strtail.c_str(),
FIELD_CHILLER_DISCONNECT_ALARM_JUDGE_SECOND.c_str());
ups.push_back(buffer);
}
const string RunCfg::CONFIG_NAME="RunCfg";
const string RunCfg::FIELD_IS_DEBUG_MODE = "is_dubug_mode";
const string RunCfg::FIELD_TARGE_OXYGEN="targe_oxygen";
const string RunCfg::FIELD_WARN_OXYGEN = "warn_oxygen";
const string RunCfg::FIELD_ALARM_OXYGEN="alarm_oxygen";
const string RunCfg::FIELD_START_CYCLE_OXYGEN = "start_cycle_oxygen";
const string RunCfg::FIELD_DANGEROUS_OXYGEN = "dangerous_oxygen";
const string RunCfg::FIELD_ALARM_TEMPERTURE="alarm_temperture";
const string RunCfg::FIELD_ALARM_TEMPERTURE_MIN="alarm_temperture_min";
const string RunCfg::FIELD_ALARM_TEMPERTURE_MAX="alarm_temperture_max";
const string RunCfg::FIELD_ALARM_WATER_TEMP_DOWN = "alarm_water_temp_down";
const string RunCfg::FIELD_ALARM_WATER_TEMP_DOWN_MIN = "alarm_water_temp_down_min";
const string RunCfg::FIELD_ALARM_WATER_TEMP_DOWN_MAX = "alarm_water_temp_down_max";
const string RunCfg::FIELD_ALARM_WATER_TEMP_UP = "alarm_water_temp_up";
const string RunCfg::FIELD_ALARM_WATER_TEMP_UP_MIN = "alarm_water_temp_up_min";
const string RunCfg::FIELD_ALARM_WATER_TEMP_UP_MAX = "alarm_water_temp_up_max";
const string RunCfg::FIELD_LOG_PERSIST_INTEVAL = "log_persist_inteval";
const string RunCfg::FIELD_STATISTICS_INTEVAL = "statistics_inteval";
const string RunCfg::FIELD_STABLE_WIND_STEP = "stable_wind_step";
const string RunCfg::FIELD_SSR_TIME_LIMIT = "SSRTimeLimit";
const string RunCfg::FIELD_SSR_TIME_LIMIT_MIN = "SSRTimeLimitMin";
const string RunCfg::FIELD_SSR_TIME_LIMIT_MAX = "SSRTimeLimitMax";
const string RunCfg::FIELD_HEATING_DELAY_DISABLE_MINUTE = "HeatingDelayDisableMinute";
const string RunCfg::FIELD_HIGH_OXYGEN_HEATING_TEMP = "HighOxygenHeatingTemp";
const string RunCfg::FIELD_LOW_OXYGEN_HEATING_TEMP = "LowOxygenHeatingTemp";
const string RunCfg::FIELD_USE_HEATING_MOTION = "UseHeatingMotion";
const string RunCfg::FIELD_HEATING_MOTION_PERIOD_SECOND = "HeatingMotionPeriodSecond";
const string RunCfg::FIELD_HEATING_MOTION_DISTANCE = "HeatingMotionDistance";
const string RunCfg::FIELD_FAN_VOLTAGE_OVER_LIMIT = "FanVoltageOverLimit";
const string RunCfg::FIELD_IS_AUTO_RELEASE_PRESSURE_WHEN_FINISH = "IsAutoReleasePressureWhenFinish";
const string RunCfg::FIELD_RELEASE_PRESSURE_SECONDS = "ReleasePressureSeconds";
const string RunCfg::FIELD_RELEASE_PRESSURE_TARGE_VALUE = "ReleasePressureTargeValue";
const string RunCfg::FIELD_PRINT_REST_ENABLE = "PrintRestEnable";
const string RunCfg::FIELD_PRINT_CONTINUE_MINUTES = "PrintContinueMinutes";
const string RunCfg::FIELD_PRINT_REST_MINUTES = "PrintRestMinutes";
const string RunCfg::FIELD_BLOW_BACK_NOTIFY_TIMEOUT="BlowbackNotifyTimeout";
const string RunCfg::FIELD_BLOW_BACK_TIMEOUT_EXECUTE="BlowbackTimeoutExecute";
const string RunCfg::FIELD_DOWM_SKIN_STOP_TIMES = "DownSkinStopTimes";
const string RunCfg::FIELD_TIME_POWER_COMPENSATE_ENABLE = "TimePowerCompensateEnable";
const string RunCfg::FIELD_IS_PREPARE_PRINT = "IsPreparePrint";
const string RunCfg::FIELD_PREPARE_PARAM_TYPE = "PreJobParamType";
const string RunCfg::FIELD_WARN_ALARM_NOTIFY_SECOND = "WarnAlarmNotifySecond";
const string RunCfg::FIELD_POWDER_ALARM_POS = "PowderAlarmPos";
const string RunCfg::FIELD_VOLTAGE_ALARM_OFFSET = "VoltageAlarmOffset";
const string RunCfg::FIELD_SCANNER_POWER_LOG_TICK = "ScannerPowerLogTick";
const string RunCfg::FIELD_SCANNER_POWER_LOG_COUNT = "ScannerPowerLogCount";
const string RunCfg::FIELD_SCANNER_VOLTAGE_MIN_LIMIT = "ScannerVoltageMinLimit";
const string RunCfg::FIELD_SCANNER_VOLTAGE_MAX_LIMIT = "ScannerVoltageMaxLimit";
const string RunCfg::FIELD_PRINT_AUTO_RENEWAL_GAS = "PrintAutoRenewalGas";
const string RunCfg::FIELD_MOLD_DEOXYGEN_ENABLE = "MoldDeoxygenEnable";
const string RunCfg::FIELD_ADD_POWDER_WARN_POS="AddPowderWarnPos";
const string RunCfg::FIELD_POWDER_STICK_LOW_LEVEL_ALARM_POS="PowderStickLowLevelAlarmPos";
const string RunCfg::FIELD_USE_COVER_WIND_SIGNAL = "UseCoverWindSignal";
const string RunCfg::FIELD_MOLD_SERVO_POS_WARN_OFFSET = "MoldServoPosWarnOffset";
const string RunCfg::FIELD_LAYER_LINEAR_POS_ALARM_OFFSET = "LayerLinearPosAlarmOffset";
const string RunCfg::FIELD_PRINT_LINEAR_ACC_DEV_ALARM_OFFSET = "PrintLinearAccDevAlarmOffset";
const string RunCfg::FIELD_USE_LINEAR_JUDGE_POS = "UseLinearJudgePos";
const string RunCfg::FIELD_COVER_SIMULATE_TIME_OFFSET = "CoverSimulateTimeOffset";
const string RunCfg::FIELD_COVER_WIND_SIMULATE_TIME_OFFSET = "CoverWindSimulateTimeOffset";
const string RunCfg::FIELD_LOG_DEBUG_INFO = "LogDebugInfo";
const string RunCfg::FIELD_AUTO_SHUTDOWN_POWER = "AutoShutdownPower";
const string RunCfg::FIELD_FILTER_OXYGEN_ALARM_VALUE = "FilterOxygenAlarmValue";
const string RunCfg::FIELD_FAN_FREQ_LOW_LIMIT = "FanFreqLowLimit";
const string RunCfg::FIELD_PRINT_LAYER_DELAY = "PrintLayerDelay";
const string RunCfg::FIELD_COVER_LAYER_DELAY = "CoverLayerDelay";
const string RunCfg::FIELD_SMART_COVER_ENABLE = "SmartCoverEnable";
const string RunCfg::FIELD_POWDER_STICK_CALC_LENGTH = "PowderStickCalcLength";
const string RunCfg::FIELD_PURIFIER_FILTER_NOTIFY_HOUR = "PurifierFilterNotifyHour";
const string RunCfg::FIELD_CHECK_DISK_SPACE_G = "CheckDiskSpaceG";
const string RunCfg::FIELD_PERLAYER_SPACE_K = "PerlayerSpaceK";
const string RunCfg::FIELD_SHOW_UNLOAD_HAND_POS = "ShowUnloadHandPos";
const string RunCfg::FIELD_PURIFIER_DISCONNECT_ALARM_JUDGE_SECOND = "PurifierDisconnectAlarmJudgeSecond";
const string RunCfg::FIELD_PURIFIER_KEEP_ALIVE_ALARM_JUDGE_SECOND = "PurifierKeepAliveAlarmJudgeSecond";
const string RunCfg::FIELD_OXYGEN_SENSOR_DISCONNECT_ALARM_JUDGE_SECOND = "OxygenSensorDisconnectAlarmJudgeSecond";
const string RunCfg::FIELD_HEATING_DISCONNECT_ALARM_JUDGE_SECOND = "HeatingDisconnectAlarmJudgeSecond";
const string RunCfg::FIELD_CHILLER_DISCONNECT_ALARM_JUDGE_SECOND = "ChillerDisconnectAlarmJudgeSecond";

253
PrintC/config/bean/RunCfg.h Normal file
View File

@ -0,0 +1,253 @@
#pragma once
#include <string>
#include <vector>
#include <Windows.h>
using namespace std;
class RunCfg
{
public:
enum PreJobParamType {
Default=0,
Data
};
RunCfg();
~RunCfg();
//static void Generate(vector<string>& ins);
void GetUpdateSql(vector<string>& ups);
void SetOxygenTargeValue(float to) {
EnterCriticalSection(&m_CS);
m_TargeOxygen = to;
LeaveCriticalSection(&m_CS);
}
float GetOxygenTargeValue()
{
float fv = 0.0f;
EnterCriticalSection(&m_CS);
fv = m_TargeOxygen;
LeaveCriticalSection(&m_CS);
return fv;
}
void SetOxygenAlarmValue(float to) {
EnterCriticalSection(&m_CS);
m_AlarmOxygen = to;
LeaveCriticalSection(&m_CS);
}
float GetOxygenAlarmValue()
{
float fv = 0.0f;
EnterCriticalSection(&m_CS);
fv = m_AlarmOxygen;
LeaveCriticalSection(&m_CS);
return fv;
}
public:
bool m_IsDebugMode;
float m_TargeOxygen; //目标氧
float m_WarnOxygen; //预警氧
float m_AlarmOxygen; //报警氧
float m_StartCycleOxygen; //循环开启时氧含量值
float m_DangerousOxygen; //氧含量危险提示值
float m_AlarmTemperture; //舱内温度
float m_AlarmTempertureMin;
float m_AlarmTempertureMax;
float m_AlarmWaterTempDown; //水温下限
float m_AlarmWaterTempDownMin; //水温下限
float m_AlarmWaterTempDownMax; //水温下限
float m_AlarmWaterTempUp; //水温上限
float m_AlarmWaterTempUpMin; //水温上限
float m_AlarmWaterTempUpMax; //水温上限
// float m_CheckWind; //外置风机 开始时循环风速检测
// float m_CheckWindMin; //开始时循环风速检测
// float m_CheckWindMax; //开始时循环风速检测
// float m_AlarmWindLowerLimit; //外置风机 低风报警
unsigned int m_LogPersistInteval; //日志记录间隔
unsigned int m_StatisticsInteval; //系统统计间隔
bool m_OffsetRotateEnable;
// float m_ArgonCheckWind; //目标风速
// float m_ArgonTargetWind; //目标风速
// float m_ArgonTargetWindMin; //目标风速
// float m_ArgonTargetWindMax; //目标风速
// float m_NitrogenCheckWind; //目标风速
// float m_NitrogenTargetWind; //目标风速
// float m_NitrogenTargetWindMin; //目标风速
// float m_NitrogenTargetWindMax; //目标风速
// float m_AlarmArgonWindLowerLimit; //风速下限
// float m_AlarmNitrogenWindLowerLimit; //风速下限
float m_StableWindStep; //风稳电压步进值
unsigned int m_SSRTimeLimit; //基板加热输入输出不同步时间 ms
unsigned int m_SSRTimeLimitMin;
unsigned int m_SSRTimeLimitMax;
unsigned int m_HeatingDeleyDisableMinute; //加热延迟关闭
float m_HighOxygenHeatingTemp;
float m_LowOxygenHeatingTemp;
bool m_UseHeatingMotion;
unsigned int m_HeatingMotionPeriodSecond;
double m_HeatingMotionDistance;
float m_FanVoltageOverLimit; //风机电压越限
bool m_IsAutoReleasePressureWhenFinish; //打印完成后是否自动泄压
uint32_t m_ReleasePressureSeconds; //泄压秒数
float m_ReleasePressureTargeValue; //泄压目标值
bool m_PrintRestEnable; //打印停歇
uint32_t m_PrintContinueMinute; //持续打印分钟
uint32_t m_PrintRestMinutes; //停歇分钟
uint32_t m_BlowbackNotifyTimeout; //反吹提示超时设置
bool m_BlowbackTimeoutExecute; //超时后强制执行
unsigned int m_DownSkinStopTimes; //下表面停止次数
bool m_TimePowerCompensateEnable;
bool m_IsPreparePrint; //预打印
int m_PrepareParamType;
unsigned int m_WarnAlarmNotifySecond;
bool m_HadSetBasePlatformPoint;
int m_PowderAlarmPos; //供粉不足报警位
float m_VoltageAlarmOffset; //电源电压报警偏差
unsigned int m_ScannerPowerLogTick;
unsigned int m_ScannerPowerLogCount;
float m_ScannerVoltageMinLimit; //振镜电压下限
float m_ScannerVoltageMaxLimit; //振镜电压上限
bool m_PrintAutoRenewalGas; //打印自动换气
bool m_MoldDeoxygenEnable; //启用升降除氧
float m_AddPowderWarnPos; //加粉预警位
float m_PowderStickLowLevelAlarmPos; //加粉低位报警位
bool m_UseCoverWindSignal;
unsigned int m_MoldServoPosWarnOffset; //升降伺服位置警示值
unsigned int m_LayerLinearPosAlarmOffset; //层光栅位置偏差报警值
unsigned int m_PrintLinearAccDevAlarmOffset; //打印光栅累积误差报警值
bool m_UseLinearJudgePos;
double m_CoverSimulateTimeOffset;
double m_CoverWindSimulateTimeOffset;
bool m_LogDebugInfo;
bool m_AutoShutdownPower;
float m_FilterOxygenAlarmValue;
float m_FanFreqLowLimit;
unsigned int m_PrintLayerDelay;
unsigned int m_CoverLayerDelay;
bool m_SmartCoverEnable;
float m_PowderStickCalcLength;
int m_PurifierFilterNotifyHour;
double m_CheckDiskSpaceG;
double m_PerlayerSpaceK;
bool m_ShowUnloadHandPos;
unsigned int m_PurifierDisconnectAlarmJudgeSecond;
unsigned int m_PurifierKeepAliveAlarmJudgeSecond;
unsigned int m_OxygenSensorDisconnectAlarmJudgeSecond;
unsigned int m_HeatingDisconnectAlarmJudgeSecond;
unsigned int m_ChillerDisconnectAlarmJudgeSecond;
public:
static const string CONFIG_NAME;
static const string FIELD_IS_DEBUG_MODE;
static const string FIELD_TARGE_OXYGEN;
static const string FIELD_WARN_OXYGEN;
static const string FIELD_ALARM_OXYGEN;
static const string FIELD_DANGEROUS_OXYGEN;
static const string FIELD_ALARM_TEMPERTURE;
static const string FIELD_ALARM_TEMPERTURE_MIN;
static const string FIELD_ALARM_TEMPERTURE_MAX;
static const string FIELD_ALARM_WATER_TEMP_DOWN;
static const string FIELD_ALARM_WATER_TEMP_DOWN_MIN;
static const string FIELD_ALARM_WATER_TEMP_DOWN_MAX;
static const string FIELD_ALARM_WATER_TEMP_UP;
static const string FIELD_ALARM_WATER_TEMP_UP_MIN;
static const string FIELD_ALARM_WATER_TEMP_UP_MAX;
// static const string FIELD_CHECK_WIND;
// static const string FIELD_CHECK_WIND_MIN;
// static const string FIELD_CHECK_WIND_MAX;
static const string FIELD_START_CYCLE_OXYGEN;
static const string FIELD_LOG_PERSIST_INTEVAL;
static const string FIELD_STATISTICS_INTEVAL;
static const string FIELD_STABLE_WIND_STEP;
// static const string FIELD_WIND_LOWER_LIMIT;
static const string FIELD_SSR_TIME_LIMIT;
static const string FIELD_SSR_TIME_LIMIT_MIN;
static const string FIELD_SSR_TIME_LIMIT_MAX;
static const string FIELD_HEATING_DELAY_DISABLE_MINUTE;
static const string FIELD_HIGH_OXYGEN_HEATING_TEMP;
static const string FIELD_LOW_OXYGEN_HEATING_TEMP;
static const string FIELD_USE_HEATING_MOTION;
static const string FIELD_HEATING_MOTION_PERIOD_SECOND;
static const string FIELD_HEATING_MOTION_DISTANCE;
static const string FIELD_FAN_VOLTAGE_OVER_LIMIT;
static const string FIELD_IS_AUTO_RELEASE_PRESSURE_WHEN_FINISH;
static const string FIELD_RELEASE_PRESSURE_SECONDS;
static const string FIELD_RELEASE_PRESSURE_TARGE_VALUE;
static const string FIELD_PRINT_REST_ENABLE;
static const string FIELD_PRINT_CONTINUE_MINUTES;
static const string FIELD_PRINT_REST_MINUTES;
static const string FIELD_BLOW_BACK_NOTIFY_TIMEOUT;
static const string FIELD_BLOW_BACK_TIMEOUT_EXECUTE;
static const string FIELD_DOWM_SKIN_STOP_TIMES;
static const string FIELD_TIME_POWER_COMPENSATE_ENABLE;
static const string FIELD_IS_PREPARE_PRINT;
static const string FIELD_PREPARE_PARAM_TYPE;
static const string FIELD_WARN_ALARM_NOTIFY_SECOND;
static const string FIELD_POWDER_ALARM_POS;
static const string FIELD_VOLTAGE_ALARM_OFFSET;
static const string FIELD_SCANNER_POWER_LOG_TICK;
static const string FIELD_SCANNER_POWER_LOG_COUNT;
static const string FIELD_SCANNER_VOLTAGE_MIN_LIMIT;
static const string FIELD_SCANNER_VOLTAGE_MAX_LIMIT;
static const string FIELD_PRINT_AUTO_RENEWAL_GAS;
static const string FIELD_MOLD_DEOXYGEN_ENABLE;
static const string FIELD_ADD_POWDER_WARN_POS;
static const string FIELD_POWDER_STICK_LOW_LEVEL_ALARM_POS;
static const string FIELD_USE_COVER_WIND_SIGNAL;
static const string FIELD_MOLD_SERVO_POS_WARN_OFFSET;
static const string FIELD_LAYER_LINEAR_POS_ALARM_OFFSET;
static const string FIELD_PRINT_LINEAR_ACC_DEV_ALARM_OFFSET;
static const string FIELD_USE_LINEAR_JUDGE_POS;
static const string FIELD_COVER_SIMULATE_TIME_OFFSET;
static const string FIELD_COVER_WIND_SIMULATE_TIME_OFFSET;
static const string FIELD_LOG_DEBUG_INFO;
static const string FIELD_AUTO_SHUTDOWN_POWER;
static const string FIELD_FILTER_OXYGEN_ALARM_VALUE;
static const string FIELD_FAN_FREQ_LOW_LIMIT;
static const string FIELD_PRINT_LAYER_DELAY;
static const string FIELD_COVER_LAYER_DELAY;
static const string FIELD_SMART_COVER_ENABLE;
static const string FIELD_POWDER_STICK_CALC_LENGTH;
static const string FIELD_PURIFIER_FILTER_NOTIFY_HOUR;
static const string FIELD_CHECK_DISK_SPACE_G;
static const string FIELD_PERLAYER_SPACE_K;
static const string FIELD_SHOW_UNLOAD_HAND_POS;
static const string FIELD_PURIFIER_DISCONNECT_ALARM_JUDGE_SECOND;
static const string FIELD_PURIFIER_KEEP_ALIVE_ALARM_JUDGE_SECOND;
static const string FIELD_OXYGEN_SENSOR_DISCONNECT_ALARM_JUDGE_SECOND;
static const string FIELD_HEATING_DISCONNECT_ALARM_JUDGE_SECOND;
static const string FIELD_CHILLER_DISCONNECT_ALARM_JUDGE_SECOND;
private:
CRITICAL_SECTION m_CS;
};

View File

@ -1,6 +1,6 @@
[Window][MainDockSpace]
Pos=0,40
Size=32,32
Size=1536,779
Collapsed=0
[Window][Debug##Default]
@ -15,14 +15,27 @@ Collapsed=0
[Window][TitleBar]
Pos=0,0
Size=32,40
Size=1536,40
Collapsed=0
[Window][toolbar]
Pos=0,70
Size=32,32
Size=32,60
Collapsed=0
[Window][HBDSystem1000]
Pos=1180,40
Size=356,779
Collapsed=0
DockId=0x00000002,0
[Window][管理员]
Pos=636,381
Size=264,102
Collapsed=0
[Docking][Data]
DockSpace ID=0x0204CCDD Window=0xDEDC5B90 Pos=0,40 Size=32,32 CentralNode=1
DockSpace ID=0x0204CCDD Window=0xDEDC5B90 Pos=0,40 Size=1536,779 Split=X
DockNode ID=0x00000001 Parent=0x0204CCDD SizeRef=1178,779 CentralNode=1
DockNode ID=0x00000002 Parent=0x0204CCDD SizeRef=356,779 HiddenTabBar=1 Selected=0x96FBC416

View File

@ -145,7 +145,8 @@ class ProtoBufferReader : public grpc::protobuf::io::ZeroCopyInputStream {
*slice(), GRPC_SLICE_LENGTH(*slice()) - backup_count(),
GRPC_SLICE_LENGTH(*slice()) - backup_count() + count)));
}
int64_t take = std::min(backup_count(), static_cast<int64_t>(count));
int64_t count1 = backup_count(), count2 = static_cast<int64_t>(count);
int64_t take = count1 > count2 ? count2 : count1; //std::min(backup_count(), static_cast<int64_t>(count));
set_backup_count(backup_count() - take);
count -= (int)take;
if (count == 0) {

View File

@ -15,6 +15,7 @@
#include "Machine/Machine.h"
#include "Machine/HBD1000.h"
#include "LanguageManager.h"
#include "ChartletManager.h"
string g_AppPath;
string g_AppDisk;
@ -57,6 +58,10 @@ public:
g_Toast = new Toast();
g_Lang = (char*)"zh_CN";
g_LngManager = new LanguageManager();
ChartletManager::GetInstance()->Init();
g_LngManager->Init();
m_controller = new Controller();
m_controller->Init();

Binary file not shown.

Binary file not shown.

View File

@ -87,7 +87,6 @@ void DataHandle::DataCallBackHandle(const ReadData& msg) {
switch (msg.dataType) {
case GET:
break;
case SET: break;
case LOAD:
if (!m_controler->m_ScannerCtrl->IsStandBy() && g_Admin == USER)return;

View File

@ -44,7 +44,7 @@ Status StreamServer::AllStream(ServerContext* context, grpc::ServerReaderWriter<
readData.valueType = (DATATYPE)request.valuetype();
readData.clientPtr = cinfo;
printf("客户端消息dataType:%d,nameKey:%s, strValue:%s,valueType:%d",
printf("客户端消息dataType:%d,nameKey:%s, strValue:%s,valueType:%d\n",
readData.dataType, readData.nameKey.c_str(), readData.strValue.c_str(), readData.valueType);
if (m_dataCallBack) {
m_dataCallBack(m_handlePtr,readData);

98
PrintS/HBDSystem.cpp Normal file
View File

@ -0,0 +1,98 @@
#include "HBDSystem.h"
UserType g_Admin;
string g_AppPath;
string g_AppDisk;
Logger* g_log;
LanguageManager* g_LngManager;
Toast* g_Toast;
bool g_isDebug;
uint32_t g_ScanSerial;
string g_gno;
SystemInfo* g_SystemInfo;
HBDSystem::HBDSystem()
: m_dataHandle(new DataHandle()){
}
HBDSystem::~HBDSystem() {
DELP(g_log);
DELP(g_SystemInfo);
DELP(g_Toast);
DELP(g_LngManager);
DELP(m_dataHandle);
}
void HBDSystem::Init() {
char szFilePath[MAX_PATH + 1] = { 0 };
GetModuleFileName(NULL, szFilePath, MAX_PATH);
(strrchr(szFilePath, '\\'))[1] = 0;
g_AppPath = szFilePath;
g_AppDisk = g_AppPath.substr(0, 2);
g_Admin = ADMIN;
g_isDebug = false;
g_log = new Logger();
g_log->m_LogDao->Init();
g_SystemInfo = new SystemInfo();
g_Toast = new Toast();
m_dataHandle->Init();
GetVersion();
}
void HBDSystem::GetVersion()
{
char cPath[MAX_PATH];
DWORD dwHandle, InfoSize;
string strVersion;
::GetModuleFileName(NULL, cPath, sizeof(cPath));
InfoSize = GetFileVersionInfoSize(cPath, &dwHandle);
printf("version:%d\n", GetLastError());
if (InfoSize == 0L) return;
unsigned char* InfoBuf = new unsigned char[InfoSize];
GetFileVersionInfo(cPath, 0, InfoSize, InfoBuf); //获得生成文件使用的代码页及文件版本
unsigned int cbTranslate = 0;
struct LANGANDCODEPAGE {
WORD wLanguage;
WORD wCodePage;
} *lpTranslate;
VerQueryValue(InfoBuf, TEXT("\\VarFileInfo\\Translation"), (LPVOID*)&lpTranslate, &cbTranslate);
// Read the file description for each language and code page.
for (unsigned int i = 0; i < (cbTranslate / sizeof(struct LANGANDCODEPAGE)); i++)
{
char SubBlock[200];
wsprintf(SubBlock,
TEXT("\\StringFileInfo\\%04x%04x\\ProductVersion"),
lpTranslate[i].wLanguage,
lpTranslate[i].wCodePage);
void* lpBuffer = NULL;
unsigned int dwBytes = 0;
VerQueryValue(InfoBuf,
SubBlock,
&lpBuffer,
&dwBytes);
string strTemp = (char*)lpBuffer;
strVersion += strTemp;
}
delete[] InfoBuf;
g_SystemInfo->m_ProductVersion = strVersion;
}
void HBDSystem::Usage() {
printf("print service usage:\n");
printf(" r(run):start run...\n");
printf(" s(stop):stop run...\n");
printf(" e(exit):exit program...\n");
printf(" h(help):print this information...\n");
}

32
PrintS/HBDSystem.h Normal file
View File

@ -0,0 +1,32 @@
#pragma once
#include "DataManage/DataHandle.h"
#include "global.h"
#include "SystemInfo.h"
#include "Logger.h"
#include "Toast.h"
#include <iostream>
#include <map>
#include <conio.h>
class HBDSystem {
public:
HBDSystem();
~HBDSystem();
void Usage();
void Init();
void Run() { if(m_dataHandle) m_dataHandle->Run(); }
void Stop() { if(m_dataHandle) m_dataHandle->Stop(); }
private:
void GetVersion();
private:
DataHandle* m_dataHandle;
};

BIN
PrintS/PrintS.aps Normal file

Binary file not shown.

BIN
PrintS/PrintS.rc Normal file

Binary file not shown.

View File

@ -266,6 +266,7 @@
<ClCompile Include="external\SQLiteCpp\Exception.cpp" />
<ClCompile Include="external\SQLiteCpp\Statement.cpp" />
<ClCompile Include="external\SQLiteCpp\Transaction.cpp" />
<ClCompile Include="HBDSystem.cpp" />
<ClCompile Include="job\BPBinary.cpp" />
<ClCompile Include="job\FileProcessor.cpp" />
<ClCompile Include="job\H3DFileProcessor.cpp" />
@ -614,6 +615,7 @@
<ClInclude Include="external\vl\include\GL\khronos_wglext.h" />
<ClInclude Include="external\vl\include\GL\mesa_gl.h" />
<ClInclude Include="global.h" />
<ClInclude Include="HBDSystem.h" />
<ClInclude Include="job\BPBinary.h" />
<ClInclude Include="job\FileProcessor.h" />
<ClInclude Include="job\H3DFileProcessor.h" />
@ -674,6 +676,7 @@
<ClInclude Include="Remote\proto_msg.h" />
<ClInclude Include="Remote\RemoteClient.h" />
<ClInclude Include="resource.h" />
<ClInclude Include="resource1.h" />
<ClInclude Include="ScannerCtrl\BaseCtrl.h" />
<ClInclude Include="ScannerCtrl\IntelliScanState.h" />
<ClInclude Include="ScannerCtrl\RTC5Scanner.h" />
@ -697,6 +700,9 @@
<ItemGroup>
<Text Include="说明.txt" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="PrintS.rc" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>

View File

@ -680,6 +680,7 @@
<ClCompile Include="external\minizip\zutil.c">
<Filter>external\minizip</Filter>
</ClCompile>
<ClCompile Include="HBDSystem.cpp" />
</ItemGroup>
<ItemGroup>
<None Include="protobuf\stream.proto">
@ -1735,8 +1736,15 @@
<ClInclude Include="external\minizip\zutil.h">
<Filter>external\minizip</Filter>
</ClInclude>
<ClInclude Include="resource1.h" />
<ClInclude Include="HBDSystem.h" />
</ItemGroup>
<ItemGroup>
<Text Include="说明.txt" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="PrintS.rc">
<Filter>资源文件</Filter>
</ResourceCompile>
</ItemGroup>
</Project>

View File

@ -1,68 +1,13 @@
#include "DataManage/DataHandle.h"
#include "global.h"
#include "SystemInfo.h"
#include "Logger.h"
#include "Toast.h"
#include "HBDSystem.h"
#include <iostream>
#include <map>
UserType g_Admin;
string g_AppPath;
string g_AppDisk;
Logger* g_log;
LanguageManager* g_LngManager;
Toast* g_Toast;
bool g_isDebug;
uint32_t g_ScanSerial;
string g_gno;
SystemInfo* g_SystemInfo;
class HBDSystem {
public:
HBDSystem() {}
~HBDSystem() {
DELP(g_log);
DELP(g_SystemInfo);
DELP(g_Toast);
DELP(g_LngManager);
}
void Init(){
char szFilePath[MAX_PATH + 1] = { 0 };
GetModuleFileName(NULL, szFilePath, MAX_PATH);
(strrchr(szFilePath, '\\'))[1] = 0;
g_AppPath = szFilePath;
g_AppDisk = g_AppPath.substr(0, 2);
g_Admin = ADMIN;
g_isDebug = false;
g_log = new Logger();
g_log->m_LogDao->Init();
g_SystemInfo = new SystemInfo();
g_Toast = new Toast();
}
};
void Usage() {
printf("print service usage:\n");
printf(" r(run):start run...\n");
printf(" s(stop):stop run...\n");
printf(" e(exit):exit program...\n");
printf(" h(help):print this information...\n");
}
int main(int argc, char** argv) {
HBDSystem* hbd = new HBDSystem();
hbd->Init();
DataHandle* dataHandle = new DataHandle();
dataHandle->Init();
Usage();
hbd->Usage();
std::string userInput;
bool unknowCmd = false;
@ -72,10 +17,10 @@ int main(int argc, char** argv) {
unknowCmd = false;
if (userInput == "r" || userInput == "run") {
printf("service is running...\n");
dataHandle->Run();
hbd->Run();
}
else if (userInput == "s" || userInput == "stop") {
if (dataHandle) dataHandle->Stop();
hbd->Stop();
printf("service is stoped...\n");
}
else if (userInput == "e" || userInput == "exit") {
@ -83,7 +28,7 @@ int main(int argc, char** argv) {
break;
}
else if (userInput == "h" || userInput == "help") {
Usage();
hbd->Usage();
}
else {
printf("未识别的命令,请重新输入命令:");
@ -92,7 +37,6 @@ int main(int argc, char** argv) {
}
DELP(dataHandle);
DELP(hbd);
return 0;
}

Binary file not shown.

14
PrintS/resource1.h Normal file
View File

@ -0,0 +1,14 @@
//{{NO_DEPENDENCIES}}
// Microsoft Visual C++ generated include file.
// Used by PrintS.rc
// 新对象的下一组默认值
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 101
#define _APS_NEXT_COMMAND_VALUE 40001
#define _APS_NEXT_CONTROL_VALUE 1001
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif