summaryrefslogtreecommitdiffstats
path: root/Project/base
diff options
context:
space:
mode:
Diffstat (limited to 'Project/base')
-rw-r--r--Project/base/ChartViewBase.cpp239
-rw-r--r--Project/base/ChartViewBase.h100
-rw-r--r--Project/base/ChartViewBitmaps.cpp724
-rw-r--r--Project/base/ControlEditorBase.cpp361
-rw-r--r--Project/base/ControlEditorBase.h140
-rw-r--r--Project/base/ControlEditorBitmaps.cpp1186
-rw-r--r--Project/base/DataReportBase.cpp277
-rw-r--r--Project/base/DataReportBase.h94
-rw-r--r--Project/base/DataReportBitmaps.cpp724
-rw-r--r--Project/base/ElementFormBase.cpp3731
-rw-r--r--Project/base/ElementFormBase.h1049
-rw-r--r--Project/base/ElementFormBitmaps.cpp49
-rw-r--r--Project/base/MainFrameBase.cpp311
-rw-r--r--Project/base/MainFrameBase.h145
-rw-r--r--Project/base/MainFrameBitmaps.cpp2569
-rw-r--r--Project/base/PropertiesFormBase.cpp806
-rw-r--r--Project/base/PropertiesFormBase.h260
-rw-r--r--Project/base/PropertiesFormBitmaps.cpp2659
-rw-r--r--Project/base/WorkspaceBase.cpp84
-rw-r--r--Project/base/WorkspaceBase.h63
-rw-r--r--Project/base/WorkspaceBitmaps.cpp49
21 files changed, 15620 insertions, 0 deletions
diff --git a/Project/base/ChartViewBase.cpp b/Project/base/ChartViewBase.cpp
new file mode 100644
index 0000000..42e9beb
--- /dev/null
+++ b/Project/base/ChartViewBase.cpp
@@ -0,0 +1,239 @@
+//////////////////////////////////////////////////////////////////////
+// This file was auto-generated by codelite's wxCrafter Plugin
+// wxCrafter project file: ChartView.wxcp
+// Do not modify this file by hand!
+//////////////////////////////////////////////////////////////////////
+
+#include "ChartViewBase.h"
+
+
+// Declare the bitmap loading function
+extern void wxCE3EBInitBitmapResources();
+
+static bool bBitmapLoaded = false;
+
+
+ChartViewBase::ChartViewBase(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style)
+ : wxFrame(parent, id, title, pos, size, style)
+{
+ if ( !bBitmapLoaded ) {
+ // We need to initialise the default bitmap handler
+ wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler);
+ wxCE3EBInitBitmapResources();
+ bBitmapLoaded = true;
+ }
+ // Set icon(s) to the application/dialog
+ wxIconBundle app_icons;
+ {
+ wxBitmap iconBmp = wxXmlResource::Get()->LoadBitmap(wxT("chart16"));
+ wxIcon icn;
+ icn.CopyFromBitmap(iconBmp);
+ app_icons.AddIcon( icn );
+ }
+ {
+ wxBitmap iconBmp = wxXmlResource::Get()->LoadBitmap(wxT("chart32"));
+ wxIcon icn;
+ icn.CopyFromBitmap(iconBmp);
+ app_icons.AddIcon( icn );
+ }
+ {
+ wxBitmap iconBmp = wxXmlResource::Get()->LoadBitmap(wxT("chart64"));
+ wxIcon icn;
+ icn.CopyFromBitmap(iconBmp);
+ app_icons.AddIcon( icn );
+ }
+ {
+ wxBitmap iconBmp = wxXmlResource::Get()->LoadBitmap(wxT("chart128"));
+ wxIcon icn;
+ icn.CopyFromBitmap(iconBmp);
+ app_icons.AddIcon( icn );
+ }
+ {
+ wxBitmap iconBmp = wxXmlResource::Get()->LoadBitmap(wxT("chart256"));
+ wxIcon icn;
+ icn.CopyFromBitmap(iconBmp);
+ app_icons.AddIcon( icn );
+ }
+ SetIcons( app_icons );
+
+
+ m_menuBar = new wxMenuBar(0);
+ this->SetMenuBar(m_menuBar);
+
+ m_menuFile = new wxMenu();
+ m_menuBar->Append(m_menuFile, _("File"));
+
+ m_menuItemSaveImage = new wxMenuItem(m_menuFile, wxID_ANY, _("Save chart as image"), wxT(""), wxITEM_NORMAL);
+ m_menuFile->Append(m_menuItemSaveImage);
+
+ m_menuItemSendToClipboard = new wxMenuItem(m_menuFile, wxID_ANY, _("Send to clipboard"), wxT(""), wxITEM_NORMAL);
+ m_menuFile->Append(m_menuItemSendToClipboard);
+
+ m_menuItemExportCSV = new wxMenuItem(m_menuFile, wxID_ANY, _("Export CSV..."), wxT(""), wxITEM_NORMAL);
+ m_menuFile->Append(m_menuItemExportCSV);
+
+ m_menuFile->AppendSeparator();
+
+ m_menuItemExit = new wxMenuItem(m_menuFile, wxID_ANY, _("Exit"), wxT(""), wxITEM_NORMAL);
+ m_menuFile->Append(m_menuItemExit);
+
+ m_menuView = new wxMenu();
+ m_menuBar->Append(m_menuView, _("View"));
+
+ m_menuItemFit = new wxMenuItem(m_menuView, wxID_ANY, _("Fit"), wxT(""), wxITEM_NORMAL);
+ m_menuView->Append(m_menuItemFit);
+
+ m_menuView->AppendSeparator();
+
+ m_menuItemShowGrid = new wxMenuItem(m_menuView, wxID_ANY, _("Show grid"), wxT(""), wxITEM_CHECK);
+ m_menuView->Append(m_menuItemShowGrid);
+
+ m_menuItemShowLabel = new wxMenuItem(m_menuView, wxID_ANY, _("Show label"), wxT(""), wxITEM_CHECK);
+ m_menuView->Append(m_menuItemShowLabel);
+
+ m_menuItemShowCoordinates = new wxMenuItem(m_menuView, wxID_ANY, _("Show coordinates"), wxT(""), wxITEM_CHECK);
+ m_menuView->Append(m_menuItemShowCoordinates);
+
+ m_menuItemDarkTheme = new wxMenuItem(m_menuView, wxID_ANY, _("Dark theme"), wxT(""), wxITEM_CHECK);
+ m_menuView->Append(m_menuItemDarkTheme);
+
+ wxBoxSizer* boxSizer_lvl1_1 = new wxBoxSizer(wxHORIZONTAL);
+ this->SetSizer(boxSizer_lvl1_1);
+
+ wxBoxSizer* boxSizer_lvl2_1 = new wxBoxSizer(wxVERTICAL);
+
+ boxSizer_lvl1_1->Add(boxSizer_lvl2_1, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_treeCtrl = new wxTreeCtrl(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), wxTR_DEFAULT_STYLE|wxTR_HIDE_ROOT);
+
+ boxSizer_lvl2_1->Add(m_treeCtrl, 1, 0, WXC_FROM_DIP(5));
+ m_treeCtrl->SetMinSize(wxSize(250,-1));
+
+ wxArrayString m_pgMgrArr;
+ wxUnusedVar(m_pgMgrArr);
+ wxArrayInt m_pgMgrIntArr;
+ wxUnusedVar(m_pgMgrIntArr);
+ m_pgMgr = new wxPropertyGridManager(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), wxPG_SPLITTER_AUTO_CENTER|wxPG_BOLD_MODIFIED);
+
+ boxSizer_lvl2_1->Add(m_pgMgr, 0, 0, WXC_FROM_DIP(5));
+
+ m_pgPropLineProp = m_pgMgr->Append( new wxPropertyCategory( _("Line properties") ) );
+ m_pgPropLineProp->SetHelpString(wxT(""));
+
+ m_pgPropDraw = m_pgMgr->AppendIn( m_pgPropLineProp, new wxBoolProperty( _("Draw"), wxPG_LABEL, 1) );
+ m_pgPropDraw->SetHelpString(wxT(""));
+ m_pgPropDraw->SetEditor( wxT("CheckBox") );
+
+ m_pgProplineThick = m_pgMgr->AppendIn( m_pgPropLineProp, new wxIntProperty( _("Thickness"), wxPG_LABEL, 1) );
+ m_pgProplineThick->SetHelpString(wxT(""));
+ m_pgProplineThick->SetEditor( wxT("TextCtrl") );
+
+ m_pgMgrArr.Clear();
+ m_pgMgrIntArr.Clear();
+ m_pgProplineType = m_pgMgr->AppendIn( m_pgPropLineProp, new wxEnumProperty( _("Type"), wxPG_LABEL, m_pgMgrArr, m_pgMgrIntArr, 0) );
+ m_pgProplineType->SetHelpString(wxT(""));
+ m_pgProplineType->SetEditor( wxT("Choice") );
+
+ m_pgMgrArr.Clear();
+ m_pgMgrIntArr.Clear();
+ m_pgMgrArr.Add(_("Y"));
+ m_pgMgrArr.Add(_("X"));
+ m_pgProplineAxis = m_pgMgr->AppendIn( m_pgPropLineProp, new wxEnumProperty( _("Axis"), wxPG_LABEL, m_pgMgrArr, m_pgMgrIntArr, 0) );
+ m_pgProplineAxis->SetHelpString(wxT(""));
+ m_pgProplineAxis->SetEditor( wxT("Choice") );
+
+ m_pgPropChartProp = m_pgMgr->Append( new wxPropertyCategory( _("Chart properties") ) );
+ m_pgPropChartProp->SetHelpString(wxT(""));
+
+ m_pgPropChartTitle = m_pgMgr->AppendIn( m_pgPropChartProp, new wxStringProperty( _("Chart title"), wxPG_LABEL, wxT("")) );
+ m_pgPropChartTitle->SetHelpString(wxT(""));
+ m_pgPropChartTitle->SetEditor( wxT("TextCtrl") );
+
+ m_pgPropXLabel = m_pgMgr->AppendIn( m_pgPropChartProp, new wxStringProperty( _("X axis label"), wxPG_LABEL, wxT("")) );
+ m_pgPropXLabel->SetHelpString(wxT(""));
+ m_pgPropXLabel->SetEditor( wxT("TextCtrl") );
+
+ m_pgPropYLabel = m_pgMgr->AppendIn( m_pgPropChartProp, new wxStringProperty( _("Y axis label"), wxPG_LABEL, wxT("")) );
+ m_pgPropYLabel->SetHelpString(wxT(""));
+ m_pgPropYLabel->SetEditor( wxT("TextCtrl") );
+
+ m_pgPropMargins = m_pgMgr->AppendIn( m_pgPropChartProp, new wxStringProperty( _("Margins"), wxPG_LABEL, wxT("")) );
+ m_pgPropMargins->SetHelpString(wxT(""));
+
+ m_pgPropMarginsUp = m_pgMgr->AppendIn( m_pgPropMargins, new wxIntProperty( _("Up"), wxPG_LABEL, 20) );
+ m_pgPropMarginsUp->SetHelpString(wxT(""));
+
+ m_pgPropMarginsBot = m_pgMgr->AppendIn( m_pgPropMargins, new wxIntProperty( _("Botton"), wxPG_LABEL, 40) );
+ m_pgPropMarginsBot->SetHelpString(wxT(""));
+
+ m_pgPropMarginsLeft = m_pgMgr->AppendIn( m_pgPropMargins, new wxIntProperty( _("Left"), wxPG_LABEL, 60) );
+ m_pgPropMarginsLeft->SetHelpString(wxT(""));
+
+ m_pgPropMarginsRight = m_pgMgr->AppendIn( m_pgPropMargins, new wxIntProperty( _("Right"), wxPG_LABEL, 10) );
+ m_pgPropMarginsRight->SetHelpString(wxT(""));
+
+ m_pgPropAxisLimit = m_pgMgr->AppendIn( m_pgPropChartProp, new wxStringProperty( _("Axis limit"), wxPG_LABEL, wxT("")) );
+ m_pgPropAxisLimit->SetHelpString(wxT(""));
+
+ m_pgPropXMin = m_pgMgr->AppendIn( m_pgPropAxisLimit, new wxFloatProperty( _("X min"), wxPG_LABEL, 0) );
+ m_pgPropXMin->SetHelpString(wxT(""));
+
+ m_pgPropXMax = m_pgMgr->AppendIn( m_pgPropAxisLimit, new wxFloatProperty( _("X max"), wxPG_LABEL, 1) );
+ m_pgPropXMax->SetHelpString(wxT(""));
+
+ m_pgPropYMin = m_pgMgr->AppendIn( m_pgPropAxisLimit, new wxFloatProperty( _("Y min"), wxPG_LABEL, 0) );
+ m_pgPropYMin->SetHelpString(wxT(""));
+
+ m_pgPropYMax = m_pgMgr->AppendIn( m_pgPropAxisLimit, new wxFloatProperty( _("Y max"), wxPG_LABEL, 1) );
+ m_pgPropYMax->SetHelpString(wxT(""));
+ m_pgMgr->SetMinSize(wxSize(250,250));
+
+ SetName(wxT("ChartViewBase"));
+ SetSize(-1,-1);
+ if (GetSizer()) {
+ GetSizer()->Fit(this);
+ }
+ if(GetParent()) {
+ CentreOnParent(wxBOTH);
+ } else {
+ CentreOnScreen(wxBOTH);
+ }
+#if wxVERSION_NUMBER >= 2900
+ if(!wxPersistenceManager::Get().Find(this)) {
+ wxPersistenceManager::Get().RegisterAndRestore(this);
+ } else {
+ wxPersistenceManager::Get().Restore(this);
+ }
+#endif
+ // Connect events
+ this->Connect(m_menuItemSaveImage->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(ChartViewBase::OnMenuSaveImageClick), NULL, this);
+ this->Connect(m_menuItemSendToClipboard->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(ChartViewBase::OnMenuSendClipClick), NULL, this);
+ this->Connect(m_menuItemExportCSV->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(ChartViewBase::OnMenuExpCSVClick), NULL, this);
+ this->Connect(m_menuItemExit->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(ChartViewBase::OnMenuExitClick), NULL, this);
+ this->Connect(m_menuItemFit->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(ChartViewBase::OnMenuFitClick), NULL, this);
+ this->Connect(m_menuItemShowGrid->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(ChartViewBase::OnMenuShowGridClick), NULL, this);
+ this->Connect(m_menuItemShowLabel->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(ChartViewBase::OnMenuShowLabelClick), NULL, this);
+ this->Connect(m_menuItemShowCoordinates->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(ChartViewBase::OnMenuShowCoordinatesClick), NULL, this);
+ this->Connect(m_menuItemDarkTheme->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(ChartViewBase::OnMenuDarkThemeClick), NULL, this);
+ m_treeCtrl->Connect(wxEVT_COMMAND_TREE_ITEM_ACTIVATED, wxTreeEventHandler(ChartViewBase::OnTreeItemActivated), NULL, this);
+ m_treeCtrl->Connect(wxEVT_COMMAND_TREE_SEL_CHANGED, wxTreeEventHandler(ChartViewBase::OnTreeItemSelectionChanged), NULL, this);
+ m_pgMgr->Connect(wxEVT_PG_CHANGED, wxPropertyGridEventHandler(ChartViewBase::OnPropertyGridChange), NULL, this);
+
+}
+
+ChartViewBase::~ChartViewBase()
+{
+ this->Disconnect(m_menuItemSaveImage->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(ChartViewBase::OnMenuSaveImageClick), NULL, this);
+ this->Disconnect(m_menuItemSendToClipboard->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(ChartViewBase::OnMenuSendClipClick), NULL, this);
+ this->Disconnect(m_menuItemExportCSV->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(ChartViewBase::OnMenuExpCSVClick), NULL, this);
+ this->Disconnect(m_menuItemExit->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(ChartViewBase::OnMenuExitClick), NULL, this);
+ this->Disconnect(m_menuItemFit->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(ChartViewBase::OnMenuFitClick), NULL, this);
+ this->Disconnect(m_menuItemShowGrid->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(ChartViewBase::OnMenuShowGridClick), NULL, this);
+ this->Disconnect(m_menuItemShowLabel->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(ChartViewBase::OnMenuShowLabelClick), NULL, this);
+ this->Disconnect(m_menuItemShowCoordinates->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(ChartViewBase::OnMenuShowCoordinatesClick), NULL, this);
+ this->Disconnect(m_menuItemDarkTheme->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(ChartViewBase::OnMenuDarkThemeClick), NULL, this);
+ m_treeCtrl->Disconnect(wxEVT_COMMAND_TREE_ITEM_ACTIVATED, wxTreeEventHandler(ChartViewBase::OnTreeItemActivated), NULL, this);
+ m_treeCtrl->Disconnect(wxEVT_COMMAND_TREE_SEL_CHANGED, wxTreeEventHandler(ChartViewBase::OnTreeItemSelectionChanged), NULL, this);
+ m_pgMgr->Disconnect(wxEVT_PG_CHANGED, wxPropertyGridEventHandler(ChartViewBase::OnPropertyGridChange), NULL, this);
+
+}
diff --git a/Project/base/ChartViewBase.h b/Project/base/ChartViewBase.h
new file mode 100644
index 0000000..5801081
--- /dev/null
+++ b/Project/base/ChartViewBase.h
@@ -0,0 +1,100 @@
+//////////////////////////////////////////////////////////////////////
+// This file was auto-generated by codelite's wxCrafter Plugin
+// wxCrafter project file: ChartView.wxcp
+// Do not modify this file by hand!
+//////////////////////////////////////////////////////////////////////
+
+#ifndef _PSP_PROJECT_CHARTVIEW_BASE_CLASSES_H
+#define _PSP_PROJECT_CHARTVIEW_BASE_CLASSES_H
+
+#include <wx/settings.h>
+#include <wx/xrc/xmlres.h>
+#include <wx/xrc/xh_bmp.h>
+#include <wx/frame.h>
+#include <wx/iconbndl.h>
+#include <wx/artprov.h>
+#include <wx/sizer.h>
+#include <wx/menu.h>
+#include <wx/treectrl.h>
+#include <wx/propgrid/manager.h>
+#include <wx/propgrid/property.h>
+#include <wx/propgrid/advprops.h>
+#if wxVERSION_NUMBER >= 2900
+#include <wx/persist.h>
+#include <wx/persist/toplevel.h>
+#include <wx/persist/bookctrl.h>
+#include <wx/persist/treebook.h>
+#endif
+
+#ifdef WXC_FROM_DIP
+#undef WXC_FROM_DIP
+#endif
+#if wxVERSION_NUMBER >= 3100
+#define WXC_FROM_DIP(x) wxWindow::FromDIP(x, NULL)
+#else
+#define WXC_FROM_DIP(x) x
+#endif
+
+
+class ChartViewBase : public wxFrame
+{
+protected:
+ wxMenuBar* m_menuBar;
+ wxMenu* m_menuFile;
+ wxMenuItem* m_menuItemSaveImage;
+ wxMenuItem* m_menuItemSendToClipboard;
+ wxMenuItem* m_menuItemExportCSV;
+ wxMenuItem* m_menuItemSeparator_1;
+ wxMenuItem* m_menuItemExit;
+ wxMenu* m_menuView;
+ wxMenuItem* m_menuItemFit;
+ wxMenuItem* m_menuItemSeparator_2;
+ wxMenuItem* m_menuItemShowGrid;
+ wxMenuItem* m_menuItemShowLabel;
+ wxMenuItem* m_menuItemShowCoordinates;
+ wxMenuItem* m_menuItemDarkTheme;
+ wxTreeCtrl* m_treeCtrl;
+ wxPropertyGridManager* m_pgMgr;
+ wxPGProperty* m_pgPropLineProp;
+ wxPGProperty* m_pgPropDraw;
+ wxPGProperty* m_pgProplineThick;
+ wxPGProperty* m_pgProplineType;
+ wxPGProperty* m_pgProplineAxis;
+ wxPGProperty* m_pgPropChartProp;
+ wxPGProperty* m_pgPropChartTitle;
+ wxPGProperty* m_pgPropXLabel;
+ wxPGProperty* m_pgPropYLabel;
+ wxPGProperty* m_pgPropMargins;
+ wxPGProperty* m_pgPropMarginsUp;
+ wxPGProperty* m_pgPropMarginsBot;
+ wxPGProperty* m_pgPropMarginsLeft;
+ wxPGProperty* m_pgPropMarginsRight;
+ wxPGProperty* m_pgPropAxisLimit;
+ wxPGProperty* m_pgPropXMin;
+ wxPGProperty* m_pgPropXMax;
+ wxPGProperty* m_pgPropYMin;
+ wxPGProperty* m_pgPropYMax;
+
+protected:
+ virtual void OnMenuSaveImageClick(wxCommandEvent& event) { event.Skip(); }
+ virtual void OnMenuSendClipClick(wxCommandEvent& event) { event.Skip(); }
+ virtual void OnMenuExpCSVClick(wxCommandEvent& event) { event.Skip(); }
+ virtual void OnMenuExitClick(wxCommandEvent& event) { event.Skip(); }
+ virtual void OnMenuFitClick(wxCommandEvent& event) { event.Skip(); }
+ virtual void OnMenuShowGridClick(wxCommandEvent& event) { event.Skip(); }
+ virtual void OnMenuShowLabelClick(wxCommandEvent& event) { event.Skip(); }
+ virtual void OnMenuShowCoordinatesClick(wxCommandEvent& event) { event.Skip(); }
+ virtual void OnMenuDarkThemeClick(wxCommandEvent& event) { event.Skip(); }
+ virtual void OnTreeItemActivated(wxTreeEvent& event) { event.Skip(); }
+ virtual void OnTreeItemSelectionChanged(wxTreeEvent& event) { event.Skip(); }
+ virtual void OnPropertyGridChange(wxPropertyGridEvent& event) { event.Skip(); }
+
+public:
+ wxMenuBar* GetMenuBar() { return m_menuBar; }
+ wxTreeCtrl* GetTreeCtrl() { return m_treeCtrl; }
+ wxPropertyGridManager* GetPgMgr() { return m_pgMgr; }
+ ChartViewBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Chart viewer"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_FRAME_STYLE);
+ virtual ~ChartViewBase();
+};
+
+#endif
diff --git a/Project/base/ChartViewBitmaps.cpp b/Project/base/ChartViewBitmaps.cpp
new file mode 100644
index 0000000..ef6907a
--- /dev/null
+++ b/Project/base/ChartViewBitmaps.cpp
@@ -0,0 +1,724 @@
+//
+// This file was automatically generated by wxrc, do not edit by hand.
+//
+
+#include <wx/wxprec.h>
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#include <wx/filesys.h>
+#include <wx/fs_mem.h>
+#include <wx/xrc/xmlres.h>
+#include <wx/xrc/xh_all.h>
+
+#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805
+ #define XRC_ADD_FILE(name, data, size, mime) \
+ wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime)
+#else
+ #define XRC_ADD_FILE(name, data, size, mime) \
+ wxMemoryFSHandler::AddFile(name, data, size)
+#endif
+
+static size_t xml_res_size_0 = 3278;
+static unsigned char xml_res_file_0[] = {
+137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,128,0,0,0,128,8,6,0,
+0,0,195,62,97,203,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
+72,89,115,0,0,21,211,0,0,21,211,1,251,209,60,11,0,0,0,25,116,69,88,116,
+83,111,102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,
+101,46,111,114,103,155,238,60,26,0,0,12,75,73,68,65,84,120,156,237,157,
+121,116,21,213,25,192,127,55,9,33,33,160,64,136,85,64,212,82,168,162,162,
+30,212,163,7,212,138,130,27,214,106,177,5,165,81,17,194,86,15,160,213,138,
+138,68,20,42,10,138,11,178,184,69,80,118,227,82,177,238,90,197,189,173,
+82,80,4,142,82,203,81,34,88,1,129,188,240,150,220,254,17,34,9,121,239,101,
+238,125,119,150,100,238,239,63,242,230,155,249,14,243,155,111,230,125,247,
+206,187,130,73,31,74,178,178,176,132,147,44,98,17,168,174,246,59,15,139,
+79,100,33,37,86,130,240,82,83,251,173,4,161,101,223,205,223,74,16,74,234,
+63,253,89,9,66,71,78,131,191,236,149,160,251,193,237,24,126,226,65,142,
+118,178,112,245,15,124,82,81,105,58,55,139,7,52,20,0,64,74,58,231,199,25,
+127,114,17,217,217,217,141,238,100,85,69,196,10,208,68,73,221,0,144,146,
+221,187,119,147,72,36,60,76,199,226,53,105,59,64,210,74,16,40,218,178,147,
+92,98,70,247,217,104,11,208,74,16,28,238,22,247,179,65,92,194,88,177,152,
+150,68,141,236,211,81,15,216,74,224,63,135,179,153,98,86,208,133,10,102,
+50,131,117,98,32,37,60,67,14,153,157,19,199,131,0,86,2,127,41,21,243,234,
+149,255,195,216,204,92,49,149,245,226,18,74,120,134,108,244,190,186,43,
+141,2,213,74,16,143,199,181,14,102,209,163,27,155,184,156,191,37,253,236,
+8,190,101,174,152,202,106,49,136,98,86,40,139,160,60,12,40,165,164,178,
+178,210,74,224,33,147,196,188,70,75,253,81,108,228,9,81,202,191,247,138,
+144,229,80,4,173,113,96,43,129,119,28,197,70,6,241,138,227,237,123,236,
+21,225,53,49,198,209,246,218,19,1,172,4,222,80,42,230,105,221,223,223,164,
+151,163,237,50,154,9,82,43,129,180,15,134,174,112,52,95,49,144,55,148,227,
+254,199,129,220,39,7,59,218,54,227,169,64,82,74,226,123,34,80,109,37,48,
+205,100,230,56,190,151,215,101,6,67,248,145,2,71,219,26,154,11,38,33,86,
+101,37,48,200,9,172,227,98,241,150,114,220,247,180,229,65,249,59,199,219,
+155,155,12,40,173,4,38,185,77,204,69,32,149,227,166,201,43,216,73,43,199,
+219,155,157,13,106,37,48,66,47,214,50,128,149,202,113,21,20,242,16,3,149,
+98,204,79,7,182,18,100,204,237,98,142,246,213,95,73,158,82,140,59,243,193,
+173,4,218,156,202,106,206,227,61,229,184,205,116,96,46,151,40,199,185,247,
+66,128,149,64,139,201,204,209,138,155,194,80,34,180,84,142,115,247,141,
+16,43,129,18,189,89,197,217,226,35,229,184,77,252,140,71,228,69,90,199,
+116,255,149,32,43,129,99,238,96,182,86,220,20,134,178,135,92,173,88,111,
+222,9,179,18,52,74,95,241,49,191,18,255,84,142,251,154,67,120,92,94,168,
+125,92,239,94,10,148,18,162,182,99,152,138,73,242,97,173,184,201,114,24,
+81,90,104,31,215,251,183,66,173,4,13,56,135,247,57,93,124,162,28,247,37,
+157,153,207,5,25,29,219,159,215,130,173,4,245,40,69,255,234,143,211,248,
+180,253,116,248,247,94,120,52,2,9,59,148,124,1,43,57,69,172,86,142,219,
+192,161,44,228,220,140,143,239,239,15,3,196,170,66,47,193,36,161,119,245,
+79,146,35,50,190,250,193,111,1,32,212,18,252,70,188,197,73,124,174,28,247,
+57,71,176,132,126,70,114,240,95,0,8,165,4,2,201,36,205,123,127,169,44,161,
+218,208,169,11,134,0,16,58,9,126,43,222,224,120,214,43,199,173,161,43,79,
+211,215,88,30,193,17,0,66,35,65,22,213,76,228,81,173,216,137,140,52,118,
+245,215,228,18,52,66,32,193,239,121,149,158,108,80,142,251,23,71,242,156,
+60,195,104,46,193,19,0,154,181,4,217,84,51,81,232,93,253,147,40,65,34,140,
+230,147,252,247,1,130,64,172,10,200,131,236,250,41,150,240,12,125,196,167,
+188,207,177,188,39,143,99,13,93,73,4,212,227,100,92,198,75,28,197,70,229,
+184,143,228,209,188,192,105,198,243,9,174,0,80,79,130,150,68,121,80,220,
+205,48,158,5,224,15,188,8,2,118,147,207,167,116,103,165,60,158,119,57,142,
+247,57,150,239,105,235,111,222,41,200,166,154,155,197,99,90,177,183,50,
+194,112,54,53,4,91,0,128,88,21,93,216,78,121,206,77,244,98,109,131,143,
+11,136,208,155,85,244,22,171,0,144,8,214,114,56,15,113,41,179,228,165,94,
+103,155,150,98,86,240,75,190,86,142,123,79,246,228,101,78,117,33,163,160,
+62,3,212,161,143,248,148,215,227,67,233,153,104,120,242,147,33,144,244,
+96,35,211,120,128,131,248,193,229,236,156,211,130,56,183,104,222,251,111,
+101,164,225,108,246,17,88,1,4,146,113,98,17,207,113,29,69,108,163,50,6,
+49,133,241,163,2,34,252,137,39,221,75,80,145,171,248,43,63,231,27,229,184,
+149,242,120,94,231,36,23,50,170,33,144,2,180,161,146,5,226,86,74,169,255,
+94,156,170,4,163,197,242,64,84,129,150,68,181,239,253,55,139,209,134,179,
+169,79,224,4,232,198,38,94,21,163,83,206,139,87,145,160,128,8,215,137,167,
+12,102,167,199,48,241,28,93,168,80,142,123,77,158,204,219,242,4,23,50,218,
+71,160,4,56,159,119,121,93,140,226,200,70,30,148,84,36,24,195,50,95,171,
+64,30,81,110,164,76,43,118,50,195,204,38,147,132,64,8,144,77,53,165,204,
+227,41,49,145,3,216,237,40,198,169,4,126,87,129,17,162,156,206,108,81,142,
+123,73,158,202,59,184,123,245,67,0,4,40,100,7,79,115,3,227,196,34,229,183,
+97,156,74,224,87,21,200,35,202,245,204,215,138,45,165,196,112,54,201,241,
+85,128,19,89,203,59,98,184,214,108,216,90,156,72,224,215,55,130,49,98,41,
+157,216,170,28,247,130,236,195,135,28,227,66,70,13,241,77,128,65,188,204,
+11,98,60,29,53,254,131,246,199,137,4,94,127,35,40,32,194,13,44,80,142,147,
+8,38,51,220,133,140,146,227,185,0,45,137,114,191,152,206,28,113,39,121,
+236,49,182,223,198,36,240,250,89,224,26,150,104,9,247,44,103,240,49,61,
+92,200,40,57,158,10,208,137,45,188,200,88,138,89,225,202,254,43,99,16,77,
+35,129,87,207,2,173,169,228,90,177,80,57,78,34,184,77,122,115,239,175,197,
+51,1,206,228,31,188,45,74,232,37,190,48,178,191,84,195,162,145,52,18,120,
+85,5,198,177,136,34,182,41,199,45,231,44,86,209,205,133,140,82,227,186,
+0,181,45,221,229,226,207,20,178,195,200,62,215,208,149,115,121,128,72,138,
+119,225,211,73,224,118,21,56,144,93,140,215,184,250,171,201,226,118,121,
+181,11,25,165,199,85,1,90,19,161,140,219,26,180,116,51,97,25,103,211,79,
+206,226,67,121,116,218,119,226,82,73,80,64,132,107,81,63,65,78,25,207,66,
+218,243,163,114,220,98,250,179,154,95,184,144,81,122,92,19,160,27,155,120,
+77,140,226,34,241,119,35,251,139,147,77,41,37,12,151,55,255,244,30,252,
+125,12,74,89,5,32,181,4,127,20,75,93,169,2,109,217,201,88,177,88,57,46,
+225,211,213,15,46,9,224,180,165,235,148,173,180,227,98,121,55,51,247,251,
+237,187,239,104,79,25,3,210,198,38,147,192,173,42,112,189,88,64,91,118,
+42,199,61,201,249,124,193,225,198,243,113,130,81,1,116,90,186,141,241,129,
+60,150,211,228,195,41,219,162,51,229,224,180,85,0,146,75,96,186,10,20,178,
+131,107,88,162,28,151,32,139,169,242,42,99,121,168,98,76,128,76,90,186,
+169,40,99,0,191,102,6,21,20,166,220,198,73,21,128,134,18,20,16,97,188,88,
+100,34,77,0,110,16,243,105,131,250,186,73,101,92,200,122,186,24,203,67,
+21,35,2,116,97,51,111,137,145,25,181,116,235,82,69,46,163,229,141,140,147,
+215,57,122,247,221,73,21,128,134,18,232,54,107,246,167,136,109,140,102,
+185,114,92,140,28,166,200,161,25,31,63,19,140,8,112,189,152,207,161,26,
+227,221,201,248,138,78,156,37,31,98,33,231,56,142,113,90,5,160,190,4,166,
+170,192,4,202,104,173,113,245,63,202,69,108,164,99,198,199,207,4,35,2,228,
+102,184,108,73,45,175,200,83,232,43,103,243,25,93,149,99,157,86,1,168,47,
+65,166,85,224,16,190,103,132,40,87,142,139,210,130,105,242,10,237,227,154,
+194,247,225,96,168,233,234,205,148,131,25,196,20,182,211,70,107,31,42,85,
+0,246,73,144,105,21,152,64,25,173,168,82,142,155,199,197,252,135,67,180,
+143,107,10,223,5,216,73,43,134,48,153,82,50,127,227,117,166,28,76,149,194,
+111,229,213,74,160,91,5,58,178,149,97,226,89,229,184,42,114,185,83,94,169,
+28,231,6,190,10,176,134,174,156,46,31,102,133,236,99,100,127,223,209,158,
+50,233,188,10,64,141,4,45,18,122,85,96,162,120,148,124,141,17,205,217,114,
+32,223,80,164,28,231,6,190,9,176,132,126,244,147,179,140,63,4,205,68,173,
+10,64,141,4,37,137,165,116,96,187,227,152,195,216,204,80,158,87,77,143,
+74,242,184,139,98,229,56,183,240,92,128,218,150,238,8,121,147,214,79,155,
+54,70,5,133,202,85,0,32,59,86,201,216,132,243,9,28,183,136,199,180,86,241,
+156,37,47,77,219,215,240,26,79,5,72,213,210,53,205,189,92,166,92,5,0,174,
+142,47,165,40,209,248,12,165,218,69,28,85,217,77,62,211,25,162,28,231,38,
+158,9,208,88,75,215,36,58,207,2,0,173,168,98,84,236,73,72,164,191,178,247,
+95,196,209,41,247,49,136,45,180,87,142,115,19,79,4,112,210,210,53,141,110,
+21,24,41,202,233,16,251,14,226,201,215,230,77,183,136,99,58,118,209,202,
+245,202,167,131,171,2,168,182,116,77,162,218,23,168,165,21,85,140,102,89,
+141,0,73,36,112,178,136,99,50,238,225,50,182,210,78,57,206,109,92,19,64,
+167,165,107,26,213,190,64,45,35,69,121,205,55,130,253,36,232,206,127,149,
+22,113,172,101,7,173,3,121,245,131,75,2,100,210,210,53,73,5,133,218,85,
+96,148,216,59,184,83,71,130,219,197,108,173,153,77,51,184,156,109,28,160,
+28,231,5,70,5,48,209,210,53,141,118,21,160,124,95,95,32,30,165,71,124,157,
+235,139,56,250,129,49,1,76,182,116,77,162,91,5,10,136,236,171,2,192,132,
+248,92,98,113,245,171,127,186,116,190,136,163,31,24,57,83,203,101,95,78,
+147,143,24,107,233,154,102,166,28,68,149,198,138,26,35,40,167,61,63,210,
+147,13,12,16,43,169,138,195,30,133,31,47,219,74,59,30,196,249,34,142,126,
+96,68,128,87,57,37,16,35,91,169,168,160,3,79,104,244,5,90,19,97,140,88,
+202,77,226,241,159,102,57,169,72,112,151,44,102,151,194,34,142,126,16,156,
+90,237,50,247,50,88,171,10,140,97,57,231,240,65,189,191,57,145,64,103,17,
+71,63,8,141,0,186,85,32,143,61,73,231,56,54,38,129,206,34,142,126,16,26,
+1,64,191,59,152,138,84,18,232,46,226,232,7,161,18,160,130,66,158,144,153,
+173,177,179,63,201,36,208,93,196,209,15,66,37,0,152,175,2,80,95,130,76,
+22,113,244,131,208,9,224,70,21,128,125,18,100,178,136,163,31,132,78,0,112,
+167,10,0,108,136,31,204,227,177,204,23,114,242,146,80,10,80,65,33,243,57,
+223,248,126,167,201,98,162,241,234,148,67,201,65,36,148,2,0,220,35,47,55,
+90,5,54,210,145,197,244,175,249,71,138,161,228,32,18,90,1,76,87,129,105,
+178,184,254,50,110,77,68,130,208,10,0,230,170,192,151,116,98,57,103,55,
+252,160,9,72,16,106,1,76,85,129,191,200,171,82,47,226,24,112,9,66,45,0,
+100,94,5,190,224,48,202,57,51,253,70,1,150,32,244,2,84,80,200,2,121,158,
+118,252,157,242,74,103,243,31,2,42,65,232,5,128,154,190,128,78,243,230,
+51,186,242,60,167,59,15,8,160,4,86,0,224,91,138,152,47,213,159,5,166,226,
+240,234,175,75,192,36,176,2,236,101,6,67,148,158,5,86,209,157,23,101,111,
+189,131,5,72,130,224,175,26,230,17,21,20,114,164,92,70,91,118,57,218,126,
+7,173,51,91,196,177,86,128,28,127,199,13,172,0,117,216,78,27,111,103,51,
+7,64,2,123,11,240,27,159,111,7,86,128,32,224,163,4,86,128,160,224,147,4,
+86,128,32,17,143,66,204,220,34,26,78,176,2,4,141,68,204,83,9,172,0,65,196,
+67,9,172,0,65,197,35,9,172,0,65,198,3,9,172,0,65,199,101,9,172,0,77,1,23,
+37,176,2,52,21,92,146,192,10,208,148,112,65,2,43,64,83,195,176,4,41,71,
+3,115,178,156,15,117,182,201,205,166,168,192,14,44,122,135,132,236,4,162,
+133,179,249,11,219,171,18,68,19,201,151,241,73,121,214,142,57,40,223,113,
+58,211,251,119,102,122,255,206,142,183,183,152,33,55,55,151,252,252,198,
+207,211,185,79,173,231,229,47,147,175,101,104,111,1,77,152,104,52,74,36,
+18,201,104,31,86,128,38,78,166,18,88,1,154,1,209,104,148,202,74,245,69,
+171,192,10,208,108,136,197,98,90,18,88,1,154,17,58,18,88,1,154,25,170,18,
+88,1,154,33,42,18,88,1,154,41,78,37,176,2,52,99,156,72,144,178,19,248,252,
+186,29,180,207,115,214,222,149,134,86,11,183,184,195,87,91,146,119,1,1,
+4,19,222,180,103,47,12,100,231,64,139,134,63,93,107,111,1,97,33,17,135,
+88,195,53,142,173,0,97,34,137,4,86,128,176,177,159,4,86,128,48,82,71,2,
+59,139,35,172,36,226,64,21,255,7,181,153,56,45,184,129,88,206,0,0,0,0,73,
+69,78,68,174,66,96,130};
+
+static size_t xml_res_size_1 = 560;
+static unsigned char xml_res_file_1[] = {
+137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
+0,31,243,255,97,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
+72,89,115,0,0,2,186,0,0,2,186,1,219,5,165,194,0,0,0,25,116,69,88,116,83,
+111,102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,101,
+46,111,114,103,155,238,60,26,0,0,1,173,73,68,65,84,56,141,149,147,63,72,
+28,65,28,133,191,209,185,91,148,104,226,33,130,160,32,92,115,136,141,145,
+112,130,85,42,17,141,40,241,76,229,191,78,33,54,169,44,130,70,16,212,11,
+8,130,162,156,26,8,4,133,96,170,84,73,8,136,49,218,120,133,34,8,162,22,
+34,68,137,133,38,81,55,187,115,55,22,114,171,203,90,172,175,154,249,189,
+121,31,143,97,70,24,111,86,117,121,241,67,182,79,76,76,149,230,190,202,
+42,123,32,88,235,8,19,46,48,124,135,6,196,12,79,89,191,6,0,152,166,137,
+86,150,175,112,5,123,244,51,75,139,248,126,3,0,72,219,22,248,128,12,137,
+41,108,36,195,186,203,13,0,174,1,202,34,136,125,103,184,138,109,26,89,38,
+161,155,57,164,232,14,0,80,157,74,178,147,122,198,174,104,38,143,11,151,
+55,40,18,152,4,25,166,211,153,185,0,221,124,226,51,175,200,86,151,148,168,
+67,94,138,143,142,23,101,139,122,86,152,162,133,95,20,122,1,175,197,28,
+35,98,130,36,17,158,232,247,252,180,35,244,170,15,78,139,65,145,224,156,
+28,226,186,221,213,202,1,52,240,131,25,221,68,163,30,227,136,66,70,69,39,
+185,234,140,158,212,2,53,108,80,203,26,147,196,56,38,228,2,200,204,162,
+143,94,166,41,119,140,175,58,74,146,8,221,106,158,58,86,249,43,115,121,
+171,219,60,23,235,52,88,210,85,30,51,78,7,33,254,80,169,54,25,179,99,156,
+240,200,115,70,122,38,183,244,133,106,190,17,165,148,35,198,213,115,192,
+2,25,244,15,0,136,233,145,155,77,230,161,221,130,200,236,44,1,64,73,94,
+128,255,62,63,147,144,32,2,6,7,103,22,178,52,63,0,192,98,107,216,87,56,
+35,195,48,120,252,110,23,185,114,240,143,23,139,251,252,190,176,81,105,
+125,47,200,254,105,154,43,206,33,140,175,150,245,39,228,0,0,0,0,73,69,78,
+68,174,66,96,130};
+
+static size_t xml_res_size_2 = 6410;
+static unsigned char xml_res_file_2[] = {
+137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,1,0,0,0,1,0,8,6,0,0,0,
+92,114,168,102,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,72,
+89,115,0,0,43,165,0,0,43,165,1,137,102,26,50,0,0,0,25,116,69,88,116,83,
+111,102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,101,
+46,111,114,103,155,238,60,26,0,0,24,135,73,68,65,84,120,156,237,221,105,
+120,85,213,185,192,241,255,10,73,152,81,68,20,84,174,181,22,171,32,85,107,
+181,173,15,125,180,74,65,64,133,130,85,164,14,113,66,172,94,161,106,69,
+171,64,64,173,120,169,138,67,85,16,209,160,12,82,172,114,11,181,181,150,
+58,161,60,90,43,215,214,129,50,22,28,65,40,40,25,200,25,214,253,16,3,9,
+156,36,103,88,251,221,211,251,251,210,199,152,179,223,45,37,255,189,206,
+201,58,251,24,38,189,153,2,138,80,74,197,78,17,181,213,126,159,131,82,202,
+39,69,164,147,104,4,148,138,167,186,165,127,58,165,17,80,42,134,118,63,
+247,215,8,40,21,59,141,95,252,211,8,40,21,43,123,191,250,175,17,80,42,54,
+50,255,250,79,35,160,84,44,52,253,251,255,250,8,88,43,120,58,74,41,73,205,
+111,0,74,167,32,81,163,17,80,42,162,90,222,1,168,17,80,42,178,178,219,2,
+172,17,80,42,146,138,179,254,206,250,8,148,180,161,67,235,86,180,47,105,
+229,244,68,118,166,210,108,171,73,57,61,166,82,170,121,217,7,0,118,69,96,
+226,143,122,114,253,73,221,156,158,200,31,87,111,103,224,220,85,78,143,
+169,148,106,94,238,239,2,76,167,72,212,84,99,245,233,128,82,161,151,215,
+219,128,211,169,36,85,85,85,26,1,165,66,46,239,251,0,36,147,26,1,165,194,
+174,160,27,129,104,4,148,10,183,130,239,4,164,17,80,42,188,156,220,10,76,
+35,160,212,222,78,53,111,114,32,91,253,62,141,102,57,187,23,96,50,153,164,
+178,178,82,35,160,20,208,158,106,230,113,11,107,205,16,238,53,119,209,141,
+45,126,159,82,70,78,111,6,154,74,165,52,2,74,1,99,152,207,1,108,165,29,
+53,92,195,124,86,155,31,115,175,185,43,112,43,2,231,119,3,214,8,168,184,
+235,68,37,215,153,39,27,125,173,61,213,187,66,48,133,7,232,204,23,62,157,
+93,99,158,220,14,92,35,160,226,108,44,243,216,175,137,31,240,14,84,49,206,
+84,240,111,115,38,83,120,128,125,249,82,248,236,26,243,236,243,0,52,2,42,
+142,246,97,7,99,205,188,22,191,175,227,87,33,88,99,134,82,206,12,246,97,
+135,192,217,237,205,211,15,4,209,8,168,184,185,142,57,57,45,239,247,227,
+11,38,154,71,118,133,160,19,149,30,158,221,222,60,255,68,32,141,128,138,
+139,46,108,103,76,22,87,255,166,30,91,31,130,113,166,130,182,236,116,124,
+118,153,137,124,36,152,70,64,197,193,245,230,201,130,175,224,251,179,141,
+41,60,192,122,115,22,227,76,5,109,168,117,116,118,153,137,125,38,160,70,
+64,69,217,254,108,227,42,22,56,59,222,1,108,101,10,15,240,47,51,140,49,
+102,190,103,33,16,253,80,80,141,128,138,170,113,166,130,142,84,57,63,110,
+15,62,99,26,119,177,210,12,103,140,153,79,107,199,33,16,255,84,96,141,128,
+138,154,110,108,225,103,44,244,116,198,127,241,41,211,184,139,119,205,185,
+92,200,18,12,110,126,126,124,249,88,112,141,128,138,146,27,121,156,118,
+212,136,204,58,156,15,185,208,44,193,98,156,28,207,151,0,128,70,64,69,67,
+119,62,103,148,121,70,116,230,100,46,119,118,44,223,2,0,26,1,21,126,55,
+51,75,236,87,118,0,127,226,251,188,108,143,115,118,60,95,3,0,26,1,21,94,
+61,248,140,203,204,34,209,153,229,14,175,254,16,128,0,64,93,4,106,170,171,
+244,115,7,84,168,220,98,30,117,254,170,124,115,22,219,190,44,183,125,156,
+30,51,16,1,0,72,167,82,144,208,207,34,84,225,112,40,159,80,198,98,209,153,
+46,159,251,215,11,76,0,0,72,167,53,2,42,20,38,152,153,148,146,16,155,247,
+172,61,133,55,233,229,252,184,193,10,0,104,4,84,224,29,206,135,92,200,18,
+177,121,22,195,36,15,174,254,16,196,0,128,70,64,5,218,4,51,147,98,228,62,
+198,110,33,167,177,130,35,60,57,118,48,3,0,26,1,21,72,61,217,200,72,254,
+40,54,47,77,17,183,217,75,60,59,126,112,3,0,117,17,168,213,8,168,224,152,
+100,166,139,94,253,159,226,71,188,67,79,207,142,31,236,0,0,88,141,128,10,
+134,94,172,227,92,254,44,54,47,69,17,183,218,75,61,157,17,252,0,128,70,
+64,5,66,185,153,65,17,105,177,121,115,24,200,251,28,230,233,140,112,4,0,
+52,2,202,87,71,179,134,225,44,21,155,151,162,136,95,217,139,61,159,19,158,
+0,128,70,64,249,230,86,30,22,189,250,87,112,6,43,57,212,243,57,225,10,0,
+104,4,148,184,111,243,1,67,204,75,98,243,18,20,115,187,135,175,252,55,20,
+190,0,64,131,8,200,21,89,197,215,36,166,59,187,1,71,54,102,217,179,88,203,
+193,34,179,194,25,0,248,42,2,53,26,1,229,169,239,152,247,25,108,150,137,
+205,171,165,132,41,148,137,205,11,111,0,64,35,160,60,119,27,15,137,94,253,
+31,177,67,89,79,119,177,121,225,14,0,104,4,148,103,78,50,239,48,128,215,
+197,230,213,80,42,122,245,135,40,4,0,52,2,202,19,147,121,88,116,222,195,
+12,231,67,14,16,157,25,141,0,128,70,64,57,213,215,172,224,52,222,20,155,
+87,67,41,83,237,5,98,243,234,69,39,0,160,17,80,206,220,198,67,162,243,30,
+224,28,62,166,171,232,76,136,90,0,64,35,160,10,214,207,188,193,201,252,
+93,108,94,37,109,125,185,250,67,20,3,0,26,1,85,144,9,204,20,157,119,63,
+231,178,137,253,68,103,214,139,102,0,64,35,160,242,114,186,121,157,31,240,
+182,216,188,29,180,227,110,59,82,108,222,158,162,27,0,208,8,168,156,149,
+51,67,116,222,61,118,36,155,233,44,58,179,161,104,7,0,52,2,42,107,103,242,
+10,223,229,159,98,243,182,211,129,105,156,39,54,47,147,232,7,0,52,2,170,
+69,6,203,120,35,251,220,255,110,251,83,182,210,73,116,230,158,226,17,0,
+208,8,168,102,13,229,37,78,224,61,177,121,219,232,200,125,156,43,54,175,
+41,241,9,0,104,4,84,70,6,203,68,35,251,220,127,170,189,128,109,116,20,157,
+153,73,188,2,0,26,1,181,151,159,240,23,142,97,149,216,188,45,236,195,253,
+1,184,250,67,28,3,0,26,1,181,75,17,105,110,49,143,138,206,188,147,139,248,
+146,118,162,51,155,18,207,0,128,70,64,1,48,130,231,233,195,106,177,121,
+155,233,204,67,118,184,216,188,150,196,55,0,160,17,136,185,86,164,25,47,
+124,245,191,131,50,118,4,228,234,15,113,15,0,104,4,98,236,124,254,192,145,
+172,23,155,247,9,251,51,221,14,19,155,151,13,13,0,104,4,98,168,21,105,126,
+105,30,19,157,249,43,123,49,85,180,17,157,217,18,13,64,61,141,64,172,148,
+241,123,142,96,131,216,188,143,233,202,163,12,17,155,151,45,13,64,67,26,
+129,88,40,33,41,126,245,191,213,94,74,53,173,69,103,102,67,3,176,39,141,
+64,228,93,202,34,190,206,71,98,243,54,208,141,89,156,37,54,47,23,26,128,
+76,244,115,7,34,171,148,4,227,76,133,232,204,201,246,50,106,41,17,157,153,
+45,13,64,83,172,213,8,68,208,40,158,225,107,124,34,54,111,61,221,121,130,
+65,98,243,114,165,1,104,142,70,32,82,218,80,43,126,245,47,183,163,2,123,
+245,7,13,64,203,52,2,145,113,165,89,200,33,108,18,155,183,138,30,204,97,
+160,216,188,124,104,0,178,81,31,129,180,70,32,172,218,178,147,235,121,82,
+116,102,185,29,69,146,86,162,51,115,165,1,200,150,181,144,208,8,132,213,
+213,102,1,7,177,89,108,222,123,28,198,124,250,139,205,203,151,6,32,23,26,
+129,80,106,79,181,248,213,127,146,29,69,58,4,63,94,193,63,195,160,201,35,
+2,39,154,119,185,136,197,162,59,207,212,110,215,152,167,56,128,173,98,243,
+254,193,55,88,200,169,98,243,10,81,236,247,9,132,82,125,4,74,218,66,81,
+243,13,29,197,51,220,207,84,74,77,2,128,47,104,207,27,182,55,203,56,134,
+183,56,138,87,56,54,16,119,134,137,170,14,84,241,115,230,138,206,44,39,
+28,87,127,208,0,228,175,133,8,180,161,150,251,205,84,46,227,217,70,95,239,
+68,37,253,204,27,244,227,13,0,82,20,177,146,67,121,149,99,89,102,235,162,
+240,30,135,97,49,34,255,25,81,119,45,115,233,202,127,196,230,189,205,55,
+121,198,158,34,54,175,80,26,128,66,52,17,129,30,124,198,66,198,113,34,239,
+182,120,136,86,164,233,197,58,122,177,142,81,230,25,0,62,165,11,127,179,
+71,241,22,71,241,170,169,11,67,16,247,145,7,221,62,236,96,172,153,39,58,
+115,162,189,34,84,241,214,0,20,106,143,8,244,55,203,153,203,45,116,97,123,
+222,135,236,198,22,206,48,175,114,6,175,2,80,107,74,248,187,61,146,229,
+230,104,94,179,223,226,105,78,13,205,18,211,79,215,49,135,206,124,33,54,
+239,77,122,177,152,190,98,243,92,208,191,69,46,88,139,73,84,113,131,125,
+156,63,48,166,160,31,254,76,74,73,240,61,243,15,198,50,143,5,230,38,206,
+102,169,211,227,71,81,23,182,51,70,175,254,45,210,0,56,208,129,106,42,152,
+200,205,137,223,136,252,138,112,162,153,65,17,250,171,200,230,92,199,147,
+116,162,82,108,222,235,244,225,57,78,18,155,231,138,6,160,64,61,217,200,
+11,230,74,206,226,101,172,133,202,4,164,60,254,217,236,197,58,93,5,52,99,
+127,182,113,181,89,32,58,115,2,163,69,231,185,162,1,40,192,32,150,177,212,
+140,230,72,254,189,235,107,82,17,208,85,64,211,198,153,10,58,82,37,54,111,
+25,199,240,130,61,81,108,158,75,26,128,60,20,147,162,156,25,204,49,227,
+51,254,69,147,136,128,174,2,50,235,198,22,126,198,66,209,153,183,112,165,
+232,60,151,52,0,57,234,202,127,120,150,235,25,107,230,97,176,77,126,159,
+68,4,38,152,71,116,21,176,135,113,166,130,118,212,136,205,91,106,79,224,
+69,123,188,216,60,215,52,0,57,56,150,149,44,53,63,163,175,89,145,213,247,
+123,29,129,222,172,213,85,64,3,221,249,156,43,248,157,232,204,73,230,114,
+209,121,174,105,0,178,84,198,98,158,55,255,77,15,62,205,233,113,94,71,64,
+95,11,216,237,102,102,209,150,157,98,243,254,196,247,121,217,30,39,54,207,
+11,26,128,22,180,161,150,251,204,175,153,102,238,162,148,68,94,199,240,
+50,2,189,88,199,112,93,5,208,131,207,184,204,44,18,157,89,78,184,175,254,
+160,1,104,214,193,108,98,9,99,184,144,37,5,31,203,203,8,76,212,215,2,184,
+153,89,180,166,86,108,222,18,250,178,220,246,17,155,231,21,13,64,19,250,
+154,21,188,104,70,115,188,249,192,217,49,189,138,64,111,214,198,122,21,
+112,40,159,112,177,249,189,232,204,73,54,252,87,127,208,0,236,197,96,185,
+142,57,44,226,58,79,222,69,230,85,4,38,152,153,177,93,5,140,55,143,230,
+253,244,44,31,139,56,153,55,233,37,54,207,75,26,128,6,58,80,77,133,41,103,
+188,153,73,43,15,127,152,188,136,192,209,172,137,229,42,224,112,62,228,
+34,22,139,205,179,24,202,237,40,177,121,94,211,0,124,165,225,150,94,9,94,
+68,32,142,175,5,76,48,51,41,38,37,54,239,105,123,42,43,56,66,108,158,215,
+52,0,100,222,210,43,193,117,4,226,246,90,64,79,54,50,146,63,138,205,75,
+83,196,173,92,42,54,79,66,172,3,80,76,138,219,205,67,77,110,233,149,224,
+58,2,227,205,163,177,89,5,148,155,25,162,87,255,5,244,227,29,122,138,205,
+147,16,219,0,116,97,59,11,25,199,85,44,104,118,75,175,4,151,17,232,195,
+106,134,153,191,22,126,160,128,235,197,58,70,240,188,216,188,20,69,76,182,
+151,137,205,147,18,203,0,28,203,74,94,52,163,57,197,188,229,247,169,236,
+82,31,129,164,131,8,148,19,253,221,129,229,194,59,32,231,114,58,239,115,
+152,216,60,41,177,11,64,190,91,122,37,88,11,85,14,34,208,155,181,145,94,
+5,72,255,198,35,69,17,183,219,75,196,230,73,138,77,0,92,108,233,149,224,
+42,2,81,94,5,220,202,195,162,255,109,21,156,193,74,14,21,155,39,41,22,1,
+112,185,165,87,130,139,8,68,117,21,240,109,62,96,136,121,73,108,94,130,
+226,200,94,253,33,6,1,240,98,75,175,4,23,17,136,226,42,96,18,211,69,95,
+180,125,140,51,89,203,193,98,243,164,69,54,0,6,203,88,51,207,179,45,189,
+18,10,141,64,111,214,242,99,94,116,122,78,126,58,158,247,25,108,150,137,
+205,171,165,132,41,182,76,108,158,31,34,25,128,250,45,189,229,204,240,116,
+75,175,132,66,35,48,201,76,143,204,42,224,118,243,144,232,213,255,17,59,
+148,117,28,36,54,207,15,145,11,192,145,172,231,69,51,74,108,75,111,62,82,
+57,254,177,23,18,129,168,172,2,78,50,239,48,128,215,197,230,213,80,202,
+29,92,44,54,207,47,145,10,192,32,150,241,103,115,21,223,224,67,191,79,37,
+35,139,225,97,134,243,115,123,109,238,143,45,32,2,81,88,5,76,230,97,209,
+121,211,237,48,62,162,171,232,76,63,68,34,0,173,72,55,123,151,222,32,216,
+65,91,202,152,200,141,246,106,230,48,144,213,28,146,243,49,242,141,64,216,
+87,1,125,205,10,78,227,77,177,121,53,148,50,149,11,197,230,249,41,244,1,
+232,194,118,158,230,134,22,239,210,235,167,213,28,66,63,251,32,139,236,
+201,64,221,83,128,123,236,79,243,58,86,190,17,8,243,42,224,86,43,123,245,
+127,128,115,98,113,245,135,144,7,32,136,91,122,247,244,156,61,137,83,237,
+195,124,192,215,26,125,125,62,253,243,90,5,64,126,17,8,235,42,160,159,121,
+67,244,255,223,74,218,50,213,94,32,54,207,111,161,13,64,144,183,244,66,
+221,85,190,156,81,140,228,54,190,160,125,198,127,159,239,42,0,242,139,64,
+24,87,1,19,152,41,58,239,126,206,101,19,251,137,206,244,83,232,2,208,58,
+4,91,122,183,176,15,103,219,59,153,102,207,107,246,211,98,11,89,5,64,238,
+17,232,205,90,134,10,238,162,43,212,233,230,117,126,192,219,98,243,118,
+208,142,187,237,72,177,121,65,16,170,0,28,204,38,254,16,240,45,189,255,
+199,17,252,208,78,231,175,124,167,197,239,45,116,21,0,95,189,139,176,54,
+251,8,76,34,60,171,128,114,102,136,206,187,199,142,100,51,157,69,103,250,
+45,52,1,8,195,150,222,249,244,103,128,189,143,13,28,152,211,99,10,89,5,
+212,203,54,2,71,179,38,20,171,128,51,204,43,124,151,127,138,205,219,78,
+7,166,113,158,216,188,160,8,124,0,194,176,165,119,39,165,140,177,215,51,
+218,222,68,13,173,115,122,172,139,85,64,189,108,35,16,244,85,128,193,138,
+63,247,191,135,145,108,165,147,232,204,32,8,116,0,194,176,165,247,99,186,
+50,216,78,163,130,193,121,31,99,62,253,89,227,232,13,39,149,181,144,104,
+225,46,89,65,95,5,12,229,37,78,224,61,177,121,219,232,200,189,118,132,216,
+188,32,9,108,0,164,239,210,155,143,101,28,195,41,118,58,127,227,168,130,
+142,227,114,21,0,117,47,12,182,20,129,160,174,2,12,150,137,70,246,185,255,
+84,123,1,219,232,40,58,51,40,2,25,128,65,44,227,47,230,74,241,187,244,102,
+171,126,75,239,16,123,23,155,28,189,104,52,143,1,206,86,1,208,114,4,130,
+186,10,56,155,191,112,12,171,196,230,109,97,31,238,231,92,177,121,65,19,
+168,0,52,220,210,219,137,74,191,79,39,163,134,91,122,147,180,114,118,92,
+215,171,0,104,57,2,65,91,5,20,145,102,188,121,84,116,230,255,216,11,249,
+146,118,162,51,131,36,48,1,40,37,25,186,45,189,174,185,94,5,64,243,17,56,
+154,53,12,9,208,83,172,17,60,79,31,86,139,205,219,76,103,30,228,108,177,
+121,65,20,152,0,156,104,222,13,229,150,94,151,188,88,5,64,243,17,152,108,
+100,239,175,215,148,86,62,92,253,239,160,140,29,49,190,250,67,128,2,208,
+134,157,126,159,66,70,45,109,233,117,205,139,85,0,52,29,129,160,172,2,126,
+202,115,28,201,122,177,121,159,176,63,211,237,48,177,121,65,21,152,0,4,
+81,182,91,122,93,242,106,21,0,77,71,192,239,85,64,43,210,220,108,102,137,
+206,188,131,50,170,104,35,58,51,136,52,0,77,200,101,75,175,107,94,173,2,
+32,115,4,252,94,5,148,241,123,142,96,131,216,188,143,233,202,76,59,84,108,
+94,144,105,0,50,200,103,75,175,75,41,138,152,230,225,155,82,50,69,192,175,
+85,64,9,73,126,105,30,19,157,121,171,189,148,234,28,119,108,70,149,6,160,
+129,66,182,244,186,54,159,254,172,167,187,103,199,223,51,2,126,173,2,46,
+49,255,203,215,249,72,108,222,6,186,49,139,179,196,230,5,157,6,224,43,46,
+182,244,186,148,160,152,187,236,249,158,206,216,51,2,19,204,35,162,191,
+130,45,37,193,141,60,46,54,15,234,174,254,181,148,136,206,12,50,13,0,238,
+182,244,186,230,245,42,0,26,71,224,88,254,37,250,169,59,163,120,134,175,
+241,137,216,188,245,116,103,118,64,2,31,20,177,14,128,23,91,122,93,146,
+88,5,64,227,8,76,68,102,21,208,134,90,198,153,10,207,231,52,84,110,71,233,
+213,127,15,177,13,128,87,91,122,93,147,88,5,192,238,8,72,173,2,70,243,52,
+135,176,201,243,57,245,86,209,131,57,12,20,155,23,22,177,12,128,215,91,
+122,93,146,90,5,192,238,8,120,189,10,104,203,78,126,97,158,240,236,248,
+153,76,178,163,2,29,122,191,196,46,0,139,236,201,156,98,103,120,186,165,
+215,181,249,244,231,223,116,19,153,85,149,128,222,41,111,87,1,87,241,91,
+14,98,179,103,199,223,211,251,28,198,124,250,139,205,11,147,216,4,160,126,
+75,111,25,19,217,65,91,191,79,39,39,146,171,0,168,139,192,205,169,25,158,
+172,2,218,83,45,126,245,47,183,163,114,254,56,182,184,136,197,159,138,31,
+91,122,93,155,199,0,145,215,2,234,245,76,172,226,204,244,82,231,199,189,
+198,60,197,1,108,117,126,220,166,188,203,215,89,200,169,98,243,194,38,242,
+1,240,115,75,175,75,9,138,185,219,163,247,8,52,229,23,137,153,152,148,187,
+91,175,119,160,138,159,51,215,217,241,178,49,129,209,164,163,255,215,60,
+111,145,254,147,241,123,75,175,107,210,171,128,62,172,102,96,98,41,164,
+146,78,142,119,45,115,69,111,236,250,54,223,228,25,123,138,216,188,48,138,
+100,0,130,180,165,215,37,63,86,1,55,154,10,76,162,26,10,92,9,236,195,14,
+198,154,121,142,206,42,59,19,237,21,161,125,202,39,37,114,1,8,218,150,94,
+215,164,87,1,223,98,21,3,121,13,18,59,11,138,192,181,102,14,157,249,194,
+225,153,53,239,45,142,98,49,125,197,230,133,85,164,2,16,212,45,189,46,249,
+182,10,192,230,29,129,125,249,146,107,120,202,131,51,107,218,120,59,90,
+175,254,89,136,68,0,130,190,165,215,181,121,12,16,219,23,0,13,86,1,144,
+87,4,110,96,54,251,242,165,7,103,150,217,235,244,225,57,78,18,155,23,102,
+161,15,64,88,182,244,186,84,183,10,144,219,23,0,13,86,1,144,83,4,246,103,
+27,87,155,5,30,158,217,222,38,48,90,116,94,152,133,58,0,97,218,210,235,
+218,92,63,87,1,144,117,4,110,96,54,29,169,242,240,204,26,91,198,49,188,
+96,79,20,155,23,118,161,13,128,196,93,122,131,204,247,85,0,180,24,129,110,
+108,225,42,243,91,129,51,219,237,22,174,20,157,23,118,161,11,64,138,34,
+166,216,139,196,238,210,27,100,126,172,2,78,55,175,55,254,98,51,17,24,103,
+42,104,71,141,192,153,213,89,106,79,224,69,123,188,216,188,40,8,85,0,234,
+183,244,78,161,76,95,225,197,159,85,192,77,60,190,247,123,4,50,68,160,59,
+159,115,5,191,19,60,51,152,100,46,23,157,23,5,161,9,64,84,182,244,186,22,
+136,85,0,236,21,129,95,154,199,104,43,248,89,15,127,226,251,188,108,143,
+19,155,23,21,161,8,64,212,182,244,186,148,160,216,179,207,17,104,74,198,
+85,0,236,138,64,15,62,227,114,158,21,61,167,114,244,234,159,143,64,7,32,
+170,91,122,93,155,195,233,193,88,5,0,36,118,50,46,53,147,214,212,138,157,
+207,18,250,178,220,246,17,155,23,37,129,13,64,212,183,244,186,20,164,85,
+64,15,62,227,156,228,18,106,155,249,84,98,215,38,115,153,220,176,136,9,
+100,0,226,176,165,215,181,160,172,2,110,48,179,41,37,65,117,2,145,8,60,
+107,79,225,13,219,219,251,65,17,21,152,0,108,176,221,99,183,165,215,165,
+32,172,2,14,227,99,70,240,252,174,127,246,58,2,22,195,36,125,238,95,144,
+192,4,96,21,135,48,132,95,199,106,75,175,107,115,56,157,13,194,171,128,
+1,44,223,245,207,227,204,108,74,104,124,239,0,47,35,240,59,126,200,10,142,
+240,230,224,49,17,152,0,88,12,47,219,111,251,125,26,161,230,199,59,5,111,
+50,117,171,128,195,249,136,179,121,33,227,247,120,17,129,52,69,76,182,250,
+220,191,80,129,9,128,114,67,250,181,128,99,248,23,3,88,206,141,230,113,
+138,105,250,167,220,117,4,22,208,143,119,232,233,238,128,49,165,1,136,24,
+63,94,11,184,195,60,192,112,90,190,129,104,117,2,118,58,184,187,88,138,
+34,38,89,125,238,239,130,6,32,130,164,87,1,135,241,113,214,31,45,94,147,
+44,60,2,115,57,61,182,111,2,115,77,3,16,65,9,138,153,198,72,191,79,163,
+73,133,68,32,69,17,183,219,75,220,158,80,140,105,0,34,234,73,59,80,116,
+21,144,171,124,35,48,155,193,172,228,80,247,39,20,83,26,128,136,10,250,
+42,0,114,143,64,130,98,110,179,151,122,119,66,49,164,1,136,176,160,175,
+2,32,183,8,60,198,153,172,229,96,111,79,40,102,52,0,17,22,134,85,0,100,
+23,129,4,197,76,177,101,34,231,19,39,26,128,136,123,210,14,20,221,29,152,
+175,150,34,240,8,67,89,199,65,114,39,20,19,26,128,136,75,80,204,52,123,
+158,223,167,145,149,166,34,80,67,41,119,216,139,229,79,40,6,52,0,49,240,
+4,131,66,177,10,128,204,17,152,110,135,241,33,7,248,115,66,17,167,1,136,
+129,48,173,2,160,113,4,106,40,101,42,23,250,123,66,17,166,1,136,137,48,
+173,2,96,119,4,126,99,207,225,35,186,250,125,58,145,165,1,136,137,176,173,
+2,0,182,38,219,112,103,114,132,223,167,17,105,26,128,24,9,219,42,96,58,
+195,216,156,108,15,73,185,251,11,198,141,6,32,70,194,180,10,168,164,45,
+191,177,63,169,251,135,100,173,70,192,35,26,128,152,9,203,42,224,65,206,
+230,115,246,221,253,5,141,128,39,52,0,49,147,160,152,123,9,246,243,234,
+47,104,207,131,245,87,255,134,52,2,206,105,0,98,104,182,29,28,232,85,192,
+131,252,132,255,208,49,243,191,212,8,56,165,1,136,161,32,175,2,182,211,
+129,135,236,240,230,191,73,35,224,140,6,32,166,130,186,10,184,207,142,96,
+59,29,90,254,70,141,128,19,26,128,152,10,226,42,96,43,157,152,206,176,236,
+31,160,17,40,152,6,32,198,130,182,10,184,215,158,199,14,218,230,246,32,
+141,64,65,52,0,49,22,164,85,192,38,58,243,8,67,243,123,176,70,32,111,26,
+128,152,123,194,14,98,99,0,86,1,247,218,17,84,209,38,255,3,104,4,242,162,
+1,136,185,90,74,184,215,250,187,10,248,148,46,204,98,72,225,7,210,8,228,
+76,3,160,152,141,191,171,128,123,24,73,53,173,221,28,76,35,144,19,13,128,
+242,117,21,240,41,251,83,97,7,187,61,168,70,32,107,26,0,5,248,183,10,152,
+202,249,212,184,186,250,55,164,17,200,138,6,64,1,117,171,128,105,194,191,
+17,216,72,55,158,176,131,188,27,160,17,104,145,6,64,237,34,253,27,129,169,
+246,124,106,41,241,118,136,70,160,89,26,0,181,139,228,107,1,27,232,198,
+124,250,139,204,34,89,11,137,157,50,179,66,70,3,160,26,145,122,45,96,138,
+45,243,254,234,223,80,42,161,17,200,64,3,160,26,169,165,132,251,56,215,
+211,25,107,56,152,5,244,243,116,70,70,26,129,189,104,0,212,94,42,236,96,
+79,87,1,119,218,50,146,180,242,236,248,205,210,8,52,82,236,247,9,168,224,
+169,165,132,65,118,26,93,216,214,236,247,181,50,150,142,84,230,124,252,
+87,56,46,223,83,115,35,149,168,251,223,18,15,126,253,24,50,26,0,149,209,
+70,14,100,35,7,54,255,77,86,230,92,60,161,17,0,244,41,128,138,51,125,58,
+160,1,80,49,23,243,8,104,0,148,138,113,4,52,0,74,65,108,35,160,1,80,170,
+94,12,35,160,1,80,170,161,152,69,64,3,160,212,158,98,20,1,13,128,82,153,
+196,36,2,26,0,165,154,18,131,8,104,0,148,106,78,42,1,137,26,191,207,194,
+51,26,0,165,90,146,74,70,54,2,26,0,165,178,17,209,8,104,0,148,202,86,4,
+35,160,1,80,42,23,17,139,128,6,64,169,92,69,40,2,26,0,165,242,17,145,8,
+104,0,148,202,87,4,34,160,1,80,170,16,33,143,128,6,64,169,66,133,56,2,26,
+0,165,92,8,105,4,52,0,74,185,18,194,8,104,0,148,114,41,100,17,208,0,40,
+229,90,136,34,160,1,80,202,11,169,36,212,86,251,125,22,45,210,0,40,229,
+149,116,42,240,17,208,0,40,229,165,128,71,64,3,160,148,215,2,28,1,13,128,
+82,18,2,26,1,13,128,82,82,2,24,129,188,62,29,184,93,137,251,110,116,40,
+109,69,175,174,109,157,31,87,169,160,49,69,80,212,218,237,223,245,205,85,
+73,62,221,145,200,249,113,121,5,224,184,238,237,243,121,88,179,190,119,
+72,123,94,187,228,72,231,199,85,42,136,138,139,139,105,223,222,221,207,
+209,61,203,63,227,218,231,55,230,252,56,125,10,160,148,15,146,201,36,149,
+149,149,126,159,134,6,64,41,191,4,33,2,26,0,165,124,228,119,4,52,0,74,249,
+172,62,2,214,90,241,217,26,0,165,2,32,153,76,82,85,85,37,30,1,13,128,82,
+1,225,71,4,52,0,74,5,136,116,4,52,0,74,5,140,100,4,52,0,74,5,144,84,4,52,
+0,74,5,148,68,4,52,0,74,5,152,215,17,208,0,40,21,112,94,70,64,3,160,84,
+8,120,21,1,13,128,82,33,225,69,4,52,0,74,133,136,235,8,104,0,148,10,25,
+151,239,29,208,0,40,21,66,169,84,202,73,4,52,0,74,133,148,139,8,104,0,148,
+10,177,66,35,144,87,0,94,219,248,101,94,195,148,82,238,165,82,41,106,107,
+170,32,143,8,24,110,90,154,170,187,79,105,246,218,151,22,121,114,103,96,
+165,84,126,170,18,105,42,147,64,73,91,48,38,235,199,229,117,87,224,202,
+218,52,149,181,233,124,30,170,148,242,82,162,58,167,8,232,101,92,169,40,
+73,167,235,34,144,229,211,1,13,128,82,81,147,67,4,52,0,74,69,81,150,17,
+208,0,40,21,85,89,68,64,3,160,84,148,181,16,1,13,128,82,81,215,76,4,52,
+0,74,197,65,19,17,208,0,40,21,23,25,34,160,1,80,42,78,246,136,128,6,64,
+169,184,105,16,1,13,128,82,113,244,85,4,254,31,121,241,55,153,214,40,101,
+56,0,0,0,0,73,69,78,68,174,66,96,130};
+
+static size_t xml_res_size_3 = 987;
+static unsigned char xml_res_file_3[] = {
+137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0,
+0,115,122,122,244,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
+72,89,115,0,0,5,98,0,0,5,98,1,172,97,92,156,0,0,0,25,116,69,88,116,83,111,
+102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,101,46,
+111,114,103,155,238,60,26,0,0,3,88,73,68,65,84,88,133,197,151,123,104,141,
+97,24,192,127,239,217,185,76,10,209,140,105,229,210,92,74,174,115,89,91,
+20,139,134,48,127,80,194,220,134,63,8,145,63,196,54,119,43,33,252,97,182,
+154,40,162,200,106,214,148,132,153,68,211,102,180,37,119,25,67,238,235,
+236,59,231,59,123,253,113,182,119,59,190,239,59,151,156,195,243,215,251,
+60,207,251,188,207,239,125,222,219,247,9,242,238,74,226,28,252,47,177,227,
+213,72,238,233,100,250,144,62,0,220,122,253,147,151,223,180,127,6,96,3,
+24,213,219,70,81,86,18,165,243,6,50,105,64,247,152,36,74,166,153,25,226,
+158,57,0,128,219,237,198,227,241,196,36,57,192,78,81,194,53,54,80,69,46,
+233,212,25,1,58,32,218,116,111,212,147,15,162,137,229,148,3,144,33,106,
+25,79,131,57,0,128,207,211,10,122,116,43,145,39,138,113,160,3,240,142,4,
+138,88,96,13,0,248,1,162,4,145,194,91,150,82,161,244,253,114,37,26,206,
+16,0,81,132,200,19,197,196,209,6,192,27,250,81,194,188,0,191,53,64,20,32,
+134,243,138,197,92,83,250,94,185,10,15,129,119,78,112,128,63,32,250,243,
+57,34,128,2,113,10,91,251,236,95,146,196,105,230,24,250,132,6,0,156,122,
+11,39,244,125,52,137,44,62,136,153,28,17,135,67,198,140,228,57,11,185,174,
+244,61,114,53,94,236,145,3,36,241,137,10,177,145,37,190,43,104,58,36,242,
+133,77,156,39,85,52,4,141,219,69,17,2,9,192,51,146,57,195,108,211,126,65,
+1,50,68,45,183,196,90,82,219,207,109,171,14,154,255,52,145,47,139,45,227,
+198,240,148,108,113,179,19,70,230,226,179,72,101,9,176,94,92,160,140,45,
+36,240,85,217,170,25,173,32,230,136,170,128,11,165,171,116,157,125,35,3,
+57,199,76,75,88,3,128,11,141,82,177,139,189,156,84,199,199,131,131,77,114,
+11,179,229,81,106,25,166,32,242,133,177,10,169,162,129,185,226,118,39,140,
+204,165,45,72,161,13,158,29,162,148,108,110,42,189,137,4,178,56,166,118,
+240,65,153,3,248,151,99,134,94,197,56,26,3,226,119,115,82,181,159,48,152,
+139,100,90,38,55,5,72,226,147,106,87,49,150,41,242,20,53,114,184,178,85,
+146,70,29,67,21,196,118,189,72,249,210,168,39,139,187,74,47,96,77,208,217,
+155,2,116,200,113,22,49,95,30,226,51,189,12,190,66,185,76,181,51,125,119,
+24,163,63,6,2,103,95,71,10,151,228,180,160,201,77,1,126,208,157,28,10,216,
+41,215,89,238,220,10,210,121,68,138,210,183,249,74,72,215,31,144,41,238,
+43,91,190,92,139,68,68,14,176,77,110,160,76,78,13,25,88,72,103,21,102,81,
+205,81,223,1,90,219,143,104,13,35,40,35,244,24,166,0,94,194,251,62,172,
+144,233,60,102,136,210,83,120,139,166,251,247,69,190,92,19,214,24,166,0,
+225,138,68,80,72,142,193,94,173,143,224,170,62,49,246,0,0,229,50,131,39,
+93,170,0,176,159,21,17,189,162,198,215,33,2,145,8,246,176,138,173,156,5,
+224,5,3,184,33,39,248,157,29,0,118,167,69,116,20,0,0,42,101,26,149,164,
+153,59,195,128,248,171,37,8,75,66,44,71,236,1,66,64,216,1,122,184,226,148,
+97,100,223,110,124,215,124,49,225,176,57,156,216,28,46,0,30,190,111,225,
+99,139,238,7,24,218,59,94,117,218,60,57,145,205,147,19,99,2,0,224,114,185,
+136,143,143,39,251,226,51,174,52,126,251,251,77,24,169,104,90,224,127,167,
+29,224,114,227,87,117,107,127,248,229,229,135,167,45,230,32,53,239,90,1,
+225,7,168,111,118,83,223,236,142,121,82,131,216,157,252,6,173,114,47,95,
+172,143,154,9,0,0,0,0,73,69,78,68,174,66,96,130};
+
+static size_t xml_res_size_4 = 1881;
+static unsigned char xml_res_file_4[] = {
+137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,64,0,0,0,64,8,6,0,0,
+0,170,105,113,222,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
+72,89,115,0,0,10,233,0,0,10,233,1,253,117,206,211,0,0,0,25,116,69,88,116,
+83,111,102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,
+101,46,111,114,103,155,238,60,26,0,0,6,214,73,68,65,84,120,156,229,155,
+121,108,84,69,28,199,63,211,61,186,96,57,228,80,17,84,130,136,8,65,140,
+26,60,162,81,84,98,168,128,130,130,45,32,10,4,80,140,114,41,90,64,40,162,
+65,81,20,8,162,128,66,41,8,114,40,209,152,200,81,4,131,9,40,136,26,84,136,
+86,228,16,139,128,96,45,236,118,119,223,238,248,199,186,237,110,119,222,
+219,247,246,173,108,91,190,255,237,252,126,111,102,222,103,102,126,115,
+188,89,193,212,29,18,135,147,243,85,89,4,43,33,164,101,186,30,25,83,22,
+192,249,12,161,186,239,7,43,153,114,123,59,114,59,54,139,115,216,118,176,
+130,73,159,31,61,215,245,58,103,138,27,252,151,93,16,226,198,139,179,113,
+185,92,85,105,199,206,4,207,121,165,236,202,73,136,16,89,72,68,82,223,172,
+154,9,94,175,151,96,176,238,189,116,172,158,20,107,217,43,242,232,79,9,
+2,105,232,155,0,0,234,54,4,15,1,158,165,152,206,28,96,141,40,224,123,49,
+208,16,132,18,0,212,93,8,163,89,75,107,78,84,253,238,66,41,107,68,1,59,
+196,48,186,242,75,130,191,46,0,136,64,8,105,117,7,194,5,248,152,40,138,
+149,182,235,217,79,5,13,19,210,13,1,0,248,125,62,8,213,13,8,79,177,154,
+139,57,165,180,21,209,139,3,180,78,72,79,10,0,128,160,191,214,67,200,193,
+203,120,177,82,105,11,226,100,166,28,170,180,153,3,0,181,30,194,88,86,209,
+146,211,74,219,98,30,224,55,46,85,218,204,3,128,90,11,161,9,103,24,167,
+211,250,126,220,186,173,15,86,1,64,173,132,48,142,149,52,227,31,165,109,
+33,253,248,157,139,116,159,181,14,0,106,21,132,166,84,48,70,124,160,180,
+85,226,102,150,28,98,248,124,106,0,160,214,64,120,134,21,52,165,66,105,
+123,75,14,224,40,45,13,159,79,29,0,100,28,66,115,202,121,90,167,245,207,
+210,128,215,120,36,105,30,246,0,64,70,33,76,20,197,52,194,171,180,205,151,
+3,248,147,102,74,91,172,236,3,128,140,64,104,193,223,140,102,157,210,118,
+134,134,188,193,64,83,249,164,7,0,36,64,184,75,236,162,3,135,211,150,125,
+77,21,136,34,114,116,90,127,174,204,227,184,137,214,135,26,231,1,182,21,
+244,227,33,192,91,206,55,24,198,39,32,224,36,77,217,65,23,118,202,46,44,
+163,87,210,160,100,70,173,56,201,19,58,173,95,78,14,179,25,100,58,175,180,
+2,184,148,19,20,107,211,184,93,236,3,71,36,173,5,127,211,155,237,244,22,
+219,233,196,1,6,203,25,182,203,41,160,136,6,248,149,182,57,50,159,211,52,
+54,157,87,218,134,64,119,118,179,93,140,224,70,246,225,11,66,32,148,232,
+147,199,38,58,114,208,86,57,109,56,206,8,177,94,105,59,77,99,222,52,57,
+246,163,178,13,64,32,25,199,74,214,137,231,104,78,121,85,186,10,130,131,
+48,47,136,247,108,149,55,137,165,120,8,40,109,179,25,68,57,57,150,242,179,
+5,160,17,94,150,139,169,76,19,139,113,16,78,176,171,32,60,108,163,23,92,
+65,25,195,197,199,74,219,73,154,50,79,230,89,206,51,101,0,87,113,132,205,
+98,52,189,248,210,208,175,38,4,7,97,38,139,37,41,149,57,69,44,193,141,122,
+186,125,157,193,202,3,143,100,74,9,192,253,226,11,182,138,81,116,228,144,
+41,255,154,16,242,217,200,213,38,159,141,170,29,71,121,148,79,149,182,227,
+52,99,190,28,96,41,191,168,44,1,112,16,166,144,69,20,49,157,28,124,134,
+190,171,233,193,100,249,68,213,111,95,16,252,90,117,62,83,44,198,130,23,
+196,187,184,80,127,188,121,85,14,225,44,13,44,229,23,149,105,0,205,41,231,
+67,38,50,86,172,50,60,106,214,112,80,200,72,70,201,73,44,162,31,135,185,
+164,202,86,169,85,67,200,103,163,233,88,208,158,35,12,230,51,165,237,24,
+205,121,135,7,205,190,70,130,76,1,232,202,207,108,21,143,115,167,248,198,
+208,175,140,22,228,202,121,204,145,249,64,228,40,106,46,241,129,41,10,193,
+74,44,40,20,139,112,162,152,87,129,153,242,49,188,120,76,229,163,82,82,
+0,109,56,206,70,241,52,151,115,204,208,111,7,215,114,167,92,200,215,116,
+138,75,47,150,247,197,245,2,168,134,96,166,23,116,224,48,121,108,82,218,
+202,104,193,98,250,38,123,5,67,37,5,112,29,63,227,209,89,117,69,85,68,47,
+250,200,217,202,221,151,170,23,64,4,130,166,37,239,5,47,138,119,148,83,
+44,192,12,134,227,35,219,240,249,100,178,181,14,56,75,3,134,201,169,140,
+149,19,8,26,172,170,85,189,0,34,16,250,105,250,51,66,103,14,208,159,45,
+74,219,97,46,97,137,236,147,90,197,99,148,50,128,82,218,112,183,92,192,
+71,116,79,234,27,196,89,21,23,18,108,90,152,231,67,139,149,182,233,98,33,
+89,58,173,255,146,28,142,31,183,249,10,235,40,37,0,27,228,205,220,45,223,
+102,63,109,77,63,179,156,92,101,47,0,232,163,109,166,131,86,26,151,214,
+133,82,250,178,77,233,127,136,86,44,227,62,211,101,27,201,18,0,137,96,142,
+204,103,32,47,91,94,115,235,197,2,136,204,8,227,67,75,65,171,94,227,191,
+196,219,186,173,95,40,71,18,192,165,180,89,149,105,0,167,104,204,67,242,
+21,10,25,73,56,197,145,179,92,230,114,68,167,23,244,167,132,171,180,95,
+65,11,112,3,251,232,45,182,43,253,74,185,140,21,244,76,169,124,149,146,
+190,73,5,13,217,75,123,186,203,133,108,161,155,173,194,2,184,152,171,179,
+97,113,16,102,130,88,1,90,128,169,161,5,186,139,173,233,114,4,90,244,176,
+33,13,74,10,224,43,58,211,67,206,231,144,78,203,89,213,114,122,114,84,231,
+67,69,127,74,200,99,35,119,104,59,171,86,140,177,218,79,91,86,113,111,90,
+234,17,85,82,0,149,100,83,105,115,174,141,149,31,183,238,129,165,131,48,
+11,196,172,72,185,49,203,230,168,166,203,17,132,210,120,140,9,233,60,20,
+181,32,163,88,16,27,248,98,33,252,72,59,214,112,79,218,235,146,17,0,70,
+177,160,166,162,16,166,201,81,41,7,95,35,101,4,0,64,49,250,189,160,166,
+246,104,237,88,175,221,250,191,212,35,99,0,172,244,130,25,12,39,172,105,
+113,235,132,116,41,99,0,192,120,70,136,234,91,121,53,27,228,45,145,31,90,
+32,237,16,50,10,192,143,155,57,168,247,8,81,205,20,67,227,47,60,166,25,
+66,70,1,0,20,203,92,221,94,176,75,118,98,147,188,41,209,144,70,8,25,191,
+39,239,199,205,24,38,112,155,252,46,46,189,17,94,214,136,30,232,158,190,
+69,1,56,237,237,8,51,14,0,160,68,118,163,68,181,204,54,190,229,154,22,8,
+25,31,2,182,101,115,56,212,125,0,96,11,66,253,0,0,41,67,168,63,0,32,37,
+8,245,11,0,88,134,80,255,0,128,37,8,113,211,224,21,77,18,247,253,215,180,
+244,48,163,187,250,158,109,109,151,211,157,141,211,29,255,78,123,202,188,
+172,250,161,250,70,121,28,128,86,57,137,203,130,43,47,244,240,84,183,212,
+63,61,101,90,217,217,217,120,60,213,245,127,127,239,95,113,0,234,231,16,
+136,145,223,239,199,231,211,255,146,93,239,1,0,4,2,1,93,8,181,98,41,124,
+46,20,8,168,131,98,28,128,221,101,94,92,89,241,255,181,243,6,195,156,170,
+84,127,154,174,123,58,203,79,127,84,198,165,8,10,182,38,219,114,212,63,
+57,92,224,138,204,14,231,69,12,72,80,40,24,185,218,203,121,20,3,18,244,
+223,189,230,127,1,145,119,128,141,62,61,149,199,0,0,0,0,73,69,78,68,174,
+66,96,130};
+
+static size_t xml_res_size_5 = 621;
+static unsigned char xml_res_file_5[] = {
+60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101,
+110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101,
+115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58,
+47,47,119,119,119,46,119,120,119,105,100,103,101,116,115,46,111,114,103,
+47,119,120,120,114,99,34,62,10,32,32,60,33,45,45,32,72,97,110,100,108,101,
+114,32,71,101,110,101,114,97,116,105,111,110,32,105,115,32,79,78,32,45,
+45,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,
+120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,99,104,97,114,116,
+49,50,56,34,62,67,104,97,114,116,86,105,101,119,66,105,116,109,97,112,115,
+46,99,112,112,36,100,97,116,97,95,105,109,97,103,101,115,95,99,104,97,114,
+116,49,50,56,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,
+111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,
+97,112,34,32,110,97,109,101,61,34,99,104,97,114,116,49,54,34,62,67,104,
+97,114,116,86,105,101,119,66,105,116,109,97,112,115,46,99,112,112,36,100,
+97,116,97,95,105,109,97,103,101,115,95,99,104,97,114,116,49,54,46,112,110,
+103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,
+99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,
+101,61,34,99,104,97,114,116,50,53,54,34,62,67,104,97,114,116,86,105,101,
+119,66,105,116,109,97,112,115,46,99,112,112,36,100,97,116,97,95,105,109,
+97,103,101,115,95,99,104,97,114,116,50,53,54,46,112,110,103,60,47,111,98,
+106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,
+61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,99,104,97,
+114,116,51,50,34,62,67,104,97,114,116,86,105,101,119,66,105,116,109,97,
+112,115,46,99,112,112,36,100,97,116,97,95,105,109,97,103,101,115,95,99,
+104,97,114,116,51,50,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,
+32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,
+109,97,112,34,32,110,97,109,101,61,34,99,104,97,114,116,54,52,34,62,67,
+104,97,114,116,86,105,101,119,66,105,116,109,97,112,115,46,99,112,112,36,
+100,97,116,97,95,105,109,97,103,101,115,95,99,104,97,114,116,54,52,46,112,
+110,103,60,47,111,98,106,101,99,116,62,10,60,47,114,101,115,111,117,114,
+99,101,62,10};
+
+void wxCE3EBInitBitmapResources()
+{
+
+ // Check for memory FS. If not present, load the handler:
+ {
+ wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one"));
+ wxFileSystem fsys;
+ wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file"));
+ wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file"));
+ if (f) delete f;
+ else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase);
+ }
+
+ XRC_ADD_FILE(wxT("XRC_resource/ChartViewBitmaps.cpp$data_images_chart128.png"), xml_res_file_0, xml_res_size_0, wxT("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/ChartViewBitmaps.cpp$data_images_chart16.png"), xml_res_file_1, xml_res_size_1, wxT("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/ChartViewBitmaps.cpp$data_images_chart256.png"), xml_res_file_2, xml_res_size_2, wxT("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/ChartViewBitmaps.cpp$data_images_chart32.png"), xml_res_file_3, xml_res_size_3, wxT("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/ChartViewBitmaps.cpp$data_images_chart64.png"), xml_res_file_4, xml_res_size_4, wxT("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/ChartViewBitmaps.cpp$C__Users_NDSE-69_Documents_GitHub_PSP_Project_ChartViewBitmaps.xrc"), xml_res_file_5, xml_res_size_5, wxT("text/xml"));
+ wxXmlResource::Get()->Load(wxT("memory:XRC_resource/ChartViewBitmaps.cpp$C__Users_NDSE-69_Documents_GitHub_PSP_Project_ChartViewBitmaps.xrc"));
+}
diff --git a/Project/base/ControlEditorBase.cpp b/Project/base/ControlEditorBase.cpp
new file mode 100644
index 0000000..cf391b7
--- /dev/null
+++ b/Project/base/ControlEditorBase.cpp
@@ -0,0 +1,361 @@
+//////////////////////////////////////////////////////////////////////
+// This file was auto-generated by codelite's wxCrafter Plugin
+// wxCrafter project file: ControlEditor.wxcp
+// Do not modify this file by hand!
+//////////////////////////////////////////////////////////////////////
+
+#include "ControlEditorBase.h"
+
+
+// Declare the bitmap loading function
+extern void wxC870InitBitmapResources();
+
+static bool bBitmapLoaded = false;
+
+
+ControlEditorBase::ControlEditorBase(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style)
+ : wxFrame(parent, id, title, pos, size, style)
+{
+ if ( !bBitmapLoaded ) {
+ // We need to initialise the default bitmap handler
+ wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler);
+ wxC870InitBitmapResources();
+ bBitmapLoaded = true;
+ }
+ // Set icon(s) to the application/dialog
+ wxIconBundle app_icons;
+ {
+ wxBitmap iconBmp = wxXmlResource::Get()->LoadBitmap(wxT("ctrlEditor16"));
+ wxIcon icn;
+ icn.CopyFromBitmap(iconBmp);
+ app_icons.AddIcon( icn );
+ }
+ {
+ wxBitmap iconBmp = wxXmlResource::Get()->LoadBitmap(wxT("ctrlEditor32"));
+ wxIcon icn;
+ icn.CopyFromBitmap(iconBmp);
+ app_icons.AddIcon( icn );
+ }
+ {
+ wxBitmap iconBmp = wxXmlResource::Get()->LoadBitmap(wxT("ctrlEditor64"));
+ wxIcon icn;
+ icn.CopyFromBitmap(iconBmp);
+ app_icons.AddIcon( icn );
+ }
+ {
+ wxBitmap iconBmp = wxXmlResource::Get()->LoadBitmap(wxT("ctrlEditor128"));
+ wxIcon icn;
+ icn.CopyFromBitmap(iconBmp);
+ app_icons.AddIcon( icn );
+ }
+ {
+ wxBitmap iconBmp = wxXmlResource::Get()->LoadBitmap(wxT("ctrlEditor256"));
+ wxIcon icn;
+ icn.CopyFromBitmap(iconBmp);
+ app_icons.AddIcon( icn );
+ }
+ SetIcons( app_icons );
+
+
+ m_toolbarMain = this->CreateToolBar(wxTB_TEXT|wxTB_FLAT, wxID_ANY);
+ m_toolbarMain->SetToolBitmapSize(wxSize(32,32));
+
+ m_toolbarMain->AddTool(wxID_ANY, _("New"), wxXmlResource::Get()->LoadBitmap(wxT("new32")), wxNullBitmap, wxITEM_NORMAL, wxT(""), wxT(""), NULL);
+
+ m_toolbarMain->AddTool(ID_RIBBON_IMPORT, _("Import"), wxXmlResource::Get()->LoadBitmap(wxT("imp32")), wxNullBitmap, wxITEM_NORMAL, wxT(""), wxT(""), NULL);
+
+ m_toolbarMain->AddTool(ID_RIBBON_EXPORT, _("Export"), wxXmlResource::Get()->LoadBitmap(wxT("exp32")), wxNullBitmap, wxITEM_NORMAL, wxT(""), wxT(""), NULL);
+
+ m_toolbarMain->AddSeparator();
+
+ m_toolbarMain->AddTool(wxID_ANY, _("Copy"), wxXmlResource::Get()->LoadBitmap(wxT("copy32")), wxNullBitmap, wxITEM_NORMAL, wxT(""), wxT(""), NULL);
+
+ m_toolbarMain->AddTool(wxID_ANY, _("Paste"), wxXmlResource::Get()->LoadBitmap(wxT("paste32")), wxNullBitmap, wxITEM_NORMAL, wxT(""), wxT(""), NULL);
+
+ m_toolbarMain->AddTool(wxID_ANY, _("Undo"), wxXmlResource::Get()->LoadBitmap(wxT("undo32")), wxNullBitmap, wxITEM_NORMAL, wxT(""), wxT(""), NULL);
+
+ m_toolbarMain->AddTool(wxID_ANY, _("Redo"), wxXmlResource::Get()->LoadBitmap(wxT("redo32")), wxNullBitmap, wxITEM_NORMAL, wxT(""), wxT(""), NULL);
+
+ m_toolbarMain->AddSeparator();
+
+ m_toolbarMain->AddTool(wxID_ANY, _("Drag"), wxXmlResource::Get()->LoadBitmap(wxT("drag32")), wxNullBitmap, wxITEM_NORMAL, wxT(""), wxT(""), NULL);
+
+ m_toolbarMain->AddTool(wxID_ANY, _("Move"), wxXmlResource::Get()->LoadBitmap(wxT("move32")), wxNullBitmap, wxITEM_NORMAL, wxT(""), wxT(""), NULL);
+
+ m_toolbarMain->AddTool(wxID_ANY, _("Delete"), wxXmlResource::Get()->LoadBitmap(wxT("delete32")), wxNullBitmap, wxITEM_NORMAL, wxT(""), wxT(""), NULL);
+ m_toolbarMain->Realize();
+
+ m_auimgr = new wxAuiManager;
+ m_auimgr->SetManagedWindow( this );
+ m_auimgr->SetFlags( wxAUI_MGR_LIVE_RESIZE|wxAUI_MGR_TRANSPARENT_HINT|wxAUI_MGR_TRANSPARENT_DRAG|wxAUI_MGR_ALLOW_ACTIVE_PANE|wxAUI_MGR_ALLOW_FLOATING);
+ m_auimgr->GetArtProvider()->SetMetric(wxAUI_DOCKART_GRADIENT_TYPE, wxAUI_GRADIENT_NONE);
+
+ m_panelControlElements = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), wxTAB_TRAVERSAL);
+ m_panelControlElements->SetBackgroundColour(wxColour(wxT("rgb(255,255,255)")));
+
+ m_auimgr->AddPane(m_panelControlElements, wxAuiPaneInfo().Name(wxT("m_controlElementsPanel")).Caption(_("Control elements")).Direction(wxAUI_DOCK_LEFT).Layer(0).Row(0).Position(0).BestSize(200,200).MinSize(10,10).MaxSize(200,200).CaptionVisible(true).MaximizeButton(false).CloseButton(false).MinimizeButton(true).PinButton(true));
+
+ m_panelWorkspace = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), wxTAB_TRAVERSAL);
+
+ m_auimgr->AddPane(m_panelWorkspace, wxAuiPaneInfo().Direction(wxAUI_DOCK_CENTER).Layer(0).Row(0).Position(0).BestSize(100,100).MinSize(100,100).MaxSize(100,100).Fixed().CaptionVisible(false).MaximizeButton(false).CloseButton(false).MinimizeButton(false).PinButton(false));
+
+ wxBoxSizer* boxSizerLvl2_1 = new wxBoxSizer(wxVERTICAL);
+ m_panelWorkspace->SetSizer(boxSizerLvl2_1);
+
+ int *m_glCanvasAttr = new int[ 5 ];
+ m_glCanvasAttr[0] = WX_GL_SAMPLE_BUFFERS;
+ m_glCanvasAttr[1] = 1;
+ m_glCanvasAttr[2] = WX_GL_SAMPLES;
+ m_glCanvasAttr[3] = 4;
+ m_glCanvasAttr[4] = 0;
+ m_glCanvas = new wxGLCanvas(m_panelWorkspace, wxID_ANY, m_glCanvasAttr, wxDefaultPosition, wxDLG_UNIT(m_panelWorkspace, wxSize(-1,-1)), 0);
+ wxDELETEA( m_glCanvasAttr );
+
+ boxSizerLvl2_1->Add(m_glCanvas, 1, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_panelButtons = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), wxTAB_TRAVERSAL);
+
+ m_auimgr->AddPane(m_panelButtons, wxAuiPaneInfo().Direction(wxAUI_DOCK_BOTTOM).Layer(0).Row(0).Position(0).BestSize(100,-1).MinSize(100,-1).MaxSize(100,-1).Fixed().CaptionVisible(false).MaximizeButton(false).CloseButton(false).MinimizeButton(false).PinButton(false));
+ m_auimgr->Update();
+
+ wxBoxSizer* boxSizerBottomButtons = new wxBoxSizer(wxHORIZONTAL);
+ m_panelButtons->SetSizer(boxSizerBottomButtons);
+
+ m_buttonTest = new wxButton(m_panelButtons, wxID_ANY, _("Test system..."), wxDefaultPosition, wxDLG_UNIT(m_panelButtons, wxSize(-1,-1)), 0);
+
+ boxSizerBottomButtons->Add(m_buttonTest, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5));
+
+ boxSizerBottomButtons->Add(0, 0, 1, wxALL, WXC_FROM_DIP(5));
+
+ m_buttonOK = new wxButton(m_panelButtons, wxID_ANY, _("OK"), wxDefaultPosition, wxDLG_UNIT(m_panelButtons, wxSize(-1,-1)), 0);
+
+ boxSizerBottomButtons->Add(m_buttonOK, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5));
+
+ SetName(wxT("ControlEditorBase"));
+ SetSize(800,600);
+ if (GetSizer()) {
+ GetSizer()->Fit(this);
+ }
+ if(GetParent()) {
+ CentreOnParent(wxBOTH);
+ } else {
+ CentreOnScreen(wxBOTH);
+ }
+#if wxVERSION_NUMBER >= 2900
+ if(!wxPersistenceManager::Get().Find(this)) {
+ wxPersistenceManager::Get().RegisterAndRestore(this);
+ } else {
+ wxPersistenceManager::Get().Restore(this);
+ }
+#endif
+ // Connect events
+ this->Connect(wxEVT_KEY_DOWN, wxKeyEventHandler(ControlEditorBase::OnKeyDown), NULL, this);
+ this->Connect(wxEVT_CLOSE_WINDOW, wxCloseEventHandler(ControlEditorBase::OnClose), NULL, this);
+ this->Connect(ID_RIBBON_IMPORT, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler(ControlEditorBase::OnImportClick), NULL, this);
+ this->Connect(ID_RIBBON_EXPORT, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler(ControlEditorBase::OnExportClick), NULL, this);
+ m_glCanvas->Connect(wxEVT_PAINT, wxPaintEventHandler(ControlEditorBase::OnPaint), NULL, this);
+ m_glCanvas->Connect(wxEVT_LEFT_DOWN, wxMouseEventHandler(ControlEditorBase::OnLeftClickDown), NULL, this);
+ m_glCanvas->Connect(wxEVT_LEFT_UP, wxMouseEventHandler(ControlEditorBase::OnLeftClickUp), NULL, this);
+ m_glCanvas->Connect(wxEVT_LEFT_DCLICK, wxMouseEventHandler(ControlEditorBase::OnDoubleClick), NULL, this);
+ m_glCanvas->Connect(wxEVT_MIDDLE_DOWN, wxMouseEventHandler(ControlEditorBase::OnMiddleDown), NULL, this);
+ m_glCanvas->Connect(wxEVT_MIDDLE_UP, wxMouseEventHandler(ControlEditorBase::OnMiddleUp), NULL, this);
+ m_glCanvas->Connect(wxEVT_MOTION, wxMouseEventHandler(ControlEditorBase::OnMouseMotion), NULL, this);
+ m_glCanvas->Connect(wxEVT_MOUSEWHEEL, wxMouseEventHandler(ControlEditorBase::OnScroll), NULL, this);
+ m_glCanvas->Connect(wxEVT_IDLE, wxIdleEventHandler(ControlEditorBase::OnIdle), NULL, this);
+ m_glCanvas->Connect(wxEVT_KEY_DOWN, wxKeyEventHandler(ControlEditorBase::OnKeyDown), NULL, this);
+ m_buttonTest->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(ControlEditorBase::OnTestClick), NULL, this);
+ m_buttonOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(ControlEditorBase::OnButtonOKClick), NULL, this);
+
+}
+
+ControlEditorBase::~ControlEditorBase()
+{
+ this->Disconnect(wxEVT_KEY_DOWN, wxKeyEventHandler(ControlEditorBase::OnKeyDown), NULL, this);
+ this->Disconnect(wxEVT_CLOSE_WINDOW, wxCloseEventHandler(ControlEditorBase::OnClose), NULL, this);
+ this->Disconnect(ID_RIBBON_IMPORT, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler(ControlEditorBase::OnImportClick), NULL, this);
+ this->Disconnect(ID_RIBBON_EXPORT, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler(ControlEditorBase::OnExportClick), NULL, this);
+ m_glCanvas->Disconnect(wxEVT_PAINT, wxPaintEventHandler(ControlEditorBase::OnPaint), NULL, this);
+ m_glCanvas->Disconnect(wxEVT_LEFT_DOWN, wxMouseEventHandler(ControlEditorBase::OnLeftClickDown), NULL, this);
+ m_glCanvas->Disconnect(wxEVT_LEFT_UP, wxMouseEventHandler(ControlEditorBase::OnLeftClickUp), NULL, this);
+ m_glCanvas->Disconnect(wxEVT_LEFT_DCLICK, wxMouseEventHandler(ControlEditorBase::OnDoubleClick), NULL, this);
+ m_glCanvas->Disconnect(wxEVT_MIDDLE_DOWN, wxMouseEventHandler(ControlEditorBase::OnMiddleDown), NULL, this);
+ m_glCanvas->Disconnect(wxEVT_MIDDLE_UP, wxMouseEventHandler(ControlEditorBase::OnMiddleUp), NULL, this);
+ m_glCanvas->Disconnect(wxEVT_MOTION, wxMouseEventHandler(ControlEditorBase::OnMouseMotion), NULL, this);
+ m_glCanvas->Disconnect(wxEVT_MOUSEWHEEL, wxMouseEventHandler(ControlEditorBase::OnScroll), NULL, this);
+ m_glCanvas->Disconnect(wxEVT_IDLE, wxIdleEventHandler(ControlEditorBase::OnIdle), NULL, this);
+ m_glCanvas->Disconnect(wxEVT_KEY_DOWN, wxKeyEventHandler(ControlEditorBase::OnKeyDown), NULL, this);
+ m_buttonTest->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(ControlEditorBase::OnTestClick), NULL, this);
+ m_buttonOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(ControlEditorBase::OnButtonOKClick), NULL, this);
+
+ m_auimgr->UnInit();
+ delete m_auimgr;
+
+}
+
+ControlSystemTestBase::ControlSystemTestBase(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style)
+ : wxDialog(parent, id, title, pos, size, style)
+{
+ if ( !bBitmapLoaded ) {
+ // We need to initialise the default bitmap handler
+ wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler);
+ wxC870InitBitmapResources();
+ bBitmapLoaded = true;
+ }
+
+ wxBoxSizer* boxSizerLvl1_1 = new wxBoxSizer(wxVERTICAL);
+ this->SetSizer(boxSizerLvl1_1);
+
+ m_notebook = new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), wxBK_DEFAULT);
+ m_notebook->SetName(wxT("m_notebook"));
+
+ boxSizerLvl1_1->Add(m_notebook, 1, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_panelGeneral = new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL);
+ m_notebook->AddPage(m_panelGeneral, _("General"), false);
+
+ wxBoxSizer* boxSizerLvl2_1 = new wxBoxSizer(wxVERTICAL);
+ m_panelGeneral->SetSizer(boxSizerLvl2_1);
+
+ m_staticTextInput = new wxStaticText(m_panelGeneral, wxID_ANY, _("Input type:"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+
+ boxSizerLvl2_1->Add(m_staticTextInput, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxArrayString m_choiceInputArr;
+ m_choiceInputArr.Add(wxT("Step"));
+ m_choiceInputArr.Add(wxT("Ramp"));
+ m_choiceInputArr.Add(wxT("Quadratic"));
+ m_choiceInput = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), m_choiceInputArr, 0);
+ m_choiceInput->SetSelection(0);
+
+ boxSizerLvl2_1->Add(m_choiceInput, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND, WXC_FROM_DIP(5));
+
+ wxGridSizer* gridSizerLvl3_1 = new wxGridSizer(0, 2, 0, 0);
+
+ boxSizerLvl2_1->Add(gridSizerLvl3_1, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_1 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl3_1->Add(boxSizerLvl4_1, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextStartTime = new wxStaticText(m_panelGeneral, wxID_ANY, _("Start time"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+
+ boxSizerLvl4_1->Add(m_staticTextStartTime, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl5_1 = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl4_1->Add(boxSizerLvl5_1, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_textCtrlStartTime = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT("1,0"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlStartTime->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl5_1->Add(m_textCtrlStartTime, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_staticTextSec_1 = new wxStaticText(m_panelGeneral, wxID_ANY, _("s"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+
+ boxSizerLvl5_1->Add(m_staticTextSec_1, 0, wxRIGHT|wxTOP|wxBOTTOM|wxALIGN_BOTTOM, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_2 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl3_1->Add(boxSizerLvl4_2, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextSlope = new wxStaticText(m_panelGeneral, wxID_ANY, _("Slope"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+
+ boxSizerLvl4_2->Add(m_staticTextSlope, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_textCtrlSlope = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT("1,0"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlSlope->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl4_2->Add(m_textCtrlSlope, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_3 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl3_1->Add(boxSizerLvl4_3, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextStep = new wxStaticText(m_panelGeneral, wxID_ANY, _("Time step"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+
+ boxSizerLvl4_3->Add(m_staticTextStep, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_textCtrlTimeStep = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT("0,0001"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlTimeStep->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl4_3->Add(m_textCtrlTimeStep, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_4 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl3_1->Add(boxSizerLvl4_4, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextSimTime = new wxStaticText(m_panelGeneral, wxID_ANY, _("Simulation time"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+
+ boxSizerLvl4_4->Add(m_staticTextSimTime, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl5_2 = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl4_4->Add(boxSizerLvl5_2, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_textCtrlSimTime = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT("10,0"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlSimTime->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl5_2->Add(m_textCtrlSimTime, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_staticTextSec_2 = new wxStaticText(m_panelGeneral, wxID_ANY, _("s"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+
+ boxSizerLvl5_2->Add(m_staticTextSec_2, 0, wxRIGHT|wxTOP|wxBOTTOM|wxALIGN_BOTTOM, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerBotomButtons = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl1_1->Add(boxSizerBotomButtons, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5));
+
+ m_buttonRun = new wxButton(this, wxID_ANY, _("Run"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerBotomButtons->Add(m_buttonRun, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5));
+
+ m_buttonCancel = new wxButton(this, wxID_ANY, _("Cancel"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerBotomButtons->Add(m_buttonCancel, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5));
+
+
+ #if wxVERSION_NUMBER >= 2900
+ if(!wxPersistenceManager::Get().Find(m_notebook)){
+ wxPersistenceManager::Get().RegisterAndRestore(m_notebook);
+ } else {
+ wxPersistenceManager::Get().Restore(m_notebook);
+ }
+ #endif
+
+ SetName(wxT("ControlSystemTestBase"));
+ SetSize(-1,-1);
+ if (GetSizer()) {
+ GetSizer()->Fit(this);
+ }
+ if(GetParent()) {
+ CentreOnParent(wxBOTH);
+ } else {
+ CentreOnScreen(wxBOTH);
+ }
+#if wxVERSION_NUMBER >= 2900
+ if(!wxPersistenceManager::Get().Find(this)) {
+ wxPersistenceManager::Get().RegisterAndRestore(this);
+ } else {
+ wxPersistenceManager::Get().Restore(this);
+ }
+#endif
+ // Connect events
+ m_buttonRun->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(ControlSystemTestBase::OnRunButtonClick), NULL, this);
+ m_buttonCancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(ControlSystemTestBase::OnCancelButtonClick), NULL, this);
+
+}
+
+ControlSystemTestBase::~ControlSystemTestBase()
+{
+ m_buttonRun->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(ControlSystemTestBase::OnRunButtonClick), NULL, this);
+ m_buttonCancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(ControlSystemTestBase::OnCancelButtonClick), NULL, this);
+
+}
diff --git a/Project/base/ControlEditorBase.h b/Project/base/ControlEditorBase.h
new file mode 100644
index 0000000..6580e73
--- /dev/null
+++ b/Project/base/ControlEditorBase.h
@@ -0,0 +1,140 @@
+//////////////////////////////////////////////////////////////////////
+// This file was auto-generated by codelite's wxCrafter Plugin
+// wxCrafter project file: ControlEditor.wxcp
+// Do not modify this file by hand!
+//////////////////////////////////////////////////////////////////////
+
+#ifndef _PSP_PROJECT_CONTROLEDITOR_BASE_CLASSES_H
+#define _PSP_PROJECT_CONTROLEDITOR_BASE_CLASSES_H
+
+#include <wx/settings.h>
+#include <wx/xrc/xmlres.h>
+#include <wx/xrc/xh_bmp.h>
+#include <wx/frame.h>
+#include <wx/iconbndl.h>
+#include <wx/artprov.h>
+#include <wx/sizer.h>
+#include <wx/toolbar.h>
+#include <wx/aui/framemanager.h>
+#include <wx/aui/dockart.h>
+#include <wx/panel.h>
+#include <wx/glcanvas.h>
+#include <wx/button.h>
+#include <wx/dialog.h>
+#include <wx/notebook.h>
+#include <wx/imaglist.h>
+#include <wx/stattext.h>
+#include <wx/choice.h>
+#include <wx/arrstr.h>
+#include <wx/textctrl.h>
+#if wxVERSION_NUMBER >= 2900
+#include <wx/persist.h>
+#include <wx/persist/toplevel.h>
+#include <wx/persist/bookctrl.h>
+#include <wx/persist/treebook.h>
+#endif
+
+#ifdef WXC_FROM_DIP
+#undef WXC_FROM_DIP
+#endif
+#if wxVERSION_NUMBER >= 3100
+#define WXC_FROM_DIP(x) wxWindow::FromDIP(x, NULL)
+#else
+#define WXC_FROM_DIP(x) x
+#endif
+
+
+class ControlEditorBase : public wxFrame
+{
+public:
+ enum {
+ ID_RIBBON_EXPORT = 10001,
+ ID_RIBBON_IMPORT = 10002,
+ };
+protected:
+ wxToolBar* m_toolbarMain;
+ wxAuiManager* m_auimgr;
+ wxPanel* m_panelControlElements;
+ wxPanel* m_panelWorkspace;
+ wxGLCanvas* m_glCanvas;
+ wxPanel* m_panelButtons;
+ wxButton* m_buttonTest;
+ wxButton* m_buttonOK;
+
+protected:
+ virtual void OnKeyDown(wxKeyEvent& event) { event.Skip(); }
+ virtual void OnClose(wxCloseEvent& event) { event.Skip(); }
+ virtual void OnImportClick(wxCommandEvent& event) { event.Skip(); }
+ virtual void OnExportClick(wxCommandEvent& event) { event.Skip(); }
+ virtual void OnPaint(wxPaintEvent& event) { event.Skip(); }
+ virtual void OnLeftClickDown(wxMouseEvent& event) { event.Skip(); }
+ virtual void OnLeftClickUp(wxMouseEvent& event) { event.Skip(); }
+ virtual void OnDoubleClick(wxMouseEvent& event) { event.Skip(); }
+ virtual void OnMiddleDown(wxMouseEvent& event) { event.Skip(); }
+ virtual void OnMiddleUp(wxMouseEvent& event) { event.Skip(); }
+ virtual void OnMouseMotion(wxMouseEvent& event) { event.Skip(); }
+ virtual void OnScroll(wxMouseEvent& event) { event.Skip(); }
+ virtual void OnIdle(wxIdleEvent& event) { event.Skip(); }
+ virtual void OnTestClick(wxCommandEvent& event) { event.Skip(); }
+ virtual void OnButtonOKClick(wxCommandEvent& event) { event.Skip(); }
+
+public:
+ wxToolBar* GetToolbarMain() { return m_toolbarMain; }
+ wxPanel* GetPanelControlElements() { return m_panelControlElements; }
+ wxGLCanvas* GetGlCanvas() { return m_glCanvas; }
+ wxPanel* GetPanelWorkspace() { return m_panelWorkspace; }
+ wxButton* GetButtonTest() { return m_buttonTest; }
+ wxButton* GetButtonOK() { return m_buttonOK; }
+ wxPanel* GetPanelButtons() { return m_panelButtons; }
+ wxAuiManager* GetAuimgr() { return m_auimgr; }
+ ControlEditorBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Control editor"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(800,600), long style = wxDEFAULT_FRAME_STYLE);
+ virtual ~ControlEditorBase();
+};
+
+
+class ControlSystemTestBase : public wxDialog
+{
+protected:
+ wxNotebook* m_notebook;
+ wxPanel* m_panelGeneral;
+ wxStaticText* m_staticTextInput;
+ wxChoice* m_choiceInput;
+ wxStaticText* m_staticTextStartTime;
+ wxTextCtrl* m_textCtrlStartTime;
+ wxStaticText* m_staticTextSec_1;
+ wxStaticText* m_staticTextSlope;
+ wxTextCtrl* m_textCtrlSlope;
+ wxStaticText* m_staticTextStep;
+ wxTextCtrl* m_textCtrlTimeStep;
+ wxStaticText* m_staticTextSimTime;
+ wxTextCtrl* m_textCtrlSimTime;
+ wxStaticText* m_staticTextSec_2;
+ wxButton* m_buttonRun;
+ wxButton* m_buttonCancel;
+
+protected:
+ virtual void OnRunButtonClick(wxCommandEvent& event) { event.Skip(); }
+ virtual void OnCancelButtonClick(wxCommandEvent& event) { event.Skip(); }
+
+public:
+ wxStaticText* GetStaticTextInput() { return m_staticTextInput; }
+ wxChoice* GetChoiceInput() { return m_choiceInput; }
+ wxStaticText* GetStaticTextStartTime() { return m_staticTextStartTime; }
+ wxTextCtrl* GetTextCtrlStartTime() { return m_textCtrlStartTime; }
+ wxStaticText* GetStaticTextSec_1() { return m_staticTextSec_1; }
+ wxStaticText* GetStaticTextSlope() { return m_staticTextSlope; }
+ wxTextCtrl* GetTextCtrlSlope() { return m_textCtrlSlope; }
+ wxStaticText* GetStaticTextStep() { return m_staticTextStep; }
+ wxTextCtrl* GetTextCtrlTimeStep() { return m_textCtrlTimeStep; }
+ wxStaticText* GetStaticTextSimTime() { return m_staticTextSimTime; }
+ wxTextCtrl* GetTextCtrlSimTime() { return m_textCtrlSimTime; }
+ wxStaticText* GetStaticTextSec_2() { return m_staticTextSec_2; }
+ wxPanel* GetPanelGeneral() { return m_panelGeneral; }
+ wxNotebook* GetNotebook() { return m_notebook; }
+ wxButton* GetButtonRun() { return m_buttonRun; }
+ wxButton* GetButtonCancel() { return m_buttonCancel; }
+ ControlSystemTestBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Control system test"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE);
+ virtual ~ControlSystemTestBase();
+};
+
+#endif
diff --git a/Project/base/ControlEditorBitmaps.cpp b/Project/base/ControlEditorBitmaps.cpp
new file mode 100644
index 0000000..b7212e1
--- /dev/null
+++ b/Project/base/ControlEditorBitmaps.cpp
@@ -0,0 +1,1186 @@
+//
+// This file was automatically generated by wxrc, do not edit by hand.
+//
+
+#include <wx/wxprec.h>
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#include <wx/filesys.h>
+#include <wx/fs_mem.h>
+#include <wx/xrc/xmlres.h>
+#include <wx/xrc/xh_all.h>
+
+#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805
+ #define XRC_ADD_FILE(name, data, size, mime) \
+ wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime)
+#else
+ #define XRC_ADD_FILE(name, data, size, mime) \
+ wxMemoryFSHandler::AddFile(name, data, size)
+#endif
+
+static size_t xml_res_size_0 = 745;
+static unsigned char xml_res_file_0[] = {
+137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0,
+0,115,122,122,244,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
+72,89,115,0,0,5,74,0,0,5,74,1,26,195,117,109,0,0,0,25,116,69,88,116,83,
+111,102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,101,
+46,111,114,103,155,238,60,26,0,0,2,102,73,68,65,84,88,133,197,150,75,72,
+84,97,20,199,127,103,102,156,33,74,90,132,74,11,117,81,11,55,209,46,40,
+92,70,16,173,130,137,220,4,81,164,102,20,61,209,76,131,102,132,80,202,116,
+72,68,72,138,194,136,202,6,162,218,84,20,49,6,69,155,22,46,196,213,140,
+211,131,194,77,77,249,184,119,230,107,49,134,58,119,30,247,53,117,224,194,
+229,255,125,247,156,31,255,115,248,238,39,74,41,114,67,66,31,166,128,245,
+134,5,19,177,153,25,105,33,58,122,246,226,237,78,51,251,125,5,244,26,187,
+0,62,210,28,151,123,231,7,122,210,158,147,93,99,29,165,246,123,236,20,41,
+21,1,52,218,212,131,246,193,80,211,149,255,2,0,224,71,163,77,198,207,68,
+66,251,251,77,1,200,133,215,143,165,243,85,66,186,99,113,144,74,171,5,79,
+51,102,208,42,208,105,147,241,83,67,225,125,131,37,1,80,108,4,169,37,173,
+215,161,207,91,118,230,170,12,112,142,59,6,221,71,154,22,162,39,134,67,
+193,235,197,1,86,134,174,129,190,96,149,129,62,137,112,128,103,121,33,154,
+37,122,108,36,28,28,54,7,224,0,162,83,110,18,99,171,65,247,146,225,8,209,
+214,27,225,189,35,230,0,28,64,52,242,145,23,108,99,134,26,146,84,243,137,
+42,62,83,197,87,54,176,155,137,230,222,240,193,107,127,247,22,58,7,86,67,
+0,248,2,150,32,118,242,158,30,14,211,173,90,243,45,111,111,95,122,49,55,
+108,54,157,232,98,148,203,50,84,116,143,249,105,183,9,209,193,45,250,36,
+82,112,189,116,11,114,33,32,111,59,166,168,71,80,75,15,8,217,127,140,160,
+8,242,146,36,213,68,104,114,8,80,4,162,65,61,180,156,10,236,30,197,186,
+6,250,162,173,79,221,1,128,44,128,11,16,206,126,70,46,64,24,102,96,77,133,
+135,254,93,181,150,146,60,79,204,241,104,250,183,59,0,62,143,208,88,183,
+206,82,146,169,217,249,172,19,62,191,115,128,159,11,105,182,12,79,90,78,
+180,156,209,26,132,187,23,18,27,51,225,254,141,200,34,132,161,5,107,253,
+30,238,7,55,57,98,120,19,79,209,251,110,214,84,59,202,118,39,52,235,132,
+193,129,95,139,25,246,220,157,118,15,2,138,58,81,62,7,86,66,20,113,162,
+252,0,37,32,12,45,168,12,120,121,123,168,193,81,189,137,153,20,173,79,226,
+171,197,180,150,65,72,226,245,43,132,47,5,1,244,140,34,150,72,57,2,152,
+252,62,103,20,85,38,165,46,237,168,207,149,13,0,115,90,134,163,79,227,185,
+114,217,226,223,204,64,145,88,118,64,152,69,201,183,178,85,18,249,145,79,
+254,3,152,12,212,147,138,121,230,178,0,0,0,0,73,69,78,68,174,66,96,130};
+
+static size_t xml_res_size_1 = 2807;
+static unsigned char xml_res_file_1[] = {
+137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,128,0,0,0,128,8,6,0,
+0,0,195,62,97,203,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
+72,89,115,0,0,17,24,0,0,17,24,1,91,182,80,54,0,0,0,25,116,69,88,116,83,
+111,102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,101,
+46,111,114,103,155,238,60,26,0,0,10,116,73,68,65,84,120,156,237,157,95,
+76,20,219,29,199,191,203,46,186,182,122,21,146,251,71,175,212,127,81,180,
+86,139,127,22,227,195,173,32,75,8,4,255,36,64,241,133,91,77,205,250,36,
+229,193,122,235,67,233,109,140,9,189,185,241,134,135,210,94,131,9,166,149,
+4,171,209,162,137,197,69,121,88,16,21,173,232,2,137,90,96,193,191,88,47,
+18,244,226,229,239,233,195,58,148,101,103,103,102,103,103,230,204,46,191,
+79,114,18,216,61,115,230,55,231,247,217,157,217,51,103,102,0,130,32,8,130,
+32,8,130,32,8,130,32,8,130,32,8,130,32,136,240,89,196,59,0,66,25,86,157,
+218,237,3,240,19,0,119,1,188,209,105,29,132,137,25,3,192,0,12,3,248,22,
+192,167,124,195,33,140,70,16,64,40,67,0,190,1,240,9,207,160,8,227,152,46,
+128,80,126,128,255,27,97,33,191,208,8,35,8,37,128,80,190,7,240,53,128,143,
+120,5,72,232,203,164,0,9,9,9,108,246,236,217,161,68,120,11,224,43,0,31,
+242,10,148,208,135,73,1,178,179,179,89,111,111,47,43,46,46,102,118,187,
+93,74,132,114,208,49,66,204,16,32,128,64,24,34,124,204,43,112,66,27,68,
+5,16,232,233,233,97,197,197,197,114,187,6,18,33,138,145,20,32,12,17,222,
+0,40,3,144,200,107,67,8,117,40,18,64,192,231,243,49,151,203,197,108,54,
+155,156,8,9,188,54,136,8,143,176,4,32,17,98,15,85,2,8,116,119,119,203,137,
+48,8,18,193,212,68,36,128,10,17,22,240,218,80,66,28,77,4,16,232,234,234,
+34,17,162,12,77,5,16,232,236,236,100,46,151,139,89,173,214,80,34,124,7,
+224,75,0,243,57,109,55,241,30,93,4,16,232,232,232,96,69,69,69,82,34,188,
+2,137,192,21,93,5,80,33,194,7,156,250,97,198,98,136,0,2,237,237,237,114,
+34,252,23,36,130,161,24,42,128,64,91,91,27,137,96,18,184,8,48,93,132,184,
+184,56,41,17,190,0,240,35,94,29,20,235,112,21,64,192,235,245,178,130,130,
+2,102,177,88,66,137,240,18,36,130,46,152,66,0,129,251,247,239,43,21,97,
+14,175,14,139,53,76,37,128,128,2,17,250,64,34,104,130,41,5,16,184,119,239,
+30,137,160,51,166,22,64,32,12,17,236,188,58,50,90,137,10,1,4,90,91,91,229,
+68,232,5,240,27,144,8,138,137,42,1,4,154,155,155,89,110,110,110,40,9,72,
+132,48,136,74,1,4,20,136,208,3,191,8,179,57,245,175,233,137,106,1,4,174,
+95,191,78,34,168,36,98,1,70,71,71,89,127,127,127,64,25,26,26,210,36,177,
+211,219,237,239,239,103,131,131,131,33,235,55,53,53,201,137,224,3,137,16,
+64,196,2,120,60,158,160,142,62,124,248,176,218,156,79,114,228,200,145,160,
+118,103,205,154,197,46,93,186,36,187,108,99,99,163,18,17,92,0,108,198,118,
+183,249,48,165,0,229,229,229,65,109,90,173,86,86,83,83,19,118,108,25,25,
+25,82,34,116,99,134,139,96,58,1,78,157,58,21,244,51,207,98,177,176,202,
+202,74,213,109,122,60,30,182,125,251,118,18,65,4,83,9,112,254,252,249,160,
+249,132,22,139,133,85,84,84,168,106,79,44,86,25,17,186,48,195,68,48,141,
+0,245,245,245,162,87,30,149,149,149,169,138,75,46,230,244,244,116,37,34,
+232,117,107,30,211,96,10,1,110,220,184,193,230,206,157,27,212,78,105,105,
+169,170,152,148,226,241,120,88,90,90,154,148,8,29,0,62,71,12,139,192,93,
+0,175,215,203,18,19,19,131,218,56,120,240,160,170,120,212,224,241,120,216,
+182,109,219,102,164,8,92,5,232,236,236,100,11,23,46,12,90,126,239,222,189,
+108,98,98,66,85,60,145,224,118,187,89,106,106,170,148,8,237,224,36,66,156,
+209,43,212,155,151,47,95,34,59,59,27,207,159,63,15,120,61,63,63,31,149,
+149,149,176,88,44,134,199,228,116,58,113,243,230,77,184,221,110,164,166,
+166,138,85,249,41,128,83,0,238,193,96,17,98,74,128,129,129,1,100,101,101,
+225,225,195,135,1,175,239,220,185,19,213,213,213,176,90,249,126,211,78,
+21,193,225,112,136,85,89,139,64,17,116,207,79,204,8,48,52,52,132,220,220,
+92,180,182,182,6,188,158,145,145,129,154,154,26,196,199,199,115,138,44,
+24,167,211,137,91,183,110,193,237,118,99,243,230,205,98,85,166,138,80,0,
+64,183,175,173,169,2,204,210,107,37,122,51,50,50,130,188,188,60,52,53,53,
+5,188,190,117,235,86,92,184,112,1,118,187,57,207,222,58,157,78,180,180,
+180,72,137,240,51,0,103,0,220,135,206,34,0,192,127,16,249,52,40,43,128,
+76,0,19,120,127,128,179,116,233,82,86,87,87,199,70,71,71,195,58,112,82,
+122,16,56,54,54,198,10,10,10,130,234,166,164,164,176,254,254,126,173,142,
+227,12,193,237,118,179,77,155,54,73,29,44,202,137,176,17,192,31,1,252,29,
+192,63,1,252,5,192,30,0,115,149,36,111,240,253,74,212,78,131,218,6,160,
+45,84,240,107,214,172,97,87,175,94,85,220,25,74,4,152,152,152,96,251,247,
+239,15,170,151,156,156,204,94,188,120,161,117,126,12,97,98,98,130,213,214,
+214,178,141,27,55,74,137,48,125,215,176,2,64,157,68,253,151,240,15,64,41,
+18,64,40,225,204,126,217,11,96,84,34,0,6,128,217,108,54,118,226,196,9,69,
+29,161,68,128,67,135,14,5,213,89,177,98,5,123,250,244,169,30,185,49,20,
+65,132,13,27,54,200,137,112,4,254,107,32,37,251,254,125,249,43,36,118,35,
+211,5,80,42,194,47,0,140,40,12,128,89,173,86,86,95,95,47,219,1,114,2,28,
+61,122,52,232,253,197,139,23,179,174,174,46,61,243,98,56,10,69,8,167,124,
+17,174,0,66,17,155,253,18,7,255,45,225,195,10,34,57,57,89,246,152,64,74,
+128,138,138,138,160,247,18,19,19,217,131,7,15,140,200,9,23,198,199,199,
+89,109,109,45,75,73,73,137,84,128,119,0,146,212,8,32,38,66,134,218,64,46,
+95,190,44,185,193,161,4,168,174,174,22,189,230,47,46,46,142,157,59,119,
+206,160,116,240,99,124,124,156,157,57,115,134,173,90,181,42,18,9,254,16,
+137,0,66,241,1,248,151,218,32,74,74,74,36,55,84,76,0,135,195,193,226,227,
+227,67,182,57,103,206,28,214,220,220,108,80,42,248,114,246,236,217,72,4,
+184,46,36,61,146,129,160,37,0,178,212,46,220,211,211,19,246,50,45,45,45,
+24,29,29,157,252,127,250,200,222,187,119,239,176,99,199,14,60,122,244,72,
+109,88,81,195,227,199,143,35,89,124,137,240,7,183,145,192,72,199,228,75,
+74,74,112,250,244,105,196,197,5,110,194,171,87,175,144,149,149,133,190,
+190,190,136,218,55,59,17,246,31,19,254,136,68,128,30,248,127,123,170,98,
+201,146,37,242,149,66,176,111,223,62,28,63,126,28,133,133,133,40,43,43,
+11,122,191,187,187,27,185,185,185,120,251,246,173,234,117,152,157,164,36,
+209,227,56,165,136,126,253,170,57,8,76,87,184,76,80,169,171,171,147,220,
+199,137,29,3,0,96,121,121,121,108,108,108,44,160,110,73,73,137,104,221,
+156,156,156,176,71,32,205,142,70,7,129,191,87,35,64,168,159,129,255,14,
+55,128,213,171,87,171,250,25,152,158,158,206,70,70,70,68,59,37,63,63,95,
+116,93,7,14,28,208,43,23,134,162,225,207,192,33,132,249,51,80,110,32,232,
+51,132,49,16,100,179,217,216,181,107,215,100,55,56,220,9,33,195,195,195,
+33,167,106,31,59,118,76,203,92,24,138,48,16,164,65,226,133,242,219,16,121,
+140,104,40,248,115,37,18,216,108,54,118,242,228,73,69,27,174,102,70,208,
+192,192,0,91,191,126,125,208,114,22,139,133,85,85,85,105,145,15,195,80,
+56,2,216,10,224,119,240,223,243,72,73,242,43,160,96,40,248,5,212,157,12,
+250,12,254,179,85,162,43,95,187,118,45,107,104,104,80,220,1,106,167,132,
+61,121,242,132,37,37,37,5,45,27,31,31,47,123,220,97,6,84,158,12,90,6,224,
+178,68,253,62,0,191,150,75,160,22,167,131,227,224,31,29,156,60,29,188,108,
+217,50,118,229,202,149,160,3,55,57,34,153,19,232,245,122,217,130,5,11,130,
+150,159,55,111,30,187,123,247,174,154,188,232,142,194,196,203,157,14,78,
+129,127,148,239,111,0,46,0,248,51,128,95,2,248,177,146,228,105,57,33,132,
+251,172,224,134,134,6,209,235,1,22,45,90,196,124,62,159,170,152,244,66,
+131,121,0,170,153,58,14,48,162,117,227,60,73,75,75,67,85,85,85,208,64,209,
+179,103,207,144,147,147,131,215,175,95,115,138,236,255,212,215,215,195,
+225,112,32,51,51,19,119,238,220,17,171,210,6,255,39,248,231,0,254,1,191,
+12,154,18,51,115,2,197,216,179,103,143,232,64,81,71,71,7,118,239,222,141,
+225,225,97,14,81,249,19,159,154,154,138,204,204,76,220,190,125,91,172,74,
+59,128,95,65,199,196,235,13,247,93,192,84,66,13,20,21,22,22,178,241,241,
+113,85,109,170,193,237,118,51,135,195,33,245,85,223,134,24,185,80,196,84,
+2,72,13,20,105,113,207,1,57,204,124,97,136,94,152,74,0,198,252,3,69,161,
+174,224,45,47,47,87,221,174,20,110,183,155,109,217,178,101,70,37,94,192,
+116,2,48,22,122,160,72,235,201,36,209,116,113,168,105,175,87,183,219,237,
+88,190,124,121,192,107,137,137,145,61,63,114,254,252,249,184,120,241,34,
+118,237,218,133,193,193,193,128,247,74,75,75,177,110,221,58,172,92,185,
+82,117,251,141,141,141,40,45,45,69,67,67,67,168,42,93,0,254,4,224,36,128,
+113,213,43,138,2,98,226,46,97,74,9,227,190,0,166,253,192,105,205,140,16,
+128,238,12,18,154,152,22,128,110,18,37,79,76,10,208,216,216,200,156,78,
+167,84,226,125,152,225,137,23,136,41,1,20,222,40,146,18,63,133,152,16,128,
+110,21,171,158,168,22,128,18,31,57,81,41,0,221,46,94,59,162,74,0,225,129,
+17,160,196,107,70,84,8,160,224,73,33,143,65,137,87,133,169,5,160,135,70,
+233,143,41,5,160,199,198,25,135,169,4,160,7,71,26,143,41,4,8,227,209,177,
+148,120,141,225,42,128,215,235,149,123,120,52,61,51,88,103,184,62,62,94,
+230,169,225,95,2,152,199,169,95,102,12,134,10,208,222,222,206,138,138,138,
+152,213,106,149,75,252,7,156,250,99,198,97,136,0,10,18,255,10,148,120,46,
+232,42,64,71,71,135,210,196,207,231,180,253,51,30,93,4,232,236,236,100,
+46,151,75,42,241,223,129,18,111,10,52,21,160,171,171,139,185,92,174,160,
+7,63,77,41,131,0,202,0,44,224,181,193,68,32,154,8,64,137,143,94,34,18,160,
+187,187,155,18,31,229,168,18,32,140,196,39,240,218,48,66,25,97,9,224,243,
+249,228,18,255,6,148,248,168,66,145,0,62,159,143,21,23,23,139,222,200,1,
+129,137,143,236,146,32,194,112,36,5,232,233,233,81,146,248,114,0,31,243,
+218,0,34,50,68,5,232,237,237,149,75,252,91,80,226,99,130,0,1,132,196,219,
+237,118,185,196,127,194,43,96,66,91,38,5,72,72,72,144,251,196,127,5,224,
+67,94,129,18,250,48,41,64,136,242,61,128,175,1,124,196,43,64,66,95,66,9,
+240,3,128,111,1,44,228,23,26,97,4,211,5,24,2,240,13,104,31,63,99,16,4,24,
+134,255,19,191,136,111,56,132,209,12,193,159,248,79,121,7,66,240,129,62,
+241,4,65,16,4,65,16,4,65,16,4,65,16,4,65,16,4,65,16,38,224,127,0,16,175,
+20,218,109,78,242,0,0,0,0,73,69,78,68,174,66,96,130};
+
+static size_t xml_res_size_2 = 499;
+static unsigned char xml_res_file_2[] = {
+137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
+0,31,243,255,97,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
+72,89,115,0,0,2,35,0,0,2,35,1,65,239,211,26,0,0,0,25,116,69,88,116,83,111,
+102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,101,46,
+111,114,103,155,238,60,26,0,0,1,112,73,68,65,84,56,141,165,145,59,107,194,
+96,20,134,95,77,200,80,219,46,78,46,118,42,226,104,28,34,116,53,155,14,
+130,155,16,39,41,217,234,146,12,237,218,201,198,161,63,160,253,27,173,184,
+8,109,71,131,83,64,161,117,136,16,147,144,161,160,161,169,228,116,169,165,
+23,181,94,30,56,240,13,231,125,248,206,57,192,142,48,223,222,73,0,33,128,
+96,43,1,207,243,167,133,66,225,134,227,184,164,105,154,79,155,138,192,243,
+188,98,89,22,57,142,67,138,162,244,179,217,236,53,128,195,141,5,115,108,
+219,38,85,85,251,153,76,102,165,232,107,132,68,34,113,82,169,84,68,223,
+247,161,235,58,210,233,52,38,147,73,92,150,101,33,22,139,149,167,211,233,
+177,101,89,143,0,222,86,10,60,207,67,167,211,129,109,219,112,93,23,162,
+40,34,159,207,199,75,165,146,192,48,76,121,54,155,29,141,70,163,7,0,239,
+243,236,45,128,51,142,227,76,73,146,200,48,12,42,22,139,84,175,215,105,
+17,166,105,146,44,203,207,44,203,122,0,46,163,0,8,128,31,134,97,52,18,137,
+0,0,82,169,20,124,223,71,175,215,91,181,54,250,172,159,75,52,12,131,154,
+205,38,5,65,64,213,106,149,134,195,33,17,17,141,199,99,82,85,181,47,8,194,
+21,128,189,127,175,176,238,53,216,101,255,115,28,7,154,166,13,90,173,214,
+157,174,235,23,0,94,23,245,253,17,184,174,139,70,163,49,104,183,219,247,
+221,110,247,124,89,112,225,8,181,90,237,37,151,203,105,0,246,215,10,253,
+34,9,224,96,155,224,78,124,0,2,99,224,75,202,65,61,93,0,0,0,0,73,69,78,
+68,174,66,96,130};
+
+static size_t xml_res_size_3 = 6687;
+static unsigned char xml_res_file_3[] = {
+137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,1,0,0,0,1,0,8,6,0,0,0,
+92,114,168,102,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,72,
+89,115,0,0,34,36,0,0,34,36,1,228,91,10,25,0,0,0,25,116,69,88,116,83,111,
+102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,101,46,
+111,114,103,155,238,60,26,0,0,25,156,73,68,65,84,120,156,237,221,121,112,
+21,101,186,6,240,39,39,202,166,178,95,217,101,199,40,32,42,107,197,148,
+160,38,133,48,128,12,78,24,161,6,102,80,47,92,239,173,73,244,90,35,163,
+130,65,64,72,24,52,9,16,106,142,227,202,0,215,202,120,101,36,200,148,38,
+44,86,18,194,38,91,88,36,200,34,92,23,178,176,132,132,228,4,146,239,254,
+113,104,132,67,146,211,203,215,219,57,207,175,170,255,73,117,190,126,187,
+207,121,159,116,206,233,254,26,32,34,34,34,34,34,34,34,34,34,34,34,34,34,
+34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,
+34,34,34,34,34,34,34,34,34,34,34,162,176,246,123,0,183,219,93,4,17,217,
+195,7,224,20,128,153,0,110,179,183,20,34,178,154,15,128,184,182,156,2,131,
+128,40,172,220,24,0,202,114,18,12,2,162,176,80,95,0,48,8,136,194,68,99,
+1,160,44,39,192,32,32,10,73,106,2,64,89,142,0,152,10,192,99,75,165,68,36,
+157,150,0,80,150,195,0,166,3,136,180,161,94,34,146,72,79,0,48,8,136,66,
+132,145,0,80,150,131,0,226,193,127,13,136,92,71,70,0,220,24,4,60,35,32,
+114,17,153,1,16,24,4,60,35,32,114,184,6,3,32,54,54,86,116,233,210,197,72,
+16,236,3,48,17,64,132,133,251,67,68,26,52,24,0,233,233,233,194,231,243,
+9,175,215,107,52,8,14,192,255,25,1,131,128,200,97,26,13,0,133,18,4,157,
+59,119,102,16,16,133,16,85,1,32,57,8,246,131,65,64,228,8,154,2,64,81,93,
+93,45,188,94,175,232,212,169,19,131,128,200,197,116,5,128,162,178,178,82,
+164,165,165,25,13,130,125,96,16,16,217,194,80,0,40,42,42,42,68,90,90,154,
+232,216,177,163,145,32,40,0,48,222,202,157,39,10,119,82,2,128,65,64,228,
+78,82,3,32,48,8,58,116,232,96,36,8,182,129,65,64,100,42,83,2,64,113,233,
+210,37,25,65,144,15,6,1,145,41,76,13,128,27,131,32,57,57,89,180,109,219,
+214,72,16,228,129,65,64,36,149,37,1,16,24,4,109,218,180,49,26,4,79,88,121,
+144,136,66,149,165,1,192,32,32,114,22,91,2,64,81,94,94,46,43,8,30,183,242,
+160,17,133,10,91,3,32,48,8,90,183,110,109,52,8,30,179,242,224,17,185,157,
+35,2,192,132,32,24,101,225,49,36,114,45,71,5,128,162,172,172,76,36,37,37,
+137,86,173,90,25,13,130,145,86,30,76,34,183,113,100,0,40,74,75,75,101,4,
+65,54,128,225,86,30,84,34,183,112,116,0,40,148,32,104,217,178,165,209,32,
+24,102,229,193,37,114,58,87,4,128,162,164,164,68,86,16,12,181,242,32,19,
+57,149,171,2,64,193,32,32,146,195,149,1,160,40,41,41,17,179,103,207,22,
+45,90,180,48,26,4,67,172,60,232,68,78,225,234,0,80,20,23,23,203,10,130,
+193,86,30,124,34,187,133,68,0,40,148,32,104,222,188,185,222,16,168,3,144,
+5,224,97,43,95,4,34,187,132,84,0,40,206,158,61,203,32,32,82,33,36,3,64,
+33,49,8,30,178,242,69,33,178,74,72,7,128,66,9,130,102,205,154,233,13,130,
+90,248,131,224,65,43,95,28,34,179,133,69,0,40,78,159,62,45,18,18,18,100,
+4,193,32,43,95,36,114,23,62,20,211,161,186,117,235,134,244,244,116,20,21,
+21,33,33,33,1,205,154,53,211,58,132,7,192,56,0,123,0,100,2,136,146,93,35,
+185,31,3,192,225,148,32,56,122,244,40,18,18,18,208,180,105,83,173,67,120,
+224,127,150,193,33,248,131,224,94,217,53,146,123,49,0,92,226,158,123,238,
+185,233,140,192,64,16,28,6,131,128,174,97,0,184,140,18,4,18,206,8,148,32,
+232,39,187,70,114,15,6,128,75,117,239,222,253,122,16,204,156,57,19,183,
+221,118,155,214,33,148,32,56,2,127,16,244,149,93,35,57,31,3,192,229,186,
+119,239,14,175,215,139,99,199,142,25,13,130,111,193,32,8,59,12,128,16,209,
+163,71,15,89,65,112,8,192,42,0,125,100,215,72,206,195,0,8,49,74,16,20,21,
+21,233,13,130,219,1,76,131,255,51,2,6,65,136,99,0,132,168,158,61,123,222,
+20,4,145,145,145,90,135,8,12,130,222,178,107,36,251,49,0,66,156,196,32,
+56,2,127,16,244,146,93,35,217,135,1,16,38,122,245,234,5,175,215,139,194,
+194,66,76,155,54,141,65,64,0,24,0,97,231,190,251,238,195,170,85,171,112,
+224,192,1,189,65,208,4,191,4,129,23,64,87,217,53,146,117,24,0,97,234,254,
+251,239,151,17,4,51,1,28,135,63,8,186,200,174,145,204,199,0,8,115,74,16,
+236,223,191,31,211,166,77,131,199,163,249,45,161,4,193,9,48,8,92,135,1,
+64,0,128,254,253,251,203,14,130,206,178,107,36,249,24,0,116,147,1,3,6,92,
+15,130,248,248,120,68,68,68,104,29,34,48,8,58,201,174,145,228,97,0,80,189,
+6,12,24,128,204,204,76,35,65,208,20,254,32,248,14,64,58,24,4,142,196,0,
+160,70,13,28,56,16,153,153,153,216,183,111,159,222,32,104,1,32,1,192,49,
+248,131,160,163,236,26,73,63,6,0,169,242,192,3,15,24,13,130,59,224,15,2,
+229,140,128,65,224,0,12,0,210,68,9,130,189,123,247,202,10,130,14,178,107,
+36,245,24,0,164,203,160,65,131,144,153,153,137,130,130,2,140,27,55,78,207,
+16,74,16,28,7,131,192,54,12,0,50,100,248,240,225,200,202,202,146,17,4,223,
+1,72,6,208,86,102,125,212,56,205,247,138,18,80,93,93,141,170,170,170,160,
+235,181,110,221,90,207,41,178,116,66,8,92,184,112,65,245,250,205,154,53,
+67,243,230,205,53,109,99,196,136,17,215,131,96,209,162,69,216,176,97,131,
+214,50,239,4,48,27,192,127,1,200,0,176,4,192,57,173,131,80,232,114,204,
+115,1,22,47,94,172,106,110,254,226,226,98,75,235,106,200,75,47,189,164,
+250,121,2,221,186,117,19,39,79,158,52,188,205,252,252,124,49,110,220,56,
+189,207,52,16,0,46,193,127,70,208,198,172,55,20,241,95,128,144,151,148,
+148,132,212,212,84,85,235,222,125,247,221,200,206,206,70,143,30,61,12,111,
+55,58,58,26,89,89,89,200,207,207,215,251,175,129,114,70,240,61,24,4,166,
+97,0,132,176,140,140,12,204,159,63,95,213,186,237,219,183,199,230,205,155,
+113,239,189,114,103,11,87,130,32,47,47,15,177,177,177,122,134,184,11,55,
+7,65,107,153,245,133,59,6,64,136,90,189,122,53,18,18,18,84,173,219,178,
+101,75,252,235,95,255,66,255,254,253,77,171,231,145,71,30,65,118,118,54,
+114,115,115,241,196,19,79,232,25,66,9,130,211,96,16,72,195,0,8,65,235,215,
+175,199,140,25,51,80,87,87,23,116,221,22,45,90,32,43,43,11,67,134,12,177,
+160,50,32,38,38,6,57,57,57,200,205,205,197,227,143,63,174,103,8,37,8,142,
+3,152,7,160,149,196,242,194,14,3,32,196,108,217,178,5,191,253,237,111,113,
+245,234,213,160,235,54,105,210,4,159,126,250,41,30,125,244,81,11,42,187,
+89,76,76,12,54,109,218,132,220,220,92,60,246,216,99,122,134,104,11,32,9,
+12,2,67,24,0,33,100,215,174,93,120,234,169,167,80,93,93,29,116,221,200,
+200,72,172,94,189,26,99,198,140,177,160,178,134,197,196,196,96,243,230,
+205,200,205,205,197,168,81,163,244,12,209,14,12,2,221,24,0,33,162,168,168,
+8,227,198,141,195,165,75,151,130,174,235,241,120,176,106,213,42,196,199,
+199,91,80,153,58,49,49,49,216,178,101,11,114,115,115,49,114,228,72,61,67,
+4,6,65,75,137,229,133,44,6,64,8,56,115,230,12,226,226,226,80,92,92,28,116,
+221,136,136,8,172,92,185,18,83,167,78,181,160,50,237,98,98,98,176,117,235,
+86,100,103,103,99,248,240,225,122,134,96,16,104,192,0,112,185,146,146,18,
+196,197,197,225,244,233,211,170,214,79,73,73,193,172,89,179,76,174,202,
+184,216,216,88,108,223,190,29,217,217,217,24,54,108,152,158,33,218,227,
+151,32,152,13,255,109,201,20,128,1,224,98,23,47,94,196,232,209,163,113,
+244,232,81,85,235,207,159,63,31,127,250,211,159,76,174,74,174,216,216,88,
+236,216,177,3,217,217,217,24,58,116,168,158,33,218,195,255,181,225,41,48,
+8,110,193,0,112,169,170,170,42,140,31,63,30,123,247,238,85,181,126,98,98,
+34,230,206,157,107,114,85,230,137,141,141,197,206,157,59,141,4,193,191,
+225,230,32,208,118,179,67,136,98,0,184,208,149,43,87,240,155,223,252,6,
+185,185,185,170,214,127,246,217,103,85,95,14,236,116,55,6,129,206,107,23,
+24,4,55,96,0,184,76,93,93,29,166,79,159,142,141,27,55,170,90,255,119,191,
+251,29,254,246,183,191,57,226,174,68,153,98,99,99,177,107,215,46,100,103,
+103,99,240,224,193,122,134,184,27,12,2,6,128,155,8,33,240,194,11,47,224,
+147,79,62,81,181,254,196,137,19,241,225,135,31,234,153,226,219,53,148,32,
+88,191,126,61,30,126,248,97,61,67,4,6,65,51,137,229,57,94,232,190,51,66,
+208,171,175,190,138,119,223,125,87,213,186,113,113,113,248,228,147,79,244,
+60,30,220,117,34,34,34,48,126,252,120,236,222,189,91,70,16,20,1,72,68,152,
+4,1,3,192,37,210,211,211,145,146,146,162,106,221,232,232,104,172,91,183,
+14,77,155,54,53,185,42,103,9,12,130,135,30,122,72,207,48,221,0,164,33,76,
+130,128,1,224,2,31,127,252,49,94,122,233,37,85,235,62,248,224,131,248,226,
+139,47,112,199,29,119,152,92,149,115,41,65,240,205,55,223,96,253,250,245,
+120,240,193,7,245,12,163,4,193,81,248,131,32,36,211,148,1,224,112,235,214,
+173,195,243,207,63,15,33,68,208,117,7,14,28,136,156,156,28,180,110,205,
+59,101,129,91,131,96,208,160,65,122,134,185,7,55,159,17,132,84,16,48,0,
+28,44,39,39,7,83,166,76,81,117,103,95,159,62,125,240,229,151,95,162,93,
+187,118,22,84,230,46,30,143,7,227,199,143,199,158,61,123,144,153,153,137,
+168,168,40,61,195,40,65,16,82,103,4,12,0,135,218,177,99,7,126,253,235,95,
+195,231,243,5,93,183,91,183,110,200,206,206,70,167,78,124,250,86,99,60,
+30,15,226,227,227,113,232,208,33,100,102,102,234,157,253,168,59,126,9,130,
+153,112,249,196,186,12,0,7,42,44,44,196,216,177,99,81,81,81,17,116,93,153,
+243,248,133,11,37,8,14,31,62,108,52,8,188,240,63,242,204,181,65,192,0,112,
+152,227,199,143,99,244,232,209,56,119,46,248,140,216,102,205,227,23,46,
+2,131,160,95,191,126,122,134,233,1,23,7,65,125,1,192,39,180,216,228,199,
+31,127,68,92,92,28,126,250,233,167,160,235,90,49,143,95,184,80,130,224,
+200,145,35,50,130,160,8,46,10,130,250,2,96,7,128,85,0,122,91,92,139,110,
+106,254,79,118,186,178,178,50,196,197,197,225,228,201,147,65,215,181,122,
+30,191,112,17,24,4,125,251,246,213,51,76,79,200,15,130,190,0,198,95,27,
+239,5,0,255,14,96,236,181,109,73,247,3,252,15,102,168,129,63,8,122,153,
+177,17,149,238,0,48,11,192,215,104,228,33,18,30,143,71,68,71,71,139,229,
+203,151,139,139,23,47,26,126,168,69,48,178,31,12,82,89,89,41,162,163,163,
+85,141,217,164,73,19,177,113,227,70,147,247,144,132,16,162,166,166,70,124,
+252,241,199,162,79,159,62,70,30,112,114,28,254,198,141,212,248,222,143,
+6,240,62,128,159,131,140,127,6,192,10,0,186,174,122,170,143,18,0,202,226,
+131,245,65,224,1,48,29,192,143,208,120,192,219,181,107,39,146,147,147,69,
+85,85,149,105,111,12,153,1,224,243,249,196,232,209,163,85,141,23,25,25,
+41,50,51,51,77,219,47,170,159,164,32,56,124,237,61,29,44,8,238,7,144,169,
+115,27,89,240,159,45,24,18,24,0,55,6,129,23,64,87,163,27,8,162,55,128,253,
+13,212,160,122,233,215,175,159,56,116,232,144,41,111,8,89,1,112,245,234,
+85,17,31,31,175,106,44,143,199,35,214,172,89,99,202,254,144,58,74,16,244,
+238,221,219,200,123,243,16,234,15,2,15,128,197,0,106,13,190,247,107,0,188,
+162,173,229,110,214,80,0,4,6,65,23,35,27,105,64,12,128,179,65,182,175,122,
+185,235,174,187,196,63,255,249,79,233,111,4,25,1,80,87,87,39,158,123,238,
+57,85,227,68,68,68,136,191,254,245,175,210,247,131,244,81,130,160,87,175,
+94,178,130,224,78,0,235,100,189,239,175,45,255,3,157,183,56,7,11,0,179,
+130,96,36,26,121,0,168,222,37,50,50,82,100,101,101,73,125,3,200,8,128,151,
+95,126,89,245,62,44,89,178,68,106,253,36,135,207,231,147,21,4,69,178,223,
+247,215,150,13,208,254,217,131,234,0,8,12,130,206,90,55,116,131,30,0,138,
+53,110,87,245,114,215,93,119,137,194,194,66,105,47,188,209,0,120,243,205,
+55,85,215,62,127,254,124,105,117,147,57,124,62,159,240,122,189,162,107,
+215,174,166,188,127,13,46,234,110,33,189,129,214,0,80,150,106,232,11,130,
+72,0,123,37,239,244,45,75,191,126,253,68,117,117,181,148,23,220,72,0,100,
+100,100,168,174,57,49,49,81,74,189,100,13,37,8,186,116,233,98,119,211,7,
+46,79,105,105,72,189,1,16,24,4,106,47,76,127,206,170,3,145,154,154,42,229,
+133,214,27,0,107,214,172,17,30,143,71,213,239,62,251,236,179,162,174,174,
+78,74,189,100,45,7,6,193,81,0,183,171,236,71,195,1,160,44,149,0,210,209,
+120,16,52,135,255,105,175,150,28,136,54,109,218,136,178,178,50,195,47,176,
+158,0,200,202,202,18,183,223,126,187,170,223,123,242,201,39,69,109,109,
+173,225,58,201,94,74,16,116,238,220,217,238,0,16,0,254,179,190,6,52,243,
+94,128,22,0,18,224,191,70,58,29,64,199,122,214,153,2,255,196,11,150,56,
+127,254,60,254,254,247,191,91,181,185,235,182,109,219,134,103,158,121,6,
+87,174,92,81,181,254,215,95,127,141,29,59,118,152,92,21,153,173,73,147,
+38,152,57,115,38,78,156,56,1,175,215,139,206,157,141,124,76,102,216,127,
+3,80,53,51,172,172,51,128,192,165,2,183,6,193,87,38,109,171,193,101,248,
+240,225,134,147,93,203,25,192,190,125,251,68,235,214,173,53,215,217,190,
+125,123,81,84,84,36,225,239,16,57,69,117,117,181,240,122,189,162,77,155,
+54,118,157,5,220,242,136,37,43,239,6,188,3,254,51,130,239,224,15,130,110,
+240,127,239,111,169,221,187,119,227,194,133,11,150,108,235,216,177,99,24,
+61,122,180,174,237,149,150,150,98,204,152,49,170,158,247,71,238,208,180,
+105,83,204,156,57,19,83,166,76,177,171,132,184,192,31,216,113,59,176,18,
+4,223,194,134,185,216,107,107,107,113,224,192,1,75,182,245,212,83,79,225,
+236,217,179,186,127,255,248,241,227,152,56,113,34,170,170,170,36,86,69,
+118,43,44,44,180,107,211,183,220,47,96,231,124,0,182,61,163,237,248,241,
+227,150,108,167,180,180,212,240,24,5,5,5,152,60,121,50,106,107,107,37,84,
+68,78,112,226,196,9,187,54,125,203,29,190,97,57,33,136,85,255,2,52,230,
+206,59,239,84,189,238,134,13,27,240,226,139,47,154,88,13,89,169,188,188,
+220,174,77,183,10,252,65,88,6,128,221,18,19,19,81,80,80,160,105,246,222,
+21,43,86,224,47,127,249,139,137,85,81,56,10,203,0,176,115,218,236,63,252,
+225,15,72,77,77,197,128,1,3,52,63,188,99,246,236,217,182,124,141,73,114,
+181,108,217,210,174,77,95,12,252,129,157,1,112,217,174,13,247,238,109,207,
+100,71,147,38,77,194,123,239,189,119,253,65,157,163,70,141,194,71,31,125,
+164,250,217,125,66,8,60,255,252,243,200,201,201,49,179,76,50,89,175,94,
+182,205,177,115,203,135,95,118,4,64,37,128,101,0,162,0,88,254,241,118,100,
+100,36,30,120,224,1,171,55,139,184,184,56,172,93,187,22,145,145,55,223,
+156,245,204,51,207,96,209,162,69,170,199,169,169,169,193,211,79,63,109,
+217,55,25,36,223,192,129,3,237,218,244,30,53,43,153,125,33,208,141,147,
+142,126,105,210,182,26,92,70,140,24,97,248,130,14,181,23,2,41,75,116,116,
+180,168,168,168,104,116,204,196,196,68,77,99,118,233,210,69,156,62,125,
+218,240,190,144,117,42,43,43,69,90,90,154,104,219,182,173,93,23,2,13,189,
+165,219,235,33,59,0,234,187,2,80,49,195,234,131,144,158,158,110,248,133,
+212,18,0,131,6,13,18,231,207,159,15,58,102,109,109,173,120,250,233,167,
+53,237,203,128,1,3,84,141,77,246,82,174,0,236,212,169,147,93,141,47,224,
+191,0,207,210,75,129,27,107,124,69,51,0,223,91,117,16,218,183,111,47,46,
+92,184,96,248,5,85,27,0,125,251,246,21,63,255,252,179,234,113,171,170,170,
+68,76,76,140,166,125,26,53,106,148,180,219,156,73,46,135,221,12,244,31,
+141,244,225,77,140,6,128,154,187,0,111,100,217,89,128,140,191,254,66,168,
+15,128,35,71,142,104,30,187,172,172,76,68,69,69,105,218,175,233,211,167,
+243,214,97,7,113,88,227,11,88,116,59,176,214,121,0,20,145,240,127,56,97,
+234,65,184,247,222,123,133,207,231,147,242,2,203,158,22,60,208,153,51,103,
+52,207,46,51,103,206,28,41,251,70,250,57,112,30,0,101,25,175,165,33,237,
+152,18,172,59,36,78,6,26,184,56,109,74,48,53,14,28,56,160,249,46,194,21,
+43,86,72,219,71,82,207,225,83,130,37,107,109,70,173,147,130,202,186,201,
+121,36,76,154,20,116,195,134,13,82,95,112,43,2,64,8,33,54,111,222,44,154,
+54,109,170,105,95,215,173,91,39,105,47,41,24,73,141,111,246,164,160,154,
+191,234,231,180,224,65,88,21,0,66,8,177,118,237,90,17,17,17,161,122,159,
+155,55,111,46,10,10,10,36,236,37,53,196,164,105,193,63,147,245,190,191,
+182,172,133,228,105,193,173,122,48,72,79,72,152,36,52,42,42,74,215,135,
+112,106,88,25,0,90,182,167,44,156,76,196,28,22,60,24,100,33,128,171,6,223,
+251,62,0,47,107,105,184,64,245,61,26,204,138,198,191,145,7,64,60,128,83,
+208,120,0,148,71,131,153,249,213,152,213,1,32,132,16,9,9,9,154,142,67,239,
+222,189,197,217,179,103,165,109,63,156,73,106,124,181,143,6,139,130,190,
+71,131,213,93,251,189,62,65,187,43,8,39,61,28,180,5,128,231,1,108,66,35,
+59,31,25,25,41,30,125,244,81,145,145,145,33,202,203,203,77,127,67,216,17,
+0,122,46,20,26,54,108,88,208,43,16,169,97,54,63,28,116,4,252,127,120,131,
+253,75,126,10,254,175,221,7,105,28,191,65,167,224,204,199,131,55,248,1,
+161,213,79,206,177,35,0,132,16,226,242,229,203,154,47,20,26,55,110,156,
+184,122,245,170,212,58,66,93,109,109,173,200,204,204,20,125,251,246,53,
+210,248,39,160,175,241,235,211,27,192,175,224,255,99,248,2,252,83,233,63,
+9,255,183,103,210,117,8,190,138,45,26,12,0,89,23,248,168,101,87,0,8,33,
+68,105,105,169,230,11,133,102,205,154,37,189,142,80,36,185,241,111,51,169,
+15,164,170,239,43,2,253,147,216,145,233,218,181,107,135,236,236,108,116,
+237,170,254,35,25,175,215,139,165,75,151,154,88,149,187,213,213,213,225,
+31,255,248,7,238,187,239,62,76,158,60,25,199,142,29,211,51,204,41,0,179,
+0,244,3,240,46,252,31,230,57,94,88,78,8,226,118,93,187,118,197,198,141,
+27,53,77,108,242,202,43,175,112,50,145,0,74,227,223,127,255,253,152,60,
+121,50,138,138,138,244,12,115,10,254,198,239,11,23,53,190,130,1,224,82,
+3,7,14,196,103,159,125,166,122,70,33,113,109,50,145,77,155,54,153,92,153,
+243,5,54,254,209,163,71,245,12,243,61,92,220,248,10,6,128,139,61,246,216,
+99,248,240,195,15,175,207,48,20,76,77,77,13,38,77,154,20,182,147,137,40,
+141,223,191,127,127,163,141,255,34,128,123,225,226,198,87,48,0,92,110,202,
+148,41,88,184,112,161,234,245,203,203,203,49,118,236,88,156,57,115,198,
+196,170,156,165,174,174,14,89,89,89,120,248,225,135,49,121,242,100,124,
+251,237,183,122,134,57,141,95,26,63,29,254,15,165,93,143,1,16,2,94,123,
+237,53,252,241,143,127,84,189,254,15,63,252,128,177,99,199,58,98,122,116,
+51,41,141,63,120,240,96,76,152,48,1,251,247,239,215,51,140,210,248,253,
+16,66,141,175,96,0,132,136,180,180,52,76,154,52,73,245,250,7,15,30,196,
+164,73,147,80,83,83,99,98,85,246,16,66,32,43,43,11,67,134,12,193,132,9,
+19,176,111,223,62,61,195,156,65,8,254,197,15,196,0,8,17,30,143,7,171,87,
+175,198,35,143,60,162,250,119,182,108,217,130,25,51,102,64,8,97,98,101,
+214,9,108,252,189,123,247,234,25,70,105,124,229,47,126,181,204,26,157,134,
+1,16,66,154,55,111,142,207,63,255,28,81,81,81,170,127,103,237,218,181,72,
+74,74,50,177,42,243,5,54,254,158,61,170,38,191,13,84,12,224,207,8,147,198,
+87,48,0,66,76,187,118,237,176,113,227,70,116,236,216,216,84,140,55,91,176,
+96,1,50,50,50,76,172,202,60,57,57,57,24,58,116,168,140,198,239,1,32,5,97,
+210,248,10,6,64,8,234,217,179,39,190,250,234,43,180,106,117,203,163,224,
+26,148,152,152,136,207,63,255,220,196,170,228,82,26,63,46,46,14,223,124,
+243,141,158,33,2,27,63,44,31,193,204,0,8,81,202,133,66,77,154,52,81,181,
+126,109,109,45,166,78,157,138,237,219,183,155,92,153,49,57,57,57,24,54,
+108,24,226,226,226,176,123,247,110,61,67,148,128,141,127,29,3,32,132,61,
+254,248,227,154,46,20,186,124,249,50,38,76,152,160,247,90,120,83,221,216,
+248,187,118,237,210,51,4,27,191,30,12,128,16,55,117,234,84,44,88,176,64,
+245,250,37,37,37,24,51,102,12,138,139,139,77,172,74,189,156,156,28,12,31,
+62,220,72,227,151,226,230,198,183,237,153,148,78,228,138,91,22,157,166,
+71,143,30,136,141,141,13,186,158,218,211,111,179,189,254,250,235,184,124,
+249,50,118,238,220,169,250,119,86,174,92,137,121,243,230,153,87,84,16,57,
+57,57,152,51,103,14,118,236,216,161,119,136,82,0,25,0,222,1,80,46,173,48,
+178,141,99,230,3,32,243,228,230,230,138,145,35,71,26,185,31,191,4,192,60,
+0,182,61,131,219,77,120,6,64,142,144,151,151,135,185,115,231,98,235,214,
+173,122,135,40,3,176,2,252,139,175,9,3,128,108,149,151,151,135,55,222,120,
+3,91,182,108,209,59,132,210,248,169,0,46,74,43,44,76,48,0,200,22,121,121,
+121,72,74,74,194,230,205,155,245,14,113,14,192,114,176,241,13,97,0,144,
+165,242,242,242,48,111,222,60,35,19,147,92,2,176,18,254,71,94,133,246,237,
+140,22,96,0,144,37,242,243,243,145,148,148,196,198,119,24,6,0,153,42,63,
+63,31,201,201,201,216,176,97,131,222,33,216,248,38,98,0,144,41,182,109,
+219,134,197,139,23,27,105,252,10,248,191,199,79,1,112,94,90,97,116,19,6,
+0,73,85,80,80,128,69,139,22,177,241,93,130,1,64,82,108,223,190,29,111,189,
+245,150,140,198,95,2,255,39,252,100,1,6,0,25,34,169,241,63,0,176,8,124,
+40,141,229,24,0,164,203,254,253,251,241,214,91,111,225,211,79,63,213,59,
+165,88,37,128,247,193,198,183,21,3,128,52,57,112,224,0,22,46,92,40,163,
+241,23,3,248,89,106,113,164,25,3,128,84,97,227,135,38,6,0,53,170,176,176,
+16,11,22,44,48,210,248,151,1,188,7,255,247,248,63,73,45,142,12,99,0,80,
+189,36,52,190,15,192,199,240,223,154,203,198,119,40,6,0,221,228,224,193,
+131,152,63,127,190,145,198,175,1,240,17,128,55,1,252,40,179,54,146,143,
+1,64,0,128,67,135,14,33,37,37,5,107,214,172,65,93,93,157,158,33,216,248,
+46,196,0,8,115,74,227,175,93,187,22,181,181,181,122,134,80,26,127,62,128,
+31,100,214,70,230,99,0,132,169,195,135,15,35,57,57,153,141,31,230,24,0,
+97,230,200,145,35,88,188,120,177,140,198,95,0,224,255,100,214,70,214,99,
+0,132,9,9,141,127,5,192,39,240,127,170,127,66,102,109,100,31,6,64,136,59,
+113,226,4,82,82,82,240,254,251,239,27,109,252,55,1,28,151,90,28,217,142,
+1,16,162,78,158,60,137,228,228,100,124,240,193,7,184,122,245,170,158,33,
+216,248,97,128,1,16,98,78,157,58,133,197,139,23,203,104,252,249,0,190,147,
+90,28,57,14,3,32,68,72,108,252,5,0,156,247,112,64,50,5,3,192,229,190,255,
+254,123,44,90,180,200,72,227,215,1,248,95,0,175,131,141,31,118,24,0,46,
+37,177,241,231,0,40,146,90,28,185,6,3,192,101,78,159,62,141,183,223,126,
+27,94,175,23,62,159,79,207,16,108,124,186,142,1,224,18,18,27,127,46,128,
+163,82,139,35,215,98,0,56,220,153,51,103,176,116,233,82,188,251,238,187,
+168,174,174,214,51,132,210,248,111,0,248,86,106,113,228,122,12,0,135,98,
+227,147,21,24,0,14,115,246,236,89,164,166,166,34,61,61,221,72,227,111,132,
+255,84,127,159,212,226,40,228,48,0,28,162,184,184,24,239,188,243,14,150,
+45,91,134,170,170,42,61,67,8,0,95,192,255,23,127,175,212,226,40,100,49,
+0,108,198,198,39,59,49,0,108,82,82,82,130,183,223,126,91,70,227,39,1,216,
+35,181,56,10,27,12,0,139,73,108,252,121,0,190,145,89,27,133,31,6,128,69,
+74,75,75,177,116,233,82,44,95,190,28,151,47,95,214,59,76,14,128,63,131,
+141,79,146,48,0,76,86,90,90,138,21,43,86,32,53,53,21,229,229,229,122,135,
+201,1,240,42,128,221,242,42,35,98,0,152,70,98,227,191,6,96,151,188,202,
+136,126,193,0,144,172,172,172,12,203,151,47,151,209,248,175,3,216,41,175,
+50,162,91,49,0,36,81,26,63,45,45,13,23,47,94,212,59,12,27,159,44,197,0,
+48,232,220,185,115,88,182,108,153,209,198,207,135,191,241,191,150,87,25,
+81,112,12,0,157,46,93,186,132,149,43,87,34,57,57,25,23,46,92,208,59,76,
+62,252,183,229,110,149,86,24,145,6,12,0,141,36,54,254,92,0,91,228,85,70,
+164,29,3,64,37,137,141,255,6,128,205,242,42,35,210,143,1,16,132,210,248,
+41,41,41,56,127,254,188,222,97,216,248,228,72,12,128,6,84,84,84,32,35,35,
+67,70,227,39,1,216,36,175,50,34,121,24,0,1,148,198,95,178,100,9,206,157,
+59,167,119,152,124,0,41,0,178,228,85,70,20,222,124,240,223,8,115,203,146,
+158,158,46,140,186,116,233,146,72,75,75,19,29,58,116,168,119,27,42,151,
+124,0,227,173,60,40,68,225,194,148,0,168,168,168,144,209,248,219,192,198,
+39,50,149,212,0,80,26,191,99,199,142,70,26,191,0,108,124,34,75,72,9,0,54,
+62,145,59,25,10,128,202,202,74,145,150,150,38,58,117,234,100,164,241,247,
+1,136,7,16,97,225,126,19,17,116,6,64,117,117,181,240,122,189,108,124,34,
+151,211,20,0,74,227,119,238,220,217,72,227,239,7,27,159,200,17,84,5,128,
+207,231,147,209,248,7,192,198,39,114,148,70,3,64,105,252,46,93,186,176,
+241,137,66,80,131,1,16,27,27,107,180,241,247,1,152,8,54,62,145,99,53,24,
+0,6,150,131,0,166,3,240,88,184,31,68,164,131,204,0,80,26,63,210,210,61,
+32,34,221,100,4,192,65,248,255,199,231,95,124,34,151,49,18,0,135,192,191,
+248,68,174,166,39,0,14,131,141,79,20,18,180,4,192,17,0,83,193,83,125,162,
+144,161,38,0,78,0,152,9,78,116,66,20,114,26,11,0,54,62,81,136,171,47,0,
+78,130,141,79,20,22,110,12,0,54,62,81,152,241,1,56,5,54,62,81,88,250,61,
+128,219,237,46,130,136,136,136,136,136,136,136,136,136,136,136,136,136,
+136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,
+136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,
+136,168,81,255,15,142,86,241,164,142,198,204,179,0,0,0,0,73,69,78,68,174,
+66,96,130};
+
+static size_t xml_res_size_4 = 648;
+static unsigned char xml_res_file_4[] = {
+137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0,
+0,115,122,122,244,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
+72,89,115,0,0,4,70,0,0,4,70,1,102,1,155,153,0,0,0,25,116,69,88,116,83,111,
+102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,101,46,
+111,114,103,155,238,60,26,0,0,2,5,73,68,65,84,88,133,237,150,177,142,218,
+64,16,134,127,54,186,158,93,48,10,54,6,10,75,137,168,66,146,10,30,1,137,
+87,72,19,81,34,145,250,210,187,77,27,145,68,148,80,33,132,146,14,148,84,
+17,21,148,136,230,66,129,128,42,231,59,161,24,100,38,69,236,147,113,72,
+240,157,206,118,115,191,100,217,179,197,206,231,153,217,217,1,30,20,177,
+30,29,91,100,140,157,19,209,6,192,34,100,158,63,74,165,82,19,73,146,126,
+37,147,201,111,0,94,68,2,48,30,143,169,215,235,237,53,77,251,201,57,255,
+14,224,101,168,0,147,201,132,136,136,44,203,114,64,46,67,3,113,3,56,178,
+44,139,58,157,206,94,85,213,43,27,36,184,212,28,3,240,130,100,179,217,43,
+33,196,87,0,207,67,5,56,22,17,27,164,24,42,128,23,36,147,201,24,241,120,
+124,120,47,32,94,128,110,183,75,170,170,30,56,30,12,6,196,57,167,225,112,
+120,0,162,40,138,3,242,44,48,128,209,104,68,137,68,130,250,253,254,63,35,
+162,40,138,33,132,248,2,224,233,189,2,76,167,83,74,167,211,212,110,183,
+255,155,154,237,118,75,173,86,107,47,203,242,73,144,55,0,222,1,120,108,
+219,53,198,152,89,42,149,104,185,92,30,0,204,231,115,202,229,114,212,108,
+54,125,213,135,23,132,115,254,25,192,71,0,63,0,124,2,112,6,0,111,1,16,128,
+107,0,239,1,236,108,155,234,245,250,13,128,16,130,52,77,35,89,150,105,189,
+94,251,6,112,100,154,38,53,26,141,189,179,183,253,188,98,158,104,144,219,
+136,197,98,55,223,134,97,64,215,117,20,10,5,84,171,85,108,54,155,91,167,
+214,187,191,99,123,83,240,154,49,102,150,203,101,90,173,86,127,213,128,
+97,24,84,44,22,169,82,169,208,110,183,187,75,10,62,0,184,176,223,103,71,
+49,79,157,130,197,98,65,249,124,158,106,181,154,47,199,118,17,62,241,29,
+39,63,125,96,54,155,145,36,73,164,235,250,193,122,32,199,208,143,2,109,
+68,126,28,187,90,241,221,29,223,6,32,144,59,192,15,64,100,215,177,219,113,
+224,179,226,137,145,44,248,33,213,51,148,134,55,11,186,1,34,29,203,25,99,
+231,8,243,143,31,20,165,126,3,125,215,199,83,193,217,127,124,0,0,0,0,73,
+69,78,68,174,66,96,130};
+
+static size_t xml_res_size_5 = 1454;
+static unsigned char xml_res_file_5[] = {
+137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,64,0,0,0,64,8,6,0,0,
+0,170,105,113,222,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
+72,89,115,0,0,8,140,0,0,8,140,1,41,221,10,159,0,0,0,25,116,69,88,116,83,
+111,102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,101,
+46,111,114,103,155,238,60,26,0,0,5,43,73,68,65,84,120,156,237,154,77,104,
+20,103,28,135,159,73,19,41,145,157,236,186,249,218,164,162,182,77,66,91,
+68,196,83,201,81,144,245,18,188,39,20,84,168,23,41,72,41,123,210,212,20,
+116,147,75,226,65,33,68,176,198,210,150,22,193,131,8,18,16,130,57,164,4,
+41,109,67,181,65,211,152,216,170,201,230,131,236,110,52,93,51,255,30,214,
+137,235,100,118,179,155,204,71,140,243,192,156,246,221,153,255,239,153,
+143,247,131,23,60,60,60,60,60,222,94,222,41,160,237,126,160,20,152,178,
+169,22,87,40,42,160,109,35,240,59,240,35,240,177,61,229,108,108,78,1,242,
+242,88,2,190,7,62,114,181,34,135,57,5,200,161,67,135,164,182,182,86,35,
+45,226,5,240,29,208,224,106,101,14,113,10,144,43,87,174,200,226,226,162,
+116,119,119,75,77,77,141,46,98,9,248,137,77,46,98,89,128,206,219,38,98,
+133,0,163,136,80,40,100,20,81,239,106,197,22,147,85,128,206,243,231,207,
+179,137,168,115,181,114,139,88,85,128,81,68,117,117,181,6,136,162,40,41,
+160,151,55,92,68,222,2,116,146,201,164,116,117,117,153,137,248,208,221,
+40,107,163,96,1,58,137,68,66,186,186,186,164,170,170,202,40,226,3,119,35,
+21,198,154,5,108,22,17,235,22,96,20,81,89,89,105,20,241,190,187,17,115,
+99,153,0,157,120,60,110,20,241,31,208,13,188,231,110,84,115,44,23,144,41,
+34,26,141,74,32,16,48,138,168,117,55,242,235,216,38,192,40,194,239,247,
+111,72,17,171,10,56,114,228,136,0,210,216,216,152,51,232,196,196,132,236,
+220,185,83,0,217,189,123,183,196,98,177,215,126,159,159,159,207,38,162,
+198,234,80,133,172,7,88,66,44,22,227,192,129,3,140,141,141,81,87,87,199,
+205,155,55,9,6,131,175,181,241,249,124,68,34,17,198,199,199,149,104,52,
+138,170,170,197,192,231,138,162,140,97,177,8,71,5,204,207,207,19,14,135,
+185,123,247,46,219,183,111,167,175,175,143,80,40,148,181,189,46,98,98,98,
+194,40,226,111,210,34,178,255,57,79,28,19,240,236,217,51,154,154,154,184,
+115,231,14,149,149,149,244,245,245,177,99,199,142,188,254,107,242,68,148,
+144,22,241,0,56,199,58,68,56,34,96,105,105,137,150,150,22,250,251,251,41,
+47,47,231,214,173,91,52,52,20,62,99,86,85,149,72,36,194,232,232,168,210,
+218,218,138,207,231,123,23,248,66,81,148,251,164,69,84,175,181,70,37,143,
+54,107,250,8,106,154,38,135,15,31,22,64,84,85,149,161,161,161,60,251,132,
+213,137,197,98,210,218,218,42,170,170,234,31,203,228,90,69,252,10,124,70,
+246,85,226,70,96,4,144,61,123,246,200,237,219,183,243,22,112,226,196,9,
+1,164,180,180,84,250,251,251,45,11,111,38,194,231,243,25,69,84,1,197,192,
+87,192,47,164,23,117,207,1,1,99,192,69,210,243,247,97,19,17,45,164,215,
+254,244,5,81,41,42,42,146,203,151,47,175,42,224,228,201,147,2,200,150,45,
+91,228,198,141,27,182,132,207,100,106,106,202,40,34,1,140,103,214,254,242,
+24,7,42,204,4,232,135,46,34,8,204,153,156,64,84,85,93,209,127,103,10,232,
+236,236,92,110,123,236,216,49,219,195,27,69,68,34,17,41,41,41,209,204,106,
+127,121,124,155,75,128,126,140,229,56,129,92,187,118,205,84,128,207,231,
+19,69,81,68,81,148,229,39,230,234,213,171,142,74,16,17,9,135,195,89,107,
+7,38,193,166,94,32,30,143,19,10,133,24,28,28,164,190,190,30,77,211,104,
+110,110,102,96,96,192,142,203,89,130,241,9,248,131,87,175,192,44,38,6,203,
+202,202,100,122,122,218,244,9,240,251,253,50,60,60,44,34,34,35,35,35,82,
+81,81,33,128,4,131,65,185,119,239,158,237,119,62,207,87,224,146,153,0,253,
+221,207,124,50,154,49,249,8,246,246,246,174,184,112,182,185,192,208,208,
+144,108,221,186,85,0,217,181,107,151,60,126,252,216,182,224,38,31,193,135,
+38,225,31,98,248,8,174,214,13,126,10,252,5,200,222,189,123,101,96,96,192,
+180,128,92,147,161,235,215,175,75,113,113,177,0,178,111,223,62,137,199,
+227,118,6,55,118,131,95,2,131,192,111,64,39,224,55,6,180,109,32,148,73,
+79,79,207,242,93,56,120,240,160,164,82,169,117,5,207,209,255,175,121,68,
+104,171,0,145,87,99,3,64,142,30,61,186,174,224,86,140,0,29,23,160,105,218,
+114,59,64,218,218,218,242,14,62,61,61,109,12,190,192,58,39,67,150,10,56,
+126,252,184,4,2,1,9,135,195,57,131,164,82,41,105,106,106,146,64,32,32,219,
+182,109,91,117,140,160,47,144,148,149,149,233,193,23,177,104,58,108,169,
+0,171,201,17,220,178,5,145,98,171,78,100,37,241,120,156,11,23,46,16,141,
+70,101,110,110,78,81,20,229,5,112,73,68,78,3,255,90,121,173,13,37,32,145,
+72,112,254,252,121,179,224,109,192,63,118,92,115,67,8,208,131,183,183,183,
+203,236,236,172,35,193,117,92,21,160,7,239,232,232,96,102,102,134,140,224,
+223,0,143,156,168,193,21,1,201,100,146,139,23,47,114,230,204,25,153,156,
+156,212,239,248,15,34,242,53,48,234,100,45,142,10,48,9,190,68,58,248,105,
+224,129,147,181,232,56,34,64,15,126,246,236,89,121,250,244,233,134,8,174,
+99,171,128,133,133,5,122,122,122,136,70,163,242,228,201,147,204,224,109,
+192,125,59,175,109,7,86,108,145,121,35,119,134,232,120,155,164,200,34,224,
+173,221,38,151,99,163,228,166,10,174,227,109,149,5,111,179,244,166,219,
+46,95,232,56,64,3,126,6,218,128,63,173,47,103,99,179,31,248,196,237,34,
+60,60,60,60,60,60,172,227,127,242,172,196,144,240,2,93,107,0,0,0,0,73,69,
+78,68,174,66,96,130};
+
+static size_t xml_res_size_6 = 845;
+static unsigned char xml_res_file_6[] = {
+137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0,
+0,115,122,122,244,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
+72,89,115,0,0,4,196,0,0,4,196,1,60,204,212,131,0,0,0,25,116,69,88,116,83,
+111,102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,101,
+46,111,114,103,155,238,60,26,0,0,2,202,73,68,65,84,88,133,189,151,191,75,
+91,81,20,199,63,231,249,226,139,162,160,208,66,210,116,180,160,67,113,176,
+226,32,130,21,156,28,116,20,58,118,118,232,42,214,36,214,150,118,18,236,
+127,80,42,56,198,210,77,16,161,237,32,209,193,14,254,192,14,29,140,9,88,
+80,26,137,121,106,60,29,18,127,52,47,198,151,248,226,217,238,185,247,221,
+239,135,115,223,61,231,92,81,85,220,152,124,252,101,113,112,56,0,12,3,29,
+32,65,208,96,97,54,9,154,4,54,129,5,90,91,150,116,172,205,118,181,239,109,
+0,242,110,45,200,169,78,34,188,0,154,93,209,66,26,101,14,159,76,233,120,
+87,178,42,0,137,46,251,145,166,9,224,21,208,232,82,184,216,50,192,12,122,
+52,173,225,254,172,107,0,137,198,3,136,196,128,158,42,133,139,109,5,213,
+17,13,119,167,138,39,12,135,248,235,239,157,136,196,61,20,7,232,65,36,46,
+111,214,158,58,244,174,71,64,38,190,5,209,92,156,186,250,16,102,189,135,
+250,151,182,139,106,247,245,72,92,70,64,162,203,126,206,115,95,80,66,156,
+157,192,217,73,45,0,30,35,18,147,232,178,223,1,128,77,4,120,118,57,174,
+29,68,79,225,231,6,10,71,32,19,75,33,212,216,65,105,112,44,55,235,169,193,
+113,100,48,165,77,199,187,146,249,8,156,27,145,146,226,80,171,72,52,114,
+170,147,0,194,236,142,69,106,247,15,74,83,217,79,188,143,68,154,214,150,
+135,6,169,196,224,173,226,80,139,72,52,115,112,56,96,130,142,252,231,181,
+234,104,127,96,221,248,149,152,38,134,239,230,249,114,182,177,159,229,175,
+157,187,238,26,54,65,218,225,42,23,116,6,26,248,58,250,164,236,70,150,101,
+225,247,251,203,174,41,101,207,63,109,179,252,59,125,221,213,97,160,4,42,
+221,200,182,109,178,217,146,169,189,66,147,160,129,104,197,0,222,65,104,
+208,81,11,238,27,194,64,197,81,161,238,15,66,146,6,194,157,0,238,6,161,
+73,19,116,11,232,189,112,173,167,142,25,252,188,93,21,136,152,245,101,175,
+232,198,190,3,114,211,4,137,129,190,188,240,164,237,28,241,68,166,42,0,
+200,84,154,49,23,12,2,161,69,132,163,42,21,157,230,62,99,166,105,109,89,
+50,116,172,205,70,153,247,12,192,45,132,50,167,99,109,118,254,26,90,190,
+48,194,241,61,66,100,240,201,20,20,26,18,13,247,238,161,204,122,10,80,30,
+98,230,162,93,191,74,68,22,17,96,245,30,32,86,208,163,233,139,65,233,166,
+84,9,121,14,146,191,29,55,55,165,0,58,221,151,4,134,16,18,158,3,228,78,
+18,156,231,134,138,223,6,142,90,160,111,251,215,145,186,110,188,61,142,
+85,164,174,91,35,61,63,139,39,74,22,35,157,238,75,98,209,7,124,184,211,
+237,16,142,17,227,61,22,125,133,232,58,151,220,250,56,141,254,120,132,125,
+26,69,24,117,213,186,229,133,143,80,230,177,124,97,13,247,238,149,93,90,
+209,243,60,149,24,204,183,112,210,142,18,184,236,37,84,82,249,162,166,91,
+32,49,2,161,69,183,207,243,127,112,231,61,10,138,240,143,199,0,0,0,0,73,
+69,78,68,174,66,96,130};
+
+static size_t xml_res_size_7 = 1244;
+static unsigned char xml_res_file_7[] = {
+137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0,
+0,115,122,122,244,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
+72,89,115,0,0,4,196,0,0,4,196,1,60,204,212,131,0,0,0,25,116,69,88,116,83,
+111,102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,101,
+46,111,114,103,155,238,60,26,0,0,4,89,73,68,65,84,88,133,181,151,93,76,
+91,101,24,199,127,207,161,165,5,193,208,32,210,2,83,230,72,216,98,252,64,
+36,16,23,162,33,89,118,49,3,75,140,31,17,221,197,174,208,132,41,94,44,186,
+32,208,73,102,188,218,148,59,19,99,162,33,89,116,78,70,162,162,219,8,6,
+48,153,29,55,114,49,150,0,19,55,40,91,130,108,192,74,79,219,211,215,139,
+150,66,219,211,210,18,247,191,122,63,158,243,60,191,243,158,247,60,239,
+243,138,82,138,76,36,125,211,54,150,239,54,1,45,192,62,16,23,40,87,116,
+214,11,202,11,92,3,46,224,40,26,86,237,85,122,70,126,183,3,144,83,19,46,
+130,170,11,161,21,40,204,136,22,86,81,244,99,149,147,234,68,173,119,71,
+0,226,30,177,35,5,157,64,7,144,159,97,224,68,249,128,211,168,181,94,213,
+253,146,63,99,0,113,123,156,136,12,0,245,27,99,182,28,33,207,170,69,188,
+6,195,4,140,204,62,93,84,87,80,234,176,234,174,91,76,156,208,146,130,127,
+60,246,12,34,158,173,193,1,58,26,74,89,62,94,195,242,241,26,142,62,251,
+72,54,193,1,234,17,241,200,39,19,79,165,5,144,206,81,23,225,208,79,132,
+2,21,217,70,200,64,21,40,245,179,184,61,78,83,0,113,143,216,9,27,131,40,
+202,9,5,32,20,120,0,12,84,32,50,32,238,17,123,18,0,58,61,192,243,177,254,
+131,131,168,143,110,238,77,0,113,143,151,33,28,75,50,77,3,209,92,93,68,
+91,109,9,109,181,37,20,230,230,100,11,209,33,167,38,92,0,22,0,244,160,27,
+200,51,53,77,1,240,65,67,41,47,62,30,73,11,67,51,43,172,6,140,108,0,242,
+9,170,46,224,29,139,244,77,219,16,222,32,221,95,21,10,16,10,164,78,108,
+57,2,103,14,238,2,224,246,253,16,159,142,165,205,61,17,9,173,210,55,253,
+190,133,197,249,3,40,10,182,179,55,130,1,252,126,63,118,187,61,105,206,
+162,9,239,213,151,2,112,125,201,79,255,228,18,77,149,15,3,48,121,199,199,
+132,215,103,230,178,144,229,187,77,22,80,135,183,199,141,72,215,51,74,239,
+60,231,202,231,235,150,74,0,62,27,95,76,5,0,208,98,1,217,75,218,245,143,
+168,198,153,31,131,232,122,161,24,71,225,102,118,30,62,82,29,107,63,225,
+176,241,229,203,149,177,126,67,197,67,233,220,238,211,80,56,205,102,74,
+11,172,113,125,239,90,48,214,206,215,140,184,205,89,86,184,105,107,213,
+132,146,124,75,172,111,203,73,74,182,91,36,46,13,81,113,0,182,28,225,68,
+163,139,201,182,39,105,125,186,56,54,126,115,37,254,111,208,117,29,191,
+223,244,124,201,66,202,101,73,28,58,247,90,21,141,143,69,246,228,153,131,
+187,152,187,167,51,54,183,134,32,73,143,111,236,9,179,141,153,169,52,148,
+196,157,80,125,127,222,142,181,173,154,240,237,225,221,236,113,216,145,
+228,248,49,136,157,175,132,120,53,132,56,128,223,102,86,232,159,92,138,
+245,29,118,11,223,189,186,155,226,188,212,217,110,231,16,202,171,129,154,
+74,28,254,232,242,60,11,171,155,223,124,143,195,206,187,117,143,166,117,
+181,67,136,107,26,200,64,226,232,138,110,208,254,203,63,113,99,86,45,197,
+55,216,6,194,179,112,63,221,35,23,52,156,229,23,17,214,18,103,46,223,88,
+229,155,191,150,204,30,202,10,194,23,12,167,50,93,197,81,52,172,169,246,
+42,29,197,89,51,139,15,47,221,226,143,155,73,108,89,67,152,74,209,175,218,
+171,244,72,150,176,89,187,17,214,19,109,124,193,48,175,124,63,195,239,115,
+171,255,55,132,15,171,156,132,104,61,160,186,247,47,160,248,194,204,114,
+61,24,230,245,115,179,92,154,93,201,26,98,197,231,103,232,250,29,179,169,
+211,27,229,250,102,158,180,209,3,92,53,179,246,135,194,188,121,126,150,
+161,233,123,25,7,215,13,197,91,231,103,25,153,254,55,177,166,184,130,90,
+235,221,232,196,149,229,210,57,234,66,25,30,20,229,102,78,173,154,240,85,
+115,37,205,213,69,105,131,7,12,197,219,63,206,242,235,204,150,85,179,228,
+130,37,247,22,74,213,109,45,207,227,78,10,213,219,232,5,14,33,204,155,57,
+14,134,21,71,7,255,230,135,169,229,180,193,143,12,220,136,15,14,96,4,230,
+9,27,135,18,239,6,230,23,147,206,81,23,97,99,144,173,69,234,22,105,2,133,
+54,243,204,24,52,148,217,175,119,21,45,167,57,250,130,241,177,210,94,205,
+116,122,16,142,161,82,212,139,219,73,88,7,237,115,114,195,238,172,174,102,
+241,32,227,101,232,65,119,180,110,220,182,116,139,6,94,67,113,22,155,181,
+91,117,239,95,72,107,154,213,245,124,113,254,64,164,132,147,189,40,156,
+177,90,66,201,98,228,80,83,83,32,3,56,203,47,102,122,61,255,15,18,39,215,
+228,219,192,187,72,0,0,0,0,73,69,78,68,174,66,96,130};
+
+static size_t xml_res_size_8 = 724;
+static unsigned char xml_res_file_8[] = {
+137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,31,0,0,0,31,8,6,0,0,
+0,31,174,22,57,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,72,
+89,115,0,0,4,157,0,0,4,157,1,124,52,107,161,0,0,0,25,116,69,88,116,83,111,
+102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,101,46,
+111,114,103,155,238,60,26,0,0,2,81,73,68,65,84,72,137,189,151,61,104,19,
+97,28,135,159,55,38,33,53,105,74,62,68,107,18,23,65,90,104,172,86,16,210,
+162,131,20,69,164,186,170,69,45,10,130,5,113,112,42,136,100,8,214,118,112,
+9,40,14,213,197,89,23,71,59,22,151,150,104,4,77,106,83,138,226,34,129,214,
+80,228,114,185,228,28,108,74,130,249,120,239,114,241,7,55,220,189,31,207,
+243,231,184,247,207,9,0,226,203,35,8,253,29,29,230,1,47,190,253,210,237,
+167,147,241,100,65,102,190,29,128,114,201,129,221,238,235,20,30,35,237,
+235,19,219,57,247,236,157,35,143,103,158,109,182,155,111,3,160,162,8,74,
+197,78,217,0,140,137,143,193,9,117,105,237,118,60,30,148,131,3,148,75,160,
+169,150,8,140,138,180,255,134,237,245,234,221,71,51,251,228,224,240,23,
+110,149,0,105,223,21,237,109,182,149,128,237,159,39,22,10,196,248,228,155,
+210,222,124,141,207,79,31,144,131,27,16,136,120,157,109,231,140,144,233,
+155,80,22,179,141,4,26,195,37,4,246,187,29,188,191,53,64,191,199,33,33,
+144,245,94,84,22,179,241,185,155,7,229,224,109,4,230,198,195,132,122,157,
+36,206,132,218,194,1,142,147,245,94,42,46,101,18,137,235,187,11,90,195,
+155,8,156,232,223,203,181,163,1,0,166,134,131,156,12,185,1,88,19,17,86,
+24,100,133,65,114,132,89,39,84,119,121,217,238,141,150,55,62,92,152,125,
+234,131,234,33,35,35,0,96,119,34,128,228,249,67,216,196,142,189,128,39,
+103,35,156,122,153,225,158,126,95,102,183,32,197,202,97,96,185,125,229,
+181,2,154,202,100,52,64,44,236,169,27,26,139,120,184,60,228,151,222,170,
+26,121,56,208,35,52,30,142,6,26,142,205,143,135,113,59,12,109,103,12,126,
+117,200,207,111,69,33,247,179,190,111,124,47,168,168,101,157,201,104,99,
+177,102,145,123,231,59,89,72,229,89,72,229,25,8,246,144,154,30,198,229,
+114,1,112,238,213,42,95,242,138,33,48,24,172,188,54,197,98,17,69,49,14,
+172,141,161,202,27,9,8,33,76,175,55,93,121,53,138,162,160,155,236,5,29,
+195,1,244,146,185,102,100,9,28,48,213,13,173,131,155,16,176,22,110,80,192,
+122,184,1,129,238,192,37,5,186,7,151,16,232,46,188,141,64,247,225,45,4,
+254,15,188,137,128,169,179,125,125,83,225,216,243,207,187,247,63,10,146,
+223,118,21,190,199,110,30,174,150,117,54,182,76,254,94,105,42,84,202,182,
+26,184,67,131,210,150,185,221,76,68,71,3,248,3,55,71,228,58,37,20,139,19,
+0,0,0,0,73,69,78,68,174,66,96,130};
+
+static size_t xml_res_size_9 = 760;
+static unsigned char xml_res_file_9[] = {
+137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0,
+0,115,122,122,244,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
+72,89,115,0,0,4,193,0,0,4,193,1,17,118,177,117,0,0,0,25,116,69,88,116,83,
+111,102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,101,
+46,111,114,103,155,238,60,26,0,0,2,117,73,68,65,84,88,133,197,214,79,72,
+20,81,28,192,241,239,155,93,214,178,40,91,18,81,195,130,214,139,183,16,
+194,91,167,194,72,187,104,183,82,59,88,10,5,18,29,236,80,237,46,81,65,183,
+2,65,48,180,162,32,219,254,128,10,81,68,80,212,33,84,232,207,169,164,75,
+127,212,245,79,165,228,238,204,238,204,235,16,171,107,234,250,230,79,245,
+187,189,223,204,111,230,195,239,189,55,111,4,0,225,161,16,194,122,133,203,
+40,20,223,56,99,117,221,62,30,238,109,85,173,241,3,224,179,124,88,108,114,
+11,208,164,164,85,139,181,136,72,253,218,99,103,99,77,74,53,0,232,115,26,
+41,221,237,251,1,240,97,209,34,238,53,118,68,234,174,171,3,0,204,20,94,
+34,142,138,251,135,58,162,245,55,212,1,25,68,218,240,4,161,97,209,34,239,
+30,236,142,212,246,170,3,224,55,192,35,132,16,146,70,250,15,244,68,107,
+238,168,3,20,17,229,193,53,84,22,231,83,89,156,79,40,152,151,19,209,32,
+7,234,123,34,53,49,117,128,2,226,202,222,50,6,155,43,24,108,174,224,114,
+117,89,78,172,16,146,6,49,80,119,53,186,191,79,29,160,128,176,19,2,201,
+97,250,106,186,163,181,253,234,128,191,128,104,162,111,223,173,232,158,
+71,153,156,95,169,50,3,240,7,114,222,54,73,1,219,229,131,101,95,92,192,
+108,118,106,119,225,133,19,161,137,83,213,35,106,0,69,132,137,198,71,74,
+21,159,103,10,80,153,130,63,17,30,77,71,38,212,59,144,141,240,48,236,117,
+32,11,97,232,201,255,8,0,82,134,65,50,233,30,97,127,10,178,66,215,221,31,
+94,142,59,144,141,72,25,206,33,174,1,0,134,174,59,94,156,158,0,0,199,91,
+212,59,128,67,132,173,69,88,178,33,192,145,29,155,1,8,5,23,190,136,229,
+193,60,194,187,74,0,232,28,158,100,52,97,172,250,217,206,132,173,14,124,
+157,49,216,89,186,142,182,170,34,182,110,92,248,7,216,86,144,71,91,85,17,
+85,91,214,51,54,107,216,234,132,237,41,104,127,242,25,83,202,37,121,83,
+74,78,62,254,196,252,21,69,132,109,192,155,241,4,55,223,78,47,201,95,123,
+61,197,187,120,98,113,82,1,225,104,17,158,123,54,202,140,110,206,143,127,
+36,77,206,63,31,93,254,230,85,16,142,0,241,159,41,46,189,28,159,31,95,124,
+49,198,228,92,122,229,130,28,8,199,219,176,115,40,206,135,233,36,239,167,
+146,116,13,79,172,94,176,2,194,241,89,96,152,146,211,79,191,96,73,72,89,
+75,23,229,138,8,88,180,69,93,29,70,15,71,102,236,23,101,16,1,159,123,128,
+227,72,27,32,165,182,0,48,53,19,172,239,255,22,33,76,128,95,176,208,9,84,
+8,125,2,62,0,0,0,0,73,69,78,68,174,66,96,130};
+
+static size_t xml_res_size_10 = 1387;
+static unsigned char xml_res_file_10[] = {
+137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0,
+0,115,122,122,244,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
+72,89,115,0,0,4,196,0,0,4,196,1,60,204,212,131,0,0,0,25,116,69,88,116,83,
+111,102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,101,
+46,111,114,103,155,238,60,26,0,0,4,232,73,68,65,84,88,133,157,151,93,108,
+84,69,20,128,191,217,237,222,187,109,183,116,55,180,208,165,11,180,6,161,
+109,68,137,72,90,5,82,160,18,76,32,252,36,62,16,49,38,168,49,106,2,145,
+24,35,82,161,187,88,8,241,15,8,250,64,162,79,136,33,18,21,80,49,4,45,148,
+96,160,20,98,168,134,22,65,133,208,150,109,5,183,101,75,187,255,227,67,
+183,187,221,191,123,47,158,100,30,102,206,153,51,223,189,103,230,156,25,
+33,165,196,136,136,125,215,85,124,3,75,128,85,64,53,8,39,72,103,92,123,
+27,228,109,160,19,56,138,195,222,34,55,204,8,26,242,171,7,32,118,94,114,
+18,150,219,16,172,3,138,12,209,130,31,201,65,44,98,187,220,50,247,246,255,
+2,16,158,211,86,132,237,93,96,19,80,144,205,198,97,53,227,11,68,181,252,
+15,3,187,145,67,205,178,105,81,192,48,128,240,180,151,33,196,17,160,86,
+203,251,129,53,149,28,187,58,192,225,43,62,45,51,128,54,164,92,45,155,230,
+121,211,21,166,140,197,183,158,125,12,33,218,245,22,175,115,21,178,110,
+246,68,62,88,58,21,107,94,134,155,116,169,69,136,118,241,222,165,217,154,
+0,194,221,90,70,44,242,61,145,144,75,203,155,0,246,44,155,134,0,166,23,
+43,188,245,212,100,61,0,0,23,82,30,23,158,246,178,172,0,194,115,69,33,36,
+191,69,226,34,18,130,72,40,167,167,231,31,157,72,109,121,97,162,191,121,
+190,19,215,4,197,24,132,16,71,132,231,180,53,3,128,96,127,35,80,151,232,
+231,128,40,180,152,216,213,144,250,131,10,44,38,118,53,148,27,1,0,168,141,
+111,238,36,128,104,60,225,68,240,102,134,105,22,136,45,11,157,76,41,178,
+100,152,62,55,123,34,117,174,194,140,241,28,178,73,236,188,228,76,0,32,
+21,15,146,236,179,199,65,56,172,102,26,42,39,208,121,39,245,68,141,68,98,
+116,244,13,179,126,78,137,81,128,2,194,114,27,128,96,255,69,11,55,253,119,
+145,58,73,38,79,25,109,64,133,93,229,239,141,201,13,125,185,111,152,57,
+251,175,24,93,124,76,252,56,236,165,38,110,12,45,209,91,220,44,68,206,61,
+161,57,71,91,138,240,13,44,49,33,99,43,115,89,168,102,193,27,117,147,249,
+120,89,124,211,61,0,196,249,151,170,88,49,179,88,207,108,149,9,147,168,
+206,166,89,57,203,78,219,203,213,184,235,167,80,164,154,147,138,72,8,25,
+214,175,51,85,37,249,124,183,246,97,78,172,155,73,77,105,126,46,179,106,
+193,59,167,186,128,89,99,35,53,165,249,188,255,180,139,5,211,108,9,171,
+152,132,112,44,153,178,5,80,84,96,197,106,29,61,206,18,8,69,83,83,186,98,
+22,140,5,33,18,147,124,218,222,143,187,181,151,129,148,218,33,174,9,182,
+156,242,35,177,57,242,243,104,92,88,198,250,57,37,70,226,7,128,170,170,
+9,8,35,114,103,56,66,99,75,15,159,253,250,15,241,239,25,74,73,197,6,175,
+6,9,9,6,131,4,2,89,139,92,86,145,241,54,94,50,66,80,93,154,207,174,134,
+114,234,167,39,15,70,182,16,40,230,228,95,82,84,21,147,69,77,113,60,62,
+4,225,152,228,147,11,253,120,90,123,25,12,102,134,160,5,201,226,116,218,
+229,51,139,105,94,92,78,165,93,229,155,46,31,47,30,189,145,208,77,43,86,
+233,120,181,38,209,255,189,127,132,5,7,254,74,228,9,0,255,230,199,177,41,
+38,126,188,62,200,166,19,183,184,122,55,235,159,58,147,71,76,118,34,68,
+6,192,15,127,12,114,242,207,123,188,246,196,36,42,29,6,10,205,216,241,140,
+67,116,222,25,193,221,218,203,241,107,131,90,179,58,243,16,166,99,32,95,
+207,166,13,69,37,123,219,250,12,111,202,241,16,79,126,222,69,84,127,83,
+29,53,81,97,107,65,224,215,178,50,224,40,21,34,18,50,50,199,143,195,222,
+98,146,175,204,13,35,229,33,35,190,237,86,51,63,189,48,139,175,158,125,
+136,80,84,38,90,133,93,225,236,250,42,246,60,51,53,5,66,83,36,7,229,134,
+25,193,209,99,168,152,182,33,184,175,7,48,16,136,114,246,166,159,170,18,
+43,138,89,36,154,77,49,243,200,164,124,190,252,237,223,164,177,54,196,48,
+22,177,29,226,229,88,186,235,189,72,62,210,3,0,248,240,92,31,253,195,225,
+140,241,175,187,124,92,232,73,251,134,220,16,187,199,174,235,201,68,164,
+78,218,1,156,215,3,24,10,69,105,62,147,122,213,15,68,98,52,157,238,205,
+62,33,19,162,13,57,212,60,214,73,0,200,166,154,16,138,88,131,160,91,15,
+226,139,142,187,92,246,142,36,250,123,47,244,211,61,168,17,243,36,68,247,
+232,245,60,249,70,72,77,197,238,122,47,176,2,65,143,22,64,76,194,219,63,
+223,2,160,251,94,136,221,231,250,244,152,33,26,234,33,22,93,158,254,54,
+200,184,208,203,29,139,46,35,204,243,128,139,90,254,206,119,223,231,112,
+167,143,173,167,122,9,68,98,122,203,95,68,152,231,73,119,109,71,186,66,
+251,105,22,196,141,96,35,146,172,5,221,110,53,167,149,215,116,39,140,128,
+105,47,74,204,243,64,79,179,84,144,95,166,16,12,123,16,172,69,98,211,52,
+78,46,60,132,228,16,170,165,73,54,205,207,177,59,13,2,36,12,247,93,87,241,
+246,44,5,185,26,68,21,146,50,132,28,125,229,72,225,69,224,5,217,5,226,8,
+101,229,39,141,62,207,255,3,52,228,253,72,11,53,84,78,0,0,0,0,73,69,78,
+68,174,66,96,130};
+
+static size_t xml_res_size_11 = 834;
+static unsigned char xml_res_file_11[] = {
+137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0,
+0,115,122,122,244,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
+72,89,115,0,0,4,193,0,0,4,193,1,17,118,177,117,0,0,0,25,116,69,88,116,83,
+111,102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,101,
+46,111,114,103,155,238,60,26,0,0,2,191,73,68,65,84,88,133,189,214,95,72,
+20,65,28,192,241,239,236,237,221,94,137,217,147,82,113,15,161,16,249,24,
+17,190,154,80,20,24,25,151,4,253,67,210,58,43,130,222,18,41,202,243,37,
+162,151,144,34,178,68,138,186,176,212,254,19,189,20,5,62,4,41,81,4,82,25,
+21,97,89,87,88,230,221,185,183,211,195,157,94,247,135,107,246,254,244,131,
+101,102,118,118,126,243,97,119,102,88,33,165,68,28,123,86,133,176,158,144,
+103,148,243,93,180,139,243,253,7,14,7,90,85,199,232,177,66,234,64,69,190,
+0,13,139,125,244,249,186,58,164,190,255,200,213,22,181,49,0,145,223,26,
+102,36,223,249,1,112,96,209,42,174,53,159,246,55,94,80,7,0,152,17,10,137,
+240,113,189,233,172,223,219,171,14,40,48,66,195,162,133,129,29,231,58,54,
+93,82,7,20,1,209,44,6,183,118,251,27,174,168,3,10,140,16,72,118,113,99,
+75,143,127,67,159,58,160,8,136,38,110,121,123,253,245,3,234,128,2,35,0,
+118,114,123,227,197,206,245,55,213,1,69,64,108,151,247,234,47,251,215,221,
+153,109,11,41,37,162,253,113,53,50,250,50,235,72,221,21,187,178,132,3,11,
+15,159,209,176,208,176,16,16,47,37,26,50,94,198,218,159,156,229,203,38,
+218,234,70,117,101,250,236,91,200,130,136,162,241,142,69,106,249,34,66,
+3,149,79,144,138,40,224,231,176,15,40,2,194,62,160,192,136,180,53,224,212,
+4,1,111,165,210,96,167,203,133,203,112,207,181,79,14,141,243,224,237,100,
+126,0,135,38,168,91,90,170,156,192,237,54,48,12,3,128,192,139,160,173,201,
+51,2,66,166,197,194,227,195,54,179,252,123,139,42,3,114,138,148,45,186,
+71,244,179,92,142,1,240,26,15,93,52,22,25,144,130,104,224,33,107,197,16,
+0,143,88,65,151,180,1,16,128,167,204,200,217,33,156,130,121,97,1,102,34,
+95,182,72,3,24,186,198,115,95,117,206,0,0,247,96,9,188,143,213,157,142,
+4,70,9,96,90,146,158,145,175,121,1,214,4,67,84,154,96,232,16,149,217,159,
+205,8,56,120,255,131,242,100,135,68,47,123,73,254,215,152,79,136,80,188,
+94,163,143,240,67,212,38,245,183,177,143,51,114,115,102,128,221,112,203,
+48,11,196,84,198,190,144,9,110,162,148,233,191,146,238,27,114,102,174,158,
+219,81,108,35,66,38,132,237,172,1,93,19,116,214,46,86,158,192,19,172,99,
+56,152,124,114,86,77,220,165,116,250,35,0,227,162,130,192,204,106,116,233,
+64,215,29,0,60,37,177,200,51,2,124,43,203,149,1,224,141,95,127,69,223,27,
+24,139,3,156,75,56,26,222,29,223,9,233,39,102,26,32,108,90,172,234,126,
+101,3,144,30,167,126,78,81,19,175,79,207,68,19,29,25,126,106,210,0,18,24,
+253,22,74,189,109,43,166,132,53,87,183,82,183,225,44,194,97,100,6,252,151,
+48,35,16,141,106,9,128,196,4,190,20,42,127,187,108,213,79,136,109,2,96,
+82,150,72,50,157,133,177,57,249,3,235,9,253,190,72,67,151,122,0,0,0,0,73,
+69,78,68,174,66,96,130};
+
+static size_t xml_res_size_12 = 680;
+static unsigned char xml_res_file_12[] = {
+137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0,
+0,115,122,122,244,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
+72,89,115,0,0,4,68,0,0,4,68,1,25,255,88,16,0,0,0,25,116,69,88,116,83,111,
+102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,101,46,
+111,114,103,155,238,60,26,0,0,2,37,73,68,65,84,88,133,189,151,63,104,19,
+81,28,199,63,239,229,146,92,18,144,154,193,34,56,116,8,56,185,8,82,71,23,
+55,65,11,130,21,92,116,23,255,141,34,37,155,163,131,142,130,147,224,160,
+131,155,197,65,233,98,21,135,130,165,14,69,227,159,34,73,53,38,173,73,147,
+188,196,231,164,189,36,191,94,238,206,75,190,112,144,247,126,47,191,247,
+201,189,207,5,78,89,107,25,21,85,124,225,160,114,183,65,221,24,185,24,214,
+81,246,140,189,117,108,53,192,90,84,31,64,81,77,13,46,184,203,124,246,186,
+186,242,196,224,204,6,105,8,160,176,141,195,124,62,191,102,207,46,9,229,
+38,11,182,243,119,160,61,155,187,104,126,14,94,167,244,203,141,48,155,3,
+88,84,238,28,139,79,165,126,104,46,121,215,106,239,192,244,194,108,19,79,
+28,239,160,105,32,11,36,19,187,115,105,12,179,188,11,221,248,144,170,132,
+7,144,32,14,242,157,87,234,98,104,128,160,209,210,100,211,76,238,56,68,
+128,73,66,236,62,134,69,229,214,59,236,120,139,239,153,225,180,115,15,18,
+67,39,21,57,219,228,182,154,251,167,15,216,203,133,54,8,14,120,99,112,40,
+155,44,224,198,9,177,143,234,87,5,5,192,231,8,250,73,90,208,235,198,5,208,
+151,96,0,99,132,8,14,48,38,136,112,0,99,128,8,15,240,15,194,196,2,16,72,
+237,66,222,101,102,42,53,52,175,83,46,218,73,138,223,89,219,220,225,83,
+189,35,214,66,3,92,56,146,231,234,241,105,177,150,201,100,72,165,134,225,
+174,61,251,194,157,229,114,60,0,15,86,126,240,188,180,181,103,61,145,116,
+81,3,119,98,189,218,14,210,58,24,64,169,214,166,84,243,107,248,11,146,105,
+72,200,199,225,151,104,18,74,49,237,72,98,254,151,132,82,246,18,243,219,
+182,97,165,220,140,6,224,39,161,20,73,204,71,171,85,230,31,127,136,6,48,
+74,66,41,131,98,86,26,242,159,87,76,18,74,9,38,102,124,18,74,9,32,102,236,
+18,74,209,41,151,154,81,188,222,104,68,3,8,43,161,148,55,155,93,78,62,252,
+24,13,32,138,132,131,169,183,126,67,175,55,228,196,24,37,244,137,22,63,
+78,40,166,255,135,120,239,64,23,203,125,111,177,162,243,121,44,115,227,
+228,81,126,175,231,234,230,210,81,108,239,109,236,187,166,201,216,133,19,
+45,128,63,147,180,205,25,132,236,135,65,0,0,0,0,73,69,78,68,174,66,96,130};
+
+static size_t xml_res_size_13 = 708;
+static unsigned char xml_res_file_13[] = {
+137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0,
+0,115,122,122,244,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
+72,89,115,0,0,5,163,0,0,5,163,1,164,52,119,130,0,0,0,25,116,69,88,116,83,
+111,102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,101,
+46,111,114,103,155,238,60,26,0,0,2,65,73,68,65,84,88,133,197,151,189,107,
+19,113,24,199,63,207,229,146,212,40,173,118,16,117,112,208,69,16,28,10,
+138,56,104,193,197,127,160,8,110,110,29,44,74,209,74,91,46,103,154,74,65,
+240,101,17,58,184,72,55,157,116,18,234,34,138,155,131,130,173,98,21,193,
+183,56,136,73,91,95,146,92,238,113,136,74,122,36,185,203,93,94,158,237,
+126,207,243,251,62,159,251,253,158,223,155,168,42,161,45,43,7,113,249,142,
+173,43,97,37,140,240,217,1,225,16,6,75,204,200,13,50,50,216,125,0,48,129,
+56,194,89,12,86,200,202,56,25,73,116,15,64,137,213,124,109,3,174,98,176,
+204,140,140,116,7,160,58,2,94,219,131,112,135,172,60,229,178,28,246,19,
+16,111,17,22,44,57,153,48,152,218,100,18,164,58,183,3,59,155,248,21,88,
+32,198,4,83,250,213,23,96,117,90,78,40,220,3,18,73,19,250,234,253,95,56,
+43,0,105,246,113,147,17,173,212,5,88,75,203,17,215,101,17,37,245,207,217,
+102,8,16,94,160,156,193,210,199,27,0,242,147,114,64,12,30,1,91,189,125,
+218,14,81,5,89,160,194,4,182,230,36,63,205,94,148,39,192,142,70,241,29,
+129,128,85,148,81,67,148,219,205,146,3,20,29,248,237,180,53,121,25,152,
+39,197,125,83,133,254,32,245,94,252,11,208,134,145,120,136,203,24,182,190,
+130,250,235,184,83,16,31,81,198,73,235,221,218,198,150,165,66,64,148,80,
+174,147,34,203,121,253,225,117,6,149,121,143,203,241,255,16,37,232,51,112,
+137,49,138,114,177,73,191,7,8,231,176,244,117,163,128,160,0,229,129,57,
+125,231,109,116,50,242,205,172,191,153,63,71,185,64,90,23,253,132,35,157,
+5,191,202,184,158,213,241,9,56,141,203,80,144,228,16,162,6,106,77,133,74,
+209,1,129,181,164,201,21,92,174,97,235,207,86,52,162,45,42,165,4,220,114,
+4,43,105,105,46,140,68,36,128,254,56,243,216,234,70,209,136,118,31,136,
+152,60,58,64,27,44,232,20,36,11,147,50,228,23,52,176,139,151,140,105,177,
+19,0,187,49,120,230,23,180,158,99,255,22,88,106,5,160,231,83,208,123,0,
+169,222,215,122,7,224,192,41,224,109,207,0,6,103,245,67,60,193,81,224,77,
+79,0,0,82,182,126,142,11,199,68,104,120,108,118,20,0,32,53,171,95,98,38,
+195,34,44,119,19,96,195,62,176,249,146,230,214,51,50,92,41,51,39,66,75,
+143,76,0,195,36,223,106,159,63,132,231,183,174,19,196,144,63,0,0,0,0,73,
+69,78,68,174,66,96,130};
+
+static size_t xml_res_size_14 = 759;
+static unsigned char xml_res_file_14[] = {
+137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0,
+0,115,122,122,244,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
+72,89,115,0,0,5,163,0,0,5,163,1,164,52,119,130,0,0,0,25,116,69,88,116,83,
+111,102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,101,
+46,111,114,103,155,238,60,26,0,0,2,116,73,68,65,84,88,133,197,151,75,104,
+19,97,16,128,191,217,236,174,122,16,169,151,82,188,249,194,39,136,86,105,
+21,27,3,90,60,120,21,196,199,177,55,241,110,250,72,19,26,209,90,69,177,
+136,96,15,30,60,8,245,224,81,16,193,90,65,69,91,8,72,75,209,131,32,52,69,
+4,123,176,180,110,154,29,15,33,193,184,221,60,54,15,7,254,203,254,243,248,
+152,153,127,254,127,69,85,9,42,18,159,222,142,145,109,209,254,195,31,130,
+250,48,130,5,126,187,89,18,83,119,16,119,6,149,35,65,131,3,152,213,5,158,
+177,49,150,47,35,86,31,104,75,238,171,86,229,35,48,128,36,166,206,34,122,
+29,101,107,241,134,17,106,40,128,196,167,59,16,247,54,208,185,182,70,109,
+25,16,191,38,148,107,239,91,201,132,134,17,46,1,82,194,71,26,228,123,69,
+209,84,135,52,214,254,180,36,128,140,143,135,72,181,94,193,48,99,152,246,
+166,138,28,87,46,14,112,70,7,218,95,172,9,32,253,111,194,184,171,163,40,
+251,0,48,237,220,170,175,44,161,198,73,141,29,124,87,0,144,190,201,54,212,
+29,65,245,188,71,189,49,16,63,81,186,52,214,254,73,136,190,186,8,122,31,
+101,163,175,122,99,32,210,24,238,49,3,139,103,40,15,129,140,175,234,170,
+147,91,245,149,54,92,227,81,161,7,164,119,114,15,100,71,81,34,190,38,117,
+207,132,164,188,167,160,119,226,28,232,8,202,150,198,67,72,202,115,23,104,
+50,252,4,75,118,33,220,34,119,108,138,165,206,229,240,29,68,0,50,240,122,
+55,89,247,46,202,41,207,102,33,19,114,3,205,60,240,26,155,47,225,159,177,
+237,85,74,149,28,163,154,232,154,5,186,165,119,226,52,48,140,234,254,194,
+102,62,11,150,245,67,7,58,190,122,92,39,62,250,55,245,95,82,209,117,172,
+201,240,115,236,240,1,68,123,16,153,47,130,112,86,130,63,40,42,5,0,208,
+24,174,38,35,99,56,191,119,98,24,113,132,95,0,184,154,109,10,64,1,228,102,
+247,146,14,117,13,98,201,14,96,12,113,107,234,200,192,87,169,14,134,23,
+128,30,137,7,123,85,229,165,38,99,200,149,230,191,2,212,42,85,151,64,238,
+125,89,199,252,183,189,101,21,237,13,235,9,149,119,95,125,15,44,164,183,
+33,50,85,86,47,179,2,90,126,108,55,182,4,21,140,237,198,247,64,25,136,230,
+52,161,47,132,46,54,239,20,120,32,228,51,161,204,133,154,222,244,129,32,
+0,76,123,14,147,136,70,59,211,205,159,3,217,204,28,206,114,68,163,135,210,
+208,236,65,36,50,139,197,9,29,58,158,206,127,170,190,4,182,177,136,147,
+125,92,181,157,226,96,91,87,53,118,180,232,47,234,15,114,76,236,98,147,
+84,227,24,0,0,0,0,73,69,78,68,174,66,96,130};
+
+static size_t xml_res_size_15 = 1741;
+static unsigned char xml_res_file_15[] = {
+60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101,
+110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101,
+115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58,
+47,47,119,119,119,46,119,120,119,105,100,103,101,116,115,46,111,114,103,
+47,119,120,120,114,99,34,62,10,32,32,60,33,45,45,32,72,97,110,100,108,101,
+114,32,71,101,110,101,114,97,116,105,111,110,32,105,115,32,79,78,32,45,
+45,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,
+120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,99,111,112,121,51,
+50,34,62,67,111,110,116,114,111,108,69,100,105,116,111,114,66,105,116,109,
+97,112,115,46,99,112,112,36,100,97,116,97,95,105,109,97,103,101,115,95,
+114,105,98,98,111,110,95,99,111,112,121,51,50,46,112,110,103,60,47,111,
+98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,
+115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,99,116,
+114,108,69,100,105,116,111,114,49,50,56,34,62,67,111,110,116,114,111,108,
+69,100,105,116,111,114,66,105,116,109,97,112,115,46,99,112,112,36,100,97,
+116,97,95,105,109,97,103,101,115,95,99,116,114,108,69,100,105,116,111,114,
+49,50,56,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,
+98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,
+112,34,32,110,97,109,101,61,34,99,116,114,108,69,100,105,116,111,114,49,
+54,34,62,67,111,110,116,114,111,108,69,100,105,116,111,114,66,105,116,109,
+97,112,115,46,99,112,112,36,100,97,116,97,95,105,109,97,103,101,115,95,
+99,116,114,108,69,100,105,116,111,114,49,54,46,112,110,103,60,47,111,98,
+106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,
+61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,99,116,114,
+108,69,100,105,116,111,114,50,53,54,34,62,67,111,110,116,114,111,108,69,
+100,105,116,111,114,66,105,116,109,97,112,115,46,99,112,112,36,100,97,116,
+97,95,105,109,97,103,101,115,95,99,116,114,108,69,100,105,116,111,114,50,
+53,54,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,
+106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,
+34,32,110,97,109,101,61,34,99,116,114,108,69,100,105,116,111,114,51,50,
+34,62,67,111,110,116,114,111,108,69,100,105,116,111,114,66,105,116,109,
+97,112,115,46,99,112,112,36,100,97,116,97,95,105,109,97,103,101,115,95,
+99,116,114,108,69,100,105,116,111,114,51,50,46,112,110,103,60,47,111,98,
+106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,
+61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,99,116,114,
+108,69,100,105,116,111,114,54,52,34,62,67,111,110,116,114,111,108,69,100,
+105,116,111,114,66,105,116,109,97,112,115,46,99,112,112,36,100,97,116,97,
+95,105,109,97,103,101,115,95,99,116,114,108,69,100,105,116,111,114,54,52,
+46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,
+99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,
+97,109,101,61,34,100,101,108,101,116,101,51,50,34,62,67,111,110,116,114,
+111,108,69,100,105,116,111,114,66,105,116,109,97,112,115,46,99,112,112,
+36,100,97,116,97,95,105,109,97,103,101,115,95,114,105,98,98,111,110,95,
+100,101,108,101,116,101,51,50,46,112,110,103,60,47,111,98,106,101,99,116,
+62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,
+66,105,116,109,97,112,34,32,110,97,109,101,61,34,100,114,97,103,51,50,34,
+62,67,111,110,116,114,111,108,69,100,105,116,111,114,66,105,116,109,97,
+112,115,46,99,112,112,36,100,97,116,97,95,105,109,97,103,101,115,95,114,
+105,98,98,111,110,95,100,114,97,103,51,50,46,112,110,103,60,47,111,98,106,
+101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,
+34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,101,120,112,
+51,50,34,62,67,111,110,116,114,111,108,69,100,105,116,111,114,66,105,116,
+109,97,112,115,46,99,112,112,36,100,97,116,97,95,105,109,97,103,101,115,
+95,114,105,98,98,111,110,95,101,120,112,51,50,46,112,110,103,60,47,111,
+98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,
+115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,105,
+109,112,51,50,34,62,67,111,110,116,114,111,108,69,100,105,116,111,114,66,
+105,116,109,97,112,115,46,99,112,112,36,100,97,116,97,95,105,109,97,103,
+101,115,95,114,105,98,98,111,110,95,105,109,112,51,50,46,112,110,103,60,
+47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,
+97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,
+34,109,111,118,101,51,50,34,62,67,111,110,116,114,111,108,69,100,105,116,
+111,114,66,105,116,109,97,112,115,46,99,112,112,36,100,97,116,97,95,105,
+109,97,103,101,115,95,114,105,98,98,111,110,95,109,111,118,101,51,50,46,
+112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,
+116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,
+97,109,101,61,34,110,101,119,51,50,34,62,67,111,110,116,114,111,108,69,
+100,105,116,111,114,66,105,116,109,97,112,115,46,99,112,112,36,100,97,116,
+97,95,105,109,97,103,101,115,95,114,105,98,98,111,110,95,110,101,119,51,
+50,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,
+101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,
+32,110,97,109,101,61,34,112,97,115,116,101,51,50,34,62,67,111,110,116,114,
+111,108,69,100,105,116,111,114,66,105,116,109,97,112,115,46,99,112,112,
+36,100,97,116,97,95,105,109,97,103,101,115,95,114,105,98,98,111,110,95,
+112,97,115,116,101,51,50,46,112,110,103,60,47,111,98,106,101,99,116,62,
+10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,
+105,116,109,97,112,34,32,110,97,109,101,61,34,114,101,100,111,51,50,34,
+62,67,111,110,116,114,111,108,69,100,105,116,111,114,66,105,116,109,97,
+112,115,46,99,112,112,36,100,97,116,97,95,105,109,97,103,101,115,95,114,
+105,98,98,111,110,95,114,101,100,111,51,50,46,112,110,103,60,47,111,98,
+106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,
+61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,117,110,
+100,111,51,50,34,62,67,111,110,116,114,111,108,69,100,105,116,111,114,66,
+105,116,109,97,112,115,46,99,112,112,36,100,97,116,97,95,105,109,97,103,
+101,115,95,114,105,98,98,111,110,95,117,110,100,111,51,50,46,112,110,103,
+60,47,111,98,106,101,99,116,62,10,60,47,114,101,115,111,117,114,99,101,
+62,10};
+
+void wxC870InitBitmapResources()
+{
+
+ // Check for memory FS. If not present, load the handler:
+ {
+ wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one"));
+ wxFileSystem fsys;
+ wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file"));
+ wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file"));
+ if (f) delete f;
+ else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase);
+ }
+
+ XRC_ADD_FILE(wxT("XRC_resource/ControlEditorBitmaps.cpp$data_images_ribbon_copy32.png"), xml_res_file_0, xml_res_size_0, wxT("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/ControlEditorBitmaps.cpp$data_images_ctrlEditor128.png"), xml_res_file_1, xml_res_size_1, wxT("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/ControlEditorBitmaps.cpp$data_images_ctrlEditor16.png"), xml_res_file_2, xml_res_size_2, wxT("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/ControlEditorBitmaps.cpp$data_images_ctrlEditor256.png"), xml_res_file_3, xml_res_size_3, wxT("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/ControlEditorBitmaps.cpp$data_images_ctrlEditor32.png"), xml_res_file_4, xml_res_size_4, wxT("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/ControlEditorBitmaps.cpp$data_images_ctrlEditor64.png"), xml_res_file_5, xml_res_size_5, wxT("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/ControlEditorBitmaps.cpp$data_images_ribbon_delete32.png"), xml_res_file_6, xml_res_size_6, wxT("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/ControlEditorBitmaps.cpp$data_images_ribbon_drag32.png"), xml_res_file_7, xml_res_size_7, wxT("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/ControlEditorBitmaps.cpp$data_images_ribbon_exp32.png"), xml_res_file_8, xml_res_size_8, wxT("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/ControlEditorBitmaps.cpp$data_images_ribbon_imp32.png"), xml_res_file_9, xml_res_size_9, wxT("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/ControlEditorBitmaps.cpp$data_images_ribbon_move32.png"), xml_res_file_10, xml_res_size_10, wxT("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/ControlEditorBitmaps.cpp$data_images_ribbon_new32.png"), xml_res_file_11, xml_res_size_11, wxT("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/ControlEditorBitmaps.cpp$data_images_ribbon_paste32.png"), xml_res_file_12, xml_res_size_12, wxT("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/ControlEditorBitmaps.cpp$data_images_ribbon_redo32.png"), xml_res_file_13, xml_res_size_13, wxT("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/ControlEditorBitmaps.cpp$data_images_ribbon_undo32.png"), xml_res_file_14, xml_res_size_14, wxT("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/ControlEditorBitmaps.cpp$C__Users_NDSE-69_Documents_GitHub_PSP_Project_ControlEditorBitmaps.xrc"), xml_res_file_15, xml_res_size_15, wxT("text/xml"));
+ wxXmlResource::Get()->Load(wxT("memory:XRC_resource/ControlEditorBitmaps.cpp$C__Users_NDSE-69_Documents_GitHub_PSP_Project_ControlEditorBitmaps.xrc"));
+}
diff --git a/Project/base/DataReportBase.cpp b/Project/base/DataReportBase.cpp
new file mode 100644
index 0000000..0e14d38
--- /dev/null
+++ b/Project/base/DataReportBase.cpp
@@ -0,0 +1,277 @@
+//////////////////////////////////////////////////////////////////////
+// This file was auto-generated by codelite's wxCrafter Plugin
+// wxCrafter project file: DataReport.wxcp
+// Do not modify this file by hand!
+//////////////////////////////////////////////////////////////////////
+
+#include "DataReportBase.h"
+
+
+// Declare the bitmap loading function
+extern void wxC6A63InitBitmapResources();
+
+static bool bBitmapLoaded = false;
+
+
+DataReportBase::DataReportBase(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style)
+ : wxFrame(parent, id, title, pos, size, style)
+{
+ if ( !bBitmapLoaded ) {
+ // We need to initialise the default bitmap handler
+ wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler);
+ wxC6A63InitBitmapResources();
+ bBitmapLoaded = true;
+ }
+ // Set icon(s) to the application/dialog
+ wxIconBundle app_icons;
+ {
+ wxBitmap iconBmp = wxXmlResource::Get()->LoadBitmap(wxT("chart16"));
+ wxIcon icn;
+ icn.CopyFromBitmap(iconBmp);
+ app_icons.AddIcon( icn );
+ }
+ {
+ wxBitmap iconBmp = wxXmlResource::Get()->LoadBitmap(wxT("chart32"));
+ wxIcon icn;
+ icn.CopyFromBitmap(iconBmp);
+ app_icons.AddIcon( icn );
+ }
+ {
+ wxBitmap iconBmp = wxXmlResource::Get()->LoadBitmap(wxT("chart64"));
+ wxIcon icn;
+ icn.CopyFromBitmap(iconBmp);
+ app_icons.AddIcon( icn );
+ }
+ {
+ wxBitmap iconBmp = wxXmlResource::Get()->LoadBitmap(wxT("chart128"));
+ wxIcon icn;
+ icn.CopyFromBitmap(iconBmp);
+ app_icons.AddIcon( icn );
+ }
+ {
+ wxBitmap iconBmp = wxXmlResource::Get()->LoadBitmap(wxT("chart256"));
+ wxIcon icn;
+ icn.CopyFromBitmap(iconBmp);
+ app_icons.AddIcon( icn );
+ }
+ SetIcons( app_icons );
+
+
+ wxBoxSizer* boxSizerLvl1_1 = new wxBoxSizer(wxVERTICAL);
+ this->SetSizer(boxSizerLvl1_1);
+
+ wxBoxSizer* boxSizerLvl2_1 = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl1_1->Add(boxSizerLvl2_1, 1, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_notebookDataReport = new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), wxBK_DEFAULT);
+ m_notebookDataReport->SetName(wxT("m_notebookDataReport"));
+
+ boxSizerLvl2_1->Add(m_notebookDataReport, 1, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_panelPowerFlowData = new wxPanel(m_notebookDataReport, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebookDataReport, wxSize(-1,-1)), wxTAB_TRAVERSAL);
+ m_notebookDataReport->AddPage(m_panelPowerFlowData, _("Power flow data"), false);
+
+ wxBoxSizer* boxSizerLvl3_1 = new wxBoxSizer(wxVERTICAL);
+ m_panelPowerFlowData->SetSizer(boxSizerLvl3_1);
+
+ m_notebookPowerFlow = new wxNotebook(m_panelPowerFlowData, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelPowerFlowData, wxSize(-1,-1)), wxBK_LEFT|wxBK_DEFAULT);
+ m_notebookPowerFlow->SetName(wxT("m_notebookPowerFlow"));
+
+ boxSizerLvl3_1->Add(m_notebookPowerFlow, 1, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_panelPowerFlow = new wxPanel(m_notebookPowerFlow, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebookPowerFlow, wxSize(-1,-1)), wxTAB_TRAVERSAL);
+ m_notebookPowerFlow->AddPage(m_panelPowerFlow, _("Power flow"), false);
+
+ wxBoxSizer* boxSizerLvl4_1 = new wxBoxSizer(wxVERTICAL);
+ m_panelPowerFlow->SetSizer(boxSizerLvl4_1);
+
+ m_gridPowerFlow = new wxGrid(m_panelPowerFlow, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelPowerFlow, wxSize(-1,-1)), wxWANTS_CHARS);
+ m_gridPowerFlow->CreateGrid(0, 0);
+ m_gridPowerFlow->SetRowLabelAlignment(wxALIGN_RIGHT, wxALIGN_CENTRE);
+ m_gridPowerFlow->SetColLabelAlignment(wxALIGN_CENTRE, wxALIGN_CENTRE);
+ #if wxVERSION_NUMBER >= 2904
+ m_gridPowerFlow->UseNativeColHeader(true);
+ #endif
+ m_gridPowerFlow->EnableEditing(true);
+
+ boxSizerLvl4_1->Add(m_gridPowerFlow, 1, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_panelPFBuses = new wxPanel(m_notebookPowerFlow, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebookPowerFlow, wxSize(-1,-1)), wxTAB_TRAVERSAL);
+ m_notebookPowerFlow->AddPage(m_panelPFBuses, _("Buses"), false);
+
+ wxBoxSizer* boxSizerLvl4_2 = new wxBoxSizer(wxVERTICAL);
+ m_panelPFBuses->SetSizer(boxSizerLvl4_2);
+
+ m_gridPFBuses = new wxGrid(m_panelPFBuses, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelPFBuses, wxSize(-1,-1)), wxWANTS_CHARS);
+ m_gridPFBuses->CreateGrid(0, 0);
+ m_gridPFBuses->SetRowLabelAlignment(wxALIGN_RIGHT, wxALIGN_CENTRE);
+ m_gridPFBuses->SetColLabelAlignment(wxALIGN_CENTRE, wxALIGN_CENTRE);
+ #if wxVERSION_NUMBER >= 2904
+ m_gridPFBuses->UseNativeColHeader(true);
+ #endif
+ m_gridPFBuses->EnableEditing(true);
+
+ boxSizerLvl4_2->Add(m_gridPFBuses, 1, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_panelPFBranches = new wxPanel(m_notebookPowerFlow, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebookPowerFlow, wxSize(-1,-1)), wxTAB_TRAVERSAL);
+ m_notebookPowerFlow->AddPage(m_panelPFBranches, _("Branches"), false);
+
+ wxBoxSizer* boxSizerLvl4_3 = new wxBoxSizer(wxVERTICAL);
+ m_panelPFBranches->SetSizer(boxSizerLvl4_3);
+
+ m_gridPFBranches = new wxGrid(m_panelPFBranches, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelPFBranches, wxSize(-1,-1)), wxWANTS_CHARS);
+ m_gridPFBranches->CreateGrid(0, 0);
+ m_gridPFBranches->SetRowLabelAlignment(wxALIGN_RIGHT, wxALIGN_CENTRE);
+ m_gridPFBranches->SetColLabelAlignment(wxALIGN_CENTRE, wxALIGN_CENTRE);
+ #if wxVERSION_NUMBER >= 2904
+ m_gridPFBranches->UseNativeColHeader(true);
+ #endif
+ m_gridPFBranches->EnableEditing(true);
+
+ boxSizerLvl4_3->Add(m_gridPFBranches, 1, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_panelFaultData = new wxPanel(m_notebookDataReport, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebookDataReport, wxSize(-1,-1)), wxTAB_TRAVERSAL);
+ m_notebookDataReport->AddPage(m_panelFaultData, _("Fault data"), false);
+
+ wxBoxSizer* boxSizerLvl3_2 = new wxBoxSizer(wxVERTICAL);
+ m_panelFaultData->SetSizer(boxSizerLvl3_2);
+
+ m_notebookFault = new wxNotebook(m_panelFaultData, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelFaultData, wxSize(-1,-1)), wxBK_LEFT|wxBK_DEFAULT);
+ m_notebookFault->SetName(wxT("m_notebookFault"));
+
+ boxSizerLvl3_2->Add(m_notebookFault, 1, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_panelFault = new wxPanel(m_notebookFault, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebookFault, wxSize(-1,-1)), wxTAB_TRAVERSAL);
+ m_notebookFault->AddPage(m_panelFault, _("Fault"), false);
+
+ wxBoxSizer* boxSizerLvl4_4 = new wxBoxSizer(wxVERTICAL);
+ m_panelFault->SetSizer(boxSizerLvl4_4);
+
+ m_gridFault = new wxGrid(m_panelFault, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), wxWANTS_CHARS);
+ m_gridFault->CreateGrid(0, 0);
+ m_gridFault->SetRowLabelAlignment(wxALIGN_RIGHT, wxALIGN_CENTRE);
+ m_gridFault->SetColLabelAlignment(wxALIGN_CENTRE, wxALIGN_CENTRE);
+ #if wxVERSION_NUMBER >= 2904
+ m_gridFault->UseNativeColHeader(true);
+ #endif
+ m_gridFault->EnableEditing(true);
+
+ boxSizerLvl4_4->Add(m_gridFault, 1, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_panelFaultBuses = new wxPanel(m_notebookFault, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebookFault, wxSize(-1,-1)), wxTAB_TRAVERSAL);
+ m_notebookFault->AddPage(m_panelFaultBuses, _("Buses"), false);
+
+ wxBoxSizer* boxSizerLvl4_5 = new wxBoxSizer(wxVERTICAL);
+ m_panelFaultBuses->SetSizer(boxSizerLvl4_5);
+
+ m_gridFaultBuses = new wxGrid(m_panelFaultBuses, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelFaultBuses, wxSize(-1,-1)), wxWANTS_CHARS);
+ m_gridFaultBuses->CreateGrid(0, 0);
+ m_gridFaultBuses->SetRowLabelAlignment(wxALIGN_RIGHT, wxALIGN_CENTRE);
+ m_gridFaultBuses->SetColLabelAlignment(wxALIGN_CENTRE, wxALIGN_CENTRE);
+ #if wxVERSION_NUMBER >= 2904
+ m_gridFaultBuses->UseNativeColHeader(true);
+ #endif
+ m_gridFaultBuses->EnableEditing(true);
+
+ boxSizerLvl4_5->Add(m_gridFaultBuses, 1, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_panelFaultBranches = new wxPanel(m_notebookFault, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebookFault, wxSize(-1,-1)), wxTAB_TRAVERSAL);
+ m_notebookFault->AddPage(m_panelFaultBranches, _("Branches"), false);
+
+ wxBoxSizer* boxSizerLvl4_6 = new wxBoxSizer(wxVERTICAL);
+ m_panelFaultBranches->SetSizer(boxSizerLvl4_6);
+
+ m_gridFaultBranches = new wxGrid(m_panelFaultBranches, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelFaultBranches, wxSize(-1,-1)), wxWANTS_CHARS);
+ m_gridFaultBranches->CreateGrid(0, 0);
+ m_gridFaultBranches->SetRowLabelAlignment(wxALIGN_RIGHT, wxALIGN_CENTRE);
+ m_gridFaultBranches->SetColLabelAlignment(wxALIGN_CENTRE, wxALIGN_CENTRE);
+ #if wxVERSION_NUMBER >= 2904
+ m_gridFaultBranches->UseNativeColHeader(true);
+ #endif
+ m_gridFaultBranches->EnableEditing(true);
+
+ boxSizerLvl4_6->Add(m_gridFaultBranches, 1, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_panelFaultGenerators = new wxPanel(m_notebookFault, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebookFault, wxSize(-1,-1)), wxTAB_TRAVERSAL);
+ m_notebookFault->AddPage(m_panelFaultGenerators, _("Generators"), false);
+
+ wxBoxSizer* boxSizerLvl4_118 = new wxBoxSizer(wxVERTICAL);
+ m_panelFaultGenerators->SetSizer(boxSizerLvl4_118);
+
+ m_gridFaultGenerators = new wxGrid(m_panelFaultGenerators, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelFaultGenerators, wxSize(-1,-1)), wxWANTS_CHARS);
+ m_gridFaultGenerators->CreateGrid(0, 0);
+ m_gridFaultGenerators->SetRowLabelAlignment(wxALIGN_RIGHT, wxALIGN_CENTRE);
+ m_gridFaultGenerators->SetColLabelAlignment(wxALIGN_CENTRE, wxALIGN_CENTRE);
+ #if wxVERSION_NUMBER >= 2904
+ m_gridFaultGenerators->UseNativeColHeader(true);
+ #endif
+ m_gridFaultGenerators->EnableEditing(true);
+
+ boxSizerLvl4_118->Add(m_gridFaultGenerators, 1, wxEXPAND, WXC_FROM_DIP(5));
+
+
+ #if wxVERSION_NUMBER >= 2900
+ if(!wxPersistenceManager::Get().Find(m_notebookDataReport)){
+ wxPersistenceManager::Get().RegisterAndRestore(m_notebookDataReport);
+ } else {
+ wxPersistenceManager::Get().Restore(m_notebookDataReport);
+ }
+ #endif
+
+ #if wxVERSION_NUMBER >= 2900
+ if(!wxPersistenceManager::Get().Find(m_notebookPowerFlow)){
+ wxPersistenceManager::Get().RegisterAndRestore(m_notebookPowerFlow);
+ } else {
+ wxPersistenceManager::Get().Restore(m_notebookPowerFlow);
+ }
+ #endif
+
+ #if wxVERSION_NUMBER >= 2900
+ if(!wxPersistenceManager::Get().Find(m_notebookFault)){
+ wxPersistenceManager::Get().RegisterAndRestore(m_notebookFault);
+ } else {
+ wxPersistenceManager::Get().Restore(m_notebookFault);
+ }
+ #endif
+
+ SetName(wxT("DataReportBase"));
+ SetMinClientSize(wxSize(500,300));
+ SetSize(-1,-1);
+ if (GetSizer()) {
+ GetSizer()->Fit(this);
+ }
+ if(GetParent()) {
+ CentreOnParent(wxBOTH);
+ } else {
+ CentreOnScreen(wxBOTH);
+ }
+#if wxVERSION_NUMBER >= 2900
+ if(!wxPersistenceManager::Get().Find(this)) {
+ wxPersistenceManager::Get().RegisterAndRestore(this);
+ } else {
+ wxPersistenceManager::Get().Restore(this);
+ }
+#endif
+ // Connect events
+ m_gridPowerFlow->Connect(wxEVT_GRID_CELL_CHANGED, wxGridEventHandler(DataReportBase::OnPowerFlowGridChanged), NULL, this);
+ m_gridPFBuses->Connect(wxEVT_GRID_CELL_CHANGED, wxGridEventHandler(DataReportBase::OnPFBusGridChanged), NULL, this);
+ m_gridPFBranches->Connect(wxEVT_GRID_CELL_CHANGED, wxGridEventHandler(DataReportBase::OnPFBranchesGridChanged), NULL, this);
+ m_gridFault->Connect(wxEVT_GRID_CELL_CHANGED, wxGridEventHandler(DataReportBase::OnFaulrGridChanged), NULL, this);
+ m_gridFaultBuses->Connect(wxEVT_GRID_CELL_CHANGED, wxGridEventHandler(DataReportBase::OnFaultBusesGridChanged), NULL, this);
+ m_gridFaultBranches->Connect(wxEVT_GRID_CELL_CHANGED, wxGridEventHandler(DataReportBase::OnFaultBranchesGridChanged), NULL, this);
+ m_gridFaultGenerators->Connect(wxEVT_GRID_CELL_CHANGED, wxGridEventHandler(DataReportBase::OnFaultGeneratorsGridChanged), NULL, this);
+
+}
+
+DataReportBase::~DataReportBase()
+{
+ m_gridPowerFlow->Disconnect(wxEVT_GRID_CELL_CHANGED, wxGridEventHandler(DataReportBase::OnPowerFlowGridChanged), NULL, this);
+ m_gridPFBuses->Disconnect(wxEVT_GRID_CELL_CHANGED, wxGridEventHandler(DataReportBase::OnPFBusGridChanged), NULL, this);
+ m_gridPFBranches->Disconnect(wxEVT_GRID_CELL_CHANGED, wxGridEventHandler(DataReportBase::OnPFBranchesGridChanged), NULL, this);
+ m_gridFault->Disconnect(wxEVT_GRID_CELL_CHANGED, wxGridEventHandler(DataReportBase::OnFaulrGridChanged), NULL, this);
+ m_gridFaultBuses->Disconnect(wxEVT_GRID_CELL_CHANGED, wxGridEventHandler(DataReportBase::OnFaultBusesGridChanged), NULL, this);
+ m_gridFaultBranches->Disconnect(wxEVT_GRID_CELL_CHANGED, wxGridEventHandler(DataReportBase::OnFaultBranchesGridChanged), NULL, this);
+ m_gridFaultGenerators->Disconnect(wxEVT_GRID_CELL_CHANGED, wxGridEventHandler(DataReportBase::OnFaultGeneratorsGridChanged), NULL, this);
+
+}
diff --git a/Project/base/DataReportBase.h b/Project/base/DataReportBase.h
new file mode 100644
index 0000000..3e6784c
--- /dev/null
+++ b/Project/base/DataReportBase.h
@@ -0,0 +1,94 @@
+//////////////////////////////////////////////////////////////////////
+// This file was auto-generated by codelite's wxCrafter Plugin
+// wxCrafter project file: DataReport.wxcp
+// Do not modify this file by hand!
+//////////////////////////////////////////////////////////////////////
+
+#ifndef _PSP_PROJECT_DATAREPORT_BASE_CLASSES_H
+#define _PSP_PROJECT_DATAREPORT_BASE_CLASSES_H
+
+#include <wx/settings.h>
+#include <wx/xrc/xmlres.h>
+#include <wx/xrc/xh_bmp.h>
+#include <wx/frame.h>
+#include <wx/iconbndl.h>
+#include <wx/artprov.h>
+#include <wx/sizer.h>
+#include <wx/notebook.h>
+#include <wx/panel.h>
+#include <wx/imaglist.h>
+#include <wx/grid.h>
+#if wxVERSION_NUMBER >= 2900
+#include <wx/persist.h>
+#include <wx/persist/toplevel.h>
+#include <wx/persist/bookctrl.h>
+#include <wx/persist/treebook.h>
+#endif
+
+#ifdef WXC_FROM_DIP
+#undef WXC_FROM_DIP
+#endif
+#if wxVERSION_NUMBER >= 3100
+#define WXC_FROM_DIP(x) wxWindow::FromDIP(x, NULL)
+#else
+#define WXC_FROM_DIP(x) x
+#endif
+
+
+class DataReportBase : public wxFrame
+{
+protected:
+ wxNotebook* m_notebookDataReport;
+ wxPanel* m_panelPowerFlowData;
+ wxNotebook* m_notebookPowerFlow;
+ wxPanel* m_panelPowerFlow;
+ wxGrid* m_gridPowerFlow;
+ wxPanel* m_panelPFBuses;
+ wxGrid* m_gridPFBuses;
+ wxPanel* m_panelPFBranches;
+ wxGrid* m_gridPFBranches;
+ wxPanel* m_panelFaultData;
+ wxNotebook* m_notebookFault;
+ wxPanel* m_panelFault;
+ wxGrid* m_gridFault;
+ wxPanel* m_panelFaultBuses;
+ wxGrid* m_gridFaultBuses;
+ wxPanel* m_panelFaultBranches;
+ wxGrid* m_gridFaultBranches;
+ wxPanel* m_panelFaultGenerators;
+ wxGrid* m_gridFaultGenerators;
+
+protected:
+ virtual void OnPowerFlowGridChanged(wxGridEvent& event) { event.Skip(); }
+ virtual void OnPFBusGridChanged(wxGridEvent& event) { event.Skip(); }
+ virtual void OnPFBranchesGridChanged(wxGridEvent& event) { event.Skip(); }
+ virtual void OnFaulrGridChanged(wxGridEvent& event) { event.Skip(); }
+ virtual void OnFaultBusesGridChanged(wxGridEvent& event) { event.Skip(); }
+ virtual void OnFaultBranchesGridChanged(wxGridEvent& event) { event.Skip(); }
+ virtual void OnFaultGeneratorsGridChanged(wxGridEvent& event) { event.Skip(); }
+
+public:
+ wxGrid* GetGridPowerFlow() { return m_gridPowerFlow; }
+ wxPanel* GetPanelPowerFlow() { return m_panelPowerFlow; }
+ wxGrid* GetGridPFBuses() { return m_gridPFBuses; }
+ wxPanel* GetPanelPFBuses() { return m_panelPFBuses; }
+ wxGrid* GetGridPFBranches() { return m_gridPFBranches; }
+ wxPanel* GetPanelPFBranches() { return m_panelPFBranches; }
+ wxNotebook* GetNotebookPowerFlow() { return m_notebookPowerFlow; }
+ wxPanel* GetPanelPowerFlowData() { return m_panelPowerFlowData; }
+ wxGrid* GetGridFault() { return m_gridFault; }
+ wxPanel* GetPanelFault() { return m_panelFault; }
+ wxGrid* GetGridFaultBuses() { return m_gridFaultBuses; }
+ wxPanel* GetPanelFaultBuses() { return m_panelFaultBuses; }
+ wxGrid* GetGridFaultBranches() { return m_gridFaultBranches; }
+ wxPanel* GetPanelFaultBranches() { return m_panelFaultBranches; }
+ wxGrid* GetGridFaultGenerators() { return m_gridFaultGenerators; }
+ wxPanel* GetPanelFaultGenerators() { return m_panelFaultGenerators; }
+ wxNotebook* GetNotebookFault() { return m_notebookFault; }
+ wxPanel* GetPanelFaultData() { return m_panelFaultData; }
+ wxNotebook* GetNotebookDataReport() { return m_notebookDataReport; }
+ DataReportBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Data report"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_FRAME_STYLE);
+ virtual ~DataReportBase();
+};
+
+#endif
diff --git a/Project/base/DataReportBitmaps.cpp b/Project/base/DataReportBitmaps.cpp
new file mode 100644
index 0000000..5d547ad
--- /dev/null
+++ b/Project/base/DataReportBitmaps.cpp
@@ -0,0 +1,724 @@
+//
+// This file was automatically generated by wxrc, do not edit by hand.
+//
+
+#include <wx/wxprec.h>
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#include <wx/filesys.h>
+#include <wx/fs_mem.h>
+#include <wx/xrc/xmlres.h>
+#include <wx/xrc/xh_all.h>
+
+#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805
+ #define XRC_ADD_FILE(name, data, size, mime) \
+ wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime)
+#else
+ #define XRC_ADD_FILE(name, data, size, mime) \
+ wxMemoryFSHandler::AddFile(name, data, size)
+#endif
+
+static size_t xml_res_size_0 = 3278;
+static unsigned char xml_res_file_0[] = {
+137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,128,0,0,0,128,8,6,0,
+0,0,195,62,97,203,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
+72,89,115,0,0,21,211,0,0,21,211,1,251,209,60,11,0,0,0,25,116,69,88,116,
+83,111,102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,
+101,46,111,114,103,155,238,60,26,0,0,12,75,73,68,65,84,120,156,237,157,
+121,116,21,213,25,192,127,55,9,33,33,160,64,136,85,64,212,82,168,162,162,
+30,212,163,7,212,138,130,27,214,106,177,5,165,81,17,194,86,15,160,213,138,
+138,68,20,42,10,138,11,178,184,69,80,118,227,82,177,238,90,197,189,173,
+82,80,4,142,82,203,81,34,88,1,129,188,240,150,220,254,17,34,9,121,239,101,
+238,125,119,150,100,238,239,63,242,230,155,249,14,243,155,111,230,125,247,
+206,187,130,73,31,74,178,178,176,132,147,44,98,17,168,174,246,59,15,139,
+79,100,33,37,86,130,240,82,83,251,173,4,161,101,223,205,223,74,16,74,234,
+63,253,89,9,66,71,78,131,191,236,149,160,251,193,237,24,126,226,65,142,
+118,178,112,245,15,124,82,81,105,58,55,139,7,52,20,0,64,74,58,231,199,25,
+127,114,17,217,217,217,141,238,100,85,69,196,10,208,68,73,221,0,144,146,
+221,187,119,147,72,36,60,76,199,226,53,105,59,64,210,74,16,40,218,178,147,
+92,98,70,247,217,104,11,208,74,16,28,238,22,247,179,65,92,194,88,177,152,
+150,68,141,236,211,81,15,216,74,224,63,135,179,153,98,86,208,133,10,102,
+50,131,117,98,32,37,60,67,14,153,157,19,199,131,0,86,2,127,41,21,243,234,
+149,255,195,216,204,92,49,149,245,226,18,74,120,134,108,244,190,186,43,
+141,2,213,74,16,143,199,181,14,102,209,163,27,155,184,156,191,37,253,236,
+8,190,101,174,152,202,106,49,136,98,86,40,139,160,60,12,40,165,164,178,
+178,210,74,224,33,147,196,188,70,75,253,81,108,228,9,81,202,191,247,138,
+144,229,80,4,173,113,96,43,129,119,28,197,70,6,241,138,227,237,123,236,
+21,225,53,49,198,209,246,218,19,1,172,4,222,80,42,230,105,221,223,223,164,
+151,163,237,50,154,9,82,43,129,180,15,134,174,112,52,95,49,144,55,148,227,
+254,199,129,220,39,7,59,218,54,227,169,64,82,74,226,123,34,80,109,37,48,
+205,100,230,56,190,151,215,101,6,67,248,145,2,71,219,26,154,11,38,33,86,
+101,37,48,200,9,172,227,98,241,150,114,220,247,180,229,65,249,59,199,219,
+155,155,12,40,173,4,38,185,77,204,69,32,149,227,166,201,43,216,73,43,199,
+219,155,157,13,106,37,48,66,47,214,50,128,149,202,113,21,20,242,16,3,149,
+98,204,79,7,182,18,100,204,237,98,142,246,213,95,73,158,82,140,59,243,193,
+173,4,218,156,202,106,206,227,61,229,184,205,116,96,46,151,40,199,185,247,
+66,128,149,64,139,201,204,209,138,155,194,80,34,180,84,142,115,247,141,
+16,43,129,18,189,89,197,217,226,35,229,184,77,252,140,71,228,69,90,199,
+116,255,149,32,43,129,99,238,96,182,86,220,20,134,178,135,92,173,88,111,
+222,9,179,18,52,74,95,241,49,191,18,255,84,142,251,154,67,120,92,94,168,
+125,92,239,94,10,148,18,162,182,99,152,138,73,242,97,173,184,201,114,24,
+81,90,104,31,215,251,183,66,173,4,13,56,135,247,57,93,124,162,28,247,37,
+157,153,207,5,25,29,219,159,215,130,173,4,245,40,69,255,234,143,211,248,
+180,253,116,248,247,94,120,52,2,9,59,148,124,1,43,57,69,172,86,142,219,
+192,161,44,228,220,140,143,239,239,15,3,196,170,66,47,193,36,161,119,245,
+79,146,35,50,190,250,193,111,1,32,212,18,252,70,188,197,73,124,174,28,247,
+57,71,176,132,126,70,114,240,95,0,8,165,4,2,201,36,205,123,127,169,44,161,
+218,208,169,11,134,0,16,58,9,126,43,222,224,120,214,43,199,173,161,43,79,
+211,215,88,30,193,17,0,66,35,65,22,213,76,228,81,173,216,137,140,52,118,
+245,215,228,18,52,66,32,193,239,121,149,158,108,80,142,251,23,71,242,156,
+60,195,104,46,193,19,0,154,181,4,217,84,51,81,232,93,253,147,40,65,34,140,
+230,147,252,247,1,130,64,172,10,200,131,236,250,41,150,240,12,125,196,167,
+188,207,177,188,39,143,99,13,93,73,4,212,227,100,92,198,75,28,197,70,229,
+184,143,228,209,188,192,105,198,243,9,174,0,80,79,130,150,68,121,80,220,
+205,48,158,5,224,15,188,8,2,118,147,207,167,116,103,165,60,158,119,57,142,
+247,57,150,239,105,235,111,222,41,200,166,154,155,197,99,90,177,183,50,
+194,112,54,53,4,91,0,128,88,21,93,216,78,121,206,77,244,98,109,131,143,
+11,136,208,155,85,244,22,171,0,144,8,214,114,56,15,113,41,179,228,165,94,
+103,155,150,98,86,240,75,190,86,142,123,79,246,228,101,78,117,33,163,160,
+62,3,212,161,143,248,148,215,227,67,233,153,104,120,242,147,33,144,244,
+96,35,211,120,128,131,248,193,229,236,156,211,130,56,183,104,222,251,111,
+101,164,225,108,246,17,88,1,4,146,113,98,17,207,113,29,69,108,163,50,6,
+49,133,241,163,2,34,252,137,39,221,75,80,145,171,248,43,63,231,27,229,184,
+149,242,120,94,231,36,23,50,170,33,144,2,180,161,146,5,226,86,74,169,255,
+94,156,170,4,163,197,242,64,84,129,150,68,181,239,253,55,139,209,134,179,
+169,79,224,4,232,198,38,94,21,163,83,206,139,87,145,160,128,8,215,137,167,
+12,102,167,199,48,241,28,93,168,80,142,123,77,158,204,219,242,4,23,50,218,
+71,160,4,56,159,119,121,93,140,226,200,70,30,148,84,36,24,195,50,95,171,
+64,30,81,110,164,76,43,118,50,195,204,38,147,132,64,8,144,77,53,165,204,
+227,41,49,145,3,216,237,40,198,169,4,126,87,129,17,162,156,206,108,81,142,
+123,73,158,202,59,184,123,245,67,0,4,40,100,7,79,115,3,227,196,34,229,183,
+97,156,74,224,87,21,200,35,202,245,204,215,138,45,165,196,112,54,201,241,
+85,128,19,89,203,59,98,184,214,108,216,90,156,72,224,215,55,130,49,98,41,
+157,216,170,28,247,130,236,195,135,28,227,66,70,13,241,77,128,65,188,204,
+11,98,60,29,53,254,131,246,199,137,4,94,127,35,40,32,194,13,44,80,142,147,
+8,38,51,220,133,140,146,227,185,0,45,137,114,191,152,206,28,113,39,121,
+236,49,182,223,198,36,240,250,89,224,26,150,104,9,247,44,103,240,49,61,
+92,200,40,57,158,10,208,137,45,188,200,88,138,89,225,202,254,43,99,16,77,
+35,129,87,207,2,173,169,228,90,177,80,57,78,34,184,77,122,115,239,175,197,
+51,1,206,228,31,188,45,74,232,37,190,48,178,191,84,195,162,145,52,18,120,
+85,5,198,177,136,34,182,41,199,45,231,44,86,209,205,133,140,82,227,186,
+0,181,45,221,229,226,207,20,178,195,200,62,215,208,149,115,121,128,72,138,
+119,225,211,73,224,118,21,56,144,93,140,215,184,250,171,201,226,118,121,
+181,11,25,165,199,85,1,90,19,161,140,219,26,180,116,51,97,25,103,211,79,
+206,226,67,121,116,218,119,226,82,73,80,64,132,107,81,63,65,78,25,207,66,
+218,243,163,114,220,98,250,179,154,95,184,144,81,122,92,19,160,27,155,120,
+77,140,226,34,241,119,35,251,139,147,77,41,37,12,151,55,255,244,30,252,
+125,12,74,89,5,32,181,4,127,20,75,93,169,2,109,217,201,88,177,88,57,46,
+225,211,213,15,46,9,224,180,165,235,148,173,180,227,98,121,55,51,247,251,
+237,187,239,104,79,25,3,210,198,38,147,192,173,42,112,189,88,64,91,118,
+42,199,61,201,249,124,193,225,198,243,113,130,81,1,116,90,186,141,241,129,
+60,150,211,228,195,41,219,162,51,229,224,180,85,0,146,75,96,186,10,20,178,
+131,107,88,162,28,151,32,139,169,242,42,99,121,168,98,76,128,76,90,186,
+169,40,99,0,191,102,6,21,20,166,220,198,73,21,128,134,18,20,16,97,188,88,
+100,34,77,0,110,16,243,105,131,250,186,73,101,92,200,122,186,24,203,67,
+21,35,2,116,97,51,111,137,145,25,181,116,235,82,69,46,163,229,141,140,147,
+215,57,122,247,221,73,21,128,134,18,232,54,107,246,167,136,109,140,102,
+185,114,92,140,28,166,200,161,25,31,63,19,140,8,112,189,152,207,161,26,
+227,221,201,248,138,78,156,37,31,98,33,231,56,142,113,90,5,160,190,4,166,
+170,192,4,202,104,173,113,245,63,202,69,108,164,99,198,199,207,4,35,2,228,
+102,184,108,73,45,175,200,83,232,43,103,243,25,93,149,99,157,86,1,168,47,
+65,166,85,224,16,190,103,132,40,87,142,139,210,130,105,242,10,237,227,154,
+194,247,225,96,168,233,234,205,148,131,25,196,20,182,211,70,107,31,42,85,
+0,246,73,144,105,21,152,64,25,173,168,82,142,155,199,197,252,135,67,180,
+143,107,10,223,5,216,73,43,134,48,153,82,50,127,227,117,166,28,76,149,194,
+111,229,213,74,160,91,5,58,178,149,97,226,89,229,184,42,114,185,83,94,169,
+28,231,6,190,10,176,134,174,156,46,31,102,133,236,99,100,127,223,209,158,
+50,233,188,10,64,141,4,45,18,122,85,96,162,120,148,124,141,17,205,217,114,
+32,223,80,164,28,231,6,190,9,176,132,126,244,147,179,140,63,4,205,68,173,
+10,64,141,4,37,137,165,116,96,187,227,152,195,216,204,80,158,87,77,143,
+74,242,184,139,98,229,56,183,240,92,128,218,150,238,8,121,147,214,79,155,
+54,70,5,133,202,85,0,32,59,86,201,216,132,243,9,28,183,136,199,180,86,241,
+156,37,47,77,219,215,240,26,79,5,72,213,210,53,205,189,92,166,92,5,0,174,
+142,47,165,40,209,248,12,165,218,69,28,85,217,77,62,211,25,162,28,231,38,
+158,9,208,88,75,215,36,58,207,2,0,173,168,98,84,236,73,72,164,191,178,247,
+95,196,209,41,247,49,136,45,180,87,142,115,19,79,4,112,210,210,53,141,110,
+21,24,41,202,233,16,251,14,226,201,215,230,77,183,136,99,58,118,209,202,
+245,202,167,131,171,2,168,182,116,77,162,218,23,168,165,21,85,140,102,89,
+141,0,73,36,112,178,136,99,50,238,225,50,182,210,78,57,206,109,92,19,64,
+167,165,107,26,213,190,64,45,35,69,121,205,55,130,253,36,232,206,127,149,
+22,113,172,101,7,173,3,121,245,131,75,2,100,210,210,53,73,5,133,218,85,
+96,148,216,59,184,83,71,130,219,197,108,173,153,77,51,184,156,109,28,160,
+28,231,5,70,5,48,209,210,53,141,118,21,160,124,95,95,32,30,165,71,124,157,
+235,139,56,250,129,49,1,76,182,116,77,162,91,5,10,136,236,171,2,192,132,
+248,92,98,113,245,171,127,186,116,190,136,163,31,24,57,83,203,101,95,78,
+147,143,24,107,233,154,102,166,28,68,149,198,138,26,35,40,167,61,63,210,
+147,13,12,16,43,169,138,195,30,133,31,47,219,74,59,30,196,249,34,142,126,
+96,68,128,87,57,37,16,35,91,169,168,160,3,79,104,244,5,90,19,97,140,88,
+202,77,226,241,159,102,57,169,72,112,151,44,102,151,194,34,142,126,16,156,
+90,237,50,247,50,88,171,10,140,97,57,231,240,65,189,191,57,145,64,103,17,
+71,63,8,141,0,186,85,32,143,61,73,231,56,54,38,129,206,34,142,126,16,26,
+1,64,191,59,152,138,84,18,232,46,226,232,7,161,18,160,130,66,158,144,153,
+173,177,179,63,201,36,208,93,196,209,15,66,37,0,152,175,2,80,95,130,76,
+22,113,244,131,208,9,224,70,21,128,125,18,100,178,136,163,31,132,78,0,112,
+167,10,0,108,136,31,204,227,177,204,23,114,242,146,80,10,80,65,33,243,57,
+223,248,126,167,201,98,162,241,234,148,67,201,65,36,148,2,0,220,35,47,55,
+90,5,54,210,145,197,244,175,249,71,138,161,228,32,18,90,1,76,87,129,105,
+178,184,254,50,110,77,68,130,208,10,0,230,170,192,151,116,98,57,103,55,
+252,160,9,72,16,106,1,76,85,129,191,200,171,82,47,226,24,112,9,66,45,0,
+100,94,5,190,224,48,202,57,51,253,70,1,150,32,244,2,84,80,200,2,121,158,
+118,252,157,242,74,103,243,31,2,42,65,232,5,128,154,190,128,78,243,230,
+51,186,242,60,167,59,15,8,160,4,86,0,224,91,138,152,47,213,159,5,166,226,
+240,234,175,75,192,36,176,2,236,101,6,67,148,158,5,86,209,157,23,101,111,
+189,131,5,72,130,224,175,26,230,17,21,20,114,164,92,70,91,118,57,218,126,
+7,173,51,91,196,177,86,128,28,127,199,13,172,0,117,216,78,27,111,103,51,
+7,64,2,123,11,240,27,159,111,7,86,128,32,224,163,4,86,128,160,224,147,4,
+86,128,32,17,143,66,204,220,34,26,78,176,2,4,141,68,204,83,9,172,0,65,196,
+67,9,172,0,65,197,35,9,172,0,65,198,3,9,172,0,65,199,101,9,172,0,77,1,23,
+37,176,2,52,21,92,146,192,10,208,148,112,65,2,43,64,83,195,176,4,41,71,
+3,115,178,156,15,117,182,201,205,166,168,192,14,44,122,135,132,236,4,162,
+133,179,249,11,219,171,18,68,19,201,151,241,73,121,214,142,57,40,223,113,
+58,211,251,119,102,122,255,206,142,183,183,152,33,55,55,151,252,252,198,
+207,211,185,79,173,231,229,47,147,175,101,104,111,1,77,152,104,52,74,36,
+18,201,104,31,86,128,38,78,166,18,88,1,154,1,209,104,148,202,74,245,69,
+171,192,10,208,108,136,197,98,90,18,88,1,154,17,58,18,88,1,154,25,170,18,
+88,1,154,33,42,18,88,1,154,41,78,37,176,2,52,99,156,72,144,178,19,248,252,
+186,29,180,207,115,214,222,149,134,86,11,183,184,195,87,91,146,119,1,1,
+4,19,222,180,103,47,12,100,231,64,139,134,63,93,107,111,1,97,33,17,135,
+88,195,53,142,173,0,97,34,137,4,86,128,176,177,159,4,86,128,48,82,71,2,
+59,139,35,172,36,226,64,21,255,7,181,153,56,45,184,129,88,206,0,0,0,0,73,
+69,78,68,174,66,96,130};
+
+static size_t xml_res_size_1 = 560;
+static unsigned char xml_res_file_1[] = {
+137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
+0,31,243,255,97,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
+72,89,115,0,0,2,186,0,0,2,186,1,219,5,165,194,0,0,0,25,116,69,88,116,83,
+111,102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,101,
+46,111,114,103,155,238,60,26,0,0,1,173,73,68,65,84,56,141,149,147,63,72,
+28,65,28,133,191,209,185,91,148,104,226,33,130,160,32,92,115,136,141,145,
+112,130,85,42,17,141,40,241,76,229,191,78,33,54,169,44,130,70,16,212,11,
+8,130,162,156,26,8,4,133,96,170,84,73,8,136,49,218,120,133,34,8,162,22,
+34,68,137,133,38,81,55,187,115,55,22,114,171,203,90,172,175,154,249,189,
+121,31,143,97,70,24,111,86,117,121,241,67,182,79,76,76,149,230,190,202,
+42,123,32,88,235,8,19,46,48,124,135,6,196,12,79,89,191,6,0,152,166,137,
+86,150,175,112,5,123,244,51,75,139,248,126,3,0,72,219,22,248,128,12,137,
+41,108,36,195,186,203,13,0,174,1,202,34,136,125,103,184,138,109,26,89,38,
+161,155,57,164,232,14,0,80,157,74,178,147,122,198,174,104,38,143,11,151,
+55,40,18,152,4,25,166,211,153,185,0,221,124,226,51,175,200,86,151,148,168,
+67,94,138,143,142,23,101,139,122,86,152,162,133,95,20,122,1,175,197,28,
+35,98,130,36,17,158,232,247,252,180,35,244,170,15,78,139,65,145,224,156,
+28,226,186,221,213,202,1,52,240,131,25,221,68,163,30,227,136,66,70,69,39,
+185,234,140,158,212,2,53,108,80,203,26,147,196,56,38,228,2,200,204,162,
+143,94,166,41,119,140,175,58,74,146,8,221,106,158,58,86,249,43,115,121,
+171,219,60,23,235,52,88,210,85,30,51,78,7,33,254,80,169,54,25,179,99,156,
+240,200,115,70,122,38,183,244,133,106,190,17,165,148,35,198,213,115,192,
+2,25,244,15,0,136,233,145,155,77,230,161,221,130,200,236,44,1,64,73,94,
+128,255,62,63,147,144,32,2,6,7,103,22,178,52,63,0,192,98,107,216,87,56,
+35,195,48,120,252,110,23,185,114,240,143,23,139,251,252,190,176,81,105,
+125,47,200,254,105,154,43,206,33,140,175,150,245,39,228,0,0,0,0,73,69,78,
+68,174,66,96,130};
+
+static size_t xml_res_size_2 = 6410;
+static unsigned char xml_res_file_2[] = {
+137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,1,0,0,0,1,0,8,6,0,0,0,
+92,114,168,102,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,72,
+89,115,0,0,43,165,0,0,43,165,1,137,102,26,50,0,0,0,25,116,69,88,116,83,
+111,102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,101,
+46,111,114,103,155,238,60,26,0,0,24,135,73,68,65,84,120,156,237,221,105,
+120,85,213,185,192,241,255,10,73,152,81,68,20,84,174,181,22,171,32,85,107,
+181,173,15,125,180,74,65,64,133,130,85,164,14,113,66,172,94,161,106,69,
+171,64,64,173,120,169,138,67,85,16,209,160,12,82,172,114,11,181,181,150,
+58,161,60,90,43,215,214,129,50,22,28,65,40,40,25,200,25,214,253,16,3,9,
+156,36,103,88,251,221,211,251,251,210,199,152,179,223,45,37,255,189,206,
+201,58,251,24,38,189,153,2,138,80,74,197,78,17,181,213,126,159,131,82,202,
+39,69,164,147,104,4,148,138,167,186,165,127,58,165,17,80,42,134,118,63,
+247,215,8,40,21,59,141,95,252,211,8,40,21,43,123,191,250,175,17,80,42,54,
+50,255,250,79,35,160,84,44,52,253,251,255,250,8,88,43,120,58,74,41,73,205,
+111,0,74,167,32,81,163,17,80,42,162,90,222,1,168,17,80,42,178,178,219,2,
+172,17,80,42,146,138,179,254,206,250,8,148,180,161,67,235,86,180,47,105,
+229,244,68,118,166,210,108,171,73,57,61,166,82,170,121,217,7,0,118,69,96,
+226,143,122,114,253,73,221,156,158,200,31,87,111,103,224,220,85,78,143,
+169,148,106,94,238,239,2,76,167,72,212,84,99,245,233,128,82,161,151,215,
+219,128,211,169,36,85,85,85,26,1,165,66,46,239,251,0,36,147,26,1,165,194,
+174,160,27,129,104,4,148,10,183,130,239,4,164,17,80,42,188,156,220,10,76,
+35,160,212,222,78,53,111,114,32,91,253,62,141,102,57,187,23,96,50,153,164,
+178,178,82,35,160,20,208,158,106,230,113,11,107,205,16,238,53,119,209,141,
+45,126,159,82,70,78,111,6,154,74,165,52,2,74,1,99,152,207,1,108,165,29,
+53,92,195,124,86,155,31,115,175,185,43,112,43,2,231,119,3,214,8,168,184,
+235,68,37,215,153,39,27,125,173,61,213,187,66,48,133,7,232,204,23,62,157,
+93,99,158,220,14,92,35,160,226,108,44,243,216,175,137,31,240,14,84,49,206,
+84,240,111,115,38,83,120,128,125,249,82,248,236,26,243,236,243,0,52,2,42,
+142,246,97,7,99,205,188,22,191,175,227,87,33,88,99,134,82,206,12,246,97,
+135,192,217,237,205,211,15,4,209,8,168,184,185,142,57,57,45,239,247,227,
+11,38,154,71,118,133,160,19,149,30,158,221,222,60,255,68,32,141,128,138,
+139,46,108,103,76,22,87,255,166,30,91,31,130,113,166,130,182,236,116,124,
+118,153,137,124,36,152,70,64,197,193,245,230,201,130,175,224,251,179,141,
+41,60,192,122,115,22,227,76,5,109,168,117,116,118,153,137,125,38,160,70,
+64,69,217,254,108,227,42,22,56,59,222,1,108,101,10,15,240,47,51,140,49,
+102,190,103,33,16,253,80,80,141,128,138,170,113,166,130,142,84,57,63,110,
+15,62,99,26,119,177,210,12,103,140,153,79,107,199,33,16,255,84,96,141,128,
+138,154,110,108,225,103,44,244,116,198,127,241,41,211,184,139,119,205,185,
+92,200,18,12,110,126,126,124,249,88,112,141,128,138,146,27,121,156,118,
+212,136,204,58,156,15,185,208,44,193,98,156,28,207,151,0,128,70,64,69,67,
+119,62,103,148,121,70,116,230,100,46,119,118,44,223,2,0,26,1,21,126,55,
+51,75,236,87,118,0,127,226,251,188,108,143,115,118,60,95,3,0,26,1,21,94,
+61,248,140,203,204,34,209,153,229,14,175,254,16,128,0,64,93,4,106,170,171,
+244,115,7,84,168,220,98,30,117,254,170,124,115,22,219,190,44,183,125,156,
+30,51,16,1,0,72,167,82,144,208,207,34,84,225,112,40,159,80,198,98,209,153,
+46,159,251,215,11,76,0,0,72,167,53,2,42,20,38,152,153,148,146,16,155,247,
+172,61,133,55,233,229,252,184,193,10,0,104,4,84,224,29,206,135,92,200,18,
+177,121,22,195,36,15,174,254,16,196,0,128,70,64,5,218,4,51,147,98,228,62,
+198,110,33,167,177,130,35,60,57,118,48,3,0,26,1,21,72,61,217,200,72,254,
+40,54,47,77,17,183,217,75,60,59,126,112,3,0,117,17,168,213,8,168,224,152,
+100,166,139,94,253,159,226,71,188,67,79,207,142,31,236,0,0,88,141,128,10,
+134,94,172,227,92,254,44,54,47,69,17,183,218,75,61,157,17,252,0,128,70,
+64,5,66,185,153,65,17,105,177,121,115,24,200,251,28,230,233,140,112,4,0,
+52,2,202,87,71,179,134,225,44,21,155,151,162,136,95,217,139,61,159,19,158,
+0,128,70,64,249,230,86,30,22,189,250,87,112,6,43,57,212,243,57,225,10,0,
+104,4,148,184,111,243,1,67,204,75,98,243,18,20,115,187,135,175,252,55,20,
+190,0,64,131,8,200,21,89,197,215,36,166,59,187,1,71,54,102,217,179,88,203,
+193,34,179,194,25,0,248,42,2,53,26,1,229,169,239,152,247,25,108,150,137,
+205,171,165,132,41,148,137,205,11,111,0,64,35,160,60,119,27,15,137,94,253,
+31,177,67,89,79,119,177,121,225,14,0,104,4,148,103,78,50,239,48,128,215,
+197,230,213,80,42,122,245,135,40,4,0,52,2,202,19,147,121,88,116,222,195,
+12,231,67,14,16,157,25,141,0,128,70,64,57,213,215,172,224,52,222,20,155,
+87,67,41,83,237,5,98,243,234,69,39,0,160,17,80,206,220,198,67,162,243,30,
+224,28,62,166,171,232,76,136,90,0,64,35,160,10,214,207,188,193,201,252,
+93,108,94,37,109,125,185,250,67,20,3,0,26,1,85,144,9,204,20,157,119,63,
+231,178,137,253,68,103,214,139,102,0,64,35,160,242,114,186,121,157,31,240,
+182,216,188,29,180,227,110,59,82,108,222,158,162,27,0,208,8,168,156,149,
+51,67,116,222,61,118,36,155,233,44,58,179,161,104,7,0,52,2,42,107,103,242,
+10,223,229,159,98,243,182,211,129,105,156,39,54,47,147,232,7,0,52,2,170,
+69,6,203,120,35,251,220,255,110,251,83,182,210,73,116,230,158,226,17,0,
+208,8,168,102,13,229,37,78,224,61,177,121,219,232,200,125,156,43,54,175,
+41,241,9,0,104,4,84,70,6,203,68,35,251,220,127,170,189,128,109,116,20,157,
+153,73,188,2,0,26,1,181,151,159,240,23,142,97,149,216,188,45,236,195,253,
+1,184,250,67,28,3,0,26,1,181,75,17,105,110,49,143,138,206,188,147,139,248,
+146,118,162,51,155,18,207,0,128,70,64,1,48,130,231,233,195,106,177,121,
+155,233,204,67,118,184,216,188,150,196,55,0,160,17,136,185,86,164,25,47,
+124,245,191,131,50,118,4,228,234,15,113,15,0,104,4,98,236,124,254,192,145,
+172,23,155,247,9,251,51,221,14,19,155,151,13,13,0,104,4,98,168,21,105,126,
+105,30,19,157,249,43,123,49,85,180,17,157,217,18,13,64,61,141,64,172,148,
+241,123,142,96,131,216,188,143,233,202,163,12,17,155,151,45,13,64,67,26,
+129,88,40,33,41,126,245,191,213,94,74,53,173,69,103,102,67,3,176,39,141,
+64,228,93,202,34,190,206,71,98,243,54,208,141,89,156,37,54,47,23,26,128,
+76,244,115,7,34,171,148,4,227,76,133,232,204,201,246,50,106,41,17,157,153,
+45,13,64,83,172,213,8,68,208,40,158,225,107,124,34,54,111,61,221,121,130,
+65,98,243,114,165,1,104,142,70,32,82,218,80,43,126,245,47,183,163,2,123,
+245,7,13,64,203,52,2,145,113,165,89,200,33,108,18,155,183,138,30,204,97,
+160,216,188,124,104,0,178,81,31,129,180,70,32,172,218,178,147,235,121,82,
+116,102,185,29,69,146,86,162,51,115,165,1,200,150,181,144,208,8,132,213,
+213,102,1,7,177,89,108,222,123,28,198,124,250,139,205,203,151,6,32,23,26,
+129,80,106,79,181,248,213,127,146,29,69,58,4,63,94,193,63,195,160,201,35,
+2,39,154,119,185,136,197,162,59,207,212,110,215,152,167,56,128,173,98,243,
+254,193,55,88,200,169,98,243,10,81,236,247,9,132,82,125,4,74,218,66,81,
+243,13,29,197,51,220,207,84,74,77,2,128,47,104,207,27,182,55,203,56,134,
+183,56,138,87,56,54,16,119,134,137,170,14,84,241,115,230,138,206,44,39,
+28,87,127,208,0,228,175,133,8,180,161,150,251,205,84,46,227,217,70,95,239,
+68,37,253,204,27,244,227,13,0,82,20,177,146,67,121,149,99,89,102,235,162,
+240,30,135,97,49,34,255,25,81,119,45,115,233,202,127,196,230,189,205,55,
+121,198,158,34,54,175,80,26,128,66,52,17,129,30,124,198,66,198,113,34,239,
+182,120,136,86,164,233,197,58,122,177,142,81,230,25,0,62,165,11,127,179,
+71,241,22,71,241,170,169,11,67,16,247,145,7,221,62,236,96,172,153,39,58,
+115,162,189,34,84,241,214,0,20,106,143,8,244,55,203,153,203,45,116,97,123,
+222,135,236,198,22,206,48,175,114,6,175,2,80,107,74,248,187,61,146,229,
+230,104,94,179,223,226,105,78,13,205,18,211,79,215,49,135,206,124,33,54,
+239,77,122,177,152,190,98,243,92,208,191,69,46,88,139,73,84,113,131,125,
+156,63,48,166,160,31,254,76,74,73,240,61,243,15,198,50,143,5,230,38,206,
+102,169,211,227,71,81,23,182,51,70,175,254,45,210,0,56,208,129,106,42,152,
+200,205,137,223,136,252,138,112,162,153,65,17,250,171,200,230,92,199,147,
+116,162,82,108,222,235,244,225,57,78,18,155,231,138,6,160,64,61,217,200,
+11,230,74,206,226,101,172,133,202,4,164,60,254,217,236,197,58,93,5,52,99,
+127,182,113,181,89,32,58,115,2,163,69,231,185,162,1,40,192,32,150,177,212,
+140,230,72,254,189,235,107,82,17,208,85,64,211,198,153,10,58,82,37,54,111,
+25,199,240,130,61,81,108,158,75,26,128,60,20,147,162,156,25,204,49,227,
+51,254,69,147,136,128,174,2,50,235,198,22,126,198,66,209,153,183,112,165,
+232,60,151,52,0,57,234,202,127,120,150,235,25,107,230,97,176,77,126,159,
+68,4,38,152,71,116,21,176,135,113,166,130,118,212,136,205,91,106,79,224,
+69,123,188,216,60,215,52,0,57,56,150,149,44,53,63,163,175,89,145,213,247,
+123,29,129,222,172,213,85,64,3,221,249,156,43,248,157,232,204,73,230,114,
+209,121,174,105,0,178,84,198,98,158,55,255,77,15,62,205,233,113,94,71,64,
+95,11,216,237,102,102,209,150,157,98,243,254,196,247,121,217,30,39,54,207,
+11,26,128,22,180,161,150,251,204,175,153,102,238,162,148,68,94,199,240,
+50,2,189,88,199,112,93,5,208,131,207,184,204,44,18,157,89,78,184,175,254,
+160,1,104,214,193,108,98,9,99,184,144,37,5,31,203,203,8,76,212,215,2,184,
+153,89,180,166,86,108,222,18,250,178,220,246,17,155,231,21,13,64,19,250,
+154,21,188,104,70,115,188,249,192,217,49,189,138,64,111,214,198,122,21,
+112,40,159,112,177,249,189,232,204,73,54,252,87,127,208,0,236,197,96,185,
+142,57,44,226,58,79,222,69,230,85,4,38,152,153,177,93,5,140,55,143,230,
+253,244,44,31,139,56,153,55,233,37,54,207,75,26,128,6,58,80,77,133,41,103,
+188,153,73,43,15,127,152,188,136,192,209,172,137,229,42,224,112,62,228,
+34,22,139,205,179,24,202,237,40,177,121,94,211,0,124,165,225,150,94,9,94,
+68,32,142,175,5,76,48,51,41,38,37,54,239,105,123,42,43,56,66,108,158,215,
+52,0,100,222,210,43,193,117,4,226,246,90,64,79,54,50,146,63,138,205,75,
+83,196,173,92,42,54,79,66,172,3,80,76,138,219,205,67,77,110,233,149,224,
+58,2,227,205,163,177,89,5,148,155,25,162,87,255,5,244,227,29,122,138,205,
+147,16,219,0,116,97,59,11,25,199,85,44,104,118,75,175,4,151,17,232,195,
+106,134,153,191,22,126,160,128,235,197,58,70,240,188,216,188,20,69,76,182,
+151,137,205,147,18,203,0,28,203,74,94,52,163,57,197,188,229,247,169,236,
+82,31,129,164,131,8,148,19,253,221,129,229,194,59,32,231,114,58,239,115,
+152,216,60,41,177,11,64,190,91,122,37,88,11,85,14,34,208,155,181,145,94,
+5,72,255,198,35,69,17,183,219,75,196,230,73,138,77,0,92,108,233,149,224,
+42,2,81,94,5,220,202,195,162,255,109,21,156,193,74,14,21,155,39,41,22,1,
+112,185,165,87,130,139,8,68,117,21,240,109,62,96,136,121,73,108,94,130,
+226,200,94,253,33,6,1,240,98,75,175,4,23,17,136,226,42,96,18,211,69,95,
+180,125,140,51,89,203,193,98,243,164,69,54,0,6,203,88,51,207,179,45,189,
+18,10,141,64,111,214,242,99,94,116,122,78,126,58,158,247,25,108,150,137,
+205,171,165,132,41,182,76,108,158,31,34,25,128,250,45,189,229,204,240,116,
+75,175,132,66,35,48,201,76,143,204,42,224,118,243,144,232,213,255,17,59,
+148,117,28,36,54,207,15,145,11,192,145,172,231,69,51,74,108,75,111,62,82,
+57,254,177,23,18,129,168,172,2,78,50,239,48,128,215,197,230,213,80,202,
+29,92,44,54,207,47,145,10,192,32,150,241,103,115,21,223,224,67,191,79,37,
+35,139,225,97,134,243,115,123,109,238,143,45,32,2,81,88,5,76,230,97,209,
+121,211,237,48,62,162,171,232,76,63,68,34,0,173,72,55,123,151,222,32,216,
+65,91,202,152,200,141,246,106,230,48,144,213,28,146,243,49,242,141,64,216,
+87,1,125,205,10,78,227,77,177,121,53,148,50,149,11,197,230,249,41,244,1,
+232,194,118,158,230,134,22,239,210,235,167,213,28,66,63,251,32,139,236,
+201,64,221,83,128,123,236,79,243,58,86,190,17,8,243,42,224,86,43,123,245,
+127,128,115,98,113,245,135,144,7,32,136,91,122,247,244,156,61,137,83,237,
+195,124,192,215,26,125,125,62,253,243,90,5,64,126,17,8,235,42,160,159,121,
+67,244,255,223,74,218,50,213,94,32,54,207,111,161,13,64,144,183,244,66,
+221,85,190,156,81,140,228,54,190,160,125,198,127,159,239,42,0,242,139,64,
+24,87,1,19,152,41,58,239,126,206,101,19,251,137,206,244,83,232,2,208,58,
+4,91,122,183,176,15,103,219,59,153,102,207,107,246,211,98,11,89,5,64,238,
+17,232,205,90,134,10,238,162,43,212,233,230,117,126,192,219,98,243,118,
+208,142,187,237,72,177,121,65,16,170,0,28,204,38,254,16,240,45,189,255,
+199,17,252,208,78,231,175,124,167,197,239,45,116,21,0,95,189,139,176,54,
+251,8,76,34,60,171,128,114,102,136,206,187,199,142,100,51,157,69,103,250,
+45,52,1,8,195,150,222,249,244,103,128,189,143,13,28,152,211,99,10,89,5,
+212,203,54,2,71,179,38,20,171,128,51,204,43,124,151,127,138,205,219,78,
+7,166,113,158,216,188,160,8,124,0,194,176,165,119,39,165,140,177,215,51,
+218,222,68,13,173,115,122,172,139,85,64,189,108,35,16,244,85,128,193,138,
+63,247,191,135,145,108,165,147,232,204,32,8,116,0,194,176,165,247,99,186,
+50,216,78,163,130,193,121,31,99,62,253,89,227,232,13,39,149,181,144,104,
+225,46,89,65,95,5,12,229,37,78,224,61,177,121,219,232,200,189,118,132,216,
+188,32,9,108,0,164,239,210,155,143,101,28,195,41,118,58,127,227,168,130,
+142,227,114,21,0,117,47,12,182,20,129,160,174,2,12,150,137,70,246,185,255,
+84,123,1,219,232,40,58,51,40,2,25,128,65,44,227,47,230,74,241,187,244,102,
+171,126,75,239,16,123,23,155,28,189,104,52,143,1,206,86,1,208,114,4,130,
+186,10,56,155,191,112,12,171,196,230,109,97,31,238,231,92,177,121,65,19,
+168,0,52,220,210,219,137,74,191,79,39,163,134,91,122,147,180,114,118,92,
+215,171,0,104,57,2,65,91,5,20,145,102,188,121,84,116,230,255,216,11,249,
+146,118,162,51,131,36,48,1,40,37,25,186,45,189,174,185,94,5,64,243,17,56,
+154,53,12,9,208,83,172,17,60,79,31,86,139,205,219,76,103,30,228,108,177,
+121,65,20,152,0,156,104,222,13,229,150,94,151,188,88,5,64,243,17,152,108,
+100,239,175,215,148,86,62,92,253,239,160,140,29,49,190,250,67,128,2,208,
+134,157,126,159,66,70,45,109,233,117,205,139,85,0,52,29,129,160,172,2,126,
+202,115,28,201,122,177,121,159,176,63,211,237,48,177,121,65,21,152,0,4,
+81,182,91,122,93,242,106,21,0,77,71,192,239,85,64,43,210,220,108,102,137,
+206,188,131,50,170,104,35,58,51,136,52,0,77,200,101,75,175,107,94,173,2,
+32,115,4,252,94,5,148,241,123,142,96,131,216,188,143,233,202,76,59,84,108,
+94,144,105,0,50,200,103,75,175,75,41,138,152,230,225,155,82,50,69,192,175,
+85,64,9,73,126,105,30,19,157,121,171,189,148,234,28,119,108,70,149,6,160,
+129,66,182,244,186,54,159,254,172,167,187,103,199,223,51,2,126,173,2,46,
+49,255,203,215,249,72,108,222,6,186,49,139,179,196,230,5,157,6,224,43,46,
+182,244,186,148,160,152,187,236,249,158,206,216,51,2,19,204,35,162,191,
+130,45,37,193,141,60,46,54,15,234,174,254,181,148,136,206,12,50,13,0,238,
+182,244,186,230,245,42,0,26,71,224,88,254,37,250,169,59,163,120,134,175,
+241,137,216,188,245,116,103,118,64,2,31,20,177,14,128,23,91,122,93,146,
+88,5,64,227,8,76,68,102,21,208,134,90,198,153,10,207,231,52,84,110,71,233,
+213,127,15,177,13,128,87,91,122,93,147,88,5,192,238,8,72,173,2,70,243,52,
+135,176,201,243,57,245,86,209,131,57,12,20,155,23,22,177,12,128,215,91,
+122,93,146,90,5,192,238,8,120,189,10,104,203,78,126,97,158,240,236,248,
+153,76,178,163,2,29,122,191,196,46,0,139,236,201,156,98,103,120,186,165,
+215,181,249,244,231,223,116,19,153,85,149,128,222,41,111,87,1,87,241,91,
+14,98,179,103,199,223,211,251,28,198,124,250,139,205,11,147,216,4,160,126,
+75,111,25,19,217,65,91,191,79,39,39,146,171,0,168,139,192,205,169,25,158,
+172,2,218,83,45,126,245,47,183,163,114,254,56,182,184,136,197,159,138,31,
+91,122,93,155,199,0,145,215,2,234,245,76,172,226,204,244,82,231,199,189,
+198,60,197,1,108,117,126,220,166,188,203,215,89,200,169,98,243,194,38,242,
+1,240,115,75,175,75,9,138,185,219,163,247,8,52,229,23,137,153,152,148,187,
+91,175,119,160,138,159,51,215,217,241,178,49,129,209,164,163,255,215,60,
+111,145,254,147,241,123,75,175,107,210,171,128,62,172,102,96,98,41,164,
+146,78,142,119,45,115,69,111,236,250,54,223,228,25,123,138,216,188,48,138,
+100,0,130,180,165,215,37,63,86,1,55,154,10,76,162,26,10,92,9,236,195,14,
+198,154,121,142,206,42,59,19,237,21,161,125,202,39,37,114,1,8,218,150,94,
+215,164,87,1,223,98,21,3,121,13,18,59,11,138,192,181,102,14,157,249,194,
+225,153,53,239,45,142,98,49,125,197,230,133,85,164,2,16,212,45,189,46,249,
+182,10,192,230,29,129,125,249,146,107,120,202,131,51,107,218,120,59,90,
+175,254,89,136,68,0,130,190,165,215,181,121,12,16,219,23,0,13,86,1,144,
+87,4,110,96,54,251,242,165,7,103,150,217,235,244,225,57,78,18,155,23,102,
+161,15,64,88,182,244,186,84,183,10,144,219,23,0,13,86,1,144,83,4,246,103,
+27,87,155,5,30,158,217,222,38,48,90,116,94,152,133,58,0,97,218,210,235,
+218,92,63,87,1,144,117,4,110,96,54,29,169,242,240,204,26,91,198,49,188,
+96,79,20,155,23,118,161,13,128,196,93,122,131,204,247,85,0,180,24,129,110,
+108,225,42,243,91,129,51,219,237,22,174,20,157,23,118,161,11,64,138,34,
+166,216,139,196,238,210,27,100,126,172,2,78,55,175,55,254,98,51,17,24,103,
+42,104,71,141,192,153,213,89,106,79,224,69,123,188,216,188,40,8,85,0,234,
+183,244,78,161,76,95,225,197,159,85,192,77,60,190,247,123,4,50,68,160,59,
+159,115,5,191,19,60,51,152,100,46,23,157,23,5,161,9,64,84,182,244,186,22,
+136,85,0,236,21,129,95,154,199,104,43,248,89,15,127,226,251,188,108,143,
+19,155,23,21,161,8,64,212,182,244,186,148,160,216,179,207,17,104,74,198,
+85,0,236,138,64,15,62,227,114,158,21,61,167,114,244,234,159,143,64,7,32,
+170,91,122,93,155,195,233,193,88,5,0,36,118,50,46,53,147,214,212,138,157,
+207,18,250,178,220,246,17,155,23,37,129,13,64,212,183,244,186,20,164,85,
+64,15,62,227,156,228,18,106,155,249,84,98,215,38,115,153,220,176,136,9,
+100,0,226,176,165,215,181,160,172,2,110,48,179,41,37,65,117,2,145,8,60,
+107,79,225,13,219,219,251,65,17,21,152,0,108,176,221,99,183,165,215,165,
+32,172,2,14,227,99,70,240,252,174,127,246,58,2,22,195,36,125,238,95,144,
+192,4,96,21,135,48,132,95,199,106,75,175,107,115,56,157,13,194,171,128,
+1,44,223,245,207,227,204,108,74,104,124,239,0,47,35,240,59,126,200,10,142,
+240,230,224,49,17,152,0,88,12,47,219,111,251,125,26,161,230,199,59,5,111,
+50,117,171,128,195,249,136,179,121,33,227,247,120,17,129,52,69,76,182,250,
+220,191,80,129,9,128,114,67,250,181,128,99,248,23,3,88,206,141,230,113,
+138,105,250,167,220,117,4,22,208,143,119,232,233,238,128,49,165,1,136,24,
+63,94,11,184,195,60,192,112,90,190,129,104,117,2,118,58,184,187,88,138,
+34,38,89,125,238,239,130,6,32,130,164,87,1,135,241,113,214,31,45,94,147,
+44,60,2,115,57,61,182,111,2,115,77,3,16,65,9,138,153,198,72,191,79,163,
+73,133,68,32,69,17,183,219,75,220,158,80,140,105,0,34,234,73,59,80,116,
+21,144,171,124,35,48,155,193,172,228,80,247,39,20,83,26,128,136,10,250,
+42,0,114,143,64,130,98,110,179,151,122,119,66,49,164,1,136,176,160,175,
+2,32,183,8,60,198,153,172,229,96,111,79,40,102,52,0,17,22,134,85,0,100,
+23,129,4,197,76,177,101,34,231,19,39,26,128,136,123,210,14,20,221,29,152,
+175,150,34,240,8,67,89,199,65,114,39,20,19,26,128,136,75,80,204,52,123,
+158,223,167,145,149,166,34,80,67,41,119,216,139,229,79,40,6,52,0,49,240,
+4,131,66,177,10,128,204,17,152,110,135,241,33,7,248,115,66,17,167,1,136,
+129,48,173,2,160,113,4,106,40,101,42,23,250,123,66,17,166,1,136,137,48,
+173,2,96,119,4,126,99,207,225,35,186,250,125,58,145,165,1,136,137,176,173,
+2,0,182,38,219,112,103,114,132,223,167,17,105,26,128,24,9,219,42,96,58,
+195,216,156,108,15,73,185,251,11,198,141,6,32,70,194,180,10,168,164,45,
+191,177,63,169,251,135,100,173,70,192,35,26,128,152,9,203,42,224,65,206,
+230,115,246,221,253,5,141,128,39,52,0,49,147,160,152,123,9,246,243,234,
+47,104,207,131,245,87,255,134,52,2,206,105,0,98,104,182,29,28,232,85,192,
+131,252,132,255,208,49,243,191,212,8,56,165,1,136,161,32,175,2,182,211,
+129,135,236,240,230,191,73,35,224,140,6,32,166,130,186,10,184,207,142,96,
+59,29,90,254,70,141,128,19,26,128,152,10,226,42,96,43,157,152,206,176,236,
+31,160,17,40,152,6,32,198,130,182,10,184,215,158,199,14,218,230,246,32,
+141,64,65,52,0,49,22,164,85,192,38,58,243,8,67,243,123,176,70,32,111,26,
+128,152,123,194,14,98,99,0,86,1,247,218,17,84,209,38,255,3,104,4,242,162,
+1,136,185,90,74,184,215,250,187,10,248,148,46,204,98,72,225,7,210,8,228,
+76,3,160,152,141,191,171,128,123,24,73,53,173,221,28,76,35,144,19,13,128,
+242,117,21,240,41,251,83,97,7,187,61,168,70,32,107,26,0,5,248,183,10,152,
+202,249,212,184,186,250,55,164,17,200,138,6,64,1,117,171,128,105,194,191,
+17,216,72,55,158,176,131,188,27,160,17,104,145,6,64,237,34,253,27,129,169,
+246,124,106,41,241,118,136,70,160,89,26,0,181,139,228,107,1,27,232,198,
+124,250,139,204,34,89,11,137,157,50,179,66,70,3,160,26,145,122,45,96,138,
+45,243,254,234,223,80,42,161,17,200,64,3,160,26,169,165,132,251,56,215,
+211,25,107,56,152,5,244,243,116,70,70,26,129,189,104,0,212,94,42,236,96,
+79,87,1,119,218,50,146,180,242,236,248,205,210,8,52,82,236,247,9,168,224,
+169,165,132,65,118,26,93,216,214,236,247,181,50,150,142,84,230,124,252,
+87,56,46,223,83,115,35,149,168,251,223,18,15,126,253,24,50,26,0,149,209,
+70,14,100,35,7,54,255,77,86,230,92,60,161,17,0,244,41,128,138,51,125,58,
+160,1,80,49,23,243,8,104,0,148,138,113,4,52,0,74,65,108,35,160,1,80,170,
+94,12,35,160,1,80,170,161,152,69,64,3,160,212,158,98,20,1,13,128,82,153,
+196,36,2,26,0,165,154,18,131,8,104,0,148,106,78,42,1,137,26,191,207,194,
+51,26,0,165,90,146,74,70,54,2,26,0,165,178,17,209,8,104,0,148,202,86,4,
+35,160,1,80,42,23,17,139,128,6,64,169,92,69,40,2,26,0,165,242,17,145,8,
+104,0,148,202,87,4,34,160,1,80,170,16,33,143,128,6,64,169,66,133,56,2,26,
+0,165,92,8,105,4,52,0,74,185,18,194,8,104,0,148,114,41,100,17,208,0,40,
+229,90,136,34,160,1,80,202,11,169,36,212,86,251,125,22,45,210,0,40,229,
+149,116,42,240,17,208,0,40,229,165,128,71,64,3,160,148,215,2,28,1,13,128,
+82,18,2,26,1,13,128,82,82,2,24,129,188,62,29,184,93,137,251,110,116,40,
+109,69,175,174,109,157,31,87,169,160,49,69,80,212,218,237,223,245,205,85,
+73,62,221,145,200,249,113,121,5,224,184,238,237,243,121,88,179,190,119,
+72,123,94,187,228,72,231,199,85,42,136,138,139,139,105,223,222,221,207,
+209,61,203,63,227,218,231,55,230,252,56,125,10,160,148,15,146,201,36,149,
+149,149,126,159,134,6,64,41,191,4,33,2,26,0,165,124,228,119,4,52,0,74,249,
+172,62,2,214,90,241,217,26,0,165,2,32,153,76,82,85,85,37,30,1,13,128,82,
+1,225,71,4,52,0,74,5,136,116,4,52,0,74,5,140,100,4,52,0,74,5,144,84,4,52,
+0,74,5,148,68,4,52,0,74,5,152,215,17,208,0,40,21,112,94,70,64,3,160,84,
+8,120,21,1,13,128,82,33,225,69,4,52,0,74,133,136,235,8,104,0,148,10,25,
+151,239,29,208,0,40,21,66,169,84,202,73,4,52,0,74,133,148,139,8,104,0,148,
+10,177,66,35,144,87,0,94,219,248,101,94,195,148,82,238,165,82,41,106,107,
+170,32,143,8,24,110,90,154,170,187,79,105,246,218,151,22,121,114,103,96,
+165,84,126,170,18,105,42,147,64,73,91,48,38,235,199,229,117,87,224,202,
+218,52,149,181,233,124,30,170,148,242,82,162,58,167,8,232,101,92,169,40,
+73,167,235,34,144,229,211,1,13,128,82,81,147,67,4,52,0,74,69,81,150,17,
+208,0,40,21,85,89,68,64,3,160,84,148,181,16,1,13,128,82,81,215,76,4,52,
+0,74,197,65,19,17,208,0,40,21,23,25,34,160,1,80,42,78,246,136,128,6,64,
+169,184,105,16,1,13,128,82,113,244,85,4,254,31,121,241,55,153,214,40,101,
+56,0,0,0,0,73,69,78,68,174,66,96,130};
+
+static size_t xml_res_size_3 = 987;
+static unsigned char xml_res_file_3[] = {
+137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0,
+0,115,122,122,244,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
+72,89,115,0,0,5,98,0,0,5,98,1,172,97,92,156,0,0,0,25,116,69,88,116,83,111,
+102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,101,46,
+111,114,103,155,238,60,26,0,0,3,88,73,68,65,84,88,133,197,151,123,104,141,
+97,24,192,127,239,217,185,76,10,209,140,105,229,210,92,74,174,115,89,91,
+20,139,134,48,127,80,194,220,134,63,8,145,63,196,54,119,43,33,252,97,182,
+154,40,162,200,106,214,148,132,153,68,211,102,180,37,119,25,67,238,235,
+236,59,231,59,123,253,113,182,119,59,190,239,59,151,156,195,243,215,251,
+60,207,251,188,207,239,125,222,219,247,9,242,238,74,226,28,252,47,177,227,
+213,72,238,233,100,250,144,62,0,220,122,253,147,151,223,180,127,6,96,3,
+24,213,219,70,81,86,18,165,243,6,50,105,64,247,152,36,74,166,153,25,226,
+158,57,0,128,219,237,198,227,241,196,36,57,192,78,81,194,53,54,80,69,46,
+233,212,25,1,58,32,218,116,111,212,147,15,162,137,229,148,3,144,33,106,
+25,79,131,57,0,128,207,211,10,122,116,43,145,39,138,113,160,3,240,142,4,
+138,88,96,13,0,248,1,162,4,145,194,91,150,82,161,244,253,114,37,26,206,
+16,0,81,132,200,19,197,196,209,6,192,27,250,81,194,188,0,191,53,64,20,32,
+134,243,138,197,92,83,250,94,185,10,15,129,119,78,112,128,63,32,250,243,
+57,34,128,2,113,10,91,251,236,95,146,196,105,230,24,250,132,6,0,156,122,
+11,39,244,125,52,137,44,62,136,153,28,17,135,67,198,140,228,57,11,185,174,
+244,61,114,53,94,236,145,3,36,241,137,10,177,145,37,190,43,104,58,36,242,
+133,77,156,39,85,52,4,141,219,69,17,2,9,192,51,146,57,195,108,211,126,65,
+1,50,68,45,183,196,90,82,219,207,109,171,14,154,255,52,145,47,139,45,227,
+198,240,148,108,113,179,19,70,230,226,179,72,101,9,176,94,92,160,140,45,
+36,240,85,217,170,25,173,32,230,136,170,128,11,165,171,116,157,125,35,3,
+57,199,76,75,88,3,128,11,141,82,177,139,189,156,84,199,199,131,131,77,114,
+11,179,229,81,106,25,166,32,242,133,177,10,169,162,129,185,226,118,39,140,
+204,165,45,72,161,13,158,29,162,148,108,110,42,189,137,4,178,56,166,118,
+240,65,153,3,248,151,99,134,94,197,56,26,3,226,119,115,82,181,159,48,152,
+139,100,90,38,55,5,72,226,147,106,87,49,150,41,242,20,53,114,184,178,85,
+146,70,29,67,21,196,118,189,72,249,210,168,39,139,187,74,47,96,77,208,217,
+155,2,116,200,113,22,49,95,30,226,51,189,12,190,66,185,76,181,51,125,119,
+24,163,63,6,2,103,95,71,10,151,228,180,160,201,77,1,126,208,157,28,10,216,
+41,215,89,238,220,10,210,121,68,138,210,183,249,74,72,215,31,144,41,238,
+43,91,190,92,139,68,68,14,176,77,110,160,76,78,13,25,88,72,103,21,102,81,
+205,81,223,1,90,219,143,104,13,35,40,35,244,24,166,0,94,194,251,62,172,
+144,233,60,102,136,210,83,120,139,166,251,247,69,190,92,19,214,24,166,0,
+225,138,68,80,72,142,193,94,173,143,224,170,62,49,246,0,0,229,50,131,39,
+93,170,0,176,159,21,17,189,162,198,215,33,2,145,8,246,176,138,173,156,5,
+224,5,3,184,33,39,248,157,29,0,118,167,69,116,20,0,0,42,101,26,149,164,
+153,59,195,128,248,171,37,8,75,66,44,71,236,1,66,64,216,1,122,184,226,148,
+97,100,223,110,124,215,124,49,225,176,57,156,216,28,46,0,30,190,111,225,
+99,139,238,7,24,218,59,94,117,218,60,57,145,205,147,19,99,2,0,224,114,185,
+136,143,143,39,251,226,51,174,52,126,251,251,77,24,169,104,90,224,127,167,
+29,224,114,227,87,117,107,127,248,229,229,135,167,45,230,32,53,239,90,1,
+225,7,168,111,118,83,223,236,142,121,82,131,216,157,252,6,173,114,47,95,
+172,143,154,9,0,0,0,0,73,69,78,68,174,66,96,130};
+
+static size_t xml_res_size_4 = 1881;
+static unsigned char xml_res_file_4[] = {
+137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,64,0,0,0,64,8,6,0,0,
+0,170,105,113,222,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
+72,89,115,0,0,10,233,0,0,10,233,1,253,117,206,211,0,0,0,25,116,69,88,116,
+83,111,102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,
+101,46,111,114,103,155,238,60,26,0,0,6,214,73,68,65,84,120,156,229,155,
+121,108,84,69,28,199,63,211,61,186,96,57,228,80,17,84,130,136,8,65,140,
+26,60,162,81,84,98,168,128,130,130,45,32,10,4,80,140,114,41,90,64,40,162,
+65,81,20,8,162,128,66,41,8,114,40,209,152,200,81,4,131,9,40,136,26,84,136,
+86,228,16,139,128,96,45,236,118,119,223,238,248,199,186,237,110,119,222,
+219,247,246,173,108,91,190,255,237,252,126,111,102,222,103,102,126,115,
+188,89,193,212,29,18,135,147,243,85,89,4,43,33,164,101,186,30,25,83,22,
+192,249,12,161,186,239,7,43,153,114,123,59,114,59,54,139,115,216,118,176,
+130,73,159,31,61,215,245,58,103,138,27,252,151,93,16,226,198,139,179,113,
+185,92,85,105,199,206,4,207,121,165,236,202,73,136,16,89,72,68,82,223,172,
+154,9,94,175,151,96,176,238,189,116,172,158,20,107,217,43,242,232,79,9,
+2,105,232,155,0,0,234,54,4,15,1,158,165,152,206,28,96,141,40,224,123,49,
+208,16,132,18,0,212,93,8,163,89,75,107,78,84,253,238,66,41,107,68,1,59,
+196,48,186,242,75,130,191,46,0,136,64,8,105,117,7,194,5,248,152,40,138,
+149,182,235,217,79,5,13,19,210,13,1,0,248,125,62,8,213,13,8,79,177,154,
+139,57,165,180,21,209,139,3,180,78,72,79,10,0,128,160,191,214,67,200,193,
+203,120,177,82,105,11,226,100,166,28,170,180,153,3,0,181,30,194,88,86,209,
+146,211,74,219,98,30,224,55,46,85,218,204,3,128,90,11,161,9,103,24,167,
+211,250,126,220,186,173,15,86,1,64,173,132,48,142,149,52,227,31,165,109,
+33,253,248,157,139,116,159,181,14,0,106,21,132,166,84,48,70,124,160,180,
+85,226,102,150,28,98,248,124,106,0,160,214,64,120,134,21,52,165,66,105,
+123,75,14,224,40,45,13,159,79,29,0,100,28,66,115,202,121,90,167,245,207,
+210,128,215,120,36,105,30,246,0,64,70,33,76,20,197,52,194,171,180,205,151,
+3,248,147,102,74,91,172,236,3,128,140,64,104,193,223,140,102,157,210,118,
+134,134,188,193,64,83,249,164,7,0,36,64,184,75,236,162,3,135,211,150,125,
+77,21,136,34,114,116,90,127,174,204,227,184,137,214,135,26,231,1,182,21,
+244,227,33,192,91,206,55,24,198,39,32,224,36,77,217,65,23,118,202,46,44,
+163,87,210,160,100,70,173,56,201,19,58,173,95,78,14,179,25,100,58,175,180,
+2,184,148,19,20,107,211,184,93,236,3,71,36,173,5,127,211,155,237,244,22,
+219,233,196,1,6,203,25,182,203,41,160,136,6,248,149,182,57,50,159,211,52,
+54,157,87,218,134,64,119,118,179,93,140,224,70,246,225,11,66,32,148,232,
+147,199,38,58,114,208,86,57,109,56,206,8,177,94,105,59,77,99,222,52,57,
+246,163,178,13,64,32,25,199,74,214,137,231,104,78,121,85,186,10,130,131,
+48,47,136,247,108,149,55,137,165,120,8,40,109,179,25,68,57,57,150,242,179,
+5,160,17,94,150,139,169,76,19,139,113,16,78,176,171,32,60,108,163,23,92,
+65,25,195,197,199,74,219,73,154,50,79,230,89,206,51,101,0,87,113,132,205,
+98,52,189,248,210,208,175,38,4,7,97,38,139,37,41,149,57,69,44,193,141,122,
+186,125,157,193,202,3,143,100,74,9,192,253,226,11,182,138,81,116,228,144,
+41,255,154,16,242,217,200,213,38,159,141,170,29,71,121,148,79,149,182,227,
+52,99,190,28,96,41,191,168,44,1,112,16,166,144,69,20,49,157,28,124,134,
+190,171,233,193,100,249,68,213,111,95,16,252,90,117,62,83,44,198,130,23,
+196,187,184,80,127,188,121,85,14,225,44,13,44,229,23,149,105,0,205,41,231,
+67,38,50,86,172,50,60,106,214,112,80,200,72,70,201,73,44,162,31,135,185,
+164,202,86,169,85,67,200,103,163,233,88,208,158,35,12,230,51,165,237,24,
+205,121,135,7,205,190,70,130,76,1,232,202,207,108,21,143,115,167,248,198,
+208,175,140,22,228,202,121,204,145,249,64,228,40,106,46,241,129,41,10,193,
+74,44,40,20,139,112,162,152,87,129,153,242,49,188,120,76,229,163,82,82,
+0,109,56,206,70,241,52,151,115,204,208,111,7,215,114,167,92,200,215,116,
+138,75,47,150,247,197,245,2,168,134,96,166,23,116,224,48,121,108,82,218,
+202,104,193,98,250,38,123,5,67,37,5,112,29,63,227,209,89,117,69,85,68,47,
+250,200,217,202,221,151,170,23,64,4,130,166,37,239,5,47,138,119,148,83,
+44,192,12,134,227,35,219,240,249,100,178,181,14,56,75,3,134,201,169,140,
+149,19,8,26,172,170,85,189,0,34,16,250,105,250,51,66,103,14,208,159,45,
+74,219,97,46,97,137,236,147,90,197,99,148,50,128,82,218,112,183,92,192,
+71,116,79,234,27,196,89,21,23,18,108,90,152,231,67,139,149,182,233,98,33,
+89,58,173,255,146,28,142,31,183,249,10,235,40,37,0,27,228,205,220,45,223,
+102,63,109,77,63,179,156,92,101,47,0,232,163,109,166,131,86,26,151,214,
+133,82,250,178,77,233,127,136,86,44,227,62,211,101,27,201,18,0,137,96,142,
+204,103,32,47,91,94,115,235,197,2,136,204,8,227,67,75,65,171,94,227,191,
+196,219,186,173,95,40,71,18,192,165,180,89,149,105,0,167,104,204,67,242,
+21,10,25,73,56,197,145,179,92,230,114,68,167,23,244,167,132,171,180,95,
+65,11,112,3,251,232,45,182,43,253,74,185,140,21,244,76,169,124,149,146,
+190,73,5,13,217,75,123,186,203,133,108,161,155,173,194,2,184,152,171,179,
+97,113,16,102,130,88,1,90,128,169,161,5,186,139,173,233,114,4,90,244,176,
+33,13,74,10,224,43,58,211,67,206,231,144,78,203,89,213,114,122,114,84,231,
+67,69,127,74,200,99,35,119,104,59,171,86,140,177,218,79,91,86,113,111,90,
+234,17,85,82,0,149,100,83,105,115,174,141,149,31,183,238,129,165,131,48,
+11,196,172,72,185,49,203,230,168,166,203,17,132,210,120,140,9,233,60,20,
+181,32,163,88,16,27,248,98,33,252,72,59,214,112,79,218,235,146,17,0,70,
+177,160,166,162,16,166,201,81,41,7,95,35,101,4,0,64,49,250,189,160,166,
+246,104,237,88,175,221,250,191,212,35,99,0,172,244,130,25,12,39,172,105,
+113,235,132,116,41,99,0,192,120,70,136,234,91,121,53,27,228,45,145,31,90,
+32,237,16,50,10,192,143,155,57,168,247,8,81,205,20,67,227,47,60,166,25,
+66,70,1,0,20,203,92,221,94,176,75,118,98,147,188,41,209,144,70,8,25,191,
+39,239,199,205,24,38,112,155,252,46,46,189,17,94,214,136,30,232,158,190,
+69,1,56,237,237,8,51,14,0,160,68,118,163,68,181,204,54,190,229,154,22,8,
+25,31,2,182,101,115,56,212,125,0,96,11,66,253,0,0,41,67,168,63,0,32,37,
+8,245,11,0,88,134,80,255,0,128,37,8,113,211,224,21,77,18,247,253,215,180,
+244,48,163,187,250,158,109,109,151,211,157,141,211,29,255,78,123,202,188,
+172,250,161,250,70,121,28,128,86,57,137,203,130,43,47,244,240,84,183,212,
+63,61,101,90,217,217,217,120,60,213,245,127,127,239,95,113,0,234,231,16,
+136,145,223,239,199,231,211,255,146,93,239,1,0,4,2,1,93,8,181,98,41,124,
+46,20,8,168,131,98,28,128,221,101,94,92,89,241,255,181,243,6,195,156,170,
+84,127,154,174,123,58,203,79,127,84,198,165,8,10,182,38,219,114,212,63,
+57,92,224,138,204,14,231,69,12,72,80,40,24,185,218,203,121,20,3,18,244,
+223,189,230,127,1,145,119,128,141,62,61,149,199,0,0,0,0,73,69,78,68,174,
+66,96,130};
+
+static size_t xml_res_size_5 = 626;
+static unsigned char xml_res_file_5[] = {
+60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101,
+110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101,
+115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58,
+47,47,119,119,119,46,119,120,119,105,100,103,101,116,115,46,111,114,103,
+47,119,120,120,114,99,34,62,10,32,32,60,33,45,45,32,72,97,110,100,108,101,
+114,32,71,101,110,101,114,97,116,105,111,110,32,105,115,32,79,78,32,45,
+45,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,
+120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,99,104,97,114,116,
+49,50,56,34,62,68,97,116,97,82,101,112,111,114,116,66,105,116,109,97,112,
+115,46,99,112,112,36,100,97,116,97,95,105,109,97,103,101,115,95,99,104,
+97,114,116,49,50,56,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,
+32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,
+109,97,112,34,32,110,97,109,101,61,34,99,104,97,114,116,49,54,34,62,68,
+97,116,97,82,101,112,111,114,116,66,105,116,109,97,112,115,46,99,112,112,
+36,100,97,116,97,95,105,109,97,103,101,115,95,99,104,97,114,116,49,54,46,
+112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,
+116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,
+97,109,101,61,34,99,104,97,114,116,50,53,54,34,62,68,97,116,97,82,101,112,
+111,114,116,66,105,116,109,97,112,115,46,99,112,112,36,100,97,116,97,95,
+105,109,97,103,101,115,95,99,104,97,114,116,50,53,54,46,112,110,103,60,
+47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,
+97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,
+34,99,104,97,114,116,51,50,34,62,68,97,116,97,82,101,112,111,114,116,66,
+105,116,109,97,112,115,46,99,112,112,36,100,97,116,97,95,105,109,97,103,
+101,115,95,99,104,97,114,116,51,50,46,112,110,103,60,47,111,98,106,101,
+99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,
+119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,99,104,97,114,
+116,54,52,34,62,68,97,116,97,82,101,112,111,114,116,66,105,116,109,97,112,
+115,46,99,112,112,36,100,97,116,97,95,105,109,97,103,101,115,95,99,104,
+97,114,116,54,52,46,112,110,103,60,47,111,98,106,101,99,116,62,10,60,47,
+114,101,115,111,117,114,99,101,62,10};
+
+void wxC6A63InitBitmapResources()
+{
+
+ // Check for memory FS. If not present, load the handler:
+ {
+ wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one"));
+ wxFileSystem fsys;
+ wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file"));
+ wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file"));
+ if (f) delete f;
+ else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase);
+ }
+
+ XRC_ADD_FILE(wxT("XRC_resource/DataReportBitmaps.cpp$data_images_chart128.png"), xml_res_file_0, xml_res_size_0, wxT("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/DataReportBitmaps.cpp$data_images_chart16.png"), xml_res_file_1, xml_res_size_1, wxT("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/DataReportBitmaps.cpp$data_images_chart256.png"), xml_res_file_2, xml_res_size_2, wxT("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/DataReportBitmaps.cpp$data_images_chart32.png"), xml_res_file_3, xml_res_size_3, wxT("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/DataReportBitmaps.cpp$data_images_chart64.png"), xml_res_file_4, xml_res_size_4, wxT("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/DataReportBitmaps.cpp$C__Users_NDSE-69_Documents_GitHub_PSP_Project_DataReportBitmaps.xrc"), xml_res_file_5, xml_res_size_5, wxT("text/xml"));
+ wxXmlResource::Get()->Load(wxT("memory:XRC_resource/DataReportBitmaps.cpp$C__Users_NDSE-69_Documents_GitHub_PSP_Project_DataReportBitmaps.xrc"));
+}
diff --git a/Project/base/ElementFormBase.cpp b/Project/base/ElementFormBase.cpp
new file mode 100644
index 0000000..e1e953e
--- /dev/null
+++ b/Project/base/ElementFormBase.cpp
@@ -0,0 +1,3731 @@
+//////////////////////////////////////////////////////////////////////
+// This file was auto-generated by codelite's wxCrafter Plugin
+// wxCrafter project file: ElementForm.wxcp
+// Do not modify this file by hand!
+//////////////////////////////////////////////////////////////////////
+
+#include "ElementFormBase.h"
+
+
+// Declare the bitmap loading function
+extern void wxC9EE9InitBitmapResources();
+
+static bool bBitmapLoaded = false;
+
+
+BusFormBase::BusFormBase(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style)
+ : wxDialog(parent, id, title, pos, size, style)
+{
+ if ( !bBitmapLoaded ) {
+ // We need to initialise the default bitmap handler
+ wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler);
+ wxC9EE9InitBitmapResources();
+ bBitmapLoaded = true;
+ }
+
+ wxBoxSizer* boxSizerLvl1_1 = new wxBoxSizer(wxVERTICAL);
+ this->SetSizer(boxSizerLvl1_1);
+
+ m_notebook = new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), wxBK_DEFAULT);
+ m_notebook->SetName(wxT("m_notebook"));
+
+ boxSizerLvl1_1->Add(m_notebook, 1, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_panelGeneral = new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL);
+ m_notebook->AddPage(m_panelGeneral, _("General"), false);
+
+ wxBoxSizer* boxSizerLvl2_1 = new wxBoxSizer(wxVERTICAL);
+ m_panelGeneral->SetSizer(boxSizerLvl2_1);
+
+ m_staticTextName = new wxStaticText(m_panelGeneral, wxID_ANY, _("Name"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+
+ boxSizerLvl2_1->Add(m_staticTextName, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_textCtrlName = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlName->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl2_1->Add(m_textCtrlName, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+ m_textCtrlName->SetMinSize(wxSize(300,-1));
+
+ wxGridSizer* gridSizerLvl3_1 = new wxGridSizer(0, 2, 0, 0);
+
+ boxSizerLvl2_1->Add(gridSizerLvl3_1, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_1 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl3_1->Add(boxSizerLvl4_1, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextNomVoltage = new wxStaticText(m_panelGeneral, wxID_ANY, _("Rated voltage"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+
+ boxSizerLvl4_1->Add(m_staticTextNomVoltage, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl5_1 = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl4_1->Add(boxSizerLvl5_1, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_textCtrlNomVoltage = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlNomVoltage->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl5_1->Add(m_textCtrlNomVoltage, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxArrayString m_choiceNomVoltageArr;
+ m_choiceNomVoltageArr.Add(wxT("V"));
+ m_choiceNomVoltageArr.Add(wxT("kV"));
+ m_choiceNomVoltage = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), m_choiceNomVoltageArr, 0);
+ m_choiceNomVoltage->SetSelection(1);
+
+ boxSizerLvl5_1->Add(m_choiceNomVoltage, 0, wxLEFT|wxRIGHT|wxBOTTOM, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_2 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl3_1->Add(boxSizerLvl4_2, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_checkBoxCtrlVoltage = new wxCheckBox(m_panelGeneral, wxID_ANY, _("Controlled voltage"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+ m_checkBoxCtrlVoltage->SetValue(false);
+
+ boxSizerLvl4_2->Add(m_checkBoxCtrlVoltage, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl5_2 = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl4_2->Add(boxSizerLvl5_2, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_textCtrlCtrlVoltage = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlCtrlVoltage->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl5_2->Add(m_textCtrlCtrlVoltage, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxArrayString m_choiceCtrlVoltageArr;
+ m_choiceCtrlVoltageArr.Add(wxT("p.u."));
+ m_choiceCtrlVoltageArr.Add(wxT("kV"));
+ m_choiceCtrlVoltage = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), m_choiceCtrlVoltageArr, 0);
+ m_choiceCtrlVoltage->SetSelection(0);
+
+ boxSizerLvl5_2->Add(m_choiceCtrlVoltage, 0, wxLEFT|wxRIGHT|wxBOTTOM, WXC_FROM_DIP(5));
+
+ m_checkBoxSlackBus = new wxCheckBox(m_panelGeneral, wxID_ANY, _("Slack Bus"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+ m_checkBoxSlackBus->SetValue(false);
+
+ boxSizerLvl2_1->Add(m_checkBoxSlackBus, 0, wxALL|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_panelFault = new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL);
+ m_notebook->AddPage(m_panelFault, _("Fault"), false);
+
+ wxBoxSizer* boxSizerLvl2_2 = new wxBoxSizer(wxVERTICAL);
+ m_panelFault->SetSizer(boxSizerLvl2_2);
+
+ m_checkBoxFault = new wxCheckBox(m_panelFault, wxID_ANY, _("Insert fault in the bus"), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0);
+ m_checkBoxFault->SetValue(false);
+
+ boxSizerLvl2_2->Add(m_checkBoxFault, 0, wxALL|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxGridSizer* gridSizerLvl3_2 = new wxGridSizer(0, 2, 0, 0);
+
+ boxSizerLvl2_2->Add(gridSizerLvl3_2, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_3 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl3_2->Add(boxSizerLvl4_3, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextFaultType = new wxStaticText(m_panelFault, wxID_ANY, _("Fault type"), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0);
+
+ boxSizerLvl4_3->Add(m_staticTextFaultType, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxArrayString m_choiceFaultTypeArr;
+ m_choiceFaultTypeArr.Add(wxT("Three-phase"));
+ m_choiceFaultTypeArr.Add(wxT("Line-to-line"));
+ m_choiceFaultTypeArr.Add(wxT("Double line-to-ground"));
+ m_choiceFaultTypeArr.Add(wxT("Line-to-ground"));
+ m_choiceFaultType = new wxChoice(m_panelFault, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), m_choiceFaultTypeArr, 0);
+ m_choiceFaultType->SetSelection(0);
+
+ boxSizerLvl4_3->Add(m_choiceFaultType, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_4 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl3_2->Add(boxSizerLvl4_4, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextFaultPlace = new wxStaticText(m_panelFault, wxID_ANY, _("Fault place"), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0);
+
+ boxSizerLvl4_4->Add(m_staticTextFaultPlace, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxArrayString m_choiceFaultPlaceArr;
+ m_choiceFaultPlaceArr.Add(wxT("Line A"));
+ m_choiceFaultPlaceArr.Add(wxT("Line B"));
+ m_choiceFaultPlaceArr.Add(wxT("Line C"));
+ m_choiceFaultPlace = new wxChoice(m_panelFault, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), m_choiceFaultPlaceArr, 0);
+ m_choiceFaultPlace->SetSelection(0);
+
+ boxSizerLvl4_4->Add(m_choiceFaultPlace, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_5 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl3_2->Add(boxSizerLvl4_5, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextFaultResistance = new wxStaticText(m_panelFault, wxID_ANY, _("Fault resistance (R)"), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0);
+
+ boxSizerLvl4_5->Add(m_staticTextFaultResistance, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl5_3 = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl4_5->Add(boxSizerLvl5_3, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_textCtrlFaultResistance = new wxTextCtrl(m_panelFault, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlFaultResistance->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl5_3->Add(m_textCtrlFaultResistance, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_staticTextPU_1 = new wxStaticText(m_panelFault, wxID_ANY, _("p.u."), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0);
+
+ boxSizerLvl5_3->Add(m_staticTextPU_1, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_6 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl3_2->Add(boxSizerLvl4_6, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextReactance = new wxStaticText(m_panelFault, wxID_ANY, _("Fault reactance (Xl)"), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0);
+
+ boxSizerLvl4_6->Add(m_staticTextReactance, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl5_4 = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl4_6->Add(boxSizerLvl5_4, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_textCtrlFaultReactance = new wxTextCtrl(m_panelFault, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlFaultReactance->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl5_4->Add(m_textCtrlFaultReactance, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_staticTextPU_2 = new wxStaticText(m_panelFault, wxID_ANY, _("p.u."), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0);
+
+ boxSizerLvl5_4->Add(m_staticTextPU_2, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_panelStability = new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL);
+ m_notebook->AddPage(m_panelStability, _("Stability"), false);
+
+ wxBoxSizer* boxSizerLvl2_3 = new wxBoxSizer(wxVERTICAL);
+ m_panelStability->SetSizer(boxSizerLvl2_3);
+
+ m_checkBoxPlotData = new wxCheckBox(m_panelStability, wxID_ANY, _("Plot bus data"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);
+ m_checkBoxPlotData->SetValue(false);
+
+ boxSizerLvl2_3->Add(m_checkBoxPlotData, 0, wxALL|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_checkBoxStabFault = new wxCheckBox(m_panelStability, wxID_ANY, _("Insert fault in the bus"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);
+ m_checkBoxStabFault->SetValue(false);
+
+ boxSizerLvl2_3->Add(m_checkBoxStabFault, 0, wxALL|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxGridSizer* gridSizerLvl3_3 = new wxGridSizer(0, 2, 0, 0);
+
+ boxSizerLvl2_3->Add(gridSizerLvl3_3, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_7 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl3_3->Add(boxSizerLvl4_7, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextStabFaultTime = new wxStaticText(m_panelStability, wxID_ANY, _("Time"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);
+
+ boxSizerLvl4_7->Add(m_staticTextStabFaultTime, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl5_5 = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl4_7->Add(boxSizerLvl5_5, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_textCtrlStabFaultTime = new wxTextCtrl(m_panelStability, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlStabFaultTime->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl5_5->Add(m_textCtrlStabFaultTime, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_staticTextS_1 = new wxStaticText(m_panelStability, wxID_ANY, _("s"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);
+
+ boxSizerLvl5_5->Add(m_staticTextS_1, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_8 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl3_3->Add(boxSizerLvl4_8, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextStabFaultLength = new wxStaticText(m_panelStability, wxID_ANY, _("Fault length"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);
+
+ boxSizerLvl4_8->Add(m_staticTextStabFaultLength, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl5_6 = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl4_8->Add(boxSizerLvl5_6, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_textCtrlStabFaultLength = new wxTextCtrl(m_panelStability, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlStabFaultLength->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl5_6->Add(m_textCtrlStabFaultLength, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_staticTextS_2 = new wxStaticText(m_panelStability, wxID_ANY, _("s"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);
+
+ boxSizerLvl5_6->Add(m_staticTextS_2, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_9 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl3_3->Add(boxSizerLvl4_9, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextStabFaultResistance = new wxStaticText(m_panelStability, wxID_ANY, _("Fault resistance (R)"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);
+
+ boxSizerLvl4_9->Add(m_staticTextStabFaultResistance, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl5_7 = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl4_9->Add(boxSizerLvl5_7, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_textCtrlStabFaultResistance = new wxTextCtrl(m_panelStability, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlStabFaultResistance->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl5_7->Add(m_textCtrlStabFaultResistance, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_staticTextPU_3 = new wxStaticText(m_panelStability, wxID_ANY, _("p.u."), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);
+
+ boxSizerLvl5_7->Add(m_staticTextPU_3, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_10 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl3_3->Add(boxSizerLvl4_10, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextStabFaultReactance = new wxStaticText(m_panelStability, wxID_ANY, _("Fault reactance (Xl)"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);
+
+ boxSizerLvl4_10->Add(m_staticTextStabFaultReactance, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl5_8 = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl4_10->Add(boxSizerLvl5_8, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_textCtrlStabFaultReactance = new wxTextCtrl(m_panelStability, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlStabFaultReactance->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl5_8->Add(m_textCtrlStabFaultReactance, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_staticTextPU_4 = new wxStaticText(m_panelStability, wxID_ANY, _("p.u."), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);
+
+ boxSizerLvl5_8->Add(m_staticTextPU_4, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerOkCancel = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl1_1->Add(boxSizerOkCancel, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5));
+
+ m_buttonOK = new wxButton(this, wxID_ANY, _("OK"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerOkCancel->Add(m_buttonOK, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5));
+
+ m_ButtonCancel = new wxButton(this, wxID_ANY, _("Cancel"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerOkCancel->Add(m_ButtonCancel, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5));
+
+
+ #if wxVERSION_NUMBER >= 2900
+ if(!wxPersistenceManager::Get().Find(m_notebook)){
+ wxPersistenceManager::Get().RegisterAndRestore(m_notebook);
+ } else {
+ wxPersistenceManager::Get().Restore(m_notebook);
+ }
+ #endif
+
+ SetName(wxT("BusFormBase"));
+ SetSize(-1,-1);
+ if (GetSizer()) {
+ GetSizer()->Fit(this);
+ }
+ if(GetParent()) {
+ CentreOnParent(wxVERTICAL);
+ } else {
+ CentreOnScreen(wxVERTICAL);
+ }
+#if wxVERSION_NUMBER >= 2900
+ if(!wxPersistenceManager::Get().Find(this)) {
+ wxPersistenceManager::Get().RegisterAndRestore(this);
+ } else {
+ wxPersistenceManager::Get().Restore(this);
+ }
+#endif
+ // Connect events
+ m_choiceNomVoltage->Connect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(BusFormBase::OnNominalVoltageChoice), NULL, this);
+ m_checkBoxCtrlVoltage->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(BusFormBase::OnControlledVoltageClick), NULL, this);
+ m_checkBoxFault->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(BusFormBase::OnInsertFaultClick), NULL, this);
+ m_choiceFaultType->Connect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(BusFormBase::OnFaultTypeChoice), NULL, this);
+ m_checkBoxStabFault->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(BusFormBase::OnInsertStabFaultClick), NULL, this);
+ m_buttonOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(BusFormBase::OnButtonOKClick), NULL, this);
+ m_ButtonCancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(BusFormBase::OnButtonCancelClick), NULL, this);
+
+}
+
+BusFormBase::~BusFormBase()
+{
+ m_choiceNomVoltage->Disconnect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(BusFormBase::OnNominalVoltageChoice), NULL, this);
+ m_checkBoxCtrlVoltage->Disconnect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(BusFormBase::OnControlledVoltageClick), NULL, this);
+ m_checkBoxFault->Disconnect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(BusFormBase::OnInsertFaultClick), NULL, this);
+ m_choiceFaultType->Disconnect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(BusFormBase::OnFaultTypeChoice), NULL, this);
+ m_checkBoxStabFault->Disconnect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(BusFormBase::OnInsertStabFaultClick), NULL, this);
+ m_buttonOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(BusFormBase::OnButtonOKClick), NULL, this);
+ m_ButtonCancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(BusFormBase::OnButtonCancelClick), NULL, this);
+
+}
+
+SyncMachineFormBase::SyncMachineFormBase(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style)
+ : wxDialog(parent, id, title, pos, size, style)
+{
+ if ( !bBitmapLoaded ) {
+ // We need to initialise the default bitmap handler
+ wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler);
+ wxC9EE9InitBitmapResources();
+ bBitmapLoaded = true;
+ }
+
+ wxBoxSizer* boxSizerLvl1_1 = new wxBoxSizer(wxVERTICAL);
+ this->SetSizer(boxSizerLvl1_1);
+
+ m_notebook = new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), wxBK_DEFAULT);
+ m_notebook->SetName(wxT("m_notebook"));
+
+ boxSizerLvl1_1->Add(m_notebook, 1, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_panelGeneral = new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL);
+ m_notebook->AddPage(m_panelGeneral, _("General"), false);
+
+ wxBoxSizer* boxSizerLvl2_1 = new wxBoxSizer(wxVERTICAL);
+ m_panelGeneral->SetSizer(boxSizerLvl2_1);
+
+ m_staticTextName = new wxStaticText(m_panelGeneral, wxID_ANY, _("Name"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+
+ boxSizerLvl2_1->Add(m_staticTextName, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_textCtrlName = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlName->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl2_1->Add(m_textCtrlName, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+ m_textCtrlName->SetMinSize(wxSize(300,-1));
+
+ wxGridSizer* gridSizerLvl3_1 = new wxGridSizer(0, 2, 0, 0);
+
+ boxSizerLvl2_1->Add(gridSizerLvl3_1, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_5 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl3_1->Add(boxSizerLvl4_5, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextNominalPower = new wxStaticText(m_panelGeneral, wxID_ANY, _("Rated power"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+
+ boxSizerLvl4_5->Add(m_staticTextNominalPower, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl5_5 = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl4_5->Add(boxSizerLvl5_5, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_textCtrlnominalPower = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlnominalPower->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl5_5->Add(m_textCtrlnominalPower, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxArrayString m_choiceNominalPowerArr;
+ m_choiceNominalPowerArr.Add(wxT("VA"));
+ m_choiceNominalPowerArr.Add(wxT("kVA"));
+ m_choiceNominalPowerArr.Add(wxT("MVA"));
+ m_choiceNominalPower = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), m_choiceNominalPowerArr, 0);
+ m_choiceNominalPower->SetSelection(2);
+
+ boxSizerLvl5_5->Add(m_choiceNominalPower, 0, wxLEFT|wxRIGHT|wxBOTTOM, WXC_FROM_DIP(5));
+
+ gridSizerLvl3_1->Add(0, 0, 1, wxALL|wxEXPAND, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_1 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl3_1->Add(boxSizerLvl4_1, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextActivePower = new wxStaticText(m_panelGeneral, wxID_ANY, _("Active power"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+
+ boxSizerLvl4_1->Add(m_staticTextActivePower, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl5_1 = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl4_1->Add(boxSizerLvl5_1, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_textCtrlActivePower = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlActivePower->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl5_1->Add(m_textCtrlActivePower, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxArrayString m_choiceActivePowerArr;
+ m_choiceActivePowerArr.Add(wxT("p.u."));
+ m_choiceActivePowerArr.Add(wxT("W"));
+ m_choiceActivePowerArr.Add(wxT("kW"));
+ m_choiceActivePowerArr.Add(wxT("MW"));
+ m_choiceActivePower = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), m_choiceActivePowerArr, 0);
+ m_choiceActivePower->SetSelection(3);
+
+ boxSizerLvl5_1->Add(m_choiceActivePower, 0, wxLEFT|wxRIGHT|wxBOTTOM, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_2 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl3_1->Add(boxSizerLvl4_2, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextReactivePower = new wxStaticText(m_panelGeneral, wxID_ANY, _("Reactive power"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+
+ boxSizerLvl4_2->Add(m_staticTextReactivePower, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl5_2 = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl4_2->Add(boxSizerLvl5_2, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_textCtrlReactivePower = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlReactivePower->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl5_2->Add(m_textCtrlReactivePower, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxArrayString m_choiceReactivePowerArr;
+ m_choiceReactivePowerArr.Add(wxT("p.u."));
+ m_choiceReactivePowerArr.Add(wxT("VAr"));
+ m_choiceReactivePowerArr.Add(wxT("kVAr"));
+ m_choiceReactivePowerArr.Add(wxT("MVAr"));
+ m_choiceReactivePower = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), m_choiceReactivePowerArr, 0);
+ m_choiceReactivePower->SetSelection(3);
+
+ boxSizerLvl5_2->Add(m_choiceReactivePower, 0, wxLEFT|wxRIGHT|wxBOTTOM, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_3 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl3_1->Add(boxSizerLvl4_3, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_checkBoxMaxReactive = new wxCheckBox(m_panelGeneral, wxID_ANY, _("Max reactive power"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+ m_checkBoxMaxReactive->SetValue(false);
+
+ boxSizerLvl4_3->Add(m_checkBoxMaxReactive, 0, wxALL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl5_3 = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl4_3->Add(boxSizerLvl5_3, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_textCtrlMaxRectivePower = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlMaxRectivePower->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl5_3->Add(m_textCtrlMaxRectivePower, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxArrayString m_choiceMaxRectivePowerArr;
+ m_choiceMaxRectivePowerArr.Add(wxT("p.u."));
+ m_choiceMaxRectivePowerArr.Add(wxT("VAr"));
+ m_choiceMaxRectivePowerArr.Add(wxT("kVAr"));
+ m_choiceMaxRectivePowerArr.Add(wxT("MVAr"));
+ m_choiceMaxRectivePower = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), m_choiceMaxRectivePowerArr, 0);
+ m_choiceMaxRectivePower->SetSelection(3);
+
+ boxSizerLvl5_3->Add(m_choiceMaxRectivePower, 0, wxLEFT|wxRIGHT|wxBOTTOM, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_4 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl3_1->Add(boxSizerLvl4_4, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_checkBoxMinReactive = new wxCheckBox(m_panelGeneral, wxID_ANY, _("Min reactive power"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+ m_checkBoxMinReactive->SetValue(false);
+
+ boxSizerLvl4_4->Add(m_checkBoxMinReactive, 0, wxALL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl5_4 = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl4_4->Add(boxSizerLvl5_4, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_textCtrlMinRectivePower = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlMinRectivePower->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl5_4->Add(m_textCtrlMinRectivePower, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxArrayString m_choiceMinRectivePowerArr;
+ m_choiceMinRectivePowerArr.Add(wxT("p.u."));
+ m_choiceMinRectivePowerArr.Add(wxT("VAr"));
+ m_choiceMinRectivePowerArr.Add(wxT("kVAr"));
+ m_choiceMinRectivePowerArr.Add(wxT("MVAr"));
+ m_choiceMinRectivePower = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), m_choiceMinRectivePowerArr, 0);
+ m_choiceMinRectivePower->SetSelection(3);
+
+ boxSizerLvl5_4->Add(m_choiceMinRectivePower, 0, wxLEFT|wxRIGHT|wxBOTTOM, WXC_FROM_DIP(5));
+
+ m_checkBoxUseMachinePower = new wxCheckBox(m_panelGeneral, wxID_ANY, _("Use machine rated power as base"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+ m_checkBoxUseMachinePower->SetValue(false);
+
+ boxSizerLvl2_1->Add(m_checkBoxUseMachinePower, 0, wxALL|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_panelFault = new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL);
+ m_notebook->AddPage(m_panelFault, _("Fault"), false);
+
+ wxBoxSizer* boxSizerLvl2_2 = new wxBoxSizer(wxVERTICAL);
+ m_panelFault->SetSizer(boxSizerLvl2_2);
+
+ wxStaticBoxSizer* staticBoxSizerLvl3_1 = new wxStaticBoxSizer( new wxStaticBox(m_panelFault, wxID_ANY, _("Sequence impedances (p.u.)")), wxVERTICAL);
+
+ boxSizerLvl2_2->Add(staticBoxSizerLvl3_1, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5));
+
+ wxGridSizer* gridSizerLvl4_2 = new wxGridSizer(0, 2, 0, 0);
+
+ staticBoxSizerLvl3_1->Add(gridSizerLvl4_2, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl5_6 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl4_2->Add(boxSizerLvl5_6, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextPosResistance = new wxStaticText(m_panelFault, wxID_ANY, _("Positive resistance (R1)"), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0);
+
+ boxSizerLvl5_6->Add(m_staticTextPosResistance, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_textCtrlPosResistance = new wxTextCtrl(m_panelFault, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlPosResistance->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl5_6->Add(m_textCtrlPosResistance, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl5_7 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl4_2->Add(boxSizerLvl5_7, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextPosReactance = new wxStaticText(m_panelFault, wxID_ANY, _("Positive reactance (X1)"), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0);
+
+ boxSizerLvl5_7->Add(m_staticTextPosReactance, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_textCtrlPosReactance = new wxTextCtrl(m_panelFault, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlPosReactance->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl5_7->Add(m_textCtrlPosReactance, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl5_8 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl4_2->Add(boxSizerLvl5_8, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextNegResistance = new wxStaticText(m_panelFault, wxID_ANY, _("Negative resistance (R2)"), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0);
+
+ boxSizerLvl5_8->Add(m_staticTextNegResistance, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_textCtrlNegResistance = new wxTextCtrl(m_panelFault, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlNegResistance->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl5_8->Add(m_textCtrlNegResistance, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl5_9 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl4_2->Add(boxSizerLvl5_9, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextNegReactance = new wxStaticText(m_panelFault, wxID_ANY, _("Negative reactance (X2)"), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0);
+
+ boxSizerLvl5_9->Add(m_staticTextNegReactance, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_textCtrlNegReactance = new wxTextCtrl(m_panelFault, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlNegReactance->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl5_9->Add(m_textCtrlNegReactance, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl5_10 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl4_2->Add(boxSizerLvl5_10, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextZeroResistance = new wxStaticText(m_panelFault, wxID_ANY, _("Zero resistance (R0)"), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0);
+
+ boxSizerLvl5_10->Add(m_staticTextZeroResistance, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_textCtrlZeroResistance = new wxTextCtrl(m_panelFault, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlZeroResistance->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl5_10->Add(m_textCtrlZeroResistance, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl5_11 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl4_2->Add(boxSizerLvl5_11, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextZeroReactance = new wxStaticText(m_panelFault, wxID_ANY, _("Zero reactance (X0)"), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0);
+
+ boxSizerLvl5_11->Add(m_staticTextZeroReactance, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_textCtrlZeroReactance = new wxTextCtrl(m_panelFault, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlZeroReactance->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl5_11->Add(m_textCtrlZeroReactance, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxGridSizer* gridSizerLvl3_3 = new wxGridSizer(0, 2, 0, 0);
+
+ boxSizerLvl2_2->Add(gridSizerLvl3_3, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_12 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl3_3->Add(boxSizerLvl4_12, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextGrdResistance = new wxStaticText(m_panelFault, wxID_ANY, _("Ground resistance (p.u.)"), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0);
+
+ boxSizerLvl4_12->Add(m_staticTextGrdResistance, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_textCtrlGrdResistance = new wxTextCtrl(m_panelFault, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlGrdResistance->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl4_12->Add(m_textCtrlGrdResistance, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_13 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl3_3->Add(boxSizerLvl4_13, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextGrdReactance = new wxStaticText(m_panelFault, wxID_ANY, _("Ground reactance (p.u.)"), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0);
+
+ boxSizerLvl4_13->Add(m_staticTextGrdReactance, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_textCtrlGrdReactance = new wxTextCtrl(m_panelFault, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlGrdReactance->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl4_13->Add(m_textCtrlGrdReactance, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_checkBoxGroundNeutral = new wxCheckBox(m_panelFault, wxID_ANY, _("Grounded neutral"), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0);
+ m_checkBoxGroundNeutral->SetValue(true);
+
+ boxSizerLvl2_2->Add(m_checkBoxGroundNeutral, 0, wxALL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerBottomButtons = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl1_1->Add(boxSizerBottomButtons, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5));
+
+ m_buttonStab = new wxButton(this, wxID_ANY, _("Stability"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerBottomButtons->Add(m_buttonStab, 0, wxALL|wxALIGN_LEFT, WXC_FROM_DIP(5));
+
+ boxSizerBottomButtons->Add(0, 0, 1, wxALL|wxEXPAND, WXC_FROM_DIP(5));
+
+ m_buttonOK = new wxButton(this, wxID_ANY, _("OK"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerBottomButtons->Add(m_buttonOK, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5));
+
+ m_ButtonCancel = new wxButton(this, wxID_ANY, _("Cancel"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerBottomButtons->Add(m_ButtonCancel, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5));
+
+
+ #if wxVERSION_NUMBER >= 2900
+ if(!wxPersistenceManager::Get().Find(m_notebook)){
+ wxPersistenceManager::Get().RegisterAndRestore(m_notebook);
+ } else {
+ wxPersistenceManager::Get().Restore(m_notebook);
+ }
+ #endif
+
+ SetName(wxT("SyncMachineFormBase"));
+ SetSize(-1,-1);
+ if (GetSizer()) {
+ GetSizer()->Fit(this);
+ }
+ if(GetParent()) {
+ CentreOnParent(wxBOTH);
+ } else {
+ CentreOnScreen(wxBOTH);
+ }
+#if wxVERSION_NUMBER >= 2900
+ if(!wxPersistenceManager::Get().Find(this)) {
+ wxPersistenceManager::Get().RegisterAndRestore(this);
+ } else {
+ wxPersistenceManager::Get().Restore(this);
+ }
+#endif
+ // Connect events
+ m_checkBoxMaxReactive->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(SyncMachineFormBase::OnCheckMaxReactive), NULL, this);
+ m_checkBoxMinReactive->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(SyncMachineFormBase::OnCheckMinReactive), NULL, this);
+ m_buttonStab->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SyncMachineFormBase::OnStabilityButtonClick), NULL, this);
+ m_buttonOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SyncMachineFormBase::OnOKButtonClick), NULL, this);
+ m_ButtonCancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SyncMachineFormBase::OnCancelButtonClick), NULL, this);
+
+}
+
+SyncMachineFormBase::~SyncMachineFormBase()
+{
+ m_checkBoxMaxReactive->Disconnect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(SyncMachineFormBase::OnCheckMaxReactive), NULL, this);
+ m_checkBoxMinReactive->Disconnect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(SyncMachineFormBase::OnCheckMinReactive), NULL, this);
+ m_buttonStab->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SyncMachineFormBase::OnStabilityButtonClick), NULL, this);
+ m_buttonOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SyncMachineFormBase::OnOKButtonClick), NULL, this);
+ m_ButtonCancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SyncMachineFormBase::OnCancelButtonClick), NULL, this);
+
+}
+
+GeneratorStabFormBase::GeneratorStabFormBase(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style)
+ : wxDialog(parent, id, title, pos, size, style)
+{
+ if ( !bBitmapLoaded ) {
+ // We need to initialise the default bitmap handler
+ wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler);
+ wxC9EE9InitBitmapResources();
+ bBitmapLoaded = true;
+ }
+
+ wxBoxSizer* boxSizerLvl1_1 = new wxBoxSizer(wxVERTICAL);
+ this->SetSizer(boxSizerLvl1_1);
+
+ wxBoxSizer* boxSizerLvl2_1 = new wxBoxSizer(wxVERTICAL);
+
+ boxSizerLvl1_1->Add(boxSizerLvl2_1, 1, wxALL|wxEXPAND, WXC_FROM_DIP(5));
+
+ m_checkBoxPlotSyncMachine = new wxCheckBox(this, wxID_ANY, _("Plot synchronous machine data"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+ m_checkBoxPlotSyncMachine->SetValue(false);
+
+ boxSizerLvl2_1->Add(m_checkBoxPlotSyncMachine, 0, wxALL|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxGridSizer* gridSizerLvl3_1 = new wxGridSizer(0, 2, 0, 0);
+
+ boxSizerLvl2_1->Add(gridSizerLvl3_1, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_1 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl3_1->Add(boxSizerLvl4_1, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextInertia = new wxStaticText(this, wxID_ANY, _("Inertia (H)"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerLvl4_1->Add(m_staticTextInertia, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl5_1 = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl4_1->Add(boxSizerLvl5_1, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_textCtrlInertia = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlInertia->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl5_1->Add(m_textCtrlInertia, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_staticTextS_1 = new wxStaticText(this, wxID_ANY, _("s"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerLvl5_1->Add(m_staticTextS_1, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_2 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl3_1->Add(boxSizerLvl4_2, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextDamping = new wxStaticText(this, wxID_ANY, _("Damping factor"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerLvl4_2->Add(m_staticTextDamping, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl5_2 = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl4_2->Add(boxSizerLvl5_2, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_textCtrlDamping = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlDamping->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl5_2->Add(m_textCtrlDamping, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_staticTextPU_1 = new wxStaticText(this, wxID_ANY, _("p.u."), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerLvl5_2->Add(m_staticTextPU_1, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_3 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl3_1->Add(boxSizerLvl4_3, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_checkBoxUseAVR = new wxCheckBox(this, wxID_ANY, _("Use AVR"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+ m_checkBoxUseAVR->SetValue(false);
+
+ boxSizerLvl4_3->Add(m_checkBoxUseAVR, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_buttonEditAVR = new wxButton(this, wxID_ANY, _("Edit AVR"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerLvl4_3->Add(m_buttonEditAVR, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_4 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl3_1->Add(boxSizerLvl4_4, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_checkBoxUseSG = new wxCheckBox(this, wxID_ANY, _("Use speed governor"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+ m_checkBoxUseSG->SetValue(false);
+
+ boxSizerLvl4_4->Add(m_checkBoxUseSG, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_buttonEditSG = new wxButton(this, wxID_ANY, _("Edit speed governor"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerLvl4_4->Add(m_buttonEditSG, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_staticLine_1 = new wxStaticLine(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), wxLI_HORIZONTAL);
+
+ boxSizerLvl2_1->Add(m_staticLine_1, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5));
+
+ wxGridSizer* gridSizerLvl3_2 = new wxGridSizer(0, 2, 0, 0);
+
+ boxSizerLvl2_1->Add(gridSizerLvl3_2, 1, wxEXPAND, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_5 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl3_2->Add(boxSizerLvl4_5, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextRa = new wxStaticText(this, wxID_ANY, _("Armature resistance (Ra)"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerLvl4_5->Add(m_staticTextRa, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl5_3 = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl4_5->Add(boxSizerLvl5_3, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_textCtrlRa = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlRa->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl5_3->Add(m_textCtrlRa, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_staticTextPU_2 = new wxStaticText(this, wxID_ANY, _("p.u."), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerLvl5_3->Add(m_staticTextPU_2, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_6 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl3_2->Add(boxSizerLvl4_6, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextXp = new wxStaticText(this, wxID_ANY, _("Potier reactance (Xp)"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerLvl4_6->Add(m_staticTextXp, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl5_14 = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl4_6->Add(boxSizerLvl5_14, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_textCtrlXp = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlXp->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl5_14->Add(m_textCtrlXp, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_staticTextPU_9 = new wxStaticText(this, wxID_ANY, _("p.u."), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerLvl5_14->Add(m_staticTextPU_9, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_7 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl3_2->Add(boxSizerLvl4_7, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextSat = new wxStaticText(this, wxID_ANY, _("Saturation factor"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerLvl4_7->Add(m_staticTextSat, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl5_15 = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl4_7->Add(boxSizerLvl5_15, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_textCtrlSat = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlSat->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl5_15->Add(m_textCtrlSat, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_staticTextPU_10 = new wxStaticText(this, wxID_ANY, _("p.u."), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerLvl5_15->Add(m_staticTextPU_10, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxStaticBoxSizer* staticBoxSizerSyncronous = new wxStaticBoxSizer( new wxStaticBox(this, wxID_ANY, _("Syncronous")), wxVERTICAL);
+
+ boxSizerLvl2_1->Add(staticBoxSizerSyncronous, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5));
+
+ wxGridSizer* gridSizerLvl4_3 = new wxGridSizer(0, 2, 0, 0);
+
+ staticBoxSizerSyncronous->Add(gridSizerLvl4_3, 1, wxEXPAND, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl5_4 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl4_3->Add(boxSizerLvl5_4, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextSyncXd = new wxStaticText(this, wxID_ANY, _("Direct-axis reactance (Xd)"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerLvl5_4->Add(m_staticTextSyncXd, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl6_1 = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl5_4->Add(boxSizerLvl6_1, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_textCtrlSyncXd = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlSyncXd->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl6_1->Add(m_textCtrlSyncXd, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_staticTextPU_3 = new wxStaticText(this, wxID_ANY, _("p.u."), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerLvl6_1->Add(m_staticTextPU_3, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl5_5 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl4_3->Add(boxSizerLvl5_5, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextSyncXq = new wxStaticText(this, wxID_ANY, _("Quadrature-axis reactance (Xq)"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerLvl5_5->Add(m_staticTextSyncXq, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl6_2 = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl5_5->Add(boxSizerLvl6_2, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_textCtrlSyncXq = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlSyncXq->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl6_2->Add(m_textCtrlSyncXq, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_staticTextPU_4 = new wxStaticText(this, wxID_ANY, _("p.u."), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerLvl6_2->Add(m_staticTextPU_4, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxStaticBoxSizer* staticBoxSizerTransient = new wxStaticBoxSizer( new wxStaticBox(this, wxID_ANY, _("Transient")), wxVERTICAL);
+
+ boxSizerLvl2_1->Add(staticBoxSizerTransient, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5));
+
+ wxGridSizer* gridSizerLvl4_4 = new wxGridSizer(0, 2, 0, 0);
+
+ staticBoxSizerTransient->Add(gridSizerLvl4_4, 1, wxEXPAND, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl5_6 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl4_4->Add(boxSizerLvl5_6, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextTranXd = new wxStaticText(this, wxID_ANY, _("Direct-axis reactance (X'd)"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerLvl5_6->Add(m_staticTextTranXd, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl6_3 = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl5_6->Add(boxSizerLvl6_3, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_textCtrlTranXd = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlTranXd->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl6_3->Add(m_textCtrlTranXd, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_staticTextPU_5 = new wxStaticText(this, wxID_ANY, _("p.u."), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerLvl6_3->Add(m_staticTextPU_5, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl5_7 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl4_4->Add(boxSizerLvl5_7, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextTranXq = new wxStaticText(this, wxID_ANY, _("Quadrature-axis reactance (X'q)"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerLvl5_7->Add(m_staticTextTranXq, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl6_4 = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl5_7->Add(boxSizerLvl6_4, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_textCtrlTranXq = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlTranXq->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl6_4->Add(m_textCtrlTranXq, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_staticTextPU_6 = new wxStaticText(this, wxID_ANY, _("p.u."), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerLvl6_4->Add(m_staticTextPU_6, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl5_8 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl4_4->Add(boxSizerLvl5_8, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextTranTd0 = new wxStaticText(this, wxID_ANY, _("Direct-axis time constant (T'd0)"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerLvl5_8->Add(m_staticTextTranTd0, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl6_5 = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl5_8->Add(boxSizerLvl6_5, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_textCtrlTranTd0 = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlTranTd0->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl6_5->Add(m_textCtrlTranTd0, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_staticTextS_2 = new wxStaticText(this, wxID_ANY, _("s"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerLvl6_5->Add(m_staticTextS_2, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl5_9 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl4_4->Add(boxSizerLvl5_9, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextTranTq0 = new wxStaticText(this, wxID_ANY, _("Quadrature-axis time constant (T'q0)"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerLvl5_9->Add(m_staticTextTranTq0, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl6_6 = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl5_9->Add(boxSizerLvl6_6, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_textCtrlTranTq0 = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlTranTq0->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl6_6->Add(m_textCtrlTranTq0, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_staticTextS_3 = new wxStaticText(this, wxID_ANY, _("s"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerLvl6_6->Add(m_staticTextS_3, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxStaticBoxSizer* staticBoxSizerSubtransient = new wxStaticBoxSizer( new wxStaticBox(this, wxID_ANY, _("Sub-transient")), wxVERTICAL);
+
+ boxSizerLvl2_1->Add(staticBoxSizerSubtransient, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5));
+
+ wxGridSizer* gridSizerLvl4_5 = new wxGridSizer(0, 2, 0, 0);
+
+ staticBoxSizerSubtransient->Add(gridSizerLvl4_5, 1, wxEXPAND, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl5_10 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl4_5->Add(boxSizerLvl5_10, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextSubXd = new wxStaticText(this, wxID_ANY, _("Direct-axis reactance (X''d)"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerLvl5_10->Add(m_staticTextSubXd, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl6_7 = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl5_10->Add(boxSizerLvl6_7, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_textCtrlSubXd = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlSubXd->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl6_7->Add(m_textCtrlSubXd, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_staticTextPU_7 = new wxStaticText(this, wxID_ANY, _("p.u."), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerLvl6_7->Add(m_staticTextPU_7, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl5_11 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl4_5->Add(boxSizerLvl5_11, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextSubXq = new wxStaticText(this, wxID_ANY, _("Quadrature-axis reactance (X''q)"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerLvl5_11->Add(m_staticTextSubXq, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl6_8 = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl5_11->Add(boxSizerLvl6_8, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_textCtrlSubXq = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlSubXq->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl6_8->Add(m_textCtrlSubXq, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_staticTextPU_8 = new wxStaticText(this, wxID_ANY, _("p.u."), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerLvl6_8->Add(m_staticTextPU_8, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl5_12 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl4_5->Add(boxSizerLvl5_12, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextSubTd0 = new wxStaticText(this, wxID_ANY, _("Direct-axis time constant (T''d0)"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerLvl5_12->Add(m_staticTextSubTd0, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl6_9 = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl5_12->Add(boxSizerLvl6_9, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_textCtrlSubTd0 = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlSubTd0->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl6_9->Add(m_textCtrlSubTd0, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_staticTextS_4 = new wxStaticText(this, wxID_ANY, _("s"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerLvl6_9->Add(m_staticTextS_4, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl5_13 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl4_5->Add(boxSizerLvl5_13, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextSubTq0 = new wxStaticText(this, wxID_ANY, _("Quadrature-axis time constant (T''q0)"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerLvl5_13->Add(m_staticTextSubTq0, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl6_10 = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl5_13->Add(boxSizerLvl6_10, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_textCtrlSubTq0 = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlSubTq0->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl6_10->Add(m_textCtrlSubTq0, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_staticTextS_5 = new wxStaticText(this, wxID_ANY, _("s"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerLvl6_10->Add(m_staticTextS_5, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerVDivider = new wxBoxSizer(wxVERTICAL);
+
+ boxSizerLvl2_1->Add(boxSizerVDivider, 1, wxALL|wxEXPAND, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerSection_2 = new wxBoxSizer(wxVERTICAL);
+
+ boxSizerVDivider->Add(boxSizerSection_2, 1, wxALL|wxEXPAND, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerSection_1 = new wxBoxSizer(wxVERTICAL);
+
+ boxSizerVDivider->Add(boxSizerSection_1, 1, wxALL|wxEXPAND, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerBottomButtons = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl1_1->Add(boxSizerBottomButtons, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5));
+
+ m_buttonSwitching = new wxButton(this, wxID_ANY, _("Switching"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerBottomButtons->Add(m_buttonSwitching, 0, wxALL|wxALIGN_LEFT, WXC_FROM_DIP(5));
+
+ boxSizerBottomButtons->Add(0, 0, 1, wxALL|wxEXPAND, WXC_FROM_DIP(5));
+
+ m_buttonOK = new wxButton(this, wxID_ANY, _("OK"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerBottomButtons->Add(m_buttonOK, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5));
+
+ m_ButtonCancel = new wxButton(this, wxID_ANY, _("Cancel"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerBottomButtons->Add(m_ButtonCancel, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5));
+
+ SetName(wxT("GeneratorStabFormBase"));
+ SetSize(-1,-1);
+ if (GetSizer()) {
+ GetSizer()->Fit(this);
+ }
+ if(GetParent()) {
+ CentreOnParent(wxBOTH);
+ } else {
+ CentreOnScreen(wxBOTH);
+ }
+#if wxVERSION_NUMBER >= 2900
+ if(!wxPersistenceManager::Get().Find(this)) {
+ wxPersistenceManager::Get().RegisterAndRestore(this);
+ } else {
+ wxPersistenceManager::Get().Restore(this);
+ }
+#endif
+ // Connect events
+ m_checkBoxUseAVR->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(GeneratorStabFormBase::UseAVRClick), NULL, this);
+ m_buttonEditAVR->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(GeneratorStabFormBase::OnEditAVRButtonClick), NULL, this);
+ m_checkBoxUseSG->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(GeneratorStabFormBase::UseSGClick), NULL, this);
+ m_buttonEditSG->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(GeneratorStabFormBase::OnSpeedGovernorButtonClick), NULL, this);
+ m_buttonSwitching->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(GeneratorStabFormBase::OnSwitchingButtonClick), NULL, this);
+ m_buttonOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(GeneratorStabFormBase::OnOKButtonClick), NULL, this);
+ m_ButtonCancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(GeneratorStabFormBase::OnCancelButtonClick), NULL, this);
+
+}
+
+GeneratorStabFormBase::~GeneratorStabFormBase()
+{
+ m_checkBoxUseAVR->Disconnect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(GeneratorStabFormBase::UseAVRClick), NULL, this);
+ m_buttonEditAVR->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(GeneratorStabFormBase::OnEditAVRButtonClick), NULL, this);
+ m_checkBoxUseSG->Disconnect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(GeneratorStabFormBase::UseSGClick), NULL, this);
+ m_buttonEditSG->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(GeneratorStabFormBase::OnSpeedGovernorButtonClick), NULL, this);
+ m_buttonSwitching->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(GeneratorStabFormBase::OnSwitchingButtonClick), NULL, this);
+ m_buttonOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(GeneratorStabFormBase::OnOKButtonClick), NULL, this);
+ m_ButtonCancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(GeneratorStabFormBase::OnCancelButtonClick), NULL, this);
+
+}
+
+LineFormBase::LineFormBase(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style)
+ : wxDialog(parent, id, title, pos, size, style)
+{
+ if ( !bBitmapLoaded ) {
+ // We need to initialise the default bitmap handler
+ wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler);
+ wxC9EE9InitBitmapResources();
+ bBitmapLoaded = true;
+ }
+
+ wxBoxSizer* boxSizerLvl1_1 = new wxBoxSizer(wxVERTICAL);
+ this->SetSizer(boxSizerLvl1_1);
+
+ m_notebook = new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), wxBK_DEFAULT);
+ m_notebook->SetName(wxT("m_notebook"));
+
+ boxSizerLvl1_1->Add(m_notebook, 1, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_panelGeneral = new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL);
+ m_notebook->AddPage(m_panelGeneral, _("General"), false);
+
+ wxBoxSizer* boxSizerLvl2_1 = new wxBoxSizer(wxVERTICAL);
+ m_panelGeneral->SetSizer(boxSizerLvl2_1);
+
+ m_staticTextName = new wxStaticText(m_panelGeneral, wxID_ANY, _("Name"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+
+ boxSizerLvl2_1->Add(m_staticTextName, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_textCtrlName = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlName->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl2_1->Add(m_textCtrlName, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+ m_textCtrlName->SetMinSize(wxSize(300,-1));
+
+ wxGridSizer* gridSizerLvl3_1 = new wxGridSizer(0, 2, 0, 0);
+
+ boxSizerLvl2_1->Add(gridSizerLvl3_1, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_9 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl3_1->Add(boxSizerLvl4_9, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextNominalVoltage = new wxStaticText(m_panelGeneral, wxID_ANY, _("Rated voltage"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+
+ boxSizerLvl4_9->Add(m_staticTextNominalVoltage, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_staticTextNominalVoltageValue = new wxStaticText(m_panelGeneral, wxID_ANY, _("138 kV"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+ wxFont m_staticTextNominalVoltageValueFont = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT);
+ m_staticTextNominalVoltageValueFont.SetWeight(wxFONTWEIGHT_BOLD);
+ m_staticTextNominalVoltageValue->SetFont(m_staticTextNominalVoltageValueFont);
+
+ boxSizerLvl4_9->Add(m_staticTextNominalVoltageValue, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_8 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl3_1->Add(boxSizerLvl4_8, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextNominalPower = new wxStaticText(m_panelGeneral, wxID_ANY, _("Rated power"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+
+ boxSizerLvl4_8->Add(m_staticTextNominalPower, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl5_5 = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl4_8->Add(boxSizerLvl5_5, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_textCtrlNominalPower = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlNominalPower->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl5_5->Add(m_textCtrlNominalPower, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxArrayString m_choiceNominalPowerArr;
+ m_choiceNominalPowerArr.Add(wxT("VA"));
+ m_choiceNominalPowerArr.Add(wxT("kVA"));
+ m_choiceNominalPowerArr.Add(wxT("MVA"));
+ m_choiceNominalPower = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), m_choiceNominalPowerArr, 0);
+ m_choiceNominalPower->SetSelection(2);
+
+ boxSizerLvl5_5->Add(m_choiceNominalPower, 0, wxLEFT|wxRIGHT|wxBOTTOM, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_1 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl3_1->Add(boxSizerLvl4_1, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextResistance = new wxStaticText(m_panelGeneral, wxID_ANY, _("Resistance (R)"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+
+ boxSizerLvl4_1->Add(m_staticTextResistance, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl5_1 = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl4_1->Add(boxSizerLvl5_1, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_textCtrlResistance = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlResistance->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl5_1->Add(m_textCtrlResistance, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxArrayString m_choiceResistanceArr;
+ m_choiceResistanceArr.Add(wxT("p.u."));
+ m_choiceResistanceArr.Add(wxT("Ohm"));
+ m_choiceResistanceArr.Add(wxT("Ohm/km"));
+ m_choiceResistance = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), m_choiceResistanceArr, 0);
+ m_choiceResistance->SetSelection(0);
+
+ boxSizerLvl5_1->Add(m_choiceResistance, 0, wxLEFT|wxRIGHT|wxBOTTOM, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_2 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl3_1->Add(boxSizerLvl4_2, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextReactance = new wxStaticText(m_panelGeneral, wxID_ANY, _("Indutive reactance (XL)"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+
+ boxSizerLvl4_2->Add(m_staticTextReactance, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl5_2 = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl4_2->Add(boxSizerLvl5_2, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_textCtrlReactance = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlReactance->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl5_2->Add(m_textCtrlReactance, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxArrayString m_choiceReactanceArr;
+ m_choiceReactanceArr.Add(wxT("p.u."));
+ m_choiceReactanceArr.Add(wxT("Ohm"));
+ m_choiceReactanceArr.Add(wxT("Ohm/km"));
+ m_choiceReactance = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), m_choiceReactanceArr, 0);
+ m_choiceReactance->SetSelection(0);
+
+ boxSizerLvl5_2->Add(m_choiceReactance, 0, wxLEFT|wxRIGHT|wxBOTTOM, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_3 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl3_1->Add(boxSizerLvl4_3, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextSusceptance = new wxStaticText(m_panelGeneral, wxID_ANY, _("Capacitive susceptance (B)"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+
+ boxSizerLvl4_3->Add(m_staticTextSusceptance, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl5_3 = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl4_3->Add(boxSizerLvl5_3, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_textCtrlSusceptance = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlSusceptance->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl5_3->Add(m_textCtrlSusceptance, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxArrayString m_choiceSusceptanceArr;
+ m_choiceSusceptanceArr.Add(wxT("p.u."));
+ m_choiceSusceptanceArr.Add(wxT("S"));
+ m_choiceSusceptanceArr.Add(wxT("S/km"));
+ m_choiceSusceptance = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), m_choiceSusceptanceArr, 0);
+ m_choiceSusceptance->SetSelection(0);
+
+ boxSizerLvl5_3->Add(m_choiceSusceptance, 0, wxLEFT|wxRIGHT|wxBOTTOM, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_4 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl3_1->Add(boxSizerLvl4_4, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextLineSize = new wxStaticText(m_panelGeneral, wxID_ANY, _("Line size"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+
+ boxSizerLvl4_4->Add(m_staticTextLineSize, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl5_4 = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl4_4->Add(boxSizerLvl5_4, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_textCtrlLineSize = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlLineSize->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl5_4->Add(m_textCtrlLineSize, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_staticTextKM = new wxStaticText(m_panelGeneral, wxID_ANY, _("km"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+
+ boxSizerLvl5_4->Add(m_staticTextKM, 0, wxALL, WXC_FROM_DIP(5));
+
+ m_checkUseLinePower = new wxCheckBox(m_panelGeneral, wxID_ANY, _("Use line rated power as base"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+ m_checkUseLinePower->SetValue(false);
+
+ boxSizerLvl2_1->Add(m_checkUseLinePower, 0, wxALL, WXC_FROM_DIP(5));
+
+ m_panelFault = new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL);
+ m_notebook->AddPage(m_panelFault, _("Fault"), false);
+
+ wxBoxSizer* boxSizerLvl2_2 = new wxBoxSizer(wxVERTICAL);
+ m_panelFault->SetSizer(boxSizerLvl2_2);
+
+ wxStaticBoxSizer* staticBoxSizerZeroImpSeq = new wxStaticBoxSizer( new wxStaticBox(m_panelFault, wxID_ANY, _("Zero-sequence impedances (p.u.)")), wxVERTICAL);
+
+ boxSizerLvl2_2->Add(staticBoxSizerZeroImpSeq, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5));
+
+ wxGridSizer* gridSizerLvl3_2 = new wxGridSizer(0, 2, 0, 0);
+
+ staticBoxSizerZeroImpSeq->Add(gridSizerLvl3_2, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_5 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl3_2->Add(boxSizerLvl4_5, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextZeroResistance = new wxStaticText(m_panelFault, wxID_ANY, _("Resistance (R0)"), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0);
+
+ boxSizerLvl4_5->Add(m_staticTextZeroResistance, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_textCtrlZeroResistance = new wxTextCtrl(m_panelFault, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlZeroResistance->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl4_5->Add(m_textCtrlZeroResistance, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_6 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl3_2->Add(boxSizerLvl4_6, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextZeroReactance = new wxStaticText(m_panelFault, wxID_ANY, _("Indutive reactance (X0)"), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0);
+
+ boxSizerLvl4_6->Add(m_staticTextZeroReactance, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_textCtrlZeroReactance = new wxTextCtrl(m_panelFault, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlZeroReactance->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl4_6->Add(m_textCtrlZeroReactance, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_7 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl3_2->Add(boxSizerLvl4_7, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextZeroSusceptance = new wxStaticText(m_panelFault, wxID_ANY, _("Capacitive susceptance (B0)"), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0);
+
+ boxSizerLvl4_7->Add(m_staticTextZeroSusceptance, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_textCtrlZeroSusceptance = new wxTextCtrl(m_panelFault, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlZeroSusceptance->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl4_7->Add(m_textCtrlZeroSusceptance, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerBottomButtons = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl1_1->Add(boxSizerBottomButtons, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5));
+
+ m_buttonStability = new wxButton(this, wxID_ANY, _("Stability"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerBottomButtons->Add(m_buttonStability, 0, wxALL|wxALIGN_LEFT, WXC_FROM_DIP(5));
+
+ boxSizerBottomButtons->Add(0, 0, 1, wxALL|wxEXPAND, WXC_FROM_DIP(5));
+
+ m_buttonOK = new wxButton(this, wxID_ANY, _("OK"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerBottomButtons->Add(m_buttonOK, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5));
+
+ m_buttonCancel = new wxButton(this, wxID_ANY, _("Cancel"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerBottomButtons->Add(m_buttonCancel, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5));
+
+
+ #if wxVERSION_NUMBER >= 2900
+ if(!wxPersistenceManager::Get().Find(m_notebook)){
+ wxPersistenceManager::Get().RegisterAndRestore(m_notebook);
+ } else {
+ wxPersistenceManager::Get().Restore(m_notebook);
+ }
+ #endif
+
+ SetName(wxT("LineFormBase"));
+ SetSize(-1,-1);
+ if (GetSizer()) {
+ GetSizer()->Fit(this);
+ }
+ if(GetParent()) {
+ CentreOnParent(wxBOTH);
+ } else {
+ CentreOnScreen(wxBOTH);
+ }
+#if wxVERSION_NUMBER >= 2900
+ if(!wxPersistenceManager::Get().Find(this)) {
+ wxPersistenceManager::Get().RegisterAndRestore(this);
+ } else {
+ wxPersistenceManager::Get().Restore(this);
+ }
+#endif
+ // Connect events
+ m_buttonStability->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(LineFormBase::OnStabilityButtonClick), NULL, this);
+ m_buttonOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(LineFormBase::OnOKButtonClick), NULL, this);
+ m_buttonCancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(LineFormBase::OnCancelButtonClick), NULL, this);
+
+}
+
+LineFormBase::~LineFormBase()
+{
+ m_buttonStability->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(LineFormBase::OnStabilityButtonClick), NULL, this);
+ m_buttonOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(LineFormBase::OnOKButtonClick), NULL, this);
+ m_buttonCancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(LineFormBase::OnCancelButtonClick), NULL, this);
+
+}
+
+TransformerFormBase::TransformerFormBase(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style)
+ : wxDialog(parent, id, title, pos, size, style)
+{
+ if ( !bBitmapLoaded ) {
+ // We need to initialise the default bitmap handler
+ wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler);
+ wxC9EE9InitBitmapResources();
+ bBitmapLoaded = true;
+ }
+
+ wxBoxSizer* boxSizerLvl1_1 = new wxBoxSizer(wxVERTICAL);
+ this->SetSizer(boxSizerLvl1_1);
+
+ m_notebook = new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), wxBK_DEFAULT);
+ m_notebook->SetName(wxT("m_notebook"));
+
+ boxSizerLvl1_1->Add(m_notebook, 1, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_panelGeneral = new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL);
+ m_notebook->AddPage(m_panelGeneral, _("General"), false);
+
+ wxBoxSizer* boxSizerLvl2_1 = new wxBoxSizer(wxVERTICAL);
+ m_panelGeneral->SetSizer(boxSizerLvl2_1);
+
+ m_staticTextName = new wxStaticText(m_panelGeneral, wxID_ANY, _("Name"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+
+ boxSizerLvl2_1->Add(m_staticTextName, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_textCtrlName = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlName->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl2_1->Add(m_textCtrlName, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+ m_textCtrlName->SetMinSize(wxSize(300,-1));
+
+ wxGridSizer* gridSizerLvl3_1 = new wxGridSizer(0, 2, 0, 0);
+
+ boxSizerLvl2_1->Add(gridSizerLvl3_1, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_1 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl3_1->Add(boxSizerLvl4_1, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextNominalVoltage = new wxStaticText(m_panelGeneral, wxID_ANY, _("Rated voltage"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+
+ boxSizerLvl4_1->Add(m_staticTextNominalVoltage, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_staticTextNominalVoltageValue = new wxStaticText(m_panelGeneral, wxID_ANY, _("138 kV / 138 kV"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+ wxFont m_staticTextNominalVoltageValueFont = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT);
+ m_staticTextNominalVoltageValueFont.SetWeight(wxFONTWEIGHT_BOLD);
+ m_staticTextNominalVoltageValue->SetFont(m_staticTextNominalVoltageValueFont);
+
+ boxSizerLvl4_1->Add(m_staticTextNominalVoltageValue, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_5 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl3_1->Add(boxSizerLvl4_5, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextBaseVoltage = new wxStaticText(m_panelGeneral, wxID_ANY, _("Base voltage"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+
+ boxSizerLvl4_5->Add(m_staticTextBaseVoltage, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxArrayString m_choiceBaseVoltageArr;
+ m_choiceBaseVoltageArr.Add(wxT("138 kV"));
+ m_choiceBaseVoltageArr.Add(wxT("138 kV"));
+ m_choiceBaseVoltage = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), m_choiceBaseVoltageArr, 0);
+ m_choiceBaseVoltage->SetSelection(0);
+
+ boxSizerLvl4_5->Add(m_choiceBaseVoltage, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_2 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl3_1->Add(boxSizerLvl4_2, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextNominalPower = new wxStaticText(m_panelGeneral, wxID_ANY, _("Rated power"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+
+ boxSizerLvl4_2->Add(m_staticTextNominalPower, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl5_1 = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl4_2->Add(boxSizerLvl5_1, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_textCtrlNominalPower = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlNominalPower->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl5_1->Add(m_textCtrlNominalPower, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxArrayString m_choiceNominalPowerArr;
+ m_choiceNominalPowerArr.Add(wxT("VA"));
+ m_choiceNominalPowerArr.Add(wxT("kVA"));
+ m_choiceNominalPowerArr.Add(wxT("MVA"));
+ m_choiceNominalPower = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), m_choiceNominalPowerArr, 0);
+ m_choiceNominalPower->SetSelection(2);
+
+ boxSizerLvl5_1->Add(m_choiceNominalPower, 0, wxLEFT|wxRIGHT|wxBOTTOM, WXC_FROM_DIP(5));
+
+ gridSizerLvl3_1->Add(0, 0, 1, wxALL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_3 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl3_1->Add(boxSizerLvl4_3, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextResistance = new wxStaticText(m_panelGeneral, wxID_ANY, _("Resistance (R)"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+
+ boxSizerLvl4_3->Add(m_staticTextResistance, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl5_2 = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl4_3->Add(boxSizerLvl5_2, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_textCtrlResistance = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlResistance->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl5_2->Add(m_textCtrlResistance, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxArrayString m_choiceResistanceArr;
+ m_choiceResistanceArr.Add(wxT("p.u."));
+ m_choiceResistanceArr.Add(wxT("Ohm"));
+ m_choiceResistance = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), m_choiceResistanceArr, 0);
+ m_choiceResistance->SetSelection(0);
+
+ boxSizerLvl5_2->Add(m_choiceResistance, 0, wxLEFT|wxRIGHT|wxBOTTOM, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_4 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl3_1->Add(boxSizerLvl4_4, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextReactance = new wxStaticText(m_panelGeneral, wxID_ANY, _("Indutive reactance (XL)"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+
+ boxSizerLvl4_4->Add(m_staticTextReactance, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl5_3 = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl4_4->Add(boxSizerLvl5_3, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_textCtrlReactance = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlReactance->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl5_3->Add(m_textCtrlReactance, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxArrayString m_choiceReactanceArr;
+ m_choiceReactanceArr.Add(wxT("p.u."));
+ m_choiceReactanceArr.Add(wxT("Ohm"));
+ m_choiceReactance = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), m_choiceReactanceArr, 0);
+ m_choiceReactance->SetSelection(0);
+
+ boxSizerLvl5_3->Add(m_choiceReactance, 0, wxLEFT|wxRIGHT|wxBOTTOM, WXC_FROM_DIP(5));
+
+ m_staticLine_1 = new wxStaticLine(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), wxLI_HORIZONTAL);
+
+ boxSizerLvl2_1->Add(m_staticLine_1, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl3_1 = new wxBoxSizer(wxVERTICAL);
+
+ boxSizerLvl2_1->Add(boxSizerLvl3_1, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextConnection = new wxStaticText(m_panelGeneral, wxID_ANY, _("Connection"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+
+ boxSizerLvl3_1->Add(m_staticTextConnection, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxArrayString m_choiceConnectionArr;
+ m_choiceConnectionArr.Add(wxT("Grounded Wye - Grounded Wye"));
+ m_choiceConnectionArr.Add(wxT("Wye - Grounded Wye"));
+ m_choiceConnectionArr.Add(wxT("Grounded Wye - Wye"));
+ m_choiceConnectionArr.Add(wxT("Wye - Wye"));
+ m_choiceConnectionArr.Add(wxT("Delta - Grounded Wye"));
+ m_choiceConnectionArr.Add(wxT("Delta - Wye"));
+ m_choiceConnectionArr.Add(wxT("Grounded Wye - Delta"));
+ m_choiceConnectionArr.Add(wxT("Wye - Delta"));
+ m_choiceConnectionArr.Add(wxT("Delta - Delta"));
+ m_choiceConnection = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), m_choiceConnectionArr, 0);
+ m_choiceConnection->SetSelection(0);
+
+ boxSizerLvl3_1->Add(m_choiceConnection, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND, WXC_FROM_DIP(5));
+
+ wxGridSizer* gridSizerLvl3_2 = new wxGridSizer(0, 2, 0, 0);
+
+ boxSizerLvl2_1->Add(gridSizerLvl3_2, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_6 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl3_2->Add(boxSizerLvl4_6, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextTurnsRatio = new wxStaticText(m_panelGeneral, wxID_ANY, _("Turns ratio"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+
+ boxSizerLvl4_6->Add(m_staticTextTurnsRatio, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_textCtrlTurnRatio = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlTurnRatio->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl4_6->Add(m_textCtrlTurnRatio, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_7 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl3_2->Add(boxSizerLvl4_7, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextPhaseShift = new wxStaticText(m_panelGeneral, wxID_ANY, _("Phase shift"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+
+ boxSizerLvl4_7->Add(m_staticTextPhaseShift, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl5_4 = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl4_7->Add(boxSizerLvl5_4, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_textCtrlPhaseShift = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlPhaseShift->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl5_4->Add(m_textCtrlPhaseShift, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_staticTextDeg = new wxStaticText(m_panelGeneral, wxID_ANY, _("degrees"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+
+ boxSizerLvl5_4->Add(m_staticTextDeg, 0, wxALL, WXC_FROM_DIP(5));
+
+ m_checkUseTransformerPower = new wxCheckBox(m_panelGeneral, wxID_ANY, _("Use transformer rated power as base"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+ m_checkUseTransformerPower->SetValue(false);
+
+ boxSizerLvl2_1->Add(m_checkUseTransformerPower, 0, wxALL, WXC_FROM_DIP(5));
+
+ m_panelFault = new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL);
+ m_notebook->AddPage(m_panelFault, _("Fault"), false);
+
+ wxBoxSizer* boxSizerLvl2_2 = new wxBoxSizer(wxVERTICAL);
+ m_panelFault->SetSizer(boxSizerLvl2_2);
+
+ wxStaticBoxSizer* staticBoxSizerZeroImpSeq = new wxStaticBoxSizer( new wxStaticBox(m_panelFault, wxID_ANY, _("Zero-sequence impedances (p.u.)")), wxVERTICAL);
+
+ boxSizerLvl2_2->Add(staticBoxSizerZeroImpSeq, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5));
+
+ wxGridSizer* gridSizerLvl3_3 = new wxGridSizer(0, 2, 0, 0);
+
+ staticBoxSizerZeroImpSeq->Add(gridSizerLvl3_3, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_8 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl3_3->Add(boxSizerLvl4_8, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextZeroResistance = new wxStaticText(m_panelFault, wxID_ANY, _("Resistance (R0)"), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0);
+
+ boxSizerLvl4_8->Add(m_staticTextZeroResistance, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_textCtrlZeroResistance = new wxTextCtrl(m_panelFault, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlZeroResistance->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl4_8->Add(m_textCtrlZeroResistance, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_9 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl3_3->Add(boxSizerLvl4_9, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextZeroReactance = new wxStaticText(m_panelFault, wxID_ANY, _("Indutive reactance (X0)"), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0);
+
+ boxSizerLvl4_9->Add(m_staticTextZeroReactance, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_textCtrlZeroReactance = new wxTextCtrl(m_panelFault, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlZeroReactance->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl4_9->Add(m_textCtrlZeroReactance, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxStaticBoxSizer* staticBoxSizerGroundImpedances = new wxStaticBoxSizer( new wxStaticBox(m_panelFault, wxID_ANY, _("Ground impedances (p.u.)")), wxVERTICAL);
+
+ boxSizerLvl2_2->Add(staticBoxSizerGroundImpedances, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5));
+
+ wxGridSizer* gridSizerLvl3_4 = new wxGridSizer(0, 2, 0, 0);
+
+ staticBoxSizerGroundImpedances->Add(gridSizerLvl3_4, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_10 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl3_4->Add(boxSizerLvl4_10, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextPrimResistance = new wxStaticText(m_panelFault, wxID_ANY, _("Primary resistance"), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0);
+
+ boxSizerLvl4_10->Add(m_staticTextPrimResistance, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_textCtrlPrimResistance = new wxTextCtrl(m_panelFault, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlPrimResistance->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl4_10->Add(m_textCtrlPrimResistance, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_11 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl3_4->Add(boxSizerLvl4_11, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextPrimReactance = new wxStaticText(m_panelFault, wxID_ANY, _("Primary reactance"), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0);
+
+ boxSizerLvl4_11->Add(m_staticTextPrimReactance, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_textCtrlPrimReactance = new wxTextCtrl(m_panelFault, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlPrimReactance->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl4_11->Add(m_textCtrlPrimReactance, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_12 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl3_4->Add(boxSizerLvl4_12, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextSecResistance = new wxStaticText(m_panelFault, wxID_ANY, _("Secondary resistance"), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0);
+
+ boxSizerLvl4_12->Add(m_staticTextSecResistance, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_textCtrlSecResistance = new wxTextCtrl(m_panelFault, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlSecResistance->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl4_12->Add(m_textCtrlSecResistance, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_13 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl3_4->Add(boxSizerLvl4_13, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextSecReactance = new wxStaticText(m_panelFault, wxID_ANY, _("Secondary reactance"), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0);
+
+ boxSizerLvl4_13->Add(m_staticTextSecReactance, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_textCtrlSecReactance = new wxTextCtrl(m_panelFault, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlSecReactance->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl4_13->Add(m_textCtrlSecReactance, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerBottomButtons = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl1_1->Add(boxSizerBottomButtons, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5));
+
+ m_buttonStability = new wxButton(this, wxID_ANY, _("Stability"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerBottomButtons->Add(m_buttonStability, 0, wxALL|wxALIGN_LEFT, WXC_FROM_DIP(5));
+
+ boxSizerBottomButtons->Add(0, 0, 1, wxALL|wxEXPAND, WXC_FROM_DIP(5));
+
+ m_buttonOK = new wxButton(this, wxID_ANY, _("OK"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerBottomButtons->Add(m_buttonOK, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5));
+
+ m_buttonCancel = new wxButton(this, wxID_ANY, _("Cancel"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerBottomButtons->Add(m_buttonCancel, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5));
+
+
+ #if wxVERSION_NUMBER >= 2900
+ if(!wxPersistenceManager::Get().Find(m_notebook)){
+ wxPersistenceManager::Get().RegisterAndRestore(m_notebook);
+ } else {
+ wxPersistenceManager::Get().Restore(m_notebook);
+ }
+ #endif
+
+ SetName(wxT("TransformerFormBase"));
+ SetSize(-1,-1);
+ if (GetSizer()) {
+ GetSizer()->Fit(this);
+ }
+ if(GetParent()) {
+ CentreOnParent(wxBOTH);
+ } else {
+ CentreOnScreen(wxBOTH);
+ }
+#if wxVERSION_NUMBER >= 2900
+ if(!wxPersistenceManager::Get().Find(this)) {
+ wxPersistenceManager::Get().RegisterAndRestore(this);
+ } else {
+ wxPersistenceManager::Get().Restore(this);
+ }
+#endif
+ // Connect events
+ m_buttonStability->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(TransformerFormBase::OnStabilityButtonClick), NULL, this);
+ m_buttonOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(TransformerFormBase::OnOKButtonClick), NULL, this);
+ m_buttonCancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(TransformerFormBase::OnCancelButtonClick), NULL, this);
+
+}
+
+TransformerFormBase::~TransformerFormBase()
+{
+ m_buttonStability->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(TransformerFormBase::OnStabilityButtonClick), NULL, this);
+ m_buttonOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(TransformerFormBase::OnOKButtonClick), NULL, this);
+ m_buttonCancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(TransformerFormBase::OnCancelButtonClick), NULL, this);
+
+}
+
+LoadFormBase::LoadFormBase(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style)
+ : wxDialog(parent, id, title, pos, size, style)
+{
+ if ( !bBitmapLoaded ) {
+ // We need to initialise the default bitmap handler
+ wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler);
+ wxC9EE9InitBitmapResources();
+ bBitmapLoaded = true;
+ }
+
+ wxBoxSizer* boxSizerLvl1_1 = new wxBoxSizer(wxVERTICAL);
+ this->SetSizer(boxSizerLvl1_1);
+
+ m_notebook = new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), wxBK_DEFAULT);
+ m_notebook->SetName(wxT("m_notebook"));
+
+ boxSizerLvl1_1->Add(m_notebook, 1, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_panelGeneral = new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL);
+ m_notebook->AddPage(m_panelGeneral, _("General"), false);
+
+ wxBoxSizer* boxSizerLvl2_1 = new wxBoxSizer(wxVERTICAL);
+ m_panelGeneral->SetSizer(boxSizerLvl2_1);
+
+ m_staticTextName = new wxStaticText(m_panelGeneral, wxID_ANY, _("Name"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+
+ boxSizerLvl2_1->Add(m_staticTextName, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_textCtrlName = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlName->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl2_1->Add(m_textCtrlName, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+ m_textCtrlName->SetMinSize(wxSize(300,-1));
+
+ wxGridSizer* gridSizerLvl3_1 = new wxGridSizer(0, 2, 0, 0);
+
+ boxSizerLvl2_1->Add(gridSizerLvl3_1, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_1 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl3_1->Add(boxSizerLvl4_1, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextActivePower = new wxStaticText(m_panelGeneral, wxID_ANY, _("Active power"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+
+ boxSizerLvl4_1->Add(m_staticTextActivePower, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl5_1 = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl4_1->Add(boxSizerLvl5_1, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_textCtrlActivePower = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlActivePower->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl5_1->Add(m_textCtrlActivePower, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxArrayString m_choiceActivePowerArr;
+ m_choiceActivePowerArr.Add(wxT("p.u."));
+ m_choiceActivePowerArr.Add(wxT("W"));
+ m_choiceActivePowerArr.Add(wxT("kW"));
+ m_choiceActivePowerArr.Add(wxT("MW"));
+ m_choiceActivePower = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), m_choiceActivePowerArr, 0);
+ m_choiceActivePower->SetSelection(3);
+
+ boxSizerLvl5_1->Add(m_choiceActivePower, 0, wxLEFT|wxRIGHT|wxBOTTOM, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_2 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl3_1->Add(boxSizerLvl4_2, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextReactivePower = new wxStaticText(m_panelGeneral, wxID_ANY, _("Reactive power"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+
+ boxSizerLvl4_2->Add(m_staticTextReactivePower, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl5_2 = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl4_2->Add(boxSizerLvl5_2, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_textCtrlReactivePower = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlReactivePower->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl5_2->Add(m_textCtrlReactivePower, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxArrayString m_choiceReactivePowerArr;
+ m_choiceReactivePowerArr.Add(wxT("p.u."));
+ m_choiceReactivePowerArr.Add(wxT("VAr"));
+ m_choiceReactivePowerArr.Add(wxT("kVAr"));
+ m_choiceReactivePowerArr.Add(wxT("MVAr"));
+ m_choiceReactivePower = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), m_choiceReactivePowerArr, 0);
+ m_choiceReactivePower->SetSelection(3);
+
+ boxSizerLvl5_2->Add(m_choiceReactivePower, 0, wxLEFT|wxRIGHT|wxBOTTOM, WXC_FROM_DIP(5));
+
+ m_staticTextType = new wxStaticText(m_panelGeneral, wxID_ANY, _("Load type (power flow)"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+
+ boxSizerLvl2_1->Add(m_staticTextType, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxArrayString m_choiceTypeArr;
+ m_choiceTypeArr.Add(wxT("Constant power"));
+ m_choiceTypeArr.Add(wxT("Constant impedance"));
+ m_choiceType = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), m_choiceTypeArr, 0);
+ m_choiceType->SetSelection(0);
+
+ boxSizerLvl2_1->Add(m_choiceType, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND, WXC_FROM_DIP(5));
+
+ m_panelStability = new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL);
+ m_notebook->AddPage(m_panelStability, _("Stability"), false);
+
+ wxBoxSizer* boxSizerLvl2_2 = new wxBoxSizer(wxVERTICAL);
+ m_panelStability->SetSizer(boxSizerLvl2_2);
+
+ m_checkBoxPlotData = new wxCheckBox(m_panelStability, wxID_ANY, _("Plot load data"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);
+ m_checkBoxPlotData->SetValue(false);
+
+ boxSizerLvl2_2->Add(m_checkBoxPlotData, 0, wxALL|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_checkBoxUseCompLoad = new wxCheckBox(m_panelStability, wxID_ANY, _("Use ZIP load composition"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);
+ m_checkBoxUseCompLoad->SetValue(false);
+
+ boxSizerLvl2_2->Add(m_checkBoxUseCompLoad, 0, wxALL, WXC_FROM_DIP(5));
+
+ wxGridSizer* gridSizerLvl3_2 = new wxGridSizer(0, 2, 0, 0);
+
+ boxSizerLvl2_2->Add(gridSizerLvl3_2, 1, wxEXPAND, WXC_FROM_DIP(5));
+
+ wxStaticBoxSizer* staticBoxSizerLvl4_3 = new wxStaticBoxSizer( new wxStaticBox(m_panelStability, wxID_ANY, _("Active power")), wxVERTICAL);
+
+ gridSizerLvl3_2->Add(staticBoxSizerLvl4_3, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl5_3 = new wxBoxSizer(wxVERTICAL);
+
+ staticBoxSizerLvl4_3->Add(boxSizerLvl5_3, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextActivePowerImp = new wxStaticText(m_panelStability, wxID_ANY, _("Constant impedance"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);
+
+ boxSizerLvl5_3->Add(m_staticTextActivePowerImp, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl6_1 = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl5_3->Add(boxSizerLvl6_1, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_textCtrlActivePowerImp = new wxTextCtrl(m_panelStability, wxID_ANY, wxT("100"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlActivePowerImp->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl6_1->Add(m_textCtrlActivePowerImp, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_staticTextPerc_1 = new wxStaticText(m_panelStability, wxID_ANY, _("%"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);
+
+ boxSizerLvl6_1->Add(m_staticTextPerc_1, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl5_4 = new wxBoxSizer(wxVERTICAL);
+
+ staticBoxSizerLvl4_3->Add(boxSizerLvl5_4, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextActivePowerCur = new wxStaticText(m_panelStability, wxID_ANY, _("Constant current"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);
+
+ boxSizerLvl5_4->Add(m_staticTextActivePowerCur, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl6_2 = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl5_4->Add(boxSizerLvl6_2, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_textCtrlActivePowerCur = new wxTextCtrl(m_panelStability, wxID_ANY, wxT("0"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlActivePowerCur->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl6_2->Add(m_textCtrlActivePowerCur, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_staticTextPerc_2 = new wxStaticText(m_panelStability, wxID_ANY, _("%"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);
+
+ boxSizerLvl6_2->Add(m_staticTextPerc_2, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl5_5 = new wxBoxSizer(wxVERTICAL);
+
+ staticBoxSizerLvl4_3->Add(boxSizerLvl5_5, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextActivePowerPow = new wxStaticText(m_panelStability, wxID_ANY, _("Constant power"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);
+
+ boxSizerLvl5_5->Add(m_staticTextActivePowerPow, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl6_3 = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl5_5->Add(boxSizerLvl6_3, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_textCtrlActivePowerPow = new wxTextCtrl(m_panelStability, wxID_ANY, wxT("0"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlActivePowerPow->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl6_3->Add(m_textCtrlActivePowerPow, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_staticTextPerc_3 = new wxStaticText(m_panelStability, wxID_ANY, _("%"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);
+
+ boxSizerLvl6_3->Add(m_staticTextPerc_3, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxStaticBoxSizer* staticBoxSizerLvl4_4 = new wxStaticBoxSizer( new wxStaticBox(m_panelStability, wxID_ANY, _("Reactive power")), wxVERTICAL);
+
+ gridSizerLvl3_2->Add(staticBoxSizerLvl4_4, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl5_6 = new wxBoxSizer(wxVERTICAL);
+
+ staticBoxSizerLvl4_4->Add(boxSizerLvl5_6, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextReactivePowerImp = new wxStaticText(m_panelStability, wxID_ANY, _("Constant impedance"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);
+
+ boxSizerLvl5_6->Add(m_staticTextReactivePowerImp, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl6_4 = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl5_6->Add(boxSizerLvl6_4, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_textCtrlReactivePowerImp = new wxTextCtrl(m_panelStability, wxID_ANY, wxT("100"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlReactivePowerImp->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl6_4->Add(m_textCtrlReactivePowerImp, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_staticTextPerc_4 = new wxStaticText(m_panelStability, wxID_ANY, _("%"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);
+
+ boxSizerLvl6_4->Add(m_staticTextPerc_4, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl5_7 = new wxBoxSizer(wxVERTICAL);
+
+ staticBoxSizerLvl4_4->Add(boxSizerLvl5_7, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextReactivePowerCur = new wxStaticText(m_panelStability, wxID_ANY, _("Constant current"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);
+
+ boxSizerLvl5_7->Add(m_staticTextReactivePowerCur, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl6_5 = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl5_7->Add(boxSizerLvl6_5, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_textCtrlReactivePowerCur = new wxTextCtrl(m_panelStability, wxID_ANY, wxT("0"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlReactivePowerCur->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl6_5->Add(m_textCtrlReactivePowerCur, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_staticTextPerc_5 = new wxStaticText(m_panelStability, wxID_ANY, _("%"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);
+
+ boxSizerLvl6_5->Add(m_staticTextPerc_5, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl5_8 = new wxBoxSizer(wxVERTICAL);
+
+ staticBoxSizerLvl4_4->Add(boxSizerLvl5_8, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextReactivePowerPow = new wxStaticText(m_panelStability, wxID_ANY, _("Constant power"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);
+
+ boxSizerLvl5_8->Add(m_staticTextReactivePowerPow, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl6_6 = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl5_8->Add(boxSizerLvl6_6, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_textCtrlReactivePowerPow = new wxTextCtrl(m_panelStability, wxID_ANY, wxT("0"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlReactivePowerPow->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl6_6->Add(m_textCtrlReactivePowerPow, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_staticTextPerc_6 = new wxStaticText(m_panelStability, wxID_ANY, _("%"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);
+
+ boxSizerLvl6_6->Add(m_staticTextPerc_6, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerBottomButtons = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl1_1->Add(boxSizerBottomButtons, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5));
+
+ m_buttonStabButton = new wxButton(this, wxID_ANY, _("Switching"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerBottomButtons->Add(m_buttonStabButton, 0, wxALL|wxALIGN_LEFT, WXC_FROM_DIP(5));
+
+ boxSizerBottomButtons->Add(0, 0, 1, wxALL, WXC_FROM_DIP(5));
+
+ m_buttonOK = new wxButton(this, wxID_ANY, _("OK"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerBottomButtons->Add(m_buttonOK, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5));
+
+ m_ButtonCancel = new wxButton(this, wxID_ANY, _("Cancel"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerBottomButtons->Add(m_ButtonCancel, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5));
+
+
+ #if wxVERSION_NUMBER >= 2900
+ if(!wxPersistenceManager::Get().Find(m_notebook)){
+ wxPersistenceManager::Get().RegisterAndRestore(m_notebook);
+ } else {
+ wxPersistenceManager::Get().Restore(m_notebook);
+ }
+ #endif
+
+ SetName(wxT("LoadFormBase"));
+ SetSize(-1,-1);
+ if (GetSizer()) {
+ GetSizer()->Fit(this);
+ }
+ if(GetParent()) {
+ CentreOnParent(wxBOTH);
+ } else {
+ CentreOnScreen(wxBOTH);
+ }
+#if wxVERSION_NUMBER >= 2900
+ if(!wxPersistenceManager::Get().Find(this)) {
+ wxPersistenceManager::Get().RegisterAndRestore(this);
+ } else {
+ wxPersistenceManager::Get().Restore(this);
+ }
+#endif
+ // Connect events
+ m_checkBoxUseCompLoad->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(LoadFormBase::OnCheckBoxCompLoadClick), NULL, this);
+ m_buttonStabButton->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(LoadFormBase::OnStabilityButtonClick), NULL, this);
+ m_buttonOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(LoadFormBase::OnOnButtonClick), NULL, this);
+ m_ButtonCancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(LoadFormBase::OnCancelButtonClick), NULL, this);
+
+}
+
+LoadFormBase::~LoadFormBase()
+{
+ m_checkBoxUseCompLoad->Disconnect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(LoadFormBase::OnCheckBoxCompLoadClick), NULL, this);
+ m_buttonStabButton->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(LoadFormBase::OnStabilityButtonClick), NULL, this);
+ m_buttonOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(LoadFormBase::OnOnButtonClick), NULL, this);
+ m_ButtonCancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(LoadFormBase::OnCancelButtonClick), NULL, this);
+
+}
+
+ReactiveShuntElementFormBase::ReactiveShuntElementFormBase(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style)
+ : wxDialog(parent, id, title, pos, size, style)
+{
+ if ( !bBitmapLoaded ) {
+ // We need to initialise the default bitmap handler
+ wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler);
+ wxC9EE9InitBitmapResources();
+ bBitmapLoaded = true;
+ }
+
+ wxBoxSizer* boxSizerLvl1_1 = new wxBoxSizer(wxVERTICAL);
+ this->SetSizer(boxSizerLvl1_1);
+
+ m_notebook = new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), wxBK_DEFAULT);
+ m_notebook->SetName(wxT("m_notebook"));
+
+ boxSizerLvl1_1->Add(m_notebook, 1, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_panelGeneral = new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL);
+ m_notebook->AddPage(m_panelGeneral, _("General"), false);
+
+ wxBoxSizer* boxSizerLvl2_1 = new wxBoxSizer(wxVERTICAL);
+ m_panelGeneral->SetSizer(boxSizerLvl2_1);
+
+ m_staticTextName = new wxStaticText(m_panelGeneral, wxID_ANY, _("Name"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+
+ boxSizerLvl2_1->Add(m_staticTextName, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_textCtrlName = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlName->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl2_1->Add(m_textCtrlName, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+ m_textCtrlName->SetMinSize(wxSize(300,-1));
+
+ wxGridSizer* gridSizerLvl3_1 = new wxGridSizer(0, 2, 0, 0);
+
+ boxSizerLvl2_1->Add(gridSizerLvl3_1, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_2 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl3_1->Add(boxSizerLvl4_2, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextReactivePower = new wxStaticText(m_panelGeneral, wxID_ANY, _("Reactive power"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+
+ boxSizerLvl4_2->Add(m_staticTextReactivePower, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl5_2 = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl4_2->Add(boxSizerLvl5_2, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_textCtrlReactivePower = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlReactivePower->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl5_2->Add(m_textCtrlReactivePower, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxArrayString m_choiceReactivePowerArr;
+ m_choiceReactivePowerArr.Add(wxT("p.u."));
+ m_choiceReactivePowerArr.Add(wxT("VAr"));
+ m_choiceReactivePowerArr.Add(wxT("kVAr"));
+ m_choiceReactivePowerArr.Add(wxT("MVAr"));
+ m_choiceReactivePower = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), m_choiceReactivePowerArr, 0);
+ m_choiceReactivePower->SetSelection(3);
+
+ boxSizerLvl5_2->Add(m_choiceReactivePower, 0, wxLEFT|wxRIGHT|wxBOTTOM, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerBottomButtons = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl1_1->Add(boxSizerBottomButtons, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5));
+
+ m_buttonStabButton = new wxButton(this, wxID_ANY, _("Stability"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerBottomButtons->Add(m_buttonStabButton, 0, wxALL|wxALIGN_LEFT, WXC_FROM_DIP(5));
+
+ boxSizerBottomButtons->Add(0, 0, 1, wxALL, WXC_FROM_DIP(5));
+
+ m_buttonOK = new wxButton(this, wxID_ANY, _("OK"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerBottomButtons->Add(m_buttonOK, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5));
+
+ m_buttonCancel = new wxButton(this, wxID_ANY, _("Cancel"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerBottomButtons->Add(m_buttonCancel, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5));
+
+
+ #if wxVERSION_NUMBER >= 2900
+ if(!wxPersistenceManager::Get().Find(m_notebook)){
+ wxPersistenceManager::Get().RegisterAndRestore(m_notebook);
+ } else {
+ wxPersistenceManager::Get().Restore(m_notebook);
+ }
+ #endif
+
+ SetName(wxT("ReactiveShuntElementFormBase"));
+ SetSize(-1,-1);
+ if (GetSizer()) {
+ GetSizer()->Fit(this);
+ }
+ if(GetParent()) {
+ CentreOnParent(wxBOTH);
+ } else {
+ CentreOnScreen(wxBOTH);
+ }
+#if wxVERSION_NUMBER >= 2900
+ if(!wxPersistenceManager::Get().Find(this)) {
+ wxPersistenceManager::Get().RegisterAndRestore(this);
+ } else {
+ wxPersistenceManager::Get().Restore(this);
+ }
+#endif
+ // Connect events
+ m_buttonStabButton->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(ReactiveShuntElementFormBase::OnStabilityButtonClick), NULL, this);
+ m_buttonOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(ReactiveShuntElementFormBase::OnOKButtonClick), NULL, this);
+ m_buttonCancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(ReactiveShuntElementFormBase::OnCancelButtonClick), NULL, this);
+
+}
+
+ReactiveShuntElementFormBase::~ReactiveShuntElementFormBase()
+{
+ m_buttonStabButton->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(ReactiveShuntElementFormBase::OnStabilityButtonClick), NULL, this);
+ m_buttonOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(ReactiveShuntElementFormBase::OnOKButtonClick), NULL, this);
+ m_buttonCancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(ReactiveShuntElementFormBase::OnCancelButtonClick), NULL, this);
+
+}
+
+SwitchingFormBase::SwitchingFormBase(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style)
+ : wxDialog(parent, id, title, pos, size, style)
+{
+ if ( !bBitmapLoaded ) {
+ // We need to initialise the default bitmap handler
+ wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler);
+ wxC9EE9InitBitmapResources();
+ bBitmapLoaded = true;
+ }
+
+ wxBoxSizer* boxSizerLvl1_1 = new wxBoxSizer(wxVERTICAL);
+ this->SetSizer(boxSizerLvl1_1);
+
+ wxBoxSizer* boxSizerLvl2_1 = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl1_1->Add(boxSizerLvl2_1, 0, wxALL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl3_1 = new wxBoxSizer(wxVERTICAL);
+
+ boxSizerLvl2_1->Add(boxSizerLvl3_1, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5));
+
+ wxArrayString m_pgMgrSwitchingsPropArr;
+ wxUnusedVar(m_pgMgrSwitchingsPropArr);
+ wxArrayInt m_pgMgrSwitchingsPropIntArr;
+ wxUnusedVar(m_pgMgrSwitchingsPropIntArr);
+ m_pgMgrSwitchingsProp = new wxPropertyGridManager(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), wxPG_STATIC_LAYOUT|wxPG_SPLITTER_AUTO_CENTER|wxPG_BOLD_MODIFIED);
+
+ boxSizerLvl3_1->Add(m_pgMgrSwitchingsProp, 1, wxALL, WXC_FROM_DIP(5));
+
+ m_pgPropTitle = m_pgMgrSwitchingsProp->Append( new wxPropertyCategory( _("Switching properties") ) );
+ m_pgPropTitle->SetHelpString(wxT(""));
+
+ m_pgMgrSwitchingsPropArr.Clear();
+ m_pgMgrSwitchingsPropIntArr.Clear();
+ m_pgMgrSwitchingsPropArr.Add(_("Insert"));
+ m_pgMgrSwitchingsPropArr.Add(_("Remove"));
+ m_pgPropType = m_pgMgrSwitchingsProp->Append( new wxEnumProperty( _("Type"), wxPG_LABEL, m_pgMgrSwitchingsPropArr, m_pgMgrSwitchingsPropIntArr, 0) );
+ m_pgPropType->SetHelpString(wxT(""));
+
+ m_pgPropTime = m_pgMgrSwitchingsProp->Append( new wxFloatProperty( _("Time (s)"), wxPG_LABEL, 0) );
+ m_pgPropTime->SetHelpString(wxT(""));
+ m_pgMgrSwitchingsProp->SetMinSize(wxSize(150,-1));
+
+ wxBoxSizer* boxSizerLvl3_3 = new wxBoxSizer(wxVERTICAL);
+
+ boxSizerLvl2_1->Add(boxSizerLvl3_3, 0, wxALL|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_buttonInsert = new wxButton(this, wxID_ANY, _("Add"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerLvl3_3->Add(m_buttonInsert, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5));
+
+ m_buttonRemove = new wxButton(this, wxID_ANY, _("Remove"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerLvl3_3->Add(m_buttonRemove, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5));
+
+ m_buttonUp = new wxButton(this, wxID_ANY, _("Up"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerLvl3_3->Add(m_buttonUp, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5));
+
+ m_buttonDown = new wxButton(this, wxID_ANY, _("Down"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerLvl3_3->Add(m_buttonDown, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl3_2 = new wxBoxSizer(wxVERTICAL);
+
+ boxSizerLvl2_1->Add(boxSizerLvl3_2, 0, wxALL, WXC_FROM_DIP(5));
+
+ m_staticTextSwList = new wxStaticText(this, wxID_ANY, _("Switching list"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerLvl3_2->Add(m_staticTextSwList, 0, wxLEFT|wxRIGHT|wxTOP, WXC_FROM_DIP(5));
+
+ m_listCtrlSwitchings = new wxListCtrl(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), wxLC_REPORT);
+
+ boxSizerLvl3_2->Add(m_listCtrlSwitchings, 0, wxLEFT|wxRIGHT|wxBOTTOM, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerBottomButtons = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl1_1->Add(boxSizerBottomButtons, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5));
+
+ m_buttonOK = new wxButton(this, wxID_ANY, _("OK"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerBottomButtons->Add(m_buttonOK, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5));
+
+ m_buttonCancel = new wxButton(this, wxID_ANY, _("Cancel"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerBottomButtons->Add(m_buttonCancel, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5));
+
+ SetName(wxT("SwitchingFormBase"));
+ SetSize(-1,-1);
+ if (GetSizer()) {
+ GetSizer()->Fit(this);
+ }
+ if(GetParent()) {
+ CentreOnParent(wxBOTH);
+ } else {
+ CentreOnScreen(wxBOTH);
+ }
+#if wxVERSION_NUMBER >= 2900
+ if(!wxPersistenceManager::Get().Find(this)) {
+ wxPersistenceManager::Get().RegisterAndRestore(this);
+ } else {
+ wxPersistenceManager::Get().Restore(this);
+ }
+#endif
+ // Connect events
+ m_pgMgrSwitchingsProp->Connect(wxEVT_PG_CHANGED, wxPropertyGridEventHandler(SwitchingFormBase::OnChangeProperties), NULL, this);
+ m_buttonInsert->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SwitchingFormBase::OnInsertButtonClick), NULL, this);
+ m_buttonRemove->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SwitchingFormBase::OnRemoveButtonClick), NULL, this);
+ m_buttonUp->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SwitchingFormBase::OnUpButtonClick), NULL, this);
+ m_buttonDown->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SwitchingFormBase::OnDownButtonClick), NULL, this);
+ m_listCtrlSwitchings->Connect(wxEVT_COMMAND_LIST_ITEM_SELECTED, wxListEventHandler(SwitchingFormBase::OnSelectItem), NULL, this);
+ m_buttonOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SwitchingFormBase::OnOKButtonClick), NULL, this);
+ m_buttonCancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SwitchingFormBase::OnCancelButtonClick), NULL, this);
+
+}
+
+SwitchingFormBase::~SwitchingFormBase()
+{
+ m_pgMgrSwitchingsProp->Disconnect(wxEVT_PG_CHANGED, wxPropertyGridEventHandler(SwitchingFormBase::OnChangeProperties), NULL, this);
+ m_buttonInsert->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SwitchingFormBase::OnInsertButtonClick), NULL, this);
+ m_buttonRemove->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SwitchingFormBase::OnRemoveButtonClick), NULL, this);
+ m_buttonUp->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SwitchingFormBase::OnUpButtonClick), NULL, this);
+ m_buttonDown->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SwitchingFormBase::OnDownButtonClick), NULL, this);
+ m_listCtrlSwitchings->Disconnect(wxEVT_COMMAND_LIST_ITEM_SELECTED, wxListEventHandler(SwitchingFormBase::OnSelectItem), NULL, this);
+ m_buttonOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SwitchingFormBase::OnOKButtonClick), NULL, this);
+ m_buttonCancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SwitchingFormBase::OnCancelButtonClick), NULL, this);
+
+}
+
+IndMotorFormBase::IndMotorFormBase(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style)
+ : wxDialog(parent, id, title, pos, size, style)
+{
+ if ( !bBitmapLoaded ) {
+ // We need to initialise the default bitmap handler
+ wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler);
+ wxC9EE9InitBitmapResources();
+ bBitmapLoaded = true;
+ }
+
+ wxBoxSizer* boxSizerLvl1_1 = new wxBoxSizer(wxVERTICAL);
+ this->SetSizer(boxSizerLvl1_1);
+
+ m_notebook = new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), wxBK_DEFAULT);
+ m_notebook->SetName(wxT("m_notebook"));
+
+ boxSizerLvl1_1->Add(m_notebook, 1, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_panelGeneral = new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL);
+ m_notebook->AddPage(m_panelGeneral, _("General"), false);
+
+ wxBoxSizer* boxSizerLvl2_1 = new wxBoxSizer(wxVERTICAL);
+ m_panelGeneral->SetSizer(boxSizerLvl2_1);
+
+ m_staticTextName = new wxStaticText(m_panelGeneral, wxID_ANY, _("Name"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+
+ boxSizerLvl2_1->Add(m_staticTextName, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_textCtrlName = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlName->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl2_1->Add(m_textCtrlName, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+ m_textCtrlName->SetMinSize(wxSize(300,-1));
+
+ wxGridSizer* gridSizerLvl3_1 = new wxGridSizer(0, 2, 0, 0);
+
+ boxSizerLvl2_1->Add(gridSizerLvl3_1, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_1 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl3_1->Add(boxSizerLvl4_1, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextActivePower = new wxStaticText(m_panelGeneral, wxID_ANY, _("Active power"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+
+ boxSizerLvl4_1->Add(m_staticTextActivePower, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl5_1 = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl4_1->Add(boxSizerLvl5_1, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_textCtrlActivePower = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlActivePower->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl5_1->Add(m_textCtrlActivePower, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxArrayString m_choiceActivePowerArr;
+ m_choiceActivePowerArr.Add(wxT("p.u."));
+ m_choiceActivePowerArr.Add(wxT("W"));
+ m_choiceActivePowerArr.Add(wxT("kW"));
+ m_choiceActivePowerArr.Add(wxT("MW"));
+ m_choiceActivePower = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), m_choiceActivePowerArr, 0);
+ m_choiceActivePower->SetSelection(3);
+
+ boxSizerLvl5_1->Add(m_choiceActivePower, 0, wxLEFT|wxRIGHT|wxBOTTOM, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_2 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl3_1->Add(boxSizerLvl4_2, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextReactivePower = new wxStaticText(m_panelGeneral, wxID_ANY, _("Reactive power"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+
+ boxSizerLvl4_2->Add(m_staticTextReactivePower, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl5_2 = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl4_2->Add(boxSizerLvl5_2, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_textCtrlReactivePower = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlReactivePower->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl5_2->Add(m_textCtrlReactivePower, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxArrayString m_choiceReactivePowerArr;
+ m_choiceReactivePowerArr.Add(wxT("p.u."));
+ m_choiceReactivePowerArr.Add(wxT("VAr"));
+ m_choiceReactivePowerArr.Add(wxT("kVAr"));
+ m_choiceReactivePowerArr.Add(wxT("MVAr"));
+ m_choiceReactivePower = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), m_choiceReactivePowerArr, 0);
+ m_choiceReactivePower->SetSelection(3);
+
+ boxSizerLvl5_2->Add(m_choiceReactivePower, 0, wxLEFT|wxRIGHT|wxBOTTOM, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerBottomButtons = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl1_1->Add(boxSizerBottomButtons, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5));
+
+ m_buttonStabButton = new wxButton(this, wxID_ANY, _("Stability"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerBottomButtons->Add(m_buttonStabButton, 0, wxALL|wxALIGN_LEFT, WXC_FROM_DIP(5));
+
+ boxSizerBottomButtons->Add(0, 0, 1, wxALL, WXC_FROM_DIP(5));
+
+ m_buttonOK = new wxButton(this, wxID_ANY, _("OK"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerBottomButtons->Add(m_buttonOK, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5));
+
+ m_ButtonCancel = new wxButton(this, wxID_ANY, _("Cancel"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerBottomButtons->Add(m_ButtonCancel, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5));
+
+
+ #if wxVERSION_NUMBER >= 2900
+ if(!wxPersistenceManager::Get().Find(m_notebook)){
+ wxPersistenceManager::Get().RegisterAndRestore(m_notebook);
+ } else {
+ wxPersistenceManager::Get().Restore(m_notebook);
+ }
+ #endif
+
+ SetName(wxT("IndMotorFormBase"));
+ SetSize(-1,-1);
+ if (GetSizer()) {
+ GetSizer()->Fit(this);
+ }
+ if(GetParent()) {
+ CentreOnParent(wxBOTH);
+ } else {
+ CentreOnScreen(wxBOTH);
+ }
+#if wxVERSION_NUMBER >= 2900
+ if(!wxPersistenceManager::Get().Find(this)) {
+ wxPersistenceManager::Get().RegisterAndRestore(this);
+ } else {
+ wxPersistenceManager::Get().Restore(this);
+ }
+#endif
+ // Connect events
+ m_buttonStabButton->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(IndMotorFormBase::OnStabilityButtonClick), NULL, this);
+ m_buttonOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(IndMotorFormBase::OnOKButtonClick), NULL, this);
+ m_ButtonCancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(IndMotorFormBase::OnCancelButtonClick), NULL, this);
+
+}
+
+IndMotorFormBase::~IndMotorFormBase()
+{
+ m_buttonStabButton->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(IndMotorFormBase::OnStabilityButtonClick), NULL, this);
+ m_buttonOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(IndMotorFormBase::OnOKButtonClick), NULL, this);
+ m_ButtonCancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(IndMotorFormBase::OnCancelButtonClick), NULL, this);
+
+}
+
+TextFormBase::TextFormBase(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style)
+ : wxDialog(parent, id, title, pos, size, style)
+{
+ if ( !bBitmapLoaded ) {
+ // We need to initialise the default bitmap handler
+ wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler);
+ wxC9EE9InitBitmapResources();
+ bBitmapLoaded = true;
+ }
+
+ wxBoxSizer* boxSizerLvl1_1 = new wxBoxSizer(wxVERTICAL);
+ this->SetSizer(boxSizerLvl1_1);
+
+ m_notebook = new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), wxBK_DEFAULT);
+ m_notebook->SetName(wxT("m_notebook"));
+
+ boxSizerLvl1_1->Add(m_notebook, 1, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_panelGeneral = new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL);
+ m_notebook->AddPage(m_panelGeneral, _("General"), false);
+
+ wxBoxSizer* boxSizerLvl2_1 = new wxBoxSizer(wxVERTICAL);
+ m_panelGeneral->SetSizer(boxSizerLvl2_1);
+
+ wxGridSizer* gridSizerLvl3_1 = new wxGridSizer(0, 3, 0, 0);
+
+ boxSizerLvl2_1->Add(gridSizerLvl3_1, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_1 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl3_1->Add(boxSizerLvl4_1, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextElement = new wxStaticText(m_panelGeneral, wxID_ANY, _("Element"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+
+ boxSizerLvl4_1->Add(m_staticTextElement, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxArrayString m_choiceElementArr;
+ m_choiceElementArr.Add(wxT("Bus"));
+ m_choiceElementArr.Add(wxT("Generator"));
+ m_choiceElementArr.Add(wxT("Line"));
+ m_choiceElementArr.Add(wxT("Transformer"));
+ m_choiceElementArr.Add(wxT("Load"));
+ m_choiceElementArr.Add(wxT("Capacitor"));
+ m_choiceElementArr.Add(wxT("Inductor"));
+ m_choiceElementArr.Add(wxT("Synchronous compensator"));
+ m_choiceElementArr.Add(wxT("Induction motor"));
+ m_choiceElement = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), m_choiceElementArr, 0);
+
+ boxSizerLvl4_1->Add(m_choiceElement, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_2 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl3_1->Add(boxSizerLvl4_2, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextName = new wxStaticText(m_panelGeneral, wxID_ANY, _("Element name"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+
+ boxSizerLvl4_2->Add(m_staticTextName, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxArrayString m_choiceNameArr;
+ m_choiceName = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), m_choiceNameArr, 0);
+
+ boxSizerLvl4_2->Add(m_choiceName, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_3 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl3_1->Add(boxSizerLvl4_3, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextType = new wxStaticText(m_panelGeneral, wxID_ANY, _("Text type"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+
+ boxSizerLvl4_3->Add(m_staticTextType, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxArrayString m_choiceTextTypeArr;
+ m_choiceTextType = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), m_choiceTextTypeArr, 0);
+
+ boxSizerLvl4_3->Add(m_choiceTextType, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_4 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl3_1->Add(boxSizerLvl4_4, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextFromBus = new wxStaticText(m_panelGeneral, wxID_ANY, _("From bus"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+
+ boxSizerLvl4_4->Add(m_staticTextFromBus, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxArrayString m_choiceTextFromBusArr;
+ m_choiceTextFromBus = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), m_choiceTextFromBusArr, 0);
+
+ boxSizerLvl4_4->Add(m_choiceTextFromBus, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_5 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl3_1->Add(boxSizerLvl4_5, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextToBus = new wxStaticText(m_panelGeneral, wxID_ANY, _("To bus"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+
+ boxSizerLvl4_5->Add(m_staticTextToBus, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxArrayString m_choiceTextToBusArr;
+ m_choiceTextToBus = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), m_choiceTextToBusArr, 0);
+
+ boxSizerLvl4_5->Add(m_choiceTextToBus, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_6 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl3_1->Add(boxSizerLvl4_6, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextUnit = new wxStaticText(m_panelGeneral, wxID_ANY, _("Unit"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+
+ boxSizerLvl4_6->Add(m_staticTextUnit, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxArrayString m_choiceTextUnitArr;
+ m_choiceTextUnit = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), m_choiceTextUnitArr, 0);
+
+ boxSizerLvl4_6->Add(m_choiceTextUnit, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl3_2 = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl2_1->Add(boxSizerLvl3_2, 1, wxALL|wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextDecimal = new wxStaticText(m_panelGeneral, wxID_ANY, _("Decimal places:"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+
+ boxSizerLvl3_2->Add(m_staticTextDecimal, 0, wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_textCtrlDecimal = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT("2"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), wxTE_PROCESS_ENTER);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlDecimal->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl3_2->Add(m_textCtrlDecimal, 0, wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ boxSizerLvl3_2->Add(0, 0, 0, wxALL, WXC_FROM_DIP(5));
+
+ m_staticTextPreview = new wxStaticText(m_panelGeneral, wxID_ANY, _("Preview:"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+
+ boxSizerLvl3_2->Add(m_staticTextPreview, 0, wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_textCtrlPreview = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), wxTE_CENTRE);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlPreview->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl3_2->Add(m_textCtrlPreview, 1, wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerBottomButtons = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl1_1->Add(boxSizerBottomButtons, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5));
+
+ boxSizerBottomButtons->Add(0, 0, 1, wxALL, WXC_FROM_DIP(5));
+
+ m_buttonOK = new wxButton(this, wxID_ANY, _("OK"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerBottomButtons->Add(m_buttonOK, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5));
+
+ m_ButtonCancel = new wxButton(this, wxID_ANY, _("Cancel"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerBottomButtons->Add(m_ButtonCancel, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5));
+
+
+ #if wxVERSION_NUMBER >= 2900
+ if(!wxPersistenceManager::Get().Find(m_notebook)){
+ wxPersistenceManager::Get().RegisterAndRestore(m_notebook);
+ } else {
+ wxPersistenceManager::Get().Restore(m_notebook);
+ }
+ #endif
+
+ SetName(wxT("TextFormBase"));
+ SetSize(-1,-1);
+ if (GetSizer()) {
+ GetSizer()->Fit(this);
+ }
+ if(GetParent()) {
+ CentreOnParent(wxBOTH);
+ } else {
+ CentreOnScreen(wxBOTH);
+ }
+#if wxVERSION_NUMBER >= 2900
+ if(!wxPersistenceManager::Get().Find(this)) {
+ wxPersistenceManager::Get().RegisterAndRestore(this);
+ } else {
+ wxPersistenceManager::Get().Restore(this);
+ }
+#endif
+ // Connect events
+ m_choiceElement->Connect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(TextFormBase::OnElementChoiceSelected), NULL, this);
+ m_choiceName->Connect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(TextFormBase::OnNameChoiceSelected), NULL, this);
+ m_choiceTextType->Connect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(TextFormBase::OnTypeChoiceSelected), NULL, this);
+ m_choiceTextFromBus->Connect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(TextFormBase::OnFromBusChoiceSelected), NULL, this);
+ m_choiceTextToBus->Connect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(TextFormBase::OnToBusChoiceSelected), NULL, this);
+ m_choiceTextUnit->Connect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(TextFormBase::OnUnitChoiceSelected), NULL, this);
+ m_textCtrlDecimal->Connect(wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler(TextFormBase::OnTextEnter), NULL, this);
+ m_buttonOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(TextFormBase::OnOKButtonClick), NULL, this);
+ m_ButtonCancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(TextFormBase::OnCancelButtonClick), NULL, this);
+
+}
+
+TextFormBase::~TextFormBase()
+{
+ m_choiceElement->Disconnect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(TextFormBase::OnElementChoiceSelected), NULL, this);
+ m_choiceName->Disconnect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(TextFormBase::OnNameChoiceSelected), NULL, this);
+ m_choiceTextType->Disconnect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(TextFormBase::OnTypeChoiceSelected), NULL, this);
+ m_choiceTextFromBus->Disconnect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(TextFormBase::OnFromBusChoiceSelected), NULL, this);
+ m_choiceTextToBus->Disconnect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(TextFormBase::OnToBusChoiceSelected), NULL, this);
+ m_choiceTextUnit->Disconnect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(TextFormBase::OnUnitChoiceSelected), NULL, this);
+ m_textCtrlDecimal->Disconnect(wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler(TextFormBase::OnTextEnter), NULL, this);
+ m_buttonOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(TextFormBase::OnOKButtonClick), NULL, this);
+ m_ButtonCancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(TextFormBase::OnCancelButtonClick), NULL, this);
+
+}
+
+TransferFunctionFormBase::TransferFunctionFormBase(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style)
+ : wxDialog(parent, id, title, pos, size, style)
+{
+ if ( !bBitmapLoaded ) {
+ // We need to initialise the default bitmap handler
+ wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler);
+ wxC9EE9InitBitmapResources();
+ bBitmapLoaded = true;
+ }
+
+ wxBoxSizer* boxSizerLvl1_1 = new wxBoxSizer(wxVERTICAL);
+ this->SetSizer(boxSizerLvl1_1);
+
+ m_notebook = new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), wxBK_DEFAULT);
+ m_notebook->SetName(wxT("m_notebook"));
+
+ boxSizerLvl1_1->Add(m_notebook, 1, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_panelGeneral = new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL);
+ m_notebook->AddPage(m_panelGeneral, _("General"), false);
+
+ wxBoxSizer* boxSizerLvl2_1 = new wxBoxSizer(wxVERTICAL);
+ m_panelGeneral->SetSizer(boxSizerLvl2_1);
+
+ m_staticTextNumerator = new wxStaticText(m_panelGeneral, wxID_ANY, _("Numerator parameters"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+
+ boxSizerLvl2_1->Add(m_staticTextNumerator, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_textCtrlNumerator = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlNumerator->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl2_1->Add(m_textCtrlNumerator, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+ m_textCtrlNumerator->SetMinSize(wxSize(300,-1));
+
+ m_staticTextDenominator = new wxStaticText(m_panelGeneral, wxID_ANY, _("Denominator parameters"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+
+ boxSizerLvl2_1->Add(m_staticTextDenominator, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_textCtrlDenominator = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlDenominator->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl2_1->Add(m_textCtrlDenominator, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+ m_textCtrlDenominator->SetMinSize(wxSize(300,-1));
+
+ wxBoxSizer* boxSizerBottomButtons = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl1_1->Add(boxSizerBottomButtons, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5));
+
+ boxSizerBottomButtons->Add(0, 0, 1, wxALL, WXC_FROM_DIP(5));
+
+ m_buttonOK = new wxButton(this, wxID_ANY, _("OK"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerBottomButtons->Add(m_buttonOK, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5));
+
+ m_ButtonCancel = new wxButton(this, wxID_ANY, _("Cancel"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerBottomButtons->Add(m_ButtonCancel, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5));
+
+
+ #if wxVERSION_NUMBER >= 2900
+ if(!wxPersistenceManager::Get().Find(m_notebook)){
+ wxPersistenceManager::Get().RegisterAndRestore(m_notebook);
+ } else {
+ wxPersistenceManager::Get().Restore(m_notebook);
+ }
+ #endif
+
+ SetName(wxT("TransferFunctionFormBase"));
+ SetSize(-1,-1);
+ if (GetSizer()) {
+ GetSizer()->Fit(this);
+ }
+ if(GetParent()) {
+ CentreOnParent(wxBOTH);
+ } else {
+ CentreOnScreen(wxBOTH);
+ }
+#if wxVERSION_NUMBER >= 2900
+ if(!wxPersistenceManager::Get().Find(this)) {
+ wxPersistenceManager::Get().RegisterAndRestore(this);
+ } else {
+ wxPersistenceManager::Get().Restore(this);
+ }
+#endif
+ // Connect events
+ m_buttonOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(TransferFunctionFormBase::OnOKClick), NULL, this);
+ m_ButtonCancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(TransferFunctionFormBase::OnCancelClick), NULL, this);
+
+}
+
+TransferFunctionFormBase::~TransferFunctionFormBase()
+{
+ m_buttonOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(TransferFunctionFormBase::OnOKClick), NULL, this);
+ m_ButtonCancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(TransferFunctionFormBase::OnCancelClick), NULL, this);
+
+}
+
+SumFormBase::SumFormBase(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style)
+ : wxDialog(parent, id, title, pos, size, style)
+{
+ if ( !bBitmapLoaded ) {
+ // We need to initialise the default bitmap handler
+ wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler);
+ wxC9EE9InitBitmapResources();
+ bBitmapLoaded = true;
+ }
+
+ wxBoxSizer* boxSizerLvl1_1 = new wxBoxSizer(wxVERTICAL);
+ this->SetSizer(boxSizerLvl1_1);
+
+ m_notebook = new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), wxBK_DEFAULT);
+ m_notebook->SetName(wxT("m_notebook"));
+
+ boxSizerLvl1_1->Add(m_notebook, 1, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_panelGeneral = new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL);
+ m_notebook->AddPage(m_panelGeneral, _("General"), false);
+
+ wxBoxSizer* boxSizerLvl2_1 = new wxBoxSizer(wxVERTICAL);
+ m_panelGeneral->SetSizer(boxSizerLvl2_1);
+
+ m_staticTextSigns = new wxStaticText(m_panelGeneral, wxID_ANY, _("Signs"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+
+ boxSizerLvl2_1->Add(m_staticTextSigns, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_textCtrlSigns = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlSigns->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl2_1->Add(m_textCtrlSigns, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+ m_textCtrlSigns->SetMinSize(wxSize(300,-1));
+
+ wxBoxSizer* boxSizerBottomButtons = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl1_1->Add(boxSizerBottomButtons, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5));
+
+ boxSizerBottomButtons->Add(0, 0, 1, wxALL, WXC_FROM_DIP(5));
+
+ m_buttonOK = new wxButton(this, wxID_ANY, _("OK"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerBottomButtons->Add(m_buttonOK, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5));
+
+ m_ButtonCancel = new wxButton(this, wxID_ANY, _("Cancel"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerBottomButtons->Add(m_ButtonCancel, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5));
+
+
+ #if wxVERSION_NUMBER >= 2900
+ if(!wxPersistenceManager::Get().Find(m_notebook)){
+ wxPersistenceManager::Get().RegisterAndRestore(m_notebook);
+ } else {
+ wxPersistenceManager::Get().Restore(m_notebook);
+ }
+ #endif
+
+ SetName(wxT("SumFormBase"));
+ SetSize(-1,-1);
+ if (GetSizer()) {
+ GetSizer()->Fit(this);
+ }
+ if(GetParent()) {
+ CentreOnParent(wxBOTH);
+ } else {
+ CentreOnScreen(wxBOTH);
+ }
+#if wxVERSION_NUMBER >= 2900
+ if(!wxPersistenceManager::Get().Find(this)) {
+ wxPersistenceManager::Get().RegisterAndRestore(this);
+ } else {
+ wxPersistenceManager::Get().Restore(this);
+ }
+#endif
+ // Connect events
+ m_buttonOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SumFormBase::OnOKClick), NULL, this);
+ m_ButtonCancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SumFormBase::OnCancelClick), NULL, this);
+
+}
+
+SumFormBase::~SumFormBase()
+{
+ m_buttonOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SumFormBase::OnOKClick), NULL, this);
+ m_ButtonCancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SumFormBase::OnCancelClick), NULL, this);
+
+}
+
+LimiterFormBase::LimiterFormBase(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style)
+ : wxDialog(parent, id, title, pos, size, style)
+{
+ if ( !bBitmapLoaded ) {
+ // We need to initialise the default bitmap handler
+ wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler);
+ wxC9EE9InitBitmapResources();
+ bBitmapLoaded = true;
+ }
+
+ wxBoxSizer* boxSizerLvl1_1 = new wxBoxSizer(wxVERTICAL);
+ this->SetSizer(boxSizerLvl1_1);
+
+ m_notebook = new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), wxBK_DEFAULT);
+ m_notebook->SetName(wxT("m_notebook"));
+
+ boxSizerLvl1_1->Add(m_notebook, 1, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_panelGeneral = new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL);
+ m_notebook->AddPage(m_panelGeneral, _("General"), false);
+
+ wxBoxSizer* boxSizerLvl2_1 = new wxBoxSizer(wxVERTICAL);
+ m_panelGeneral->SetSizer(boxSizerLvl2_1);
+
+ m_staticTextUpLimiter = new wxStaticText(m_panelGeneral, wxID_ANY, _("Upper limit"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+
+ boxSizerLvl2_1->Add(m_staticTextUpLimiter, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_textCtrlUpLimit = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlUpLimit->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl2_1->Add(m_textCtrlUpLimit, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+ m_textCtrlUpLimit->SetMinSize(wxSize(100,-1));
+
+ m_staticTextLowLimit = new wxStaticText(m_panelGeneral, wxID_ANY, _("Lower limit"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+
+ boxSizerLvl2_1->Add(m_staticTextLowLimit, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_textCtrlLowLimit = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlLowLimit->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl2_1->Add(m_textCtrlLowLimit, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+ m_textCtrlLowLimit->SetMinSize(wxSize(100,-1));
+
+ wxBoxSizer* boxSizerBottomButtons = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl1_1->Add(boxSizerBottomButtons, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5));
+
+ boxSizerBottomButtons->Add(0, 0, 1, wxALL, WXC_FROM_DIP(5));
+
+ m_buttonOK = new wxButton(this, wxID_ANY, _("OK"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerBottomButtons->Add(m_buttonOK, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5));
+
+ m_ButtonCancel = new wxButton(this, wxID_ANY, _("Cancel"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerBottomButtons->Add(m_ButtonCancel, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5));
+
+
+ #if wxVERSION_NUMBER >= 2900
+ if(!wxPersistenceManager::Get().Find(m_notebook)){
+ wxPersistenceManager::Get().RegisterAndRestore(m_notebook);
+ } else {
+ wxPersistenceManager::Get().Restore(m_notebook);
+ }
+ #endif
+
+ SetName(wxT("LimiterFormBase"));
+ SetSize(-1,-1);
+ if (GetSizer()) {
+ GetSizer()->Fit(this);
+ }
+ if(GetParent()) {
+ CentreOnParent(wxBOTH);
+ } else {
+ CentreOnScreen(wxBOTH);
+ }
+#if wxVERSION_NUMBER >= 2900
+ if(!wxPersistenceManager::Get().Find(this)) {
+ wxPersistenceManager::Get().RegisterAndRestore(this);
+ } else {
+ wxPersistenceManager::Get().Restore(this);
+ }
+#endif
+ // Connect events
+ m_buttonOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(LimiterFormBase::OnOKButtonClick), NULL, this);
+ m_ButtonCancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(LimiterFormBase::OnCancelButtonClick), NULL, this);
+
+}
+
+LimiterFormBase::~LimiterFormBase()
+{
+ m_buttonOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(LimiterFormBase::OnOKButtonClick), NULL, this);
+ m_ButtonCancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(LimiterFormBase::OnCancelButtonClick), NULL, this);
+
+}
+
+RateLimiterFormBase::RateLimiterFormBase(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style)
+ : wxDialog(parent, id, title, pos, size, style)
+{
+ if ( !bBitmapLoaded ) {
+ // We need to initialise the default bitmap handler
+ wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler);
+ wxC9EE9InitBitmapResources();
+ bBitmapLoaded = true;
+ }
+
+ wxBoxSizer* boxSizerLvl1_1 = new wxBoxSizer(wxVERTICAL);
+ this->SetSizer(boxSizerLvl1_1);
+
+ m_notebook = new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), wxBK_DEFAULT);
+ m_notebook->SetName(wxT("m_notebook"));
+
+ boxSizerLvl1_1->Add(m_notebook, 1, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_panelGeneral = new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL);
+ m_notebook->AddPage(m_panelGeneral, _("General"), false);
+
+ wxBoxSizer* boxSizerLvl2_1 = new wxBoxSizer(wxVERTICAL);
+ m_panelGeneral->SetSizer(boxSizerLvl2_1);
+
+ m_staticTextUpLimiter = new wxStaticText(m_panelGeneral, wxID_ANY, _("Upper limit"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+
+ boxSizerLvl2_1->Add(m_staticTextUpLimiter, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_textCtrlUpLimit = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlUpLimit->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl2_1->Add(m_textCtrlUpLimit, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+ m_textCtrlUpLimit->SetMinSize(wxSize(100,-1));
+
+ m_staticTextLowLimit = new wxStaticText(m_panelGeneral, wxID_ANY, _("Lower limit"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+
+ boxSizerLvl2_1->Add(m_staticTextLowLimit, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_textCtrlLowLimit = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlLowLimit->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl2_1->Add(m_textCtrlLowLimit, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+ m_textCtrlLowLimit->SetMinSize(wxSize(100,-1));
+
+ wxBoxSizer* boxSizerBottomButtons = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl1_1->Add(boxSizerBottomButtons, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5));
+
+ boxSizerBottomButtons->Add(0, 0, 1, wxALL, WXC_FROM_DIP(5));
+
+ m_buttonOK = new wxButton(this, wxID_ANY, _("OK"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerBottomButtons->Add(m_buttonOK, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5));
+
+ m_ButtonCancel = new wxButton(this, wxID_ANY, _("Cancel"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerBottomButtons->Add(m_ButtonCancel, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5));
+
+
+ #if wxVERSION_NUMBER >= 2900
+ if(!wxPersistenceManager::Get().Find(m_notebook)){
+ wxPersistenceManager::Get().RegisterAndRestore(m_notebook);
+ } else {
+ wxPersistenceManager::Get().Restore(m_notebook);
+ }
+ #endif
+
+ SetName(wxT("RateLimiterFormBase"));
+ SetSize(-1,-1);
+ if (GetSizer()) {
+ GetSizer()->Fit(this);
+ }
+ if(GetParent()) {
+ CentreOnParent(wxBOTH);
+ } else {
+ CentreOnScreen(wxBOTH);
+ }
+#if wxVERSION_NUMBER >= 2900
+ if(!wxPersistenceManager::Get().Find(this)) {
+ wxPersistenceManager::Get().RegisterAndRestore(this);
+ } else {
+ wxPersistenceManager::Get().Restore(this);
+ }
+#endif
+ // Connect events
+ m_buttonOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(RateLimiterFormBase::OnOKButtonClick), NULL, this);
+ m_ButtonCancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(RateLimiterFormBase::OnCancelButtonClick), NULL, this);
+
+}
+
+RateLimiterFormBase::~RateLimiterFormBase()
+{
+ m_buttonOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(RateLimiterFormBase::OnOKButtonClick), NULL, this);
+ m_ButtonCancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(RateLimiterFormBase::OnCancelButtonClick), NULL, this);
+
+}
+
+ExponentialFormBase::ExponentialFormBase(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style)
+ : wxDialog(parent, id, title, pos, size, style)
+{
+ if ( !bBitmapLoaded ) {
+ // We need to initialise the default bitmap handler
+ wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler);
+ wxC9EE9InitBitmapResources();
+ bBitmapLoaded = true;
+ }
+
+ wxBoxSizer* boxSizerLvl1_1 = new wxBoxSizer(wxVERTICAL);
+ this->SetSizer(boxSizerLvl1_1);
+
+ m_notebook = new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), wxBK_DEFAULT);
+ m_notebook->SetName(wxT("m_notebook"));
+
+ boxSizerLvl1_1->Add(m_notebook, 1, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_panelGeneral = new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL);
+ m_notebook->AddPage(m_panelGeneral, _("General"), false);
+
+ wxBoxSizer* boxSizerLvl2_1 = new wxBoxSizer(wxVERTICAL);
+ m_panelGeneral->SetSizer(boxSizerLvl2_1);
+
+ m_staticTextExp = new wxStaticText(m_panelGeneral, wxID_ANY, _("y = A.eB.x"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), wxALIGN_CENTRE);
+
+ boxSizerLvl2_1->Add(m_staticTextExp, 1, wxLEFT|wxRIGHT|wxTOP|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_staticTextAValue = new wxStaticText(m_panelGeneral, wxID_ANY, _("A value"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+
+ boxSizerLvl2_1->Add(m_staticTextAValue, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_textCtrlAValue = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlAValue->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl2_1->Add(m_textCtrlAValue, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+ m_textCtrlAValue->SetMinSize(wxSize(100,-1));
+
+ m_staticTextBValue = new wxStaticText(m_panelGeneral, wxID_ANY, _("B value"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+
+ boxSizerLvl2_1->Add(m_staticTextBValue, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_textCtrlBValue = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlBValue->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl2_1->Add(m_textCtrlBValue, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+ m_textCtrlBValue->SetMinSize(wxSize(100,-1));
+
+ wxBoxSizer* boxSizerBottomButtons = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl1_1->Add(boxSizerBottomButtons, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5));
+
+ boxSizerBottomButtons->Add(0, 0, 1, wxALL, WXC_FROM_DIP(5));
+
+ m_buttonOK = new wxButton(this, wxID_ANY, _("OK"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerBottomButtons->Add(m_buttonOK, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5));
+
+ m_buttonCancel = new wxButton(this, wxID_ANY, _("Cancel"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerBottomButtons->Add(m_buttonCancel, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5));
+
+
+ #if wxVERSION_NUMBER >= 2900
+ if(!wxPersistenceManager::Get().Find(m_notebook)){
+ wxPersistenceManager::Get().RegisterAndRestore(m_notebook);
+ } else {
+ wxPersistenceManager::Get().Restore(m_notebook);
+ }
+ #endif
+
+ SetName(wxT("ExponentialFormBase"));
+ SetSize(-1,-1);
+ if (GetSizer()) {
+ GetSizer()->Fit(this);
+ }
+ if(GetParent()) {
+ CentreOnParent(wxBOTH);
+ } else {
+ CentreOnScreen(wxBOTH);
+ }
+#if wxVERSION_NUMBER >= 2900
+ if(!wxPersistenceManager::Get().Find(this)) {
+ wxPersistenceManager::Get().RegisterAndRestore(this);
+ } else {
+ wxPersistenceManager::Get().Restore(this);
+ }
+#endif
+ // Connect events
+ m_buttonOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(ExponentialFormBase::OnOKButtonClick), NULL, this);
+ m_buttonCancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(ExponentialFormBase::OnCancelButtonClick), NULL, this);
+
+}
+
+ExponentialFormBase::~ExponentialFormBase()
+{
+ m_buttonOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(ExponentialFormBase::OnOKButtonClick), NULL, this);
+ m_buttonCancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(ExponentialFormBase::OnCancelButtonClick), NULL, this);
+
+}
+
+ConstantFormBase::ConstantFormBase(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style)
+ : wxDialog(parent, id, title, pos, size, style)
+{
+ if ( !bBitmapLoaded ) {
+ // We need to initialise the default bitmap handler
+ wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler);
+ wxC9EE9InitBitmapResources();
+ bBitmapLoaded = true;
+ }
+
+ wxBoxSizer* boxSizerLvl1_1 = new wxBoxSizer(wxVERTICAL);
+ this->SetSizer(boxSizerLvl1_1);
+
+ m_notebook = new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), wxBK_DEFAULT);
+ m_notebook->SetName(wxT("m_notebook"));
+
+ boxSizerLvl1_1->Add(m_notebook, 1, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_panelGeneral = new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL);
+ m_notebook->AddPage(m_panelGeneral, _("General"), false);
+
+ wxBoxSizer* boxSizerLvl2_1 = new wxBoxSizer(wxVERTICAL);
+ m_panelGeneral->SetSizer(boxSizerLvl2_1);
+
+ m_staticTextValue = new wxStaticText(m_panelGeneral, wxID_ANY, _("Constant value"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+
+ boxSizerLvl2_1->Add(m_staticTextValue, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_textCtrlValue = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlValue->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl2_1->Add(m_textCtrlValue, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+ m_textCtrlValue->SetMinSize(wxSize(100,-1));
+
+ wxBoxSizer* boxSizerBottomButtons = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl1_1->Add(boxSizerBottomButtons, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5));
+
+ boxSizerBottomButtons->Add(0, 0, 1, wxALL, WXC_FROM_DIP(5));
+
+ m_buttonOK = new wxButton(this, wxID_ANY, _("OK"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerBottomButtons->Add(m_buttonOK, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5));
+
+ m_buttonCancel = new wxButton(this, wxID_ANY, _("Cancel"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerBottomButtons->Add(m_buttonCancel, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5));
+
+
+ #if wxVERSION_NUMBER >= 2900
+ if(!wxPersistenceManager::Get().Find(m_notebook)){
+ wxPersistenceManager::Get().RegisterAndRestore(m_notebook);
+ } else {
+ wxPersistenceManager::Get().Restore(m_notebook);
+ }
+ #endif
+
+ SetName(wxT("ConstantFormBase"));
+ SetSize(-1,-1);
+ if (GetSizer()) {
+ GetSizer()->Fit(this);
+ }
+ if(GetParent()) {
+ CentreOnParent(wxBOTH);
+ } else {
+ CentreOnScreen(wxBOTH);
+ }
+#if wxVERSION_NUMBER >= 2900
+ if(!wxPersistenceManager::Get().Find(this)) {
+ wxPersistenceManager::Get().RegisterAndRestore(this);
+ } else {
+ wxPersistenceManager::Get().Restore(this);
+ }
+#endif
+ // Connect events
+ m_buttonOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(ConstantFormBase::OnOKButtonClick), NULL, this);
+ m_buttonCancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(ConstantFormBase::OnCancelButtonClick), NULL, this);
+
+}
+
+ConstantFormBase::~ConstantFormBase()
+{
+ m_buttonOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(ConstantFormBase::OnOKButtonClick), NULL, this);
+ m_buttonCancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(ConstantFormBase::OnCancelButtonClick), NULL, this);
+
+}
+
+GainFormBase::GainFormBase(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style)
+ : wxDialog(parent, id, title, pos, size, style)
+{
+ if ( !bBitmapLoaded ) {
+ // We need to initialise the default bitmap handler
+ wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler);
+ wxC9EE9InitBitmapResources();
+ bBitmapLoaded = true;
+ }
+
+ wxBoxSizer* boxSizerLvl1_1 = new wxBoxSizer(wxVERTICAL);
+ this->SetSizer(boxSizerLvl1_1);
+
+ m_notebook = new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), wxBK_DEFAULT);
+ m_notebook->SetName(wxT("m_notebook"));
+
+ boxSizerLvl1_1->Add(m_notebook, 1, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_panelGeneral = new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL);
+ m_notebook->AddPage(m_panelGeneral, _("General"), false);
+
+ wxBoxSizer* boxSizerLvl2_1 = new wxBoxSizer(wxVERTICAL);
+ m_panelGeneral->SetSizer(boxSizerLvl2_1);
+
+ m_staticTextValue = new wxStaticText(m_panelGeneral, wxID_ANY, _("Gain value"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+
+ boxSizerLvl2_1->Add(m_staticTextValue, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_textCtrlValue = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlValue->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl2_1->Add(m_textCtrlValue, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+ m_textCtrlValue->SetMinSize(wxSize(100,-1));
+
+ wxBoxSizer* boxSizerBottomButtons = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl1_1->Add(boxSizerBottomButtons, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5));
+
+ boxSizerBottomButtons->Add(0, 0, 1, wxALL, WXC_FROM_DIP(5));
+
+ m_buttonOK = new wxButton(this, wxID_ANY, _("OK"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerBottomButtons->Add(m_buttonOK, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5));
+
+ m_buttonCancel = new wxButton(this, wxID_ANY, _("Cancel"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerBottomButtons->Add(m_buttonCancel, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5));
+
+
+ #if wxVERSION_NUMBER >= 2900
+ if(!wxPersistenceManager::Get().Find(m_notebook)){
+ wxPersistenceManager::Get().RegisterAndRestore(m_notebook);
+ } else {
+ wxPersistenceManager::Get().Restore(m_notebook);
+ }
+ #endif
+
+ SetName(wxT("GainFormBase"));
+ SetSize(-1,-1);
+ if (GetSizer()) {
+ GetSizer()->Fit(this);
+ }
+ if(GetParent()) {
+ CentreOnParent(wxBOTH);
+ } else {
+ CentreOnScreen(wxBOTH);
+ }
+#if wxVERSION_NUMBER >= 2900
+ if(!wxPersistenceManager::Get().Find(this)) {
+ wxPersistenceManager::Get().RegisterAndRestore(this);
+ } else {
+ wxPersistenceManager::Get().Restore(this);
+ }
+#endif
+ // Connect events
+ m_buttonOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(GainFormBase::OnOKButtonClick), NULL, this);
+ m_buttonCancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(GainFormBase::OnCancelButtonClick), NULL, this);
+
+}
+
+GainFormBase::~GainFormBase()
+{
+ m_buttonOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(GainFormBase::OnOKButtonClick), NULL, this);
+ m_buttonCancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(GainFormBase::OnCancelButtonClick), NULL, this);
+
+}
+
+IOControlFormBase::IOControlFormBase(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style)
+ : wxDialog(parent, id, title, pos, size, style)
+{
+ if ( !bBitmapLoaded ) {
+ // We need to initialise the default bitmap handler
+ wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler);
+ wxC9EE9InitBitmapResources();
+ bBitmapLoaded = true;
+ }
+
+ wxBoxSizer* boxSizerLvl1_1 = new wxBoxSizer(wxVERTICAL);
+ this->SetSizer(boxSizerLvl1_1);
+
+ m_notebook = new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), wxBK_DEFAULT);
+ m_notebook->SetName(wxT("m_notebook"));
+
+ boxSizerLvl1_1->Add(m_notebook, 1, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_panelGeneral = new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL);
+ m_notebook->AddPage(m_panelGeneral, _("General"), false);
+
+ wxBoxSizer* boxSizerLvl2_1 = new wxBoxSizer(wxVERTICAL);
+ m_panelGeneral->SetSizer(boxSizerLvl2_1);
+
+ m_checkBoxInput = new wxCheckBox(m_panelGeneral, wxID_ANY, _("Input"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+ m_checkBoxInput->SetValue(false);
+
+ boxSizerLvl2_1->Add(m_checkBoxInput, 0, wxLEFT|wxRIGHT|wxTOP, WXC_FROM_DIP(5));
+
+ wxArrayString m_choiceInputArr;
+ m_choiceInput = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), m_choiceInputArr, 0);
+
+ boxSizerLvl2_1->Add(m_choiceInput, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND, WXC_FROM_DIP(5));
+
+ m_checkBoxOutput = new wxCheckBox(m_panelGeneral, wxID_ANY, _("Output"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+ m_checkBoxOutput->SetValue(false);
+
+ boxSizerLvl2_1->Add(m_checkBoxOutput, 0, wxLEFT|wxRIGHT|wxTOP, WXC_FROM_DIP(5));
+
+ wxArrayString m_choiceOutputArr;
+ m_choiceOutput = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), m_choiceOutputArr, 0);
+
+ boxSizerLvl2_1->Add(m_choiceOutput, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerBottomButtons = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl1_1->Add(boxSizerBottomButtons, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5));
+
+ boxSizerBottomButtons->Add(0, 0, 1, wxALL, WXC_FROM_DIP(5));
+
+ m_buttonOK = new wxButton(this, wxID_ANY, _("OK"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerBottomButtons->Add(m_buttonOK, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5));
+
+ m_ButtonCancel = new wxButton(this, wxID_ANY, _("Cancel"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerBottomButtons->Add(m_ButtonCancel, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5));
+
+
+ #if wxVERSION_NUMBER >= 2900
+ if(!wxPersistenceManager::Get().Find(m_notebook)){
+ wxPersistenceManager::Get().RegisterAndRestore(m_notebook);
+ } else {
+ wxPersistenceManager::Get().Restore(m_notebook);
+ }
+ #endif
+
+ SetName(wxT("IOControlFormBase"));
+ SetSize(-1,-1);
+ if (GetSizer()) {
+ GetSizer()->Fit(this);
+ }
+ if(GetParent()) {
+ CentreOnParent(wxBOTH);
+ } else {
+ CentreOnScreen(wxBOTH);
+ }
+#if wxVERSION_NUMBER >= 2900
+ if(!wxPersistenceManager::Get().Find(this)) {
+ wxPersistenceManager::Get().RegisterAndRestore(this);
+ } else {
+ wxPersistenceManager::Get().Restore(this);
+ }
+#endif
+ // Connect events
+ m_checkBoxInput->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(IOControlFormBase::OnInputChecked), NULL, this);
+ m_checkBoxOutput->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(IOControlFormBase::OnOutputChecked), NULL, this);
+ m_buttonOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(IOControlFormBase::OnOKButtonClick), NULL, this);
+ m_ButtonCancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(IOControlFormBase::OnCancelButtonClick), NULL, this);
+
+}
+
+IOControlFormBase::~IOControlFormBase()
+{
+ m_checkBoxInput->Disconnect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(IOControlFormBase::OnInputChecked), NULL, this);
+ m_checkBoxOutput->Disconnect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(IOControlFormBase::OnOutputChecked), NULL, this);
+ m_buttonOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(IOControlFormBase::OnOKButtonClick), NULL, this);
+ m_ButtonCancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(IOControlFormBase::OnCancelButtonClick), NULL, this);
+
+}
diff --git a/Project/base/ElementFormBase.h b/Project/base/ElementFormBase.h
new file mode 100644
index 0000000..fc07150
--- /dev/null
+++ b/Project/base/ElementFormBase.h
@@ -0,0 +1,1049 @@
+//////////////////////////////////////////////////////////////////////
+// This file was auto-generated by codelite's wxCrafter Plugin
+// wxCrafter project file: ElementForm.wxcp
+// Do not modify this file by hand!
+//////////////////////////////////////////////////////////////////////
+
+#ifndef _PSP_PROJECT_ELEMENTFORM_BASE_CLASSES_H
+#define _PSP_PROJECT_ELEMENTFORM_BASE_CLASSES_H
+
+#include <wx/settings.h>
+#include <wx/xrc/xmlres.h>
+#include <wx/xrc/xh_bmp.h>
+#include <wx/dialog.h>
+#include <wx/iconbndl.h>
+#include <wx/artprov.h>
+#include <wx/sizer.h>
+#include <wx/notebook.h>
+#include <wx/panel.h>
+#include <wx/imaglist.h>
+#include <wx/stattext.h>
+#include <wx/textctrl.h>
+#include <wx/choice.h>
+#include <wx/arrstr.h>
+#include <wx/checkbox.h>
+#include <wx/button.h>
+#include <wx/statbox.h>
+#include <wx/statline.h>
+#include <wx/propgrid/manager.h>
+#include <wx/propgrid/property.h>
+#include <wx/propgrid/advprops.h>
+#include <wx/listctrl.h>
+#if wxVERSION_NUMBER >= 2900
+#include <wx/persist.h>
+#include <wx/persist/toplevel.h>
+#include <wx/persist/bookctrl.h>
+#include <wx/persist/treebook.h>
+#endif
+
+#ifdef WXC_FROM_DIP
+#undef WXC_FROM_DIP
+#endif
+#if wxVERSION_NUMBER >= 3100
+#define WXC_FROM_DIP(x) wxWindow::FromDIP(x, NULL)
+#else
+#define WXC_FROM_DIP(x) x
+#endif
+
+
+class BusFormBase : public wxDialog
+{
+protected:
+ wxNotebook* m_notebook;
+ wxPanel* m_panelGeneral;
+ wxStaticText* m_staticTextName;
+ wxTextCtrl* m_textCtrlName;
+ wxStaticText* m_staticTextNomVoltage;
+ wxTextCtrl* m_textCtrlNomVoltage;
+ wxChoice* m_choiceNomVoltage;
+ wxCheckBox* m_checkBoxCtrlVoltage;
+ wxTextCtrl* m_textCtrlCtrlVoltage;
+ wxChoice* m_choiceCtrlVoltage;
+ wxCheckBox* m_checkBoxSlackBus;
+ wxPanel* m_panelFault;
+ wxCheckBox* m_checkBoxFault;
+ wxStaticText* m_staticTextFaultType;
+ wxChoice* m_choiceFaultType;
+ wxStaticText* m_staticTextFaultPlace;
+ wxChoice* m_choiceFaultPlace;
+ wxStaticText* m_staticTextFaultResistance;
+ wxTextCtrl* m_textCtrlFaultResistance;
+ wxStaticText* m_staticTextPU_1;
+ wxStaticText* m_staticTextReactance;
+ wxTextCtrl* m_textCtrlFaultReactance;
+ wxStaticText* m_staticTextPU_2;
+ wxPanel* m_panelStability;
+ wxCheckBox* m_checkBoxPlotData;
+ wxCheckBox* m_checkBoxStabFault;
+ wxStaticText* m_staticTextStabFaultTime;
+ wxTextCtrl* m_textCtrlStabFaultTime;
+ wxStaticText* m_staticTextS_1;
+ wxStaticText* m_staticTextStabFaultLength;
+ wxTextCtrl* m_textCtrlStabFaultLength;
+ wxStaticText* m_staticTextS_2;
+ wxStaticText* m_staticTextStabFaultResistance;
+ wxTextCtrl* m_textCtrlStabFaultResistance;
+ wxStaticText* m_staticTextPU_3;
+ wxStaticText* m_staticTextStabFaultReactance;
+ wxTextCtrl* m_textCtrlStabFaultReactance;
+ wxStaticText* m_staticTextPU_4;
+ wxButton* m_buttonOK;
+ wxButton* m_ButtonCancel;
+
+protected:
+ virtual void OnNominalVoltageChoice(wxCommandEvent& event) { event.Skip(); }
+ virtual void OnControlledVoltageClick(wxCommandEvent& event) { event.Skip(); }
+ virtual void OnInsertFaultClick(wxCommandEvent& event) { event.Skip(); }
+ virtual void OnFaultTypeChoice(wxCommandEvent& event) { event.Skip(); }
+ virtual void OnInsertStabFaultClick(wxCommandEvent& event) { event.Skip(); }
+ virtual void OnButtonOKClick(wxCommandEvent& event) { event.Skip(); }
+ virtual void OnButtonCancelClick(wxCommandEvent& event) { event.Skip(); }
+
+public:
+ wxStaticText* GetStaticTextName() { return m_staticTextName; }
+ wxTextCtrl* GetTextCtrlName() { return m_textCtrlName; }
+ wxStaticText* GetStaticTextNomVoltage() { return m_staticTextNomVoltage; }
+ wxTextCtrl* GetTextCtrlNomVoltage() { return m_textCtrlNomVoltage; }
+ wxChoice* GetChoiceNomVoltage() { return m_choiceNomVoltage; }
+ wxCheckBox* GetCheckBoxCtrlVoltage() { return m_checkBoxCtrlVoltage; }
+ wxTextCtrl* GetTextCtrlCtrlVoltage() { return m_textCtrlCtrlVoltage; }
+ wxChoice* GetChoiceCtrlVoltage() { return m_choiceCtrlVoltage; }
+ wxCheckBox* GetCheckBoxSlackBus() { return m_checkBoxSlackBus; }
+ wxPanel* GetPanelGeneral() { return m_panelGeneral; }
+ wxCheckBox* GetCheckBoxFault() { return m_checkBoxFault; }
+ wxStaticText* GetStaticTextFaultType() { return m_staticTextFaultType; }
+ wxChoice* GetChoiceFaultType() { return m_choiceFaultType; }
+ wxStaticText* GetStaticTextFaultPlace() { return m_staticTextFaultPlace; }
+ wxChoice* GetChoiceFaultPlace() { return m_choiceFaultPlace; }
+ wxStaticText* GetStaticTextFaultResistance() { return m_staticTextFaultResistance; }
+ wxTextCtrl* GetTextCtrlFaultResistance() { return m_textCtrlFaultResistance; }
+ wxStaticText* GetStaticTextPU_1() { return m_staticTextPU_1; }
+ wxStaticText* GetStaticTextReactance() { return m_staticTextReactance; }
+ wxTextCtrl* GetTextCtrlFaultReactance() { return m_textCtrlFaultReactance; }
+ wxStaticText* GetStaticTextPU_2() { return m_staticTextPU_2; }
+ wxPanel* GetPanelFault() { return m_panelFault; }
+ wxCheckBox* GetCheckBoxPlotData() { return m_checkBoxPlotData; }
+ wxCheckBox* GetCheckBoxStabFault() { return m_checkBoxStabFault; }
+ wxStaticText* GetStaticTextStabFaultTime() { return m_staticTextStabFaultTime; }
+ wxTextCtrl* GetTextCtrlStabFaultTime() { return m_textCtrlStabFaultTime; }
+ wxStaticText* GetStaticTextS_1() { return m_staticTextS_1; }
+ wxStaticText* GetStaticTextStabFaultLength() { return m_staticTextStabFaultLength; }
+ wxTextCtrl* GetTextCtrlStabFaultLength() { return m_textCtrlStabFaultLength; }
+ wxStaticText* GetStaticTextS_2() { return m_staticTextS_2; }
+ wxStaticText* GetStaticTextStabFaultResistance() { return m_staticTextStabFaultResistance; }
+ wxTextCtrl* GetTextCtrlStabFaultResistance() { return m_textCtrlStabFaultResistance; }
+ wxStaticText* GetStaticTextPU_3() { return m_staticTextPU_3; }
+ wxStaticText* GetStaticTextStabFaultReactance() { return m_staticTextStabFaultReactance; }
+ wxTextCtrl* GetTextCtrlStabFaultReactance() { return m_textCtrlStabFaultReactance; }
+ wxStaticText* GetStaticTextPU_4() { return m_staticTextPU_4; }
+ wxPanel* GetPanelStability() { return m_panelStability; }
+ wxNotebook* GetNotebook() { return m_notebook; }
+ wxButton* GetButtonOK() { return m_buttonOK; }
+ wxButton* GetButtonCancel() { return m_ButtonCancel; }
+ BusFormBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Bus"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE);
+ virtual ~BusFormBase();
+};
+
+
+class SyncMachineFormBase : public wxDialog
+{
+protected:
+ wxNotebook* m_notebook;
+ wxPanel* m_panelGeneral;
+ wxStaticText* m_staticTextName;
+ wxTextCtrl* m_textCtrlName;
+ wxStaticText* m_staticTextNominalPower;
+ wxTextCtrl* m_textCtrlnominalPower;
+ wxChoice* m_choiceNominalPower;
+ wxStaticText* m_staticTextActivePower;
+ wxTextCtrl* m_textCtrlActivePower;
+ wxChoice* m_choiceActivePower;
+ wxStaticText* m_staticTextReactivePower;
+ wxTextCtrl* m_textCtrlReactivePower;
+ wxChoice* m_choiceReactivePower;
+ wxCheckBox* m_checkBoxMaxReactive;
+ wxTextCtrl* m_textCtrlMaxRectivePower;
+ wxChoice* m_choiceMaxRectivePower;
+ wxCheckBox* m_checkBoxMinReactive;
+ wxTextCtrl* m_textCtrlMinRectivePower;
+ wxChoice* m_choiceMinRectivePower;
+ wxCheckBox* m_checkBoxUseMachinePower;
+ wxPanel* m_panelFault;
+ wxStaticText* m_staticTextPosResistance;
+ wxTextCtrl* m_textCtrlPosResistance;
+ wxStaticText* m_staticTextPosReactance;
+ wxTextCtrl* m_textCtrlPosReactance;
+ wxStaticText* m_staticTextNegResistance;
+ wxTextCtrl* m_textCtrlNegResistance;
+ wxStaticText* m_staticTextNegReactance;
+ wxTextCtrl* m_textCtrlNegReactance;
+ wxStaticText* m_staticTextZeroResistance;
+ wxTextCtrl* m_textCtrlZeroResistance;
+ wxStaticText* m_staticTextZeroReactance;
+ wxTextCtrl* m_textCtrlZeroReactance;
+ wxStaticText* m_staticTextGrdResistance;
+ wxTextCtrl* m_textCtrlGrdResistance;
+ wxStaticText* m_staticTextGrdReactance;
+ wxTextCtrl* m_textCtrlGrdReactance;
+ wxCheckBox* m_checkBoxGroundNeutral;
+ wxButton* m_buttonStab;
+ wxButton* m_buttonOK;
+ wxButton* m_ButtonCancel;
+
+protected:
+ virtual void OnCheckMaxReactive(wxCommandEvent& event) { event.Skip(); }
+ virtual void OnCheckMinReactive(wxCommandEvent& event) { event.Skip(); }
+ virtual void OnStabilityButtonClick(wxCommandEvent& event) { event.Skip(); }
+ virtual void OnOKButtonClick(wxCommandEvent& event) { event.Skip(); }
+ virtual void OnCancelButtonClick(wxCommandEvent& event) { event.Skip(); }
+
+public:
+ wxStaticText* GetStaticTextName() { return m_staticTextName; }
+ wxTextCtrl* GetTextCtrlName() { return m_textCtrlName; }
+ wxStaticText* GetStaticTextNominalPower() { return m_staticTextNominalPower; }
+ wxTextCtrl* GetTextCtrlnominalPower() { return m_textCtrlnominalPower; }
+ wxChoice* GetChoiceNominalPower() { return m_choiceNominalPower; }
+ wxStaticText* GetStaticTextActivePower() { return m_staticTextActivePower; }
+ wxTextCtrl* GetTextCtrlActivePower() { return m_textCtrlActivePower; }
+ wxChoice* GetChoiceActivePower() { return m_choiceActivePower; }
+ wxStaticText* GetStaticTextReactivePower() { return m_staticTextReactivePower; }
+ wxTextCtrl* GetTextCtrlReactivePower() { return m_textCtrlReactivePower; }
+ wxChoice* GetChoiceReactivePower() { return m_choiceReactivePower; }
+ wxCheckBox* GetCheckBoxMaxReactive() { return m_checkBoxMaxReactive; }
+ wxTextCtrl* GetTextCtrlMaxRectivePower() { return m_textCtrlMaxRectivePower; }
+ wxChoice* GetChoiceMaxRectivePower() { return m_choiceMaxRectivePower; }
+ wxCheckBox* GetCheckBoxMinReactive() { return m_checkBoxMinReactive; }
+ wxTextCtrl* GetTextCtrlMinRectivePower() { return m_textCtrlMinRectivePower; }
+ wxChoice* GetChoiceMinRectivePower() { return m_choiceMinRectivePower; }
+ wxCheckBox* GetCheckBoxUseMachinePower() { return m_checkBoxUseMachinePower; }
+ wxPanel* GetPanelGeneral() { return m_panelGeneral; }
+ wxStaticText* GetStaticTextPosResistance() { return m_staticTextPosResistance; }
+ wxTextCtrl* GetTextCtrlPosResistance() { return m_textCtrlPosResistance; }
+ wxStaticText* GetStaticTextPosReactance() { return m_staticTextPosReactance; }
+ wxTextCtrl* GetTextCtrlPosReactance() { return m_textCtrlPosReactance; }
+ wxStaticText* GetStaticTextNegResistance() { return m_staticTextNegResistance; }
+ wxTextCtrl* GetTextCtrlNegResistance() { return m_textCtrlNegResistance; }
+ wxStaticText* GetStaticTextNegReactance() { return m_staticTextNegReactance; }
+ wxTextCtrl* GetTextCtrlNegReactance() { return m_textCtrlNegReactance; }
+ wxStaticText* GetStaticTextZeroResistance() { return m_staticTextZeroResistance; }
+ wxTextCtrl* GetTextCtrlZeroResistance() { return m_textCtrlZeroResistance; }
+ wxStaticText* GetStaticTextZeroReactance() { return m_staticTextZeroReactance; }
+ wxTextCtrl* GetTextCtrlZeroReactance() { return m_textCtrlZeroReactance; }
+ wxStaticText* GetStaticTextGrdResistance() { return m_staticTextGrdResistance; }
+ wxTextCtrl* GetTextCtrlGrdResistance() { return m_textCtrlGrdResistance; }
+ wxStaticText* GetStaticTextGrdReactance() { return m_staticTextGrdReactance; }
+ wxTextCtrl* GetTextCtrlGrdReactance() { return m_textCtrlGrdReactance; }
+ wxCheckBox* GetCheckBoxGroundNeutral() { return m_checkBoxGroundNeutral; }
+ wxPanel* GetPanelFault() { return m_panelFault; }
+ wxNotebook* GetNotebook() { return m_notebook; }
+ wxButton* GetButtonStab() { return m_buttonStab; }
+ wxButton* GetButtonOK() { return m_buttonOK; }
+ wxButton* GetButtonCancel() { return m_ButtonCancel; }
+ SyncMachineFormBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Generator"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE);
+ virtual ~SyncMachineFormBase();
+};
+
+
+class GeneratorStabFormBase : public wxDialog
+{
+protected:
+ wxCheckBox* m_checkBoxPlotSyncMachine;
+ wxStaticText* m_staticTextInertia;
+ wxTextCtrl* m_textCtrlInertia;
+ wxStaticText* m_staticTextS_1;
+ wxStaticText* m_staticTextDamping;
+ wxTextCtrl* m_textCtrlDamping;
+ wxStaticText* m_staticTextPU_1;
+ wxCheckBox* m_checkBoxUseAVR;
+ wxButton* m_buttonEditAVR;
+ wxCheckBox* m_checkBoxUseSG;
+ wxButton* m_buttonEditSG;
+ wxStaticLine* m_staticLine_1;
+ wxStaticText* m_staticTextRa;
+ wxTextCtrl* m_textCtrlRa;
+ wxStaticText* m_staticTextPU_2;
+ wxStaticText* m_staticTextXp;
+ wxTextCtrl* m_textCtrlXp;
+ wxStaticText* m_staticTextPU_9;
+ wxStaticText* m_staticTextSat;
+ wxTextCtrl* m_textCtrlSat;
+ wxStaticText* m_staticTextPU_10;
+ wxStaticText* m_staticTextSyncXd;
+ wxTextCtrl* m_textCtrlSyncXd;
+ wxStaticText* m_staticTextPU_3;
+ wxStaticText* m_staticTextSyncXq;
+ wxTextCtrl* m_textCtrlSyncXq;
+ wxStaticText* m_staticTextPU_4;
+ wxStaticText* m_staticTextTranXd;
+ wxTextCtrl* m_textCtrlTranXd;
+ wxStaticText* m_staticTextPU_5;
+ wxStaticText* m_staticTextTranXq;
+ wxTextCtrl* m_textCtrlTranXq;
+ wxStaticText* m_staticTextPU_6;
+ wxStaticText* m_staticTextTranTd0;
+ wxTextCtrl* m_textCtrlTranTd0;
+ wxStaticText* m_staticTextS_2;
+ wxStaticText* m_staticTextTranTq0;
+ wxTextCtrl* m_textCtrlTranTq0;
+ wxStaticText* m_staticTextS_3;
+ wxStaticText* m_staticTextSubXd;
+ wxTextCtrl* m_textCtrlSubXd;
+ wxStaticText* m_staticTextPU_7;
+ wxStaticText* m_staticTextSubXq;
+ wxTextCtrl* m_textCtrlSubXq;
+ wxStaticText* m_staticTextPU_8;
+ wxStaticText* m_staticTextSubTd0;
+ wxTextCtrl* m_textCtrlSubTd0;
+ wxStaticText* m_staticTextS_4;
+ wxStaticText* m_staticTextSubTq0;
+ wxTextCtrl* m_textCtrlSubTq0;
+ wxStaticText* m_staticTextS_5;
+ wxButton* m_buttonSwitching;
+ wxButton* m_buttonOK;
+ wxButton* m_ButtonCancel;
+
+protected:
+ virtual void UseAVRClick(wxCommandEvent& event) { event.Skip(); }
+ virtual void OnEditAVRButtonClick(wxCommandEvent& event) { event.Skip(); }
+ virtual void UseSGClick(wxCommandEvent& event) { event.Skip(); }
+ virtual void OnSpeedGovernorButtonClick(wxCommandEvent& event) { event.Skip(); }
+ virtual void OnSwitchingButtonClick(wxCommandEvent& event) { event.Skip(); }
+ virtual void OnOKButtonClick(wxCommandEvent& event) { event.Skip(); }
+ virtual void OnCancelButtonClick(wxCommandEvent& event) { event.Skip(); }
+
+public:
+ wxCheckBox* GetCheckBoxPlotSyncMachine() { return m_checkBoxPlotSyncMachine; }
+ wxStaticText* GetStaticTextInertia() { return m_staticTextInertia; }
+ wxTextCtrl* GetTextCtrlInertia() { return m_textCtrlInertia; }
+ wxStaticText* GetStaticTextS_1() { return m_staticTextS_1; }
+ wxStaticText* GetStaticTextDamping() { return m_staticTextDamping; }
+ wxTextCtrl* GetTextCtrlDamping() { return m_textCtrlDamping; }
+ wxStaticText* GetStaticTextPU_1() { return m_staticTextPU_1; }
+ wxCheckBox* GetCheckBoxUseAVR() { return m_checkBoxUseAVR; }
+ wxButton* GetButtonEditAVR() { return m_buttonEditAVR; }
+ wxCheckBox* GetCheckBoxUseSG() { return m_checkBoxUseSG; }
+ wxButton* GetButtonEditSG() { return m_buttonEditSG; }
+ wxStaticLine* GetStaticLine_1() { return m_staticLine_1; }
+ wxStaticText* GetStaticTextRa() { return m_staticTextRa; }
+ wxTextCtrl* GetTextCtrlRa() { return m_textCtrlRa; }
+ wxStaticText* GetStaticTextPU_2() { return m_staticTextPU_2; }
+ wxStaticText* GetStaticTextXp() { return m_staticTextXp; }
+ wxTextCtrl* GetTextCtrlXp() { return m_textCtrlXp; }
+ wxStaticText* GetStaticTextPU_9() { return m_staticTextPU_9; }
+ wxStaticText* GetStaticTextSat() { return m_staticTextSat; }
+ wxTextCtrl* GetTextCtrlSat() { return m_textCtrlSat; }
+ wxStaticText* GetStaticTextPU_10() { return m_staticTextPU_10; }
+ wxStaticText* GetStaticTextSyncXd() { return m_staticTextSyncXd; }
+ wxTextCtrl* GetTextCtrlSyncXd() { return m_textCtrlSyncXd; }
+ wxStaticText* GetStaticTextPU_3() { return m_staticTextPU_3; }
+ wxStaticText* GetStaticTextSyncXq() { return m_staticTextSyncXq; }
+ wxTextCtrl* GetTextCtrlSyncXq() { return m_textCtrlSyncXq; }
+ wxStaticText* GetStaticTextPU_4() { return m_staticTextPU_4; }
+ wxStaticText* GetStaticTextTranXd() { return m_staticTextTranXd; }
+ wxTextCtrl* GetTextCtrlTranXd() { return m_textCtrlTranXd; }
+ wxStaticText* GetStaticTextPU_5() { return m_staticTextPU_5; }
+ wxStaticText* GetStaticTextTranXq() { return m_staticTextTranXq; }
+ wxTextCtrl* GetTextCtrlTranXq() { return m_textCtrlTranXq; }
+ wxStaticText* GetStaticTextPU_6() { return m_staticTextPU_6; }
+ wxStaticText* GetStaticTextTranTd0() { return m_staticTextTranTd0; }
+ wxTextCtrl* GetTextCtrlTranTd0() { return m_textCtrlTranTd0; }
+ wxStaticText* GetStaticTextS_2() { return m_staticTextS_2; }
+ wxStaticText* GetStaticTextTranTq0() { return m_staticTextTranTq0; }
+ wxTextCtrl* GetTextCtrlTranTq0() { return m_textCtrlTranTq0; }
+ wxStaticText* GetStaticTextS_3() { return m_staticTextS_3; }
+ wxStaticText* GetStaticTextSubXd() { return m_staticTextSubXd; }
+ wxTextCtrl* GetTextCtrlSubXd() { return m_textCtrlSubXd; }
+ wxStaticText* GetStaticTextPU_7() { return m_staticTextPU_7; }
+ wxStaticText* GetStaticTextSubXq() { return m_staticTextSubXq; }
+ wxTextCtrl* GetTextCtrlSubXq() { return m_textCtrlSubXq; }
+ wxStaticText* GetStaticTextPU_8() { return m_staticTextPU_8; }
+ wxStaticText* GetStaticTextSubTd0() { return m_staticTextSubTd0; }
+ wxTextCtrl* GetTextCtrlSubTd0() { return m_textCtrlSubTd0; }
+ wxStaticText* GetStaticTextS_4() { return m_staticTextS_4; }
+ wxStaticText* GetStaticTextSubTq0() { return m_staticTextSubTq0; }
+ wxTextCtrl* GetTextCtrlSubTq0() { return m_textCtrlSubTq0; }
+ wxStaticText* GetStaticTextS_5() { return m_staticTextS_5; }
+ wxButton* GetButtonSwitching() { return m_buttonSwitching; }
+ wxButton* GetButtonOK() { return m_buttonOK; }
+ wxButton* GetButtonCancel() { return m_ButtonCancel; }
+ GeneratorStabFormBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Generator: Stability"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE);
+ virtual ~GeneratorStabFormBase();
+};
+
+
+class LineFormBase : public wxDialog
+{
+protected:
+ wxNotebook* m_notebook;
+ wxPanel* m_panelGeneral;
+ wxStaticText* m_staticTextName;
+ wxTextCtrl* m_textCtrlName;
+ wxStaticText* m_staticTextNominalVoltage;
+ wxStaticText* m_staticTextNominalVoltageValue;
+ wxStaticText* m_staticTextNominalPower;
+ wxTextCtrl* m_textCtrlNominalPower;
+ wxChoice* m_choiceNominalPower;
+ wxStaticText* m_staticTextResistance;
+ wxTextCtrl* m_textCtrlResistance;
+ wxChoice* m_choiceResistance;
+ wxStaticText* m_staticTextReactance;
+ wxTextCtrl* m_textCtrlReactance;
+ wxChoice* m_choiceReactance;
+ wxStaticText* m_staticTextSusceptance;
+ wxTextCtrl* m_textCtrlSusceptance;
+ wxChoice* m_choiceSusceptance;
+ wxStaticText* m_staticTextLineSize;
+ wxTextCtrl* m_textCtrlLineSize;
+ wxStaticText* m_staticTextKM;
+ wxCheckBox* m_checkUseLinePower;
+ wxPanel* m_panelFault;
+ wxStaticText* m_staticTextZeroResistance;
+ wxTextCtrl* m_textCtrlZeroResistance;
+ wxStaticText* m_staticTextZeroReactance;
+ wxTextCtrl* m_textCtrlZeroReactance;
+ wxStaticText* m_staticTextZeroSusceptance;
+ wxTextCtrl* m_textCtrlZeroSusceptance;
+ wxButton* m_buttonStability;
+ wxButton* m_buttonOK;
+ wxButton* m_buttonCancel;
+
+protected:
+ virtual void OnStabilityButtonClick(wxCommandEvent& event) { event.Skip(); }
+ virtual void OnOKButtonClick(wxCommandEvent& event) { event.Skip(); }
+ virtual void OnCancelButtonClick(wxCommandEvent& event) { event.Skip(); }
+
+public:
+ wxStaticText* GetStaticTextName() { return m_staticTextName; }
+ wxTextCtrl* GetTextCtrlName() { return m_textCtrlName; }
+ wxStaticText* GetStaticTextNominalVoltage() { return m_staticTextNominalVoltage; }
+ wxStaticText* GetStaticTextNominalVoltageValue() { return m_staticTextNominalVoltageValue; }
+ wxStaticText* GetStaticTextNominalPower() { return m_staticTextNominalPower; }
+ wxTextCtrl* GetTextCtrlNominalPower() { return m_textCtrlNominalPower; }
+ wxChoice* GetChoiceNominalPower() { return m_choiceNominalPower; }
+ wxStaticText* GetStaticTextResistance() { return m_staticTextResistance; }
+ wxTextCtrl* GetTextCtrlResistance() { return m_textCtrlResistance; }
+ wxChoice* GetChoiceResistance() { return m_choiceResistance; }
+ wxStaticText* GetStaticTextReactance() { return m_staticTextReactance; }
+ wxTextCtrl* GetTextCtrlReactance() { return m_textCtrlReactance; }
+ wxChoice* GetChoiceReactance() { return m_choiceReactance; }
+ wxStaticText* GetStaticTextSusceptance() { return m_staticTextSusceptance; }
+ wxTextCtrl* GetTextCtrlSusceptance() { return m_textCtrlSusceptance; }
+ wxChoice* GetChoiceSusceptance() { return m_choiceSusceptance; }
+ wxStaticText* GetStaticTextLineSize() { return m_staticTextLineSize; }
+ wxTextCtrl* GetTextCtrlLineSize() { return m_textCtrlLineSize; }
+ wxStaticText* GetStaticTextKM() { return m_staticTextKM; }
+ wxCheckBox* GetCheckUseLinePower() { return m_checkUseLinePower; }
+ wxPanel* GetPanelGeneral() { return m_panelGeneral; }
+ wxStaticText* GetStaticTextZeroResistance() { return m_staticTextZeroResistance; }
+ wxTextCtrl* GetTextCtrlZeroResistance() { return m_textCtrlZeroResistance; }
+ wxStaticText* GetStaticTextZeroReactance() { return m_staticTextZeroReactance; }
+ wxTextCtrl* GetTextCtrlZeroReactance() { return m_textCtrlZeroReactance; }
+ wxStaticText* GetStaticTextZeroSusceptance() { return m_staticTextZeroSusceptance; }
+ wxTextCtrl* GetTextCtrlZeroSusceptance() { return m_textCtrlZeroSusceptance; }
+ wxPanel* GetPanelFault() { return m_panelFault; }
+ wxNotebook* GetNotebook() { return m_notebook; }
+ wxButton* GetButtonStability() { return m_buttonStability; }
+ wxButton* GetButtonOK() { return m_buttonOK; }
+ wxButton* GetButtonCancel() { return m_buttonCancel; }
+ LineFormBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Line"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE);
+ virtual ~LineFormBase();
+};
+
+
+class TransformerFormBase : public wxDialog
+{
+protected:
+ wxNotebook* m_notebook;
+ wxPanel* m_panelGeneral;
+ wxStaticText* m_staticTextName;
+ wxTextCtrl* m_textCtrlName;
+ wxStaticText* m_staticTextNominalVoltage;
+ wxStaticText* m_staticTextNominalVoltageValue;
+ wxStaticText* m_staticTextBaseVoltage;
+ wxChoice* m_choiceBaseVoltage;
+ wxStaticText* m_staticTextNominalPower;
+ wxTextCtrl* m_textCtrlNominalPower;
+ wxChoice* m_choiceNominalPower;
+ wxStaticText* m_staticTextResistance;
+ wxTextCtrl* m_textCtrlResistance;
+ wxChoice* m_choiceResistance;
+ wxStaticText* m_staticTextReactance;
+ wxTextCtrl* m_textCtrlReactance;
+ wxChoice* m_choiceReactance;
+ wxStaticLine* m_staticLine_1;
+ wxStaticText* m_staticTextConnection;
+ wxChoice* m_choiceConnection;
+ wxStaticText* m_staticTextTurnsRatio;
+ wxTextCtrl* m_textCtrlTurnRatio;
+ wxStaticText* m_staticTextPhaseShift;
+ wxTextCtrl* m_textCtrlPhaseShift;
+ wxStaticText* m_staticTextDeg;
+ wxCheckBox* m_checkUseTransformerPower;
+ wxPanel* m_panelFault;
+ wxStaticText* m_staticTextZeroResistance;
+ wxTextCtrl* m_textCtrlZeroResistance;
+ wxStaticText* m_staticTextZeroReactance;
+ wxTextCtrl* m_textCtrlZeroReactance;
+ wxStaticText* m_staticTextPrimResistance;
+ wxTextCtrl* m_textCtrlPrimResistance;
+ wxStaticText* m_staticTextPrimReactance;
+ wxTextCtrl* m_textCtrlPrimReactance;
+ wxStaticText* m_staticTextSecResistance;
+ wxTextCtrl* m_textCtrlSecResistance;
+ wxStaticText* m_staticTextSecReactance;
+ wxTextCtrl* m_textCtrlSecReactance;
+ wxButton* m_buttonStability;
+ wxButton* m_buttonOK;
+ wxButton* m_buttonCancel;
+
+protected:
+ virtual void OnStabilityButtonClick(wxCommandEvent& event) { event.Skip(); }
+ virtual void OnOKButtonClick(wxCommandEvent& event) { event.Skip(); }
+ virtual void OnCancelButtonClick(wxCommandEvent& event) { event.Skip(); }
+
+public:
+ wxStaticText* GetStaticTextName() { return m_staticTextName; }
+ wxTextCtrl* GetTextCtrlName() { return m_textCtrlName; }
+ wxStaticText* GetStaticTextNominalVoltage() { return m_staticTextNominalVoltage; }
+ wxStaticText* GetStaticTextNominalVoltageValue() { return m_staticTextNominalVoltageValue; }
+ wxStaticText* GetStaticTextBaseVoltage() { return m_staticTextBaseVoltage; }
+ wxChoice* GetChoiceBaseVoltage() { return m_choiceBaseVoltage; }
+ wxStaticText* GetStaticTextNominalPower() { return m_staticTextNominalPower; }
+ wxTextCtrl* GetTextCtrlNominalPower() { return m_textCtrlNominalPower; }
+ wxChoice* GetChoiceNominalPower() { return m_choiceNominalPower; }
+ wxStaticText* GetStaticTextResistance() { return m_staticTextResistance; }
+ wxTextCtrl* GetTextCtrlResistance() { return m_textCtrlResistance; }
+ wxChoice* GetChoiceResistance() { return m_choiceResistance; }
+ wxStaticText* GetStaticTextReactance() { return m_staticTextReactance; }
+ wxTextCtrl* GetTextCtrlReactance() { return m_textCtrlReactance; }
+ wxChoice* GetChoiceReactance() { return m_choiceReactance; }
+ wxStaticLine* GetStaticLine_1() { return m_staticLine_1; }
+ wxStaticText* GetStaticTextConnection() { return m_staticTextConnection; }
+ wxChoice* GetChoiceConnection() { return m_choiceConnection; }
+ wxStaticText* GetStaticTextTurnsRatio() { return m_staticTextTurnsRatio; }
+ wxTextCtrl* GetTextCtrlTurnRatio() { return m_textCtrlTurnRatio; }
+ wxStaticText* GetStaticTextPhaseShift() { return m_staticTextPhaseShift; }
+ wxTextCtrl* GetTextCtrlPhaseShift() { return m_textCtrlPhaseShift; }
+ wxStaticText* GetStaticTextDeg() { return m_staticTextDeg; }
+ wxCheckBox* GetCheckUseTransformerPower() { return m_checkUseTransformerPower; }
+ wxPanel* GetPanelGeneral() { return m_panelGeneral; }
+ wxStaticText* GetStaticTextZeroResistance() { return m_staticTextZeroResistance; }
+ wxTextCtrl* GetTextCtrlZeroResistance() { return m_textCtrlZeroResistance; }
+ wxStaticText* GetStaticTextZeroReactance() { return m_staticTextZeroReactance; }
+ wxTextCtrl* GetTextCtrlZeroReactance() { return m_textCtrlZeroReactance; }
+ wxStaticText* GetStaticTextPrimResistance() { return m_staticTextPrimResistance; }
+ wxTextCtrl* GetTextCtrlPrimResistance() { return m_textCtrlPrimResistance; }
+ wxStaticText* GetStaticTextPrimReactance() { return m_staticTextPrimReactance; }
+ wxTextCtrl* GetTextCtrlPrimReactance() { return m_textCtrlPrimReactance; }
+ wxStaticText* GetStaticTextSecResistance() { return m_staticTextSecResistance; }
+ wxTextCtrl* GetTextCtrlSecResistance() { return m_textCtrlSecResistance; }
+ wxStaticText* GetStaticTextSecReactance() { return m_staticTextSecReactance; }
+ wxTextCtrl* GetTextCtrlSecReactance() { return m_textCtrlSecReactance; }
+ wxPanel* GetPanelFault() { return m_panelFault; }
+ wxNotebook* GetNotebook() { return m_notebook; }
+ wxButton* GetButtonStability() { return m_buttonStability; }
+ wxButton* GetButtonOK() { return m_buttonOK; }
+ wxButton* GetButtonCancel() { return m_buttonCancel; }
+ TransformerFormBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Transformer"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE);
+ virtual ~TransformerFormBase();
+};
+
+
+class LoadFormBase : public wxDialog
+{
+protected:
+ wxNotebook* m_notebook;
+ wxPanel* m_panelGeneral;
+ wxStaticText* m_staticTextName;
+ wxTextCtrl* m_textCtrlName;
+ wxStaticText* m_staticTextActivePower;
+ wxTextCtrl* m_textCtrlActivePower;
+ wxChoice* m_choiceActivePower;
+ wxStaticText* m_staticTextReactivePower;
+ wxTextCtrl* m_textCtrlReactivePower;
+ wxChoice* m_choiceReactivePower;
+ wxStaticText* m_staticTextType;
+ wxChoice* m_choiceType;
+ wxPanel* m_panelStability;
+ wxCheckBox* m_checkBoxPlotData;
+ wxCheckBox* m_checkBoxUseCompLoad;
+ wxStaticText* m_staticTextActivePowerImp;
+ wxTextCtrl* m_textCtrlActivePowerImp;
+ wxStaticText* m_staticTextPerc_1;
+ wxStaticText* m_staticTextActivePowerCur;
+ wxTextCtrl* m_textCtrlActivePowerCur;
+ wxStaticText* m_staticTextPerc_2;
+ wxStaticText* m_staticTextActivePowerPow;
+ wxTextCtrl* m_textCtrlActivePowerPow;
+ wxStaticText* m_staticTextPerc_3;
+ wxStaticText* m_staticTextReactivePowerImp;
+ wxTextCtrl* m_textCtrlReactivePowerImp;
+ wxStaticText* m_staticTextPerc_4;
+ wxStaticText* m_staticTextReactivePowerCur;
+ wxTextCtrl* m_textCtrlReactivePowerCur;
+ wxStaticText* m_staticTextPerc_5;
+ wxStaticText* m_staticTextReactivePowerPow;
+ wxTextCtrl* m_textCtrlReactivePowerPow;
+ wxStaticText* m_staticTextPerc_6;
+ wxButton* m_buttonStabButton;
+ wxButton* m_buttonOK;
+ wxButton* m_ButtonCancel;
+
+protected:
+ virtual void OnCheckBoxCompLoadClick(wxCommandEvent& event) { event.Skip(); }
+ virtual void OnStabilityButtonClick(wxCommandEvent& event) { event.Skip(); }
+ virtual void OnOnButtonClick(wxCommandEvent& event) { event.Skip(); }
+ virtual void OnCancelButtonClick(wxCommandEvent& event) { event.Skip(); }
+
+public:
+ wxStaticText* GetStaticTextName() { return m_staticTextName; }
+ wxTextCtrl* GetTextCtrlName() { return m_textCtrlName; }
+ wxStaticText* GetStaticTextActivePower() { return m_staticTextActivePower; }
+ wxTextCtrl* GetTextCtrlActivePower() { return m_textCtrlActivePower; }
+ wxChoice* GetChoiceActivePower() { return m_choiceActivePower; }
+ wxStaticText* GetStaticTextReactivePower() { return m_staticTextReactivePower; }
+ wxTextCtrl* GetTextCtrlReactivePower() { return m_textCtrlReactivePower; }
+ wxChoice* GetChoiceReactivePower() { return m_choiceReactivePower; }
+ wxStaticText* GetStaticTextType() { return m_staticTextType; }
+ wxChoice* GetChoiceType() { return m_choiceType; }
+ wxPanel* GetPanelGeneral() { return m_panelGeneral; }
+ wxCheckBox* GetCheckBoxPlotData() { return m_checkBoxPlotData; }
+ wxCheckBox* GetCheckBoxUseCompLoad() { return m_checkBoxUseCompLoad; }
+ wxStaticText* GetStaticTextActivePowerImp() { return m_staticTextActivePowerImp; }
+ wxTextCtrl* GetTextCtrlActivePowerImp() { return m_textCtrlActivePowerImp; }
+ wxStaticText* GetStaticTextPerc_1() { return m_staticTextPerc_1; }
+ wxStaticText* GetStaticTextActivePowerCur() { return m_staticTextActivePowerCur; }
+ wxTextCtrl* GetTextCtrlActivePowerCur() { return m_textCtrlActivePowerCur; }
+ wxStaticText* GetStaticTextPerc_2() { return m_staticTextPerc_2; }
+ wxStaticText* GetStaticTextActivePowerPow() { return m_staticTextActivePowerPow; }
+ wxTextCtrl* GetTextCtrlActivePowerPow() { return m_textCtrlActivePowerPow; }
+ wxStaticText* GetStaticTextPerc_3() { return m_staticTextPerc_3; }
+ wxStaticText* GetStaticTextReactivePowerImp() { return m_staticTextReactivePowerImp; }
+ wxTextCtrl* GetTextCtrlReactivePowerImp() { return m_textCtrlReactivePowerImp; }
+ wxStaticText* GetStaticTextPerc_4() { return m_staticTextPerc_4; }
+ wxStaticText* GetStaticTextReactivePowerCur() { return m_staticTextReactivePowerCur; }
+ wxTextCtrl* GetTextCtrlReactivePowerCur() { return m_textCtrlReactivePowerCur; }
+ wxStaticText* GetStaticTextPerc_5() { return m_staticTextPerc_5; }
+ wxStaticText* GetStaticTextReactivePowerPow() { return m_staticTextReactivePowerPow; }
+ wxTextCtrl* GetTextCtrlReactivePowerPow() { return m_textCtrlReactivePowerPow; }
+ wxStaticText* GetStaticTextPerc_6() { return m_staticTextPerc_6; }
+ wxPanel* GetPanelStability() { return m_panelStability; }
+ wxNotebook* GetNotebook() { return m_notebook; }
+ wxButton* GetButtonStabButton() { return m_buttonStabButton; }
+ wxButton* GetButtonOK() { return m_buttonOK; }
+ wxButton* GetButtonCancel() { return m_ButtonCancel; }
+ LoadFormBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Load"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE);
+ virtual ~LoadFormBase();
+};
+
+
+class ReactiveShuntElementFormBase : public wxDialog
+{
+protected:
+ wxNotebook* m_notebook;
+ wxPanel* m_panelGeneral;
+ wxStaticText* m_staticTextName;
+ wxTextCtrl* m_textCtrlName;
+ wxStaticText* m_staticTextReactivePower;
+ wxTextCtrl* m_textCtrlReactivePower;
+ wxChoice* m_choiceReactivePower;
+ wxButton* m_buttonStabButton;
+ wxButton* m_buttonOK;
+ wxButton* m_buttonCancel;
+
+protected:
+ virtual void OnStabilityButtonClick(wxCommandEvent& event) { event.Skip(); }
+ virtual void OnOKButtonClick(wxCommandEvent& event) { event.Skip(); }
+ virtual void OnCancelButtonClick(wxCommandEvent& event) { event.Skip(); }
+
+public:
+ wxStaticText* GetStaticTextName() { return m_staticTextName; }
+ wxTextCtrl* GetTextCtrlName() { return m_textCtrlName; }
+ wxStaticText* GetStaticTextReactivePower() { return m_staticTextReactivePower; }
+ wxTextCtrl* GetTextCtrlReactivePower() { return m_textCtrlReactivePower; }
+ wxChoice* GetChoiceReactivePower() { return m_choiceReactivePower; }
+ wxPanel* GetPanelGeneral() { return m_panelGeneral; }
+ wxNotebook* GetNotebook() { return m_notebook; }
+ wxButton* GetButtonStabButton() { return m_buttonStabButton; }
+ wxButton* GetButtonOK() { return m_buttonOK; }
+ wxButton* GetButtonCancel() { return m_buttonCancel; }
+ ReactiveShuntElementFormBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Reactive shunt element"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE);
+ virtual ~ReactiveShuntElementFormBase();
+};
+
+
+class SwitchingFormBase : public wxDialog
+{
+protected:
+ wxPropertyGridManager* m_pgMgrSwitchingsProp;
+ wxPGProperty* m_pgPropTitle;
+ wxPGProperty* m_pgPropType;
+ wxPGProperty* m_pgPropTime;
+ wxButton* m_buttonInsert;
+ wxButton* m_buttonRemove;
+ wxButton* m_buttonUp;
+ wxButton* m_buttonDown;
+ wxStaticText* m_staticTextSwList;
+ wxListCtrl* m_listCtrlSwitchings;
+ wxButton* m_buttonOK;
+ wxButton* m_buttonCancel;
+
+protected:
+ virtual void OnChangeProperties(wxPropertyGridEvent& event) { event.Skip(); }
+ virtual void OnInsertButtonClick(wxCommandEvent& event) { event.Skip(); }
+ virtual void OnRemoveButtonClick(wxCommandEvent& event) { event.Skip(); }
+ virtual void OnUpButtonClick(wxCommandEvent& event) { event.Skip(); }
+ virtual void OnDownButtonClick(wxCommandEvent& event) { event.Skip(); }
+ virtual void OnSelectItem(wxListEvent& event) { event.Skip(); }
+ virtual void OnOKButtonClick(wxCommandEvent& event) { event.Skip(); }
+ virtual void OnCancelButtonClick(wxCommandEvent& event) { event.Skip(); }
+
+public:
+ wxPropertyGridManager* GetPgMgrSwitchingsProp() { return m_pgMgrSwitchingsProp; }
+ wxButton* GetButtonInsert() { return m_buttonInsert; }
+ wxButton* GetButtonRemove() { return m_buttonRemove; }
+ wxButton* GetButtonUp() { return m_buttonUp; }
+ wxButton* GetButtonDown() { return m_buttonDown; }
+ wxStaticText* GetStaticTextSwList() { return m_staticTextSwList; }
+ wxListCtrl* GetListCtrlSwitchings() { return m_listCtrlSwitchings; }
+ wxButton* GetButtonOK() { return m_buttonOK; }
+ wxButton* GetButtonCancel() { return m_buttonCancel; }
+ SwitchingFormBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Switching"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE);
+ virtual ~SwitchingFormBase();
+};
+
+
+class IndMotorFormBase : public wxDialog
+{
+protected:
+ wxNotebook* m_notebook;
+ wxPanel* m_panelGeneral;
+ wxStaticText* m_staticTextName;
+ wxTextCtrl* m_textCtrlName;
+ wxStaticText* m_staticTextActivePower;
+ wxTextCtrl* m_textCtrlActivePower;
+ wxChoice* m_choiceActivePower;
+ wxStaticText* m_staticTextReactivePower;
+ wxTextCtrl* m_textCtrlReactivePower;
+ wxChoice* m_choiceReactivePower;
+ wxButton* m_buttonStabButton;
+ wxButton* m_buttonOK;
+ wxButton* m_ButtonCancel;
+
+protected:
+ virtual void OnStabilityButtonClick(wxCommandEvent& event) { event.Skip(); }
+ virtual void OnOKButtonClick(wxCommandEvent& event) { event.Skip(); }
+ virtual void OnCancelButtonClick(wxCommandEvent& event) { event.Skip(); }
+
+public:
+ wxStaticText* GetStaticTextName() { return m_staticTextName; }
+ wxTextCtrl* GetTextCtrlName() { return m_textCtrlName; }
+ wxStaticText* GetStaticTextActivePower() { return m_staticTextActivePower; }
+ wxTextCtrl* GetTextCtrlActivePower() { return m_textCtrlActivePower; }
+ wxChoice* GetChoiceActivePower() { return m_choiceActivePower; }
+ wxStaticText* GetStaticTextReactivePower() { return m_staticTextReactivePower; }
+ wxTextCtrl* GetTextCtrlReactivePower() { return m_textCtrlReactivePower; }
+ wxChoice* GetChoiceReactivePower() { return m_choiceReactivePower; }
+ wxPanel* GetPanelGeneral() { return m_panelGeneral; }
+ wxNotebook* GetNotebook() { return m_notebook; }
+ wxButton* GetButtonStabButton() { return m_buttonStabButton; }
+ wxButton* GetButtonOK() { return m_buttonOK; }
+ wxButton* GetButtonCancel() { return m_ButtonCancel; }
+ IndMotorFormBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Motor"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE);
+ virtual ~IndMotorFormBase();
+};
+
+
+class TextFormBase : public wxDialog
+{
+protected:
+ wxNotebook* m_notebook;
+ wxPanel* m_panelGeneral;
+ wxStaticText* m_staticTextElement;
+ wxChoice* m_choiceElement;
+ wxStaticText* m_staticTextName;
+ wxChoice* m_choiceName;
+ wxStaticText* m_staticTextType;
+ wxChoice* m_choiceTextType;
+ wxStaticText* m_staticTextFromBus;
+ wxChoice* m_choiceTextFromBus;
+ wxStaticText* m_staticTextToBus;
+ wxChoice* m_choiceTextToBus;
+ wxStaticText* m_staticTextUnit;
+ wxChoice* m_choiceTextUnit;
+ wxStaticText* m_staticTextDecimal;
+ wxTextCtrl* m_textCtrlDecimal;
+ wxStaticText* m_staticTextPreview;
+ wxTextCtrl* m_textCtrlPreview;
+ wxButton* m_buttonOK;
+ wxButton* m_ButtonCancel;
+
+protected:
+ virtual void OnElementChoiceSelected(wxCommandEvent& event) { event.Skip(); }
+ virtual void OnNameChoiceSelected(wxCommandEvent& event) { event.Skip(); }
+ virtual void OnTypeChoiceSelected(wxCommandEvent& event) { event.Skip(); }
+ virtual void OnFromBusChoiceSelected(wxCommandEvent& event) { event.Skip(); }
+ virtual void OnToBusChoiceSelected(wxCommandEvent& event) { event.Skip(); }
+ virtual void OnUnitChoiceSelected(wxCommandEvent& event) { event.Skip(); }
+ virtual void OnTextEnter(wxCommandEvent& event) { event.Skip(); }
+ virtual void OnOKButtonClick(wxCommandEvent& event) { event.Skip(); }
+ virtual void OnCancelButtonClick(wxCommandEvent& event) { event.Skip(); }
+
+public:
+ wxStaticText* GetStaticTextElement() { return m_staticTextElement; }
+ wxChoice* GetChoiceElement() { return m_choiceElement; }
+ wxStaticText* GetStaticTextName() { return m_staticTextName; }
+ wxChoice* GetChoiceName() { return m_choiceName; }
+ wxStaticText* GetStaticTextType() { return m_staticTextType; }
+ wxChoice* GetChoiceTextType() { return m_choiceTextType; }
+ wxStaticText* GetStaticTextFromBus() { return m_staticTextFromBus; }
+ wxChoice* GetChoiceTextFromBus() { return m_choiceTextFromBus; }
+ wxStaticText* GetStaticTextToBus() { return m_staticTextToBus; }
+ wxChoice* GetChoiceTextToBus() { return m_choiceTextToBus; }
+ wxStaticText* GetStaticTextUnit() { return m_staticTextUnit; }
+ wxChoice* GetChoiceTextUnit() { return m_choiceTextUnit; }
+ wxStaticText* GetStaticTextDecimal() { return m_staticTextDecimal; }
+ wxTextCtrl* GetTextCtrlDecimal() { return m_textCtrlDecimal; }
+ wxStaticText* GetStaticTextPreview() { return m_staticTextPreview; }
+ wxTextCtrl* GetTextCtrlPreview() { return m_textCtrlPreview; }
+ wxPanel* GetPanelGeneral() { return m_panelGeneral; }
+ wxNotebook* GetNotebook() { return m_notebook; }
+ wxButton* GetButtonOK() { return m_buttonOK; }
+ wxButton* GetButtonCancel() { return m_ButtonCancel; }
+ TextFormBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Text"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE);
+ virtual ~TextFormBase();
+};
+
+
+class TransferFunctionFormBase : public wxDialog
+{
+protected:
+ wxNotebook* m_notebook;
+ wxPanel* m_panelGeneral;
+ wxStaticText* m_staticTextNumerator;
+ wxTextCtrl* m_textCtrlNumerator;
+ wxStaticText* m_staticTextDenominator;
+ wxTextCtrl* m_textCtrlDenominator;
+ wxButton* m_buttonOK;
+ wxButton* m_ButtonCancel;
+
+protected:
+ virtual void OnOKClick(wxCommandEvent& event) { event.Skip(); }
+ virtual void OnCancelClick(wxCommandEvent& event) { event.Skip(); }
+
+public:
+ wxStaticText* GetStaticTextNumerator() { return m_staticTextNumerator; }
+ wxTextCtrl* GetTextCtrlNumerator() { return m_textCtrlNumerator; }
+ wxStaticText* GetStaticTextDenominator() { return m_staticTextDenominator; }
+ wxTextCtrl* GetTextCtrlDenominator() { return m_textCtrlDenominator; }
+ wxPanel* GetPanelGeneral() { return m_panelGeneral; }
+ wxNotebook* GetNotebook() { return m_notebook; }
+ wxButton* GetButtonOK() { return m_buttonOK; }
+ wxButton* GetButtonCancel() { return m_ButtonCancel; }
+ TransferFunctionFormBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Transfer function"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE);
+ virtual ~TransferFunctionFormBase();
+};
+
+
+class SumFormBase : public wxDialog
+{
+protected:
+ wxNotebook* m_notebook;
+ wxPanel* m_panelGeneral;
+ wxStaticText* m_staticTextSigns;
+ wxTextCtrl* m_textCtrlSigns;
+ wxButton* m_buttonOK;
+ wxButton* m_ButtonCancel;
+
+protected:
+ virtual void OnOKClick(wxCommandEvent& event) { event.Skip(); }
+ virtual void OnCancelClick(wxCommandEvent& event) { event.Skip(); }
+
+public:
+ wxStaticText* GetStaticTextSigns() { return m_staticTextSigns; }
+ wxTextCtrl* GetTextCtrlSigns() { return m_textCtrlSigns; }
+ wxPanel* GetPanelGeneral() { return m_panelGeneral; }
+ wxNotebook* GetNotebook() { return m_notebook; }
+ wxButton* GetButtonOK() { return m_buttonOK; }
+ wxButton* GetButtonCancel() { return m_ButtonCancel; }
+ SumFormBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Sum"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE);
+ virtual ~SumFormBase();
+};
+
+
+class LimiterFormBase : public wxDialog
+{
+protected:
+ wxNotebook* m_notebook;
+ wxPanel* m_panelGeneral;
+ wxStaticText* m_staticTextUpLimiter;
+ wxTextCtrl* m_textCtrlUpLimit;
+ wxStaticText* m_staticTextLowLimit;
+ wxTextCtrl* m_textCtrlLowLimit;
+ wxButton* m_buttonOK;
+ wxButton* m_ButtonCancel;
+
+protected:
+ virtual void OnOKButtonClick(wxCommandEvent& event) { event.Skip(); }
+ virtual void OnCancelButtonClick(wxCommandEvent& event) { event.Skip(); }
+
+public:
+ wxStaticText* GetStaticTextUpLimiter() { return m_staticTextUpLimiter; }
+ wxTextCtrl* GetTextCtrlUpLimit() { return m_textCtrlUpLimit; }
+ wxStaticText* GetStaticTextLowLimit() { return m_staticTextLowLimit; }
+ wxTextCtrl* GetTextCtrlLowLimit() { return m_textCtrlLowLimit; }
+ wxPanel* GetPanelGeneral() { return m_panelGeneral; }
+ wxNotebook* GetNotebook() { return m_notebook; }
+ wxButton* GetButtonOK() { return m_buttonOK; }
+ wxButton* GetButtonCancel() { return m_ButtonCancel; }
+ LimiterFormBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Limiter"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE);
+ virtual ~LimiterFormBase();
+};
+
+
+class RateLimiterFormBase : public wxDialog
+{
+protected:
+ wxNotebook* m_notebook;
+ wxPanel* m_panelGeneral;
+ wxStaticText* m_staticTextUpLimiter;
+ wxTextCtrl* m_textCtrlUpLimit;
+ wxStaticText* m_staticTextLowLimit;
+ wxTextCtrl* m_textCtrlLowLimit;
+ wxButton* m_buttonOK;
+ wxButton* m_ButtonCancel;
+
+protected:
+ virtual void OnOKButtonClick(wxCommandEvent& event) { event.Skip(); }
+ virtual void OnCancelButtonClick(wxCommandEvent& event) { event.Skip(); }
+
+public:
+ wxStaticText* GetStaticTextUpLimiter() { return m_staticTextUpLimiter; }
+ wxTextCtrl* GetTextCtrlUpLimit() { return m_textCtrlUpLimit; }
+ wxStaticText* GetStaticTextLowLimit() { return m_staticTextLowLimit; }
+ wxTextCtrl* GetTextCtrlLowLimit() { return m_textCtrlLowLimit; }
+ wxPanel* GetPanelGeneral() { return m_panelGeneral; }
+ wxNotebook* GetNotebook() { return m_notebook; }
+ wxButton* GetButtonOK() { return m_buttonOK; }
+ wxButton* GetButtonCancel() { return m_ButtonCancel; }
+ RateLimiterFormBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Rate limiter"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE);
+ virtual ~RateLimiterFormBase();
+};
+
+
+class ExponentialFormBase : public wxDialog
+{
+protected:
+ wxNotebook* m_notebook;
+ wxPanel* m_panelGeneral;
+ wxStaticText* m_staticTextExp;
+ wxStaticText* m_staticTextAValue;
+ wxTextCtrl* m_textCtrlAValue;
+ wxStaticText* m_staticTextBValue;
+ wxTextCtrl* m_textCtrlBValue;
+ wxButton* m_buttonOK;
+ wxButton* m_buttonCancel;
+
+protected:
+ virtual void OnOKButtonClick(wxCommandEvent& event) { event.Skip(); }
+ virtual void OnCancelButtonClick(wxCommandEvent& event) { event.Skip(); }
+
+public:
+ wxStaticText* GetStaticTextExp() { return m_staticTextExp; }
+ wxStaticText* GetStaticTextAValue() { return m_staticTextAValue; }
+ wxTextCtrl* GetTextCtrlAValue() { return m_textCtrlAValue; }
+ wxStaticText* GetStaticTextBValue() { return m_staticTextBValue; }
+ wxTextCtrl* GetTextCtrlBValue() { return m_textCtrlBValue; }
+ wxPanel* GetPanelGeneral() { return m_panelGeneral; }
+ wxNotebook* GetNotebook() { return m_notebook; }
+ wxButton* GetButtonOK() { return m_buttonOK; }
+ wxButton* GetButtonCancel() { return m_buttonCancel; }
+ ExponentialFormBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Exponential"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE);
+ virtual ~ExponentialFormBase();
+};
+
+
+class ConstantFormBase : public wxDialog
+{
+protected:
+ wxNotebook* m_notebook;
+ wxPanel* m_panelGeneral;
+ wxStaticText* m_staticTextValue;
+ wxTextCtrl* m_textCtrlValue;
+ wxButton* m_buttonOK;
+ wxButton* m_buttonCancel;
+
+protected:
+ virtual void OnOKButtonClick(wxCommandEvent& event) { event.Skip(); }
+ virtual void OnCancelButtonClick(wxCommandEvent& event) { event.Skip(); }
+
+public:
+ wxStaticText* GetStaticTextValue() { return m_staticTextValue; }
+ wxTextCtrl* GetTextCtrlValue() { return m_textCtrlValue; }
+ wxPanel* GetPanelGeneral() { return m_panelGeneral; }
+ wxNotebook* GetNotebook() { return m_notebook; }
+ wxButton* GetButtonOK() { return m_buttonOK; }
+ wxButton* GetButtonCancel() { return m_buttonCancel; }
+ ConstantFormBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Constant"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE);
+ virtual ~ConstantFormBase();
+};
+
+
+class GainFormBase : public wxDialog
+{
+protected:
+ wxNotebook* m_notebook;
+ wxPanel* m_panelGeneral;
+ wxStaticText* m_staticTextValue;
+ wxTextCtrl* m_textCtrlValue;
+ wxButton* m_buttonOK;
+ wxButton* m_buttonCancel;
+
+protected:
+ virtual void OnOKButtonClick(wxCommandEvent& event) { event.Skip(); }
+ virtual void OnCancelButtonClick(wxCommandEvent& event) { event.Skip(); }
+
+public:
+ wxStaticText* GetStaticTextValue() { return m_staticTextValue; }
+ wxTextCtrl* GetTextCtrlValue() { return m_textCtrlValue; }
+ wxPanel* GetPanelGeneral() { return m_panelGeneral; }
+ wxNotebook* GetNotebook() { return m_notebook; }
+ wxButton* GetButtonOK() { return m_buttonOK; }
+ wxButton* GetButtonCancel() { return m_buttonCancel; }
+ GainFormBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Gain"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE);
+ virtual ~GainFormBase();
+};
+
+
+class IOControlFormBase : public wxDialog
+{
+protected:
+ wxNotebook* m_notebook;
+ wxPanel* m_panelGeneral;
+ wxCheckBox* m_checkBoxInput;
+ wxChoice* m_choiceInput;
+ wxCheckBox* m_checkBoxOutput;
+ wxChoice* m_choiceOutput;
+ wxButton* m_buttonOK;
+ wxButton* m_ButtonCancel;
+
+protected:
+ virtual void OnInputChecked(wxCommandEvent& event) { event.Skip(); }
+ virtual void OnOutputChecked(wxCommandEvent& event) { event.Skip(); }
+ virtual void OnOKButtonClick(wxCommandEvent& event) { event.Skip(); }
+ virtual void OnCancelButtonClick(wxCommandEvent& event) { event.Skip(); }
+
+public:
+ wxCheckBox* GetCheckBoxInput() { return m_checkBoxInput; }
+ wxChoice* GetChoiceInput() { return m_choiceInput; }
+ wxCheckBox* GetCheckBoxOutput() { return m_checkBoxOutput; }
+ wxChoice* GetChoiceOutput() { return m_choiceOutput; }
+ wxPanel* GetPanelGeneral() { return m_panelGeneral; }
+ wxNotebook* GetNotebook() { return m_notebook; }
+ wxButton* GetButtonOK() { return m_buttonOK; }
+ wxButton* GetButtonCancel() { return m_ButtonCancel; }
+ IOControlFormBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Input / Output"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE);
+ virtual ~IOControlFormBase();
+};
+
+#endif
diff --git a/Project/base/ElementFormBitmaps.cpp b/Project/base/ElementFormBitmaps.cpp
new file mode 100644
index 0000000..b955c05
--- /dev/null
+++ b/Project/base/ElementFormBitmaps.cpp
@@ -0,0 +1,49 @@
+//
+// This file was automatically generated by wxrc, do not edit by hand.
+//
+
+#include <wx/wxprec.h>
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#include <wx/filesys.h>
+#include <wx/fs_mem.h>
+#include <wx/xrc/xmlres.h>
+#include <wx/xrc/xh_all.h>
+
+#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805
+ #define XRC_ADD_FILE(name, data, size, mime) \
+ wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime)
+#else
+ #define XRC_ADD_FILE(name, data, size, mime) \
+ wxMemoryFSHandler::AddFile(name, data, size)
+#endif
+
+static size_t xml_res_size_0 = 137;
+static unsigned char xml_res_file_0[] = {
+60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101,
+110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101,
+115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58,
+47,47,119,119,119,46,119,120,119,105,100,103,101,116,115,46,111,114,103,
+47,119,120,120,114,99,34,62,10,32,32,60,33,45,45,32,72,97,110,100,108,101,
+114,32,71,101,110,101,114,97,116,105,111,110,32,105,115,32,79,78,32,45,
+45,62,10,60,47,114,101,115,111,117,114,99,101,62,10};
+
+void wxC9EE9InitBitmapResources()
+{
+
+ // Check for memory FS. If not present, load the handler:
+ {
+ wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one"));
+ wxFileSystem fsys;
+ wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file"));
+ wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file"));
+ if (f) delete f;
+ else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase);
+ }
+
+ XRC_ADD_FILE(wxT("XRC_resource/ElementFormBitmaps.cpp$C__Users_NDSE-69_Documents_GitHub_PSP_Project_ElementFormBitmaps.xrc"), xml_res_file_0, xml_res_size_0, wxT("text/xml"));
+ wxXmlResource::Get()->Load(wxT("memory:XRC_resource/ElementFormBitmaps.cpp$C__Users_NDSE-69_Documents_GitHub_PSP_Project_ElementFormBitmaps.xrc"));
+}
diff --git a/Project/base/MainFrameBase.cpp b/Project/base/MainFrameBase.cpp
new file mode 100644
index 0000000..bcac269
--- /dev/null
+++ b/Project/base/MainFrameBase.cpp
@@ -0,0 +1,311 @@
+//////////////////////////////////////////////////////////////////////
+// This file was auto-generated by codelite's wxCrafter Plugin
+// wxCrafter project file: MainFrame.wxcp
+// Do not modify this file by hand!
+//////////////////////////////////////////////////////////////////////
+
+#include "MainFrameBase.h"
+
+
+// Declare the bitmap loading function
+extern void wxC9ED9InitBitmapResources();
+
+static bool bBitmapLoaded = false;
+
+
+MainFrameBase::MainFrameBase(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style)
+ : wxFrame(parent, id, title, pos, size, style)
+{
+ if ( !bBitmapLoaded ) {
+ // We need to initialise the default bitmap handler
+ wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler);
+ wxC9ED9InitBitmapResources();
+ bBitmapLoaded = true;
+ }
+ // Set icon(s) to the application/dialog
+ wxIconBundle app_icons;
+ {
+ wxBitmap iconBmp = wxXmlResource::Get()->LoadBitmap(wxT("logo16"));
+ wxIcon icn;
+ icn.CopyFromBitmap(iconBmp);
+ app_icons.AddIcon( icn );
+ }
+ {
+ wxBitmap iconBmp = wxXmlResource::Get()->LoadBitmap(wxT("logo32"));
+ wxIcon icn;
+ icn.CopyFromBitmap(iconBmp);
+ app_icons.AddIcon( icn );
+ }
+ {
+ wxBitmap iconBmp = wxXmlResource::Get()->LoadBitmap(wxT("logo64"));
+ wxIcon icn;
+ icn.CopyFromBitmap(iconBmp);
+ app_icons.AddIcon( icn );
+ }
+ {
+ wxBitmap iconBmp = wxXmlResource::Get()->LoadBitmap(wxT("logo128"));
+ wxIcon icn;
+ icn.CopyFromBitmap(iconBmp);
+ app_icons.AddIcon( icn );
+ }
+ {
+ wxBitmap iconBmp = wxXmlResource::Get()->LoadBitmap(wxT("logo256"));
+ wxIcon icn;
+ icn.CopyFromBitmap(iconBmp);
+ app_icons.AddIcon( icn );
+ }
+ SetIcons( app_icons );
+
+
+ wxBoxSizer* boxSizer_lvl_1_1 = new wxBoxSizer(wxVERTICAL);
+ this->SetSizer(boxSizer_lvl_1_1);
+
+ wxBoxSizer* boxSizer_lvl_2_1 = new wxBoxSizer(wxVERTICAL);
+
+ boxSizer_lvl_1_1->Add(boxSizer_lvl_2_1, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_ribbonBar = new wxRibbonBar(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), wxRIBBON_BAR_DEFAULT_STYLE);
+ m_ribbonBar->SetArtProvider(new wxRibbonDefaultArtProvider);
+
+ boxSizer_lvl_2_1->Add(m_ribbonBar, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_ribbonPageFile = new wxRibbonPage(m_ribbonBar, wxID_ANY, _("File"), wxNullBitmap, 0);
+ m_ribbonPageFile->SetToolTip(_("File"));
+ m_ribbonBar->SetActivePage( m_ribbonPageFile );
+
+ m_ribbonPanelProjects = new wxRibbonPanel(m_ribbonPageFile, wxID_ANY, _("Projects"), wxNullBitmap, wxDefaultPosition, wxDLG_UNIT(m_ribbonPageFile, wxSize(-1,-1)), wxRIBBON_PANEL_NO_AUTO_MINIMISE|wxRIBBON_PANEL_DEFAULT_STYLE);
+ m_ribbonPanelProjects->SetToolTip(_("Projects"));
+
+ m_ribbonButtonBarProjects = new wxRibbonButtonBar(m_ribbonPanelProjects, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_ribbonPanelProjects, wxSize(-1,-1)), 0);
+ m_ribbonButtonBarProjects->SetToolTip(_("Projects"));
+
+ m_ribbonButtonBarProjects->AddButton(ID_RIBBON_NEW, _("New"), wxXmlResource::Get()->LoadBitmap(wxT("new32")), _("Create new project"), wxRIBBON_BUTTON_NORMAL);
+
+ m_ribbonButtonBarProjects->AddButton(ID_RIBBON_OPEN, _("Open"), wxXmlResource::Get()->LoadBitmap(wxT("open32")), _("Open saved project"), wxRIBBON_BUTTON_NORMAL);
+
+ m_ribbonButtonBarProjects->AddButton(ID_RIBBON_GENSETTINGS, _("General Settings"), wxXmlResource::Get()->LoadBitmap(wxT("settings32")), _("Opens a dialog to set the main settings of the program"), wxRIBBON_BUTTON_NORMAL);
+
+ m_ribbonButtonBarProjects->AddButton(ID_RIBBON_EXIT, _("Exit"), wxXmlResource::Get()->LoadBitmap(wxT("exit32")), _("Closes the application"), wxRIBBON_BUTTON_NORMAL);
+ m_ribbonButtonBarProjects->Realize();
+
+ m_ribbonPanelCProject = new wxRibbonPanel(m_ribbonPageFile, wxID_ANY, _("Current project"), wxNullBitmap, wxDefaultPosition, wxDLG_UNIT(m_ribbonPageFile, wxSize(-1,-1)), wxRIBBON_PANEL_NO_AUTO_MINIMISE|wxRIBBON_PANEL_DEFAULT_STYLE);
+ m_ribbonPanelCProject->SetToolTip(_("Current project"));
+
+ m_ribbonButtonBarCProject = new wxRibbonButtonBar(m_ribbonPanelCProject, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_ribbonPanelCProject, wxSize(-1,-1)), 0);
+
+ m_ribbonButtonBarCProject->AddButton(ID_RIBBON_SAVE, _("Save"), wxXmlResource::Get()->LoadBitmap(wxT("save32")), _("Save the current project"), wxRIBBON_BUTTON_NORMAL);
+
+ m_ribbonButtonBarCProject->AddButton(ID_RIBBON_SAVEAS, _("Save As..."), wxXmlResource::Get()->LoadBitmap(wxT("saveAs32")), _("Save as the current project"), wxRIBBON_BUTTON_NORMAL);
+
+ m_ribbonButtonBarCProject->AddButton(ID_RIBBON_CLOSE, _("Close"), wxXmlResource::Get()->LoadBitmap(wxT("close32")), _("Close the current project"), wxRIBBON_BUTTON_NORMAL);
+ m_ribbonButtonBarCProject->Realize();
+
+ m_ribbonPanelHelp = new wxRibbonPanel(m_ribbonPageFile, wxID_ANY, _("Help"), wxNullBitmap, wxDefaultPosition, wxDLG_UNIT(m_ribbonPageFile, wxSize(-1,-1)), wxRIBBON_PANEL_NO_AUTO_MINIMISE|wxRIBBON_PANEL_DEFAULT_STYLE);
+ m_ribbonPanelHelp->SetToolTip(_("Help"));
+
+ m_ribbonButtonBarHelp = new wxRibbonButtonBar(m_ribbonPanelHelp, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_ribbonPanelHelp, wxSize(-1,-1)), 0);
+ m_ribbonButtonBarHelp->SetToolTip(_("Help"));
+
+ m_ribbonButtonBarHelp->AddButton(ID_RIBBON_GUIDE, _("PSP-UFU Guide"), wxXmlResource::Get()->LoadBitmap(wxT("guide32")), _("Open PSP-UFU Guide"), wxRIBBON_BUTTON_NORMAL);
+
+ m_ribbonButtonBarHelp->AddButton(ID_RIBBON_ABOUT, _("About..."), wxXmlResource::Get()->LoadBitmap(wxT("about32")), _("About PSP-UFU"), wxRIBBON_BUTTON_NORMAL);
+ m_ribbonButtonBarHelp->Realize();
+
+ m_ribbonPageTools = new wxRibbonPage(m_ribbonBar, wxID_ANY, _("Tools"), wxNullBitmap, 0);
+ m_ribbonPageTools->SetToolTip(_("Tools"));
+
+ m_ribbonPanelClipboard = new wxRibbonPanel(m_ribbonPageTools, wxID_ANY, _("Clipboard"), wxNullBitmap, wxDefaultPosition, wxDLG_UNIT(m_ribbonPageTools, wxSize(-1,-1)), wxRIBBON_PANEL_NO_AUTO_MINIMISE|wxRIBBON_PANEL_DEFAULT_STYLE);
+ m_ribbonPanelClipboard->SetToolTip(_("Clipboard"));
+
+ m_ribbonButtonBarClipboard = new wxRibbonButtonBar(m_ribbonPanelClipboard, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_ribbonPanelClipboard, wxSize(-1,-1)), 0);
+ m_ribbonButtonBarClipboard->SetToolTip(_("Clipboard"));
+
+ m_ribbonButtonBarClipboard->AddButton(ID_RIBBON_COPY, _("Copy"), wxXmlResource::Get()->LoadBitmap(wxT("copy32")), _("Copies the selected elements"), wxRIBBON_BUTTON_NORMAL);
+
+ m_ribbonButtonBarClipboard->AddButton(ID_RIBBON_PASTE, _("Paste"), wxXmlResource::Get()->LoadBitmap(wxT("paste32")), _("Pastes the elements from clipboard"), wxRIBBON_BUTTON_NORMAL);
+
+ m_ribbonButtonBarClipboard->AddButton(ID_RIBBON_UNDO, _("Undo"), wxXmlResource::Get()->LoadBitmap(wxT("undo32")), _("Undoes the last action"), wxRIBBON_BUTTON_NORMAL);
+
+ m_ribbonButtonBarClipboard->AddButton(ID_RIBBON_REDO, _("Redo"), wxXmlResource::Get()->LoadBitmap(wxT("redo32")), _("Redoes the last undo action"), wxRIBBON_BUTTON_NORMAL);
+ m_ribbonButtonBarClipboard->Realize();
+
+ m_ribbonPanelCircuit = new wxRibbonPanel(m_ribbonPageTools, wxID_ANY, _("Circuit"), wxNullBitmap, wxDefaultPosition, wxDLG_UNIT(m_ribbonPageTools, wxSize(-1,-1)), wxRIBBON_PANEL_NO_AUTO_MINIMISE|wxRIBBON_PANEL_DEFAULT_STYLE);
+ m_ribbonPanelCircuit->SetToolTip(_("Circuit"));
+
+ m_ribbonButtonBarCircuit = new wxRibbonButtonBar(m_ribbonPanelCircuit, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_ribbonPanelCircuit, wxSize(-1,-1)), 0);
+ m_ribbonButtonBarCircuit->SetToolTip(_("Circuit"));
+
+ m_ribbonButtonBarCircuit->AddButton(ID_RIBBON_ADDELEMENT, _("Add Element"), wxXmlResource::Get()->LoadBitmap(wxT("add32")), _("Add a new element in the project"), wxRIBBON_BUTTON_DROPDOWN);
+
+ m_ribbonButtonBarCircuit->AddButton(ID_RIBBON_DRAG, _("Drag"), wxXmlResource::Get()->LoadBitmap(wxT("drag32")), _("Drag all the elements"), wxRIBBON_BUTTON_NORMAL);
+
+ m_ribbonButtonBarCircuit->AddButton(ID_RIBBON_MOVE, _("Move"), wxXmlResource::Get()->LoadBitmap(wxT("move32")), _("Move the selected elements"), wxRIBBON_BUTTON_NORMAL);
+
+ m_ribbonButtonBarCircuit->AddButton(ID_RIBBON_DELETE, _("Delete"), wxXmlResource::Get()->LoadBitmap(wxT("delete32")), _("Removes all selected elements"), wxRIBBON_BUTTON_NORMAL);
+
+ m_ribbonButtonBarCircuit->AddButton(ID_RIBBON_FIT, _("Fit"), wxXmlResource::Get()->LoadBitmap(wxT("fit32")), _("Applies the drag and zoom tools to show all elements in workspace"), wxRIBBON_BUTTON_NORMAL);
+
+ m_ribbonButtonBarCircuit->AddButton(ID_RIBBON_ROTATEC, _("Rotate Clockwise"), wxXmlResource::Get()->LoadBitmap(wxT("rotateClock32")), _("Rotate clockwise"), wxRIBBON_BUTTON_NORMAL);
+
+ m_ribbonButtonBarCircuit->AddButton(ID_RIBBON_ROTATECC, _("Rotate Counter-clockwise"), wxXmlResource::Get()->LoadBitmap(wxT("rotateCounterClock32")), _("Rotate the selected elements counter-clockwise"), wxRIBBON_BUTTON_NORMAL);
+
+ m_ribbonButtonBarCircuit->AddButton(ID_RIBBON_PROJSETTINGS, _("Project Settings"), wxXmlResource::Get()->LoadBitmap(wxT("settings32")), _("Opens a dialog to set the main settings of the current project"), wxRIBBON_BUTTON_NORMAL);
+ m_ribbonButtonBarCircuit->Realize();
+
+ m_ribbonPanelReports = new wxRibbonPanel(m_ribbonPageTools, wxID_ANY, _("Reports"), wxNullBitmap, wxDefaultPosition, wxDLG_UNIT(m_ribbonPageTools, wxSize(-1,-1)), wxRIBBON_PANEL_NO_AUTO_MINIMISE|wxRIBBON_PANEL_DEFAULT_STYLE);
+ m_ribbonPanelReports->SetToolTip(_("Reports"));
+
+ m_ribbonButtonBarReports = new wxRibbonButtonBar(m_ribbonPanelReports, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_ribbonPanelReports, wxSize(-1,-1)), 0);
+
+ m_ribbonButtonBarReports->AddButton(ID_RIBBON_DATAREPORT, _("Data Report"), wxXmlResource::Get()->LoadBitmap(wxT("dataReport32")), _("Opens a data report"), wxRIBBON_BUTTON_NORMAL);
+
+ m_ribbonButtonBarReports->AddButton(ID_RIBBON_CHARTS, _("Charts"), wxXmlResource::Get()->LoadBitmap(wxT("chart32")), _("Open the charts"), wxRIBBON_BUTTON_NORMAL);
+
+ m_ribbonButtonBarReports->AddButton(ID_RIBBON_SNAPSHOT, _("Snapshot"), wxXmlResource::Get()->LoadBitmap(wxT("snap32")), _("Capture a snapshot of the circuit"), wxRIBBON_BUTTON_NORMAL);
+ m_ribbonButtonBarReports->Realize();
+
+ m_ribbonPageSimulation = new wxRibbonPage(m_ribbonBar, wxID_ANY, _("Simulation"), wxNullBitmap, 0);
+ m_ribbonPageSimulation->SetToolTip(_("Simulation"));
+
+ m_ribbonPanelContinuous = new wxRibbonPanel(m_ribbonPageSimulation, wxID_ANY, _("Continuous"), wxNullBitmap, wxDefaultPosition, wxDLG_UNIT(m_ribbonPageSimulation, wxSize(-1,-1)), wxRIBBON_PANEL_DEFAULT_STYLE);
+ m_ribbonPanelContinuous->SetToolTip(_("Continuous"));
+
+ m_ribbonButtonBarContinuous = new wxRibbonButtonBar(m_ribbonPanelContinuous, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_ribbonPanelContinuous, wxSize(-1,-1)), 0);
+
+ m_ribbonButtonBarContinuous->AddButton(ID_RIBBON_ENABLESOL, _("Enable Solution"), wxXmlResource::Get()->LoadBitmap(wxT("playStopped32")), _("Enables the power flow and fault (if exists) calculations after any circuit change"), wxRIBBON_BUTTON_TOGGLE);
+
+ m_ribbonButtonBarContinuous->AddButton(ID_RIBBON_DISABLESOL, _("Disable Solution"), wxXmlResource::Get()->LoadBitmap(wxT("pauseStopped32")), _("Disables the power flow and fault calculations after any circuit changes"), wxRIBBON_BUTTON_TOGGLE);
+
+ m_ribbonButtonBarContinuous->AddButton(ID_RIBBON_RESETVOLT, _("Reset Voltages"), wxXmlResource::Get()->LoadBitmap(wxT("reset32")), _("Reset all voltages to initial state"), wxRIBBON_BUTTON_NORMAL);
+ m_ribbonButtonBarContinuous->Realize();
+
+ m_ribbonPanelSimulations = new wxRibbonPanel(m_ribbonPageSimulation, wxID_ANY, _("Simulations"), wxNullBitmap, wxDefaultPosition, wxDLG_UNIT(m_ribbonPageSimulation, wxSize(-1,-1)), wxRIBBON_PANEL_NO_AUTO_MINIMISE|wxRIBBON_PANEL_DEFAULT_STYLE);
+ m_ribbonPanelSimulations->SetToolTip(_("Simulations"));
+
+ m_ribbonButtonBarSimulations = new wxRibbonButtonBar(m_ribbonPanelSimulations, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_ribbonPanelSimulations, wxSize(-1,-1)), 0);
+ m_ribbonButtonBarSimulations->SetToolTip(_("Simulations"));
+
+ m_ribbonButtonBarSimulations->AddButton(ID_RIBBON_POWERFLOW, _("Power Flow"), wxXmlResource::Get()->LoadBitmap(wxT("powerFLow32")), _("Calculate the circuit power flow"), wxRIBBON_BUTTON_NORMAL);
+
+ m_ribbonButtonBarSimulations->AddButton(ID_RIBBON_RUNSTAB, _("Run Stability"), wxXmlResource::Get()->LoadBitmap(wxT("playStopped32")), _("Run the stability calculations"), wxRIBBON_BUTTON_NORMAL);
+
+ m_ribbonButtonBarSimulations->AddButton(ID_RIBBON_FAULT, _("Fault"), wxXmlResource::Get()->LoadBitmap(wxT("fault32")), _("Calculate the circuit fault (if exists)"), wxRIBBON_BUTTON_NORMAL);
+
+ m_ribbonButtonBarSimulations->AddButton(ID_RIBBON_SCPOWER, _("Short-Circuit Power"), wxXmlResource::Get()->LoadBitmap(wxT("faultPower32")), _("Calculate the short-circuit power in all buses"), wxRIBBON_BUTTON_NORMAL);
+
+ m_ribbonButtonBarSimulations->AddButton(ID_RIBBON_SIMULSETTINGS, _("Simulation Settings"), wxXmlResource::Get()->LoadBitmap(wxT("settings32")), _("Opens a dialog to set the settings of the simulations"), wxRIBBON_BUTTON_NORMAL);
+ m_ribbonButtonBarSimulations->Realize();
+ m_ribbonBar->Realize();
+ wxBoxSizer* boxSizer_lvl_2_2 = new wxBoxSizer(wxVERTICAL);
+
+ boxSizer_lvl_1_1->Add(boxSizer_lvl_2_2, 1, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_auiNotebook = new wxAuiNotebook(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), wxAUI_NB_DEFAULT_STYLE|wxBK_DEFAULT);
+ m_auiNotebook->SetName(wxT("m_auiNotebook"));
+
+ boxSizer_lvl_2_2->Add(m_auiNotebook, 1, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_statusBar = new wxStatusBar(this, wxID_ANY, wxSTB_DEFAULT_STYLE);
+ m_statusBar->SetFieldsCount(4);
+ this->SetStatusBar(m_statusBar);
+
+
+ #if wxVERSION_NUMBER >= 2900
+ if(!wxPersistenceManager::Get().Find(m_auiNotebook)){
+ wxPersistenceManager::Get().RegisterAndRestore(m_auiNotebook);
+ } else {
+ wxPersistenceManager::Get().Restore(m_auiNotebook);
+ }
+ #endif
+
+ SetName(wxT("MainFrameBase"));
+ SetSize(800,600);
+ if (GetSizer()) {
+ GetSizer()->Fit(this);
+ }
+ if(GetParent()) {
+ CentreOnParent(wxBOTH);
+ } else {
+ CentreOnScreen(wxBOTH);
+ }
+#if wxVERSION_NUMBER >= 2900
+ if(!wxPersistenceManager::Get().Find(this)) {
+ wxPersistenceManager::Get().RegisterAndRestore(this);
+ } else {
+ wxPersistenceManager::Get().Restore(this);
+ }
+#endif
+ // Connect events
+ m_ribbonButtonBarProjects->Connect(ID_RIBBON_NEW, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnNewClick), NULL, this);
+ m_ribbonButtonBarProjects->Connect(ID_RIBBON_OPEN, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnOpenClick), NULL, this);
+ m_ribbonButtonBarProjects->Connect(ID_RIBBON_GENSETTINGS, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnGeneralSettingsClick), NULL, this);
+ m_ribbonButtonBarProjects->Connect(ID_RIBBON_EXIT, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnExitClick), NULL, this);
+ m_ribbonButtonBarCProject->Connect(ID_RIBBON_SAVE, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnSaveClick), NULL, this);
+ m_ribbonButtonBarCProject->Connect(ID_RIBBON_SAVEAS, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnSaveAsClick), NULL, this);
+ m_ribbonButtonBarCProject->Connect(ID_RIBBON_CLOSE, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnCloseClick), NULL, this);
+ m_ribbonButtonBarHelp->Connect(ID_RIBBON_GUIDE, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnPSPGuideClick), NULL, this);
+ m_ribbonButtonBarHelp->Connect(ID_RIBBON_ABOUT, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnAboutClick), NULL, this);
+ m_ribbonButtonBarClipboard->Connect(ID_RIBBON_COPY, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnCopyClick), NULL, this);
+ m_ribbonButtonBarClipboard->Connect(ID_RIBBON_PASTE, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnPasteClick), NULL, this);
+ m_ribbonButtonBarClipboard->Connect(ID_RIBBON_UNDO, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnUndoClick), NULL, this);
+ m_ribbonButtonBarClipboard->Connect(ID_RIBBON_REDO, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnRedoClick), NULL, this);
+ m_ribbonButtonBarCircuit->Connect(ID_RIBBON_ADDELEMENT, wxEVT_COMMAND_RIBBONBUTTON_DROPDOWN_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnAddElementDropdown), NULL, this);
+ m_ribbonButtonBarCircuit->Connect(ID_RIBBON_DRAG, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnDragClick), NULL, this);
+ m_ribbonButtonBarCircuit->Connect(ID_RIBBON_MOVE, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnMoveClick), NULL, this);
+ m_ribbonButtonBarCircuit->Connect(ID_RIBBON_DELETE, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnDeleteClick), NULL, this);
+ m_ribbonButtonBarCircuit->Connect(ID_RIBBON_FIT, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnFitClick), NULL, this);
+ m_ribbonButtonBarCircuit->Connect(ID_RIBBON_ROTATEC, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnRotClockClick), NULL, this);
+ m_ribbonButtonBarCircuit->Connect(ID_RIBBON_ROTATECC, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnRotCounterClockClick), NULL, this);
+ m_ribbonButtonBarReports->Connect(ID_RIBBON_DATAREPORT, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnDataReportClick), NULL, this);
+ m_ribbonButtonBarReports->Connect(ID_RIBBON_CHARTS, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnChartsClick), NULL, this);
+ m_ribbonButtonBarReports->Connect(ID_RIBBON_SNAPSHOT, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnSnapshotClick), NULL, this);
+ m_ribbonButtonBarContinuous->Connect(ID_RIBBON_ENABLESOL, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnEnableSolutionClick), NULL, this);
+ m_ribbonButtonBarContinuous->Connect(ID_RIBBON_DISABLESOL, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnDisableSolutionClick), NULL, this);
+ m_ribbonButtonBarContinuous->Connect(ID_RIBBON_RESETVOLT, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnResetVoltagesClick), NULL, this);
+ m_ribbonButtonBarSimulations->Connect(ID_RIBBON_POWERFLOW, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnPowerFlowClick), NULL, this);
+ m_ribbonButtonBarSimulations->Connect(ID_RIBBON_RUNSTAB, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnRunStabilityClick), NULL, this);
+ m_ribbonButtonBarSimulations->Connect(ID_RIBBON_FAULT, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnFaultClick), NULL, this);
+ m_ribbonButtonBarSimulations->Connect(ID_RIBBON_SCPOWER, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnSCPowerClick), NULL, this);
+ m_ribbonButtonBarSimulations->Connect(ID_RIBBON_SIMULSETTINGS, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnSimulationSettingsClick), NULL, this);
+ m_auiNotebook->Connect(wxEVT_COMMAND_AUINOTEBOOK_PAGE_CLOSE, wxAuiNotebookEventHandler(MainFrameBase::NotebookPageClosing), NULL, this);
+ m_auiNotebook->Connect(wxEVT_COMMAND_AUINOTEBOOK_PAGE_CLOSED, wxAuiNotebookEventHandler(MainFrameBase::NotebookPageClosed), NULL, this);
+
+}
+
+MainFrameBase::~MainFrameBase()
+{
+ m_ribbonButtonBarProjects->Disconnect(ID_RIBBON_NEW, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnNewClick), NULL, this);
+ m_ribbonButtonBarProjects->Disconnect(ID_RIBBON_OPEN, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnOpenClick), NULL, this);
+ m_ribbonButtonBarProjects->Disconnect(ID_RIBBON_GENSETTINGS, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnGeneralSettingsClick), NULL, this);
+ m_ribbonButtonBarProjects->Disconnect(ID_RIBBON_EXIT, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnExitClick), NULL, this);
+ m_ribbonButtonBarCProject->Disconnect(ID_RIBBON_SAVE, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnSaveClick), NULL, this);
+ m_ribbonButtonBarCProject->Disconnect(ID_RIBBON_SAVEAS, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnSaveAsClick), NULL, this);
+ m_ribbonButtonBarCProject->Disconnect(ID_RIBBON_CLOSE, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnCloseClick), NULL, this);
+ m_ribbonButtonBarHelp->Disconnect(ID_RIBBON_GUIDE, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnPSPGuideClick), NULL, this);
+ m_ribbonButtonBarHelp->Disconnect(ID_RIBBON_ABOUT, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnAboutClick), NULL, this);
+ m_ribbonButtonBarClipboard->Disconnect(ID_RIBBON_COPY, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnCopyClick), NULL, this);
+ m_ribbonButtonBarClipboard->Disconnect(ID_RIBBON_PASTE, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnPasteClick), NULL, this);
+ m_ribbonButtonBarClipboard->Disconnect(ID_RIBBON_UNDO, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnUndoClick), NULL, this);
+ m_ribbonButtonBarClipboard->Disconnect(ID_RIBBON_REDO, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnRedoClick), NULL, this);
+ m_ribbonButtonBarCircuit->Disconnect(ID_RIBBON_ADDELEMENT, wxEVT_COMMAND_RIBBONBUTTON_DROPDOWN_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnAddElementDropdown), NULL, this);
+ m_ribbonButtonBarCircuit->Disconnect(ID_RIBBON_DRAG, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnDragClick), NULL, this);
+ m_ribbonButtonBarCircuit->Disconnect(ID_RIBBON_MOVE, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnMoveClick), NULL, this);
+ m_ribbonButtonBarCircuit->Disconnect(ID_RIBBON_DELETE, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnDeleteClick), NULL, this);
+ m_ribbonButtonBarCircuit->Disconnect(ID_RIBBON_FIT, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnFitClick), NULL, this);
+ m_ribbonButtonBarCircuit->Disconnect(ID_RIBBON_ROTATEC, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnRotClockClick), NULL, this);
+ m_ribbonButtonBarCircuit->Disconnect(ID_RIBBON_ROTATECC, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnRotCounterClockClick), NULL, this);
+ m_ribbonButtonBarReports->Disconnect(ID_RIBBON_DATAREPORT, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnDataReportClick), NULL, this);
+ m_ribbonButtonBarReports->Disconnect(ID_RIBBON_CHARTS, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnChartsClick), NULL, this);
+ m_ribbonButtonBarReports->Disconnect(ID_RIBBON_SNAPSHOT, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnSnapshotClick), NULL, this);
+ m_ribbonButtonBarContinuous->Disconnect(ID_RIBBON_ENABLESOL, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnEnableSolutionClick), NULL, this);
+ m_ribbonButtonBarContinuous->Disconnect(ID_RIBBON_DISABLESOL, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnDisableSolutionClick), NULL, this);
+ m_ribbonButtonBarContinuous->Disconnect(ID_RIBBON_RESETVOLT, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnResetVoltagesClick), NULL, this);
+ m_ribbonButtonBarSimulations->Disconnect(ID_RIBBON_POWERFLOW, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnPowerFlowClick), NULL, this);
+ m_ribbonButtonBarSimulations->Disconnect(ID_RIBBON_RUNSTAB, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnRunStabilityClick), NULL, this);
+ m_ribbonButtonBarSimulations->Disconnect(ID_RIBBON_FAULT, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnFaultClick), NULL, this);
+ m_ribbonButtonBarSimulations->Disconnect(ID_RIBBON_SCPOWER, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnSCPowerClick), NULL, this);
+ m_ribbonButtonBarSimulations->Disconnect(ID_RIBBON_SIMULSETTINGS, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnSimulationSettingsClick), NULL, this);
+ m_auiNotebook->Disconnect(wxEVT_COMMAND_AUINOTEBOOK_PAGE_CLOSE, wxAuiNotebookEventHandler(MainFrameBase::NotebookPageClosing), NULL, this);
+ m_auiNotebook->Disconnect(wxEVT_COMMAND_AUINOTEBOOK_PAGE_CLOSED, wxAuiNotebookEventHandler(MainFrameBase::NotebookPageClosed), NULL, this);
+
+}
diff --git a/Project/base/MainFrameBase.h b/Project/base/MainFrameBase.h
new file mode 100644
index 0000000..1886036
--- /dev/null
+++ b/Project/base/MainFrameBase.h
@@ -0,0 +1,145 @@
+//////////////////////////////////////////////////////////////////////
+// This file was auto-generated by codelite's wxCrafter Plugin
+// wxCrafter project file: MainFrame.wxcp
+// Do not modify this file by hand!
+//////////////////////////////////////////////////////////////////////
+
+#ifndef _PSP_PROJECT_MAINFRAME_BASE_CLASSES_H
+#define _PSP_PROJECT_MAINFRAME_BASE_CLASSES_H
+
+#include <wx/settings.h>
+#include <wx/xrc/xmlres.h>
+#include <wx/xrc/xh_bmp.h>
+#include <wx/frame.h>
+#include <wx/iconbndl.h>
+#include <wx/artprov.h>
+#include <wx/sizer.h>
+#include <wx/ribbon/bar.h>
+#include <wx/ribbon/art.h>
+#include <wx/ribbon/page.h>
+#include <wx/ribbon/panel.h>
+#include <wx/ribbon/buttonbar.h>
+#include <wx/aui/auibook.h>
+#include <wx/statusbr.h>
+#if wxVERSION_NUMBER >= 2900
+#include <wx/persist.h>
+#include <wx/persist/toplevel.h>
+#include <wx/persist/bookctrl.h>
+#include <wx/persist/treebook.h>
+#endif
+
+#ifdef WXC_FROM_DIP
+#undef WXC_FROM_DIP
+#endif
+#if wxVERSION_NUMBER >= 3100
+#define WXC_FROM_DIP(x) wxWindow::FromDIP(x, NULL)
+#else
+#define WXC_FROM_DIP(x) x
+#endif
+
+
+class MainFrameBase : public wxFrame
+{
+public:
+ enum {
+ ID_RIBBON_SCPOWER = 10001,
+ ID_RIBBON_FAULT = 10002,
+ ID_RIBBON_RUNSTAB = 10003,
+ ID_RIBBON_POWERFLOW = 10004,
+ ID_RIBBON_RESETVOLT = 10005,
+ ID_RIBBON_DISABLESOL = 10006,
+ ID_RIBBON_ENABLESOL = 10007,
+ ID_RIBBON_CHARTS = 10008,
+ ID_RIBBON_COPY = 10009,
+ ID_RIBBON_ABOUT = 10010,
+ ID_RIBBON_SNAPSHOT = 10011,
+ ID_RIBBON_PASTE = 10012,
+ ID_RIBBON_ADDELEMENT = 10013,
+ ID_RIBBON_GUIDE = 10014,
+ ID_RIBBON_CLOSE = 10015,
+ ID_RIBBON_SAVEAS = 10016,
+ ID_RIBBON_OPEN = 10017,
+ ID_RIBBON_GENSETTINGS = 10018,
+ ID_RIBBON_FIT = 10019,
+ ID_RIBBON_SIMULSETTINGS = 10020,
+ ID_RIBBON_UNDO = 10021,
+ ID_RIBBON_REDO = 10022,
+ ID_RIBBON_ROTATECC = 10023,
+ ID_RIBBON_EXIT = 10024,
+ ID_RIBBON_DRAG = 10025,
+ ID_RIBBON_SAVE = 10026,
+ ID_RIBBON_NEW = 10027,
+ ID_RIBBON_MOVE = 10028,
+ ID_RIBBON_PROJSETTINGS = 10029,
+ ID_RIBBON_DELETE = 10030,
+ ID_RIBBON_ROTATEC = 10031,
+ ID_RIBBON_DATAREPORT = 10032,
+ };
+protected:
+ wxRibbonBar* m_ribbonBar;
+ wxRibbonPage* m_ribbonPageFile;
+ wxRibbonPanel* m_ribbonPanelProjects;
+ wxRibbonButtonBar* m_ribbonButtonBarProjects;
+ wxRibbonPanel* m_ribbonPanelCProject;
+ wxRibbonButtonBar* m_ribbonButtonBarCProject;
+ wxRibbonPanel* m_ribbonPanelHelp;
+ wxRibbonButtonBar* m_ribbonButtonBarHelp;
+ wxRibbonPage* m_ribbonPageTools;
+ wxRibbonPanel* m_ribbonPanelClipboard;
+ wxRibbonButtonBar* m_ribbonButtonBarClipboard;
+ wxRibbonPanel* m_ribbonPanelCircuit;
+ wxRibbonButtonBar* m_ribbonButtonBarCircuit;
+ wxRibbonPanel* m_ribbonPanelReports;
+ wxRibbonButtonBar* m_ribbonButtonBarReports;
+ wxRibbonPage* m_ribbonPageSimulation;
+ wxRibbonPanel* m_ribbonPanelContinuous;
+ wxRibbonButtonBar* m_ribbonButtonBarContinuous;
+ wxRibbonPanel* m_ribbonPanelSimulations;
+ wxRibbonButtonBar* m_ribbonButtonBarSimulations;
+ wxAuiNotebook* m_auiNotebook;
+ wxStatusBar* m_statusBar;
+
+protected:
+ virtual void OnNewClick(wxRibbonButtonBarEvent& event) { event.Skip(); }
+ virtual void OnOpenClick(wxRibbonButtonBarEvent& event) { event.Skip(); }
+ virtual void OnGeneralSettingsClick(wxRibbonButtonBarEvent& event) { event.Skip(); }
+ virtual void OnExitClick(wxRibbonButtonBarEvent& event) { event.Skip(); }
+ virtual void OnSaveClick(wxRibbonButtonBarEvent& event) { event.Skip(); }
+ virtual void OnSaveAsClick(wxRibbonButtonBarEvent& event) { event.Skip(); }
+ virtual void OnCloseClick(wxRibbonButtonBarEvent& event) { event.Skip(); }
+ virtual void OnPSPGuideClick(wxRibbonButtonBarEvent& event) { event.Skip(); }
+ virtual void OnAboutClick(wxRibbonButtonBarEvent& event) { event.Skip(); }
+ virtual void OnCopyClick(wxRibbonButtonBarEvent& event) { event.Skip(); }
+ virtual void OnPasteClick(wxRibbonButtonBarEvent& event) { event.Skip(); }
+ virtual void OnUndoClick(wxRibbonButtonBarEvent& event) { event.Skip(); }
+ virtual void OnRedoClick(wxRibbonButtonBarEvent& event) { event.Skip(); }
+ virtual void OnAddElementDropdown(wxRibbonButtonBarEvent& event) { event.Skip(); }
+ virtual void OnDragClick(wxRibbonButtonBarEvent& event) { event.Skip(); }
+ virtual void OnMoveClick(wxRibbonButtonBarEvent& event) { event.Skip(); }
+ virtual void OnDeleteClick(wxRibbonButtonBarEvent& event) { event.Skip(); }
+ virtual void OnFitClick(wxRibbonButtonBarEvent& event) { event.Skip(); }
+ virtual void OnRotClockClick(wxRibbonButtonBarEvent& event) { event.Skip(); }
+ virtual void OnRotCounterClockClick(wxRibbonButtonBarEvent& event) { event.Skip(); }
+ virtual void OnDataReportClick(wxRibbonButtonBarEvent& event) { event.Skip(); }
+ virtual void OnChartsClick(wxRibbonButtonBarEvent& event) { event.Skip(); }
+ virtual void OnSnapshotClick(wxRibbonButtonBarEvent& event) { event.Skip(); }
+ virtual void OnEnableSolutionClick(wxRibbonButtonBarEvent& event) { event.Skip(); }
+ virtual void OnDisableSolutionClick(wxRibbonButtonBarEvent& event) { event.Skip(); }
+ virtual void OnResetVoltagesClick(wxRibbonButtonBarEvent& event) { event.Skip(); }
+ virtual void OnPowerFlowClick(wxRibbonButtonBarEvent& event) { event.Skip(); }
+ virtual void OnRunStabilityClick(wxRibbonButtonBarEvent& event) { event.Skip(); }
+ virtual void OnFaultClick(wxRibbonButtonBarEvent& event) { event.Skip(); }
+ virtual void OnSCPowerClick(wxRibbonButtonBarEvent& event) { event.Skip(); }
+ virtual void OnSimulationSettingsClick(wxRibbonButtonBarEvent& event) { event.Skip(); }
+ virtual void NotebookPageClosing(wxAuiNotebookEvent& event) { event.Skip(); }
+ virtual void NotebookPageClosed(wxAuiNotebookEvent& event) { event.Skip(); }
+
+public:
+ wxRibbonBar* GetRibbonBar() { return m_ribbonBar; }
+ wxAuiNotebook* GetAuiNotebook() { return m_auiNotebook; }
+ wxStatusBar* GetStatusBar() { return m_statusBar; }
+ MainFrameBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("PSP-UFU"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(800,600), long style = wxCAPTION|wxRESIZE_BORDER|wxMAXIMIZE_BOX|wxMINIMIZE_BOX|wxSYSTEM_MENU|wxCLOSE_BOX);
+ virtual ~MainFrameBase();
+};
+
+#endif
diff --git a/Project/base/MainFrameBitmaps.cpp b/Project/base/MainFrameBitmaps.cpp
new file mode 100644
index 0000000..42f52fd
--- /dev/null
+++ b/Project/base/MainFrameBitmaps.cpp
@@ -0,0 +1,2569 @@
+//
+// This file was automatically generated by wxrc, do not edit by hand.
+//
+
+#include <wx/wxprec.h>
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#include <wx/filesys.h>
+#include <wx/fs_mem.h>
+#include <wx/xrc/xmlres.h>
+#include <wx/xrc/xh_all.h>
+
+#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805
+ #define XRC_ADD_FILE(name, data, size, mime) \
+ wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime)
+#else
+ #define XRC_ADD_FILE(name, data, size, mime) \
+ wxMemoryFSHandler::AddFile(name, data, size)
+#endif
+
+static size_t xml_res_size_0 = 875;
+static unsigned char xml_res_file_0[] = {
+137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0,
+0,115,122,122,244,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
+72,89,115,0,0,4,196,0,0,4,196,1,60,204,212,131,0,0,0,25,116,69,88,116,83,
+111,102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,101,
+46,111,114,103,155,238,60,26,0,0,2,232,73,68,65,84,88,133,197,151,59,72,
+91,97,20,199,127,231,154,24,235,131,106,161,144,219,56,116,112,80,28,58,
+88,177,69,4,17,92,42,168,163,208,173,157,58,88,112,45,106,140,136,180,147,
+96,231,118,19,28,85,186,9,34,216,82,69,157,138,40,216,161,67,98,2,45,42,
+24,53,15,147,211,33,137,154,24,147,155,135,237,31,238,240,61,207,239,126,
+247,187,231,33,170,138,21,201,199,159,14,142,142,123,128,1,160,5,196,4,
+53,147,163,126,80,63,176,11,44,210,80,191,162,195,77,97,75,251,230,3,144,
+233,109,147,168,142,35,188,4,234,44,209,194,9,202,28,118,153,212,119,109,
+254,162,0,196,179,90,133,212,142,2,35,64,181,69,195,153,58,3,102,208,224,
+148,186,187,67,150,1,196,179,233,68,100,1,232,40,210,112,166,54,80,29,84,
+119,123,32,47,128,140,125,125,130,189,234,11,208,120,219,110,206,90,59,
+67,173,15,210,250,230,119,14,9,4,163,185,32,188,136,188,208,177,182,31,
+183,2,200,232,154,137,198,54,169,168,116,97,171,188,117,167,103,141,53,
+124,127,213,146,214,247,252,243,46,235,222,211,92,0,9,8,213,246,235,39,
+97,92,26,247,172,86,17,143,45,161,184,184,136,192,69,36,223,102,197,168,
+17,145,5,241,172,86,221,0,32,204,4,240,244,178,125,119,16,29,201,203,125,
+5,32,163,43,46,132,183,55,166,222,29,196,136,76,111,155,0,54,0,226,198,
+4,112,47,235,212,20,192,181,59,177,238,61,69,38,183,74,1,168,38,170,227,
+192,27,97,118,223,65,192,251,7,165,54,231,18,91,37,185,46,102,17,58,161,
+161,254,161,65,192,215,155,215,56,220,197,231,168,227,232,184,199,6,58,
+104,121,73,18,160,213,188,207,167,254,199,105,67,175,151,126,177,243,251,
+188,80,136,1,27,72,51,88,11,72,41,136,26,35,74,135,171,38,173,187,206,97,
+220,178,32,167,90,12,20,103,161,171,244,34,66,40,148,213,181,23,40,49,13,
+68,11,6,0,8,135,195,101,128,80,179,168,115,43,39,132,129,202,141,8,245,
+239,32,196,111,32,148,4,144,130,136,71,45,37,64,25,82,191,1,186,87,42,0,
+36,46,102,17,126,98,215,0,89,40,7,0,80,140,179,90,52,112,186,150,17,130,
+255,1,226,132,134,250,21,67,135,155,194,40,243,101,3,176,10,161,204,233,
+112,83,56,241,27,58,236,110,132,130,253,104,9,16,103,216,101,18,146,249,
+128,186,59,15,80,102,203,10,144,27,98,38,149,174,95,57,34,7,19,64,73,65,
+222,34,196,6,26,156,74,53,46,1,212,221,29,194,168,232,71,240,221,33,132,
+55,145,158,95,213,8,105,174,88,167,186,252,64,95,62,136,243,168,178,127,
+24,74,123,206,163,121,34,106,44,226,35,30,235,203,172,13,178,23,38,163,
+107,38,241,216,18,215,147,212,210,180,133,81,209,159,124,193,52,101,13,
+70,58,213,229,199,65,23,240,161,164,191,67,56,71,140,247,56,232,202,102,
+28,172,20,167,158,111,143,8,71,61,8,67,150,82,183,132,225,32,202,60,14,
+187,91,221,157,7,57,167,22,84,158,7,124,189,137,20,78,154,81,156,151,185,
+132,74,32,17,212,116,15,100,1,167,107,217,106,121,254,23,223,163,88,99,
+79,104,41,98,0,0,0,0,73,69,78,68,174,66,96,130};
+
+static size_t xml_res_size_1 = 1145;
+static unsigned char xml_res_file_1[] = {
+137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0,
+0,115,122,122,244,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
+72,89,115,0,0,4,153,0,0,4,153,1,131,201,236,179,0,0,0,25,116,69,88,116,
+83,111,102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,
+101,46,111,114,103,155,238,60,26,0,0,3,246,73,68,65,84,88,133,229,151,91,
+108,84,85,20,134,191,117,102,206,244,150,182,80,27,75,0,141,70,81,228,18,
+193,64,140,141,198,7,37,68,95,72,144,242,128,198,120,41,15,106,8,150,72,
+106,50,51,157,158,118,42,40,180,81,52,154,80,212,16,47,68,139,98,212,146,
+244,193,56,65,5,17,138,24,163,196,164,177,36,21,20,52,157,222,152,94,102,
+230,44,31,122,177,211,158,233,153,14,77,120,112,189,156,100,173,127,255,
+255,191,247,94,103,239,115,68,85,185,150,97,92,83,117,192,59,231,140,150,
+24,120,88,66,18,113,197,154,244,202,156,110,129,37,249,24,124,8,108,200,
+0,253,21,54,143,207,221,10,88,178,0,225,11,96,141,11,50,142,16,36,192,43,
+160,58,55,6,44,89,129,65,43,112,163,11,178,3,216,66,64,79,141,39,174,190,
+9,235,100,29,6,223,185,138,11,7,177,89,77,240,63,113,184,218,38,172,151,
+74,132,183,92,120,122,81,158,33,168,135,156,138,89,174,128,8,245,178,11,
+104,118,17,63,129,205,42,106,156,197,113,25,236,28,150,228,98,112,16,216,
+60,3,202,70,105,64,169,35,164,137,153,232,102,103,192,146,82,12,62,7,238,
+153,1,213,133,193,99,248,245,88,38,148,153,159,3,97,185,29,165,21,184,101,
+70,113,165,26,131,232,180,74,146,51,132,244,114,118,6,234,229,126,224,8,
+48,63,51,183,41,17,5,94,32,168,239,56,21,221,13,88,98,32,108,64,200,73,
+29,201,70,148,10,23,241,195,216,108,35,164,127,165,3,204,254,40,222,47,
+102,207,121,26,243,125,108,243,121,210,162,46,34,60,71,64,63,115,163,155,
+85,19,118,7,228,6,143,77,139,8,119,15,198,71,115,83,76,40,194,1,76,118,
+82,173,189,153,112,102,108,160,47,40,235,61,202,251,8,165,227,185,41,38,
+58,16,182,18,208,72,166,156,153,25,176,196,232,25,161,86,192,143,195,193,
+53,24,39,129,210,228,155,71,45,85,58,56,27,113,87,3,253,181,82,106,199,
+57,36,240,160,35,64,248,9,229,105,159,165,237,233,56,196,138,120,49,10,
+239,64,245,54,148,223,88,214,121,78,43,42,146,19,245,116,77,216,95,35,229,
+182,205,71,40,139,29,202,67,24,132,139,189,188,60,211,73,39,214,233,77,
+99,119,69,233,164,244,37,84,159,213,208,218,79,211,26,232,241,203,14,129,
+221,128,233,72,44,252,2,116,78,206,169,114,46,41,188,94,18,214,46,0,169,
+59,93,5,52,1,236,44,95,192,163,43,75,248,224,231,110,246,28,31,123,35,133,
+42,13,174,121,53,101,11,186,107,165,200,147,224,93,129,141,233,102,53,38,
+182,28,88,62,70,20,49,132,166,162,48,95,194,232,108,196,58,185,12,241,236,
+26,199,47,42,52,185,179,44,159,200,249,254,73,36,188,36,225,147,173,41,
+6,100,136,121,134,143,70,160,17,192,78,242,36,80,233,224,97,68,132,22,85,
+26,139,195,250,227,180,234,240,240,150,220,188,156,156,155,174,43,0,96,
+126,158,119,226,185,180,52,23,128,206,232,112,222,112,210,216,148,182,7,
+250,130,98,169,77,205,148,116,20,56,144,76,178,175,100,183,254,225,188,
+62,32,254,175,143,174,93,88,240,208,183,91,87,225,243,249,28,49,171,247,
+255,202,217,75,177,195,211,223,2,75,188,125,9,154,213,230,137,73,217,223,
+197,224,181,193,33,222,46,219,163,87,210,9,79,132,26,49,91,161,103,32,70,
+94,158,146,159,227,195,99,8,73,91,73,140,205,215,86,5,155,88,138,129,127,
+170,165,208,244,242,9,176,14,64,132,227,10,77,197,38,71,8,169,93,228,170,
+60,22,134,158,105,191,24,123,164,108,239,89,0,26,31,190,149,29,247,46,230,
+141,83,151,121,190,173,107,18,78,218,39,12,196,44,89,104,154,28,101,180,
+193,90,196,195,222,162,58,253,33,83,205,212,21,240,52,67,114,59,112,61,
+64,124,120,144,145,145,145,169,168,63,49,125,239,25,0,3,126,89,145,72,208,
+38,74,68,109,150,20,55,232,230,172,197,1,109,184,239,111,208,74,96,8,224,
+251,11,87,120,243,68,23,223,116,78,124,38,196,80,125,74,95,92,25,149,104,
+128,155,197,230,129,164,201,199,37,181,218,151,173,168,83,136,63,178,20,
+216,7,148,163,20,32,12,224,205,61,134,225,219,174,161,187,58,32,155,235,
+56,27,35,22,6,241,182,69,152,235,47,104,8,59,165,246,191,255,59,254,23,
+116,158,121,223,246,238,101,75,0,0,0,0,73,69,78,68,174,66,96,130};
+
+static size_t xml_res_size_2 = 987;
+static unsigned char xml_res_file_2[] = {
+137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0,
+0,115,122,122,244,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
+72,89,115,0,0,5,98,0,0,5,98,1,172,97,92,156,0,0,0,25,116,69,88,116,83,111,
+102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,101,46,
+111,114,103,155,238,60,26,0,0,3,88,73,68,65,84,88,133,197,151,123,104,141,
+97,24,192,127,239,217,185,76,10,209,140,105,229,210,92,74,174,115,89,91,
+20,139,134,48,127,80,194,220,134,63,8,145,63,196,54,119,43,33,252,97,182,
+154,40,162,200,106,214,148,132,153,68,211,102,180,37,119,25,67,238,235,
+236,59,231,59,123,253,113,182,119,59,190,239,59,151,156,195,243,215,251,
+60,207,251,188,207,239,125,222,219,247,9,242,238,74,226,28,252,47,177,227,
+213,72,238,233,100,250,144,62,0,220,122,253,147,151,223,180,127,6,96,3,
+24,213,219,70,81,86,18,165,243,6,50,105,64,247,152,36,74,166,153,25,226,
+158,57,0,128,219,237,198,227,241,196,36,57,192,78,81,194,53,54,80,69,46,
+233,212,25,1,58,32,218,116,111,212,147,15,162,137,229,148,3,144,33,106,
+25,79,131,57,0,128,207,211,10,122,116,43,145,39,138,113,160,3,240,142,4,
+138,88,96,13,0,248,1,162,4,145,194,91,150,82,161,244,253,114,37,26,206,
+16,0,81,132,200,19,197,196,209,6,192,27,250,81,194,188,0,191,53,64,20,32,
+134,243,138,197,92,83,250,94,185,10,15,129,119,78,112,128,63,32,250,243,
+57,34,128,2,113,10,91,251,236,95,146,196,105,230,24,250,132,6,0,156,122,
+11,39,244,125,52,137,44,62,136,153,28,17,135,67,198,140,228,57,11,185,174,
+244,61,114,53,94,236,145,3,36,241,137,10,177,145,37,190,43,104,58,36,242,
+133,77,156,39,85,52,4,141,219,69,17,2,9,192,51,146,57,195,108,211,126,65,
+1,50,68,45,183,196,90,82,219,207,109,171,14,154,255,52,145,47,139,45,227,
+198,240,148,108,113,179,19,70,230,226,179,72,101,9,176,94,92,160,140,45,
+36,240,85,217,170,25,173,32,230,136,170,128,11,165,171,116,157,125,35,3,
+57,199,76,75,88,3,128,11,141,82,177,139,189,156,84,199,199,131,131,77,114,
+11,179,229,81,106,25,166,32,242,133,177,10,169,162,129,185,226,118,39,140,
+204,165,45,72,161,13,158,29,162,148,108,110,42,189,137,4,178,56,166,118,
+240,65,153,3,248,151,99,134,94,197,56,26,3,226,119,115,82,181,159,48,152,
+139,100,90,38,55,5,72,226,147,106,87,49,150,41,242,20,53,114,184,178,85,
+146,70,29,67,21,196,118,189,72,249,210,168,39,139,187,74,47,96,77,208,217,
+155,2,116,200,113,22,49,95,30,226,51,189,12,190,66,185,76,181,51,125,119,
+24,163,63,6,2,103,95,71,10,151,228,180,160,201,77,1,126,208,157,28,10,216,
+41,215,89,238,220,10,210,121,68,138,210,183,249,74,72,215,31,144,41,238,
+43,91,190,92,139,68,68,14,176,77,110,160,76,78,13,25,88,72,103,21,102,81,
+205,81,223,1,90,219,143,104,13,35,40,35,244,24,166,0,94,194,251,62,172,
+144,233,60,102,136,210,83,120,139,166,251,247,69,190,92,19,214,24,166,0,
+225,138,68,80,72,142,193,94,173,143,224,170,62,49,246,0,0,229,50,131,39,
+93,170,0,176,159,21,17,189,162,198,215,33,2,145,8,246,176,138,173,156,5,
+224,5,3,184,33,39,248,157,29,0,118,167,69,116,20,0,0,42,101,26,149,164,
+153,59,195,128,248,171,37,8,75,66,44,71,236,1,66,64,216,1,122,184,226,148,
+97,100,223,110,124,215,124,49,225,176,57,156,216,28,46,0,30,190,111,225,
+99,139,238,7,24,218,59,94,117,218,60,57,145,205,147,19,99,2,0,224,114,185,
+136,143,143,39,251,226,51,174,52,126,251,251,77,24,169,104,90,224,127,167,
+29,224,114,227,87,117,107,127,248,229,229,135,167,45,230,32,53,239,90,1,
+225,7,168,111,118,83,223,236,142,121,82,131,216,157,252,6,173,114,47,95,
+172,143,154,9,0,0,0,0,73,69,78,68,174,66,96,130};
+
+static size_t xml_res_size_3 = 1135;
+static unsigned char xml_res_file_3[] = {
+137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0,
+0,115,122,122,244,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
+72,89,115,0,0,4,196,0,0,4,196,1,60,204,212,131,0,0,0,25,116,69,88,116,83,
+111,102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,101,
+46,111,114,103,155,238,60,26,0,0,3,236,73,68,65,84,88,133,173,151,77,72,
+92,87,20,199,127,231,197,153,103,162,17,149,74,103,50,74,160,12,24,75,74,
+41,81,92,4,33,45,180,16,99,73,150,45,5,55,237,198,20,23,133,172,196,102,
+156,212,126,65,105,32,33,205,42,155,130,36,75,83,219,44,18,48,66,82,218,
+84,67,104,41,73,138,18,8,126,204,72,165,150,204,24,157,55,58,167,139,153,
+209,241,205,123,111,94,180,255,221,123,231,204,251,255,230,222,123,238,
+61,87,84,21,63,146,139,51,38,203,255,190,5,156,4,218,64,194,160,225,66,
+52,1,154,0,30,1,215,105,168,31,215,254,104,198,215,119,43,1,200,23,247,
+195,100,245,44,194,7,192,126,95,180,144,66,25,33,32,231,116,224,72,98,71,
+0,18,159,168,70,106,7,129,79,128,125,62,141,237,122,14,156,71,211,195,26,
+59,182,230,27,64,226,147,33,68,70,129,206,29,26,219,117,15,213,83,26,235,
+72,218,3,70,153,249,167,119,95,71,100,242,127,52,7,232,68,100,82,62,187,
+255,154,39,128,12,222,9,147,91,255,137,117,171,217,158,88,27,44,99,117,
+149,75,110,51,170,55,36,62,25,114,4,144,248,68,53,185,141,31,80,34,172,
+91,176,110,109,38,245,181,55,241,240,244,97,162,141,102,69,243,104,163,
+201,195,211,135,233,107,111,114,134,16,25,149,248,68,117,25,0,25,134,128,
+246,205,231,2,68,95,123,19,151,186,15,210,82,23,228,118,111,171,39,68,180,
+209,228,118,111,43,45,117,65,46,117,31,116,131,232,44,44,238,252,31,87,
+85,100,112,60,130,26,211,40,123,75,51,63,124,227,37,46,190,27,101,111,245,
+38,48,115,207,44,222,252,254,47,102,254,217,94,230,69,243,230,186,224,230,
+59,5,62,190,241,148,203,83,127,219,33,158,83,37,81,29,56,146,200,143,64,
+206,24,114,50,255,230,157,22,172,76,134,181,181,173,10,106,118,24,9,39,
+115,0,1,183,145,216,71,86,207,230,115,46,76,155,36,231,150,80,106,139,209,
+154,160,193,111,31,181,17,217,191,245,65,211,52,169,118,24,9,192,209,188,
+84,179,207,44,94,253,238,79,210,86,174,244,117,138,134,250,38,97,96,162,
+7,213,49,251,143,94,105,48,249,241,253,40,7,60,32,146,233,44,0,161,218,
+128,171,185,219,148,21,212,109,128,158,114,138,60,89,206,208,115,117,134,
+133,212,86,53,100,108,211,17,170,13,236,198,28,224,164,1,114,200,45,234,
+7,98,23,230,0,109,6,74,200,43,99,39,16,62,205,1,9,27,136,122,2,148,66,44,
+174,100,43,66,36,211,89,159,230,0,26,246,191,191,58,200,239,116,120,201,
+64,165,236,132,178,171,88,17,47,215,148,47,56,167,133,89,105,199,220,146,
+36,12,4,79,0,167,114,172,4,225,180,89,57,75,19,6,232,227,221,152,239,18,
+226,145,1,50,186,83,243,197,149,172,231,194,244,1,113,221,32,20,185,133,
+144,46,125,91,19,52,24,171,96,190,144,178,56,62,50,205,241,145,105,207,
+18,109,174,11,50,222,219,234,212,35,164,104,168,31,55,180,63,154,65,185,
+86,26,89,177,114,124,251,203,34,110,237,234,66,202,162,231,234,12,79,150,
+51,21,247,9,5,190,188,155,176,159,3,160,140,104,127,52,147,199,50,3,49,
+132,213,210,248,149,7,75,156,185,57,91,6,81,106,94,148,27,196,234,218,154,
+251,113,28,144,115,80,104,72,52,118,116,1,229,130,61,203,14,225,100,238,
+6,161,64,255,216,12,151,127,157,47,203,5,206,23,219,245,173,137,49,25,2,
+166,220,32,230,61,204,237,16,243,41,139,51,55,103,185,242,96,9,123,123,
+7,220,67,211,195,197,135,109,109,185,12,222,9,163,27,147,40,17,251,199,
+107,130,6,43,246,121,116,145,99,110,85,16,170,130,115,168,118,148,182,231,
+219,150,166,14,119,37,128,19,8,101,227,230,215,220,53,119,195,154,39,183,
+113,194,126,55,40,171,13,253,252,216,239,200,158,14,28,166,99,23,154,66,
+246,116,232,80,231,31,246,128,227,97,164,195,93,9,76,186,128,175,237,213,
+241,66,18,86,17,227,43,76,186,10,163,91,158,82,241,114,26,255,249,0,153,
+108,28,225,189,210,190,177,130,113,26,229,26,102,32,166,177,163,11,158,
+169,47,116,61,79,206,191,157,111,225,228,16,74,104,179,151,80,73,230,15,
+53,125,12,50,74,40,114,203,239,245,252,63,36,46,60,68,215,168,12,225,0,
+0,0,0,73,69,78,68,174,66,96,130};
+
+static size_t xml_res_size_4 = 745;
+static unsigned char xml_res_file_4[] = {
+137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0,
+0,115,122,122,244,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
+72,89,115,0,0,5,74,0,0,5,74,1,26,195,117,109,0,0,0,25,116,69,88,116,83,
+111,102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,101,
+46,111,114,103,155,238,60,26,0,0,2,102,73,68,65,84,88,133,197,150,75,72,
+84,97,20,199,127,103,102,156,33,74,90,132,74,11,117,81,11,55,209,46,40,
+92,70,16,173,130,137,220,4,81,164,102,20,61,209,76,131,102,132,80,202,116,
+72,68,72,138,194,136,202,6,162,218,84,20,49,6,69,155,22,46,196,213,140,
+211,131,194,77,77,249,184,119,230,107,49,134,58,119,30,247,53,117,224,194,
+229,255,125,247,156,31,255,115,248,238,39,74,41,114,67,66,31,166,128,245,
+134,5,19,177,153,25,105,33,58,122,246,226,237,78,51,251,125,5,244,26,187,
+0,62,210,28,151,123,231,7,122,210,158,147,93,99,29,165,246,123,236,20,41,
+21,1,52,218,212,131,246,193,80,211,149,255,2,0,224,71,163,77,198,207,68,
+66,251,251,77,1,200,133,215,143,165,243,85,66,186,99,113,144,74,171,5,79,
+51,102,208,42,208,105,147,241,83,67,225,125,131,37,1,80,108,4,169,37,173,
+215,161,207,91,118,230,170,12,112,142,59,6,221,71,154,22,162,39,134,67,
+193,235,197,1,86,134,174,129,190,96,149,129,62,137,112,128,103,121,33,154,
+37,122,108,36,28,28,54,7,224,0,162,83,110,18,99,171,65,247,146,225,8,209,
+214,27,225,189,35,230,0,28,64,52,242,145,23,108,99,134,26,146,84,243,137,
+42,62,83,197,87,54,176,155,137,230,222,240,193,107,127,247,22,58,7,86,67,
+0,248,2,150,32,118,242,158,30,14,211,173,90,243,45,111,111,95,122,49,55,
+108,54,157,232,98,148,203,50,84,116,143,249,105,183,9,209,193,45,250,36,
+82,112,189,116,11,114,33,32,111,59,166,168,71,80,75,15,8,217,127,140,160,
+8,242,146,36,213,68,104,114,8,80,4,162,65,61,180,156,10,236,30,197,186,
+6,250,162,173,79,221,1,128,44,128,11,16,206,126,70,46,64,24,102,96,77,133,
+135,254,93,181,150,146,60,79,204,241,104,250,183,59,0,62,143,208,88,183,
+206,82,146,169,217,249,172,19,62,191,115,128,159,11,105,182,12,79,90,78,
+180,156,209,26,132,187,23,18,27,51,225,254,141,200,34,132,161,5,107,253,
+30,238,7,55,57,98,120,19,79,209,251,110,214,84,59,202,118,39,52,235,132,
+193,129,95,139,25,246,220,157,118,15,2,138,58,81,62,7,86,66,20,113,162,
+252,0,37,32,12,45,168,12,120,121,123,168,193,81,189,137,153,20,173,79,226,
+171,197,180,150,65,72,226,245,43,132,47,5,1,244,140,34,150,72,57,2,152,
+252,62,103,20,85,38,165,46,237,168,207,149,13,0,115,90,134,163,79,227,185,
+114,217,226,223,204,64,145,88,118,64,152,69,201,183,178,85,18,249,145,79,
+254,3,152,12,212,147,138,121,230,178,0,0,0,0,73,69,78,68,174,66,96,130};
+
+static size_t xml_res_size_5 = 1105;
+static unsigned char xml_res_file_5[] = {
+137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0,
+0,115,122,122,244,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
+72,89,115,0,0,4,193,0,0,4,193,1,17,118,177,117,0,0,0,25,116,69,88,116,83,
+111,102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,101,
+46,111,114,103,155,238,60,26,0,0,3,206,73,68,65,84,88,133,197,151,93,108,
+20,85,20,199,127,119,102,187,187,109,193,74,181,216,210,168,169,65,173,
+196,151,242,160,24,155,96,48,49,82,131,41,31,17,130,209,218,20,4,34,145,
+7,77,144,144,106,96,137,190,245,69,227,55,26,44,105,37,212,66,169,2,9,24,
+19,163,201,38,16,27,67,35,148,98,67,49,41,173,197,110,107,183,237,204,206,
+236,92,31,216,46,59,221,153,217,169,149,250,127,185,59,247,158,115,238,
+47,231,158,115,103,86,72,41,17,251,126,89,138,176,126,98,142,90,76,76,236,
+21,7,219,95,111,252,122,135,95,159,192,205,65,6,128,123,220,140,138,136,
+51,198,130,156,193,20,44,94,227,232,246,15,246,203,192,206,183,143,108,
+245,3,160,0,144,152,84,48,19,182,133,39,184,192,97,209,72,143,88,207,117,
+241,172,159,88,0,168,88,236,16,109,91,62,140,188,240,133,31,251,64,250,
+87,10,32,20,128,125,124,202,155,162,25,21,11,0,157,32,0,29,27,151,178,32,
+168,114,110,96,130,182,139,49,206,15,76,184,66,108,231,155,250,79,34,27,
+212,109,141,109,117,94,0,138,237,201,76,112,36,249,6,187,197,161,244,230,
+153,42,10,171,172,170,88,200,238,39,75,137,54,84,242,238,170,114,130,170,
+112,9,108,177,149,99,47,127,182,127,221,97,223,0,245,162,147,167,204,40,
+154,233,229,114,83,170,16,236,169,46,227,199,87,42,201,83,220,33,182,136,
+227,47,126,30,89,219,154,19,160,132,24,7,248,8,0,221,196,23,4,192,227,229,
+133,188,179,114,137,235,186,64,210,64,199,166,47,35,207,31,245,4,88,33,
+186,41,100,42,189,48,27,136,183,170,75,169,42,45,240,132,168,167,115,195,
+161,200,154,99,174,0,203,185,148,229,232,23,66,21,130,218,202,59,115,218,
+213,241,109,109,243,129,154,19,153,115,233,46,232,147,229,124,204,250,108,
+47,3,36,65,80,189,131,63,182,164,48,117,128,222,122,73,158,90,211,18,89,
+253,221,230,198,83,207,217,0,154,169,225,222,162,32,15,223,21,118,116,124,
+38,47,72,113,126,192,113,13,160,170,172,128,97,22,81,33,79,160,96,161,96,
+33,32,53,74,20,100,106,180,16,200,154,93,239,125,255,208,240,158,167,47,
+219,34,62,186,56,159,214,117,15,184,110,18,10,57,87,59,192,192,184,65,18,
+133,171,148,185,218,216,148,16,10,204,104,195,174,235,147,158,62,186,174,
+163,105,154,227,218,57,151,75,41,151,108,25,24,140,27,92,27,211,185,175,
+40,228,9,1,16,14,219,143,234,231,107,241,44,219,144,42,120,164,36,223,54,
+247,251,136,206,120,34,233,12,0,176,247,135,1,154,107,43,60,169,103,66,
+156,31,152,160,165,123,36,203,174,98,81,136,174,87,151,217,230,86,183,244,
+114,250,202,88,250,89,153,233,212,217,51,74,251,165,152,39,192,52,132,166,
+105,104,166,69,93,199,85,76,75,230,244,113,146,99,89,239,58,253,7,134,37,
+217,184,172,216,211,185,255,175,56,59,207,12,242,219,176,115,93,248,81,
+86,6,0,198,245,36,219,58,251,217,220,222,199,149,145,236,224,147,134,69,
+107,247,8,43,14,94,228,236,229,27,204,124,149,207,70,238,141,13,156,236,
+29,227,100,239,24,197,249,1,150,151,21,80,82,24,224,215,193,41,122,110,
+104,36,101,70,202,167,1,2,193,255,22,96,90,35,83,38,103,251,254,246,54,
+250,151,16,190,0,188,180,242,254,133,52,175,189,213,53,161,112,152,234,
+175,250,232,117,56,186,219,2,144,167,10,238,8,101,188,40,164,129,98,249,
+175,9,199,34,156,171,164,145,240,93,152,190,50,208,80,117,119,214,71,199,
+131,239,95,64,79,122,244,190,153,64,250,128,240,5,16,84,21,123,154,1,33,
+4,224,125,249,72,35,129,174,235,132,66,238,87,251,109,57,130,76,105,154,
+150,190,186,255,23,128,92,16,115,238,130,217,64,56,105,94,50,144,9,97,25,
+246,194,156,87,0,0,203,208,109,45,58,111,71,96,147,153,128,100,82,185,5,
+32,49,129,63,221,236,187,134,38,242,154,162,67,182,94,50,45,25,7,232,31,
+213,213,166,232,144,237,179,39,166,153,147,128,21,211,76,165,41,58,100,
+251,195,208,63,170,79,1,201,212,158,252,3,254,199,112,135,4,100,254,30,
+0,0,0,0,73,69,78,68,174,66,96,130};
+
+static size_t xml_res_size_6 = 845;
+static unsigned char xml_res_file_6[] = {
+137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0,
+0,115,122,122,244,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
+72,89,115,0,0,4,196,0,0,4,196,1,60,204,212,131,0,0,0,25,116,69,88,116,83,
+111,102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,101,
+46,111,114,103,155,238,60,26,0,0,2,202,73,68,65,84,88,133,189,151,191,75,
+91,81,20,199,63,231,249,226,139,162,160,208,66,210,116,180,160,67,113,176,
+226,32,130,21,156,28,116,20,58,118,118,232,42,214,36,214,150,118,18,236,
+127,80,42,56,198,210,77,16,161,237,32,209,193,14,254,192,14,29,140,9,88,
+80,26,137,121,106,60,29,18,127,52,47,198,151,248,226,217,238,185,247,221,
+239,135,115,223,61,231,92,81,85,220,152,124,252,101,113,112,56,0,12,3,29,
+32,65,208,96,97,54,9,154,4,54,129,5,90,91,150,116,172,205,118,181,239,109,
+0,242,110,45,200,169,78,34,188,0,154,93,209,66,26,101,14,159,76,233,120,
+87,178,42,0,137,46,251,145,166,9,224,21,208,232,82,184,216,50,192,12,122,
+52,173,225,254,172,107,0,137,198,3,136,196,128,158,42,133,139,109,5,213,
+17,13,119,167,138,39,12,135,248,235,239,157,136,196,61,20,7,232,65,36,46,
+111,214,158,58,244,174,71,64,38,190,5,209,92,156,186,250,16,102,189,135,
+250,151,182,139,106,247,245,72,92,70,64,162,203,126,206,115,95,80,66,156,
+157,192,217,73,45,0,30,35,18,147,232,178,223,1,128,77,4,120,118,57,174,
+29,68,79,225,231,6,10,71,32,19,75,33,212,216,65,105,112,44,55,235,169,193,
+113,100,48,165,77,199,187,146,249,8,156,27,145,146,226,80,171,72,52,114,
+170,147,0,194,236,142,69,106,247,15,74,83,217,79,188,143,68,154,214,150,
+135,6,169,196,224,173,226,80,139,72,52,115,112,56,96,130,142,252,231,181,
+234,104,127,96,221,248,149,152,38,134,239,230,249,114,182,177,159,229,175,
+157,187,238,26,54,65,218,225,42,23,116,6,26,248,58,250,164,236,70,150,101,
+225,247,251,203,174,41,101,207,63,109,179,252,59,125,221,213,97,160,4,42,
+221,200,182,109,178,217,146,169,189,66,147,160,129,104,197,0,222,65,104,
+208,81,11,238,27,194,64,197,81,161,238,15,66,146,6,194,157,0,238,6,161,
+73,19,116,11,232,189,112,173,167,142,25,252,188,93,21,136,152,245,101,175,
+232,198,190,3,114,211,4,137,129,190,188,240,164,237,28,241,68,166,42,0,
+200,84,154,49,23,12,2,161,69,132,163,42,21,157,230,62,99,166,105,109,89,
+50,116,172,205,70,153,247,12,192,45,132,50,167,99,109,118,254,26,90,190,
+48,194,241,61,66,100,240,201,20,20,26,18,13,247,238,161,204,122,10,80,30,
+98,230,162,93,191,74,68,22,17,96,245,30,32,86,208,163,233,139,65,233,166,
+84,9,121,14,146,191,29,55,55,165,0,58,221,151,4,134,16,18,158,3,228,78,
+18,156,231,134,138,223,6,142,90,160,111,251,215,145,186,110,188,61,142,
+85,164,174,91,35,61,63,139,39,74,22,35,157,238,75,98,209,7,124,184,211,
+237,16,142,17,227,61,22,125,133,232,58,151,220,250,56,141,254,120,132,125,
+26,69,24,117,213,186,229,133,143,80,230,177,124,97,13,247,238,149,93,90,
+209,243,60,149,24,204,183,112,210,142,18,184,236,37,84,82,249,162,166,91,
+32,49,2,161,69,183,207,243,127,112,231,61,10,138,240,143,199,0,0,0,0,73,
+69,78,68,174,66,96,130};
+
+static size_t xml_res_size_7 = 1244;
+static unsigned char xml_res_file_7[] = {
+137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0,
+0,115,122,122,244,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
+72,89,115,0,0,4,196,0,0,4,196,1,60,204,212,131,0,0,0,25,116,69,88,116,83,
+111,102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,101,
+46,111,114,103,155,238,60,26,0,0,4,89,73,68,65,84,88,133,181,151,93,76,
+91,101,24,199,127,207,161,165,5,193,208,32,210,2,83,230,72,216,98,252,64,
+36,16,23,162,33,89,118,49,3,75,140,31,17,221,197,174,208,132,41,94,44,186,
+32,208,73,102,188,218,148,59,19,99,162,33,89,116,78,70,162,162,219,8,6,
+48,153,29,55,114,49,150,0,19,55,40,91,130,108,192,74,79,219,211,215,139,
+150,66,219,211,210,18,247,191,122,63,158,243,60,191,243,158,247,60,239,
+243,138,82,138,76,36,125,211,54,150,239,54,1,45,192,62,16,23,40,87,116,
+214,11,202,11,92,3,46,224,40,26,86,237,85,122,70,126,183,3,144,83,19,46,
+130,170,11,161,21,40,204,136,22,86,81,244,99,149,147,234,68,173,119,71,
+0,226,30,177,35,5,157,64,7,144,159,97,224,68,249,128,211,168,181,94,213,
+253,146,63,99,0,113,123,156,136,12,0,245,27,99,182,28,33,207,170,69,188,
+6,195,4,140,204,62,93,84,87,80,234,176,234,174,91,76,156,208,146,130,127,
+60,246,12,34,158,173,193,1,58,26,74,89,62,94,195,242,241,26,142,62,251,
+72,54,193,1,234,17,241,200,39,19,79,165,5,144,206,81,23,225,208,79,132,
+2,21,217,70,200,64,21,40,245,179,184,61,78,83,0,113,143,216,9,27,131,40,
+202,9,5,32,20,120,0,12,84,32,50,32,238,17,123,18,0,58,61,192,243,177,254,
+131,131,168,143,110,238,77,0,113,143,151,33,28,75,50,77,3,209,92,93,68,
+91,109,9,109,181,37,20,230,230,100,11,209,33,167,38,92,0,22,0,244,160,27,
+200,51,53,77,1,240,65,67,41,47,62,30,73,11,67,51,43,172,6,140,108,0,242,
+9,170,46,224,29,139,244,77,219,16,222,32,221,95,21,10,16,10,164,78,108,
+57,2,103,14,238,2,224,246,253,16,159,142,165,205,61,17,9,173,210,55,253,
+190,133,197,249,3,40,10,182,179,55,130,1,252,126,63,118,187,61,105,206,
+162,9,239,213,151,2,112,125,201,79,255,228,18,77,149,15,3,48,121,199,199,
+132,215,103,230,178,144,229,187,77,22,80,135,183,199,141,72,215,51,74,239,
+60,231,202,231,235,150,74,0,62,27,95,76,5,0,208,98,1,217,75,218,245,143,
+168,198,153,31,131,232,122,161,24,71,225,102,118,30,62,82,29,107,63,225,
+176,241,229,203,149,177,126,67,197,67,233,220,238,211,80,56,205,102,74,
+11,172,113,125,239,90,48,214,206,215,140,184,205,89,86,184,105,107,213,
+132,146,124,75,172,111,203,73,74,182,91,36,46,13,81,113,0,182,28,225,68,
+163,139,201,182,39,105,125,186,56,54,126,115,37,254,111,208,117,29,191,
+223,244,124,201,66,202,101,73,28,58,247,90,21,141,143,69,246,228,153,131,
+187,152,187,167,51,54,183,134,32,73,143,111,236,9,179,141,153,169,52,148,
+196,157,80,125,127,222,142,181,173,154,240,237,225,221,236,113,216,145,
+228,248,49,136,157,175,132,120,53,132,56,128,223,102,86,232,159,92,138,
+245,29,118,11,223,189,186,155,226,188,212,217,110,231,16,202,171,129,154,
+74,28,254,232,242,60,11,171,155,223,124,143,195,206,187,117,143,166,117,
+181,67,136,107,26,200,64,226,232,138,110,208,254,203,63,113,99,86,45,197,
+55,216,6,194,179,112,63,221,35,23,52,156,229,23,17,214,18,103,46,223,88,
+229,155,191,150,204,30,202,10,194,23,12,167,50,93,197,81,52,172,169,246,
+42,29,197,89,51,139,15,47,221,226,143,155,73,108,89,67,152,74,209,175,218,
+171,244,72,150,176,89,187,17,214,19,109,124,193,48,175,124,63,195,239,115,
+171,255,55,132,15,171,156,132,104,61,160,186,247,47,160,248,194,204,114,
+61,24,230,245,115,179,92,154,93,201,26,98,197,231,103,232,250,29,179,169,
+211,27,229,250,102,158,180,209,3,92,53,179,246,135,194,188,121,126,150,
+161,233,123,25,7,215,13,197,91,231,103,25,153,254,55,177,166,184,130,90,
+235,221,232,196,149,229,210,57,234,66,25,30,20,229,102,78,173,154,240,85,
+115,37,205,213,69,105,131,7,12,197,219,63,206,242,235,204,150,85,179,228,
+130,37,247,22,74,213,109,45,207,227,78,10,213,219,232,5,14,33,204,155,57,
+14,134,21,71,7,255,230,135,169,229,180,193,143,12,220,136,15,14,96,4,230,
+9,27,135,18,239,6,230,23,147,206,81,23,97,99,144,173,69,234,22,105,2,133,
+54,243,204,24,52,148,217,175,119,21,45,167,57,250,130,241,177,210,94,205,
+116,122,16,142,161,82,212,139,219,73,88,7,237,115,114,195,238,172,174,102,
+241,32,227,101,232,65,119,180,110,220,182,116,139,6,94,67,113,22,155,181,
+91,117,239,95,72,107,154,213,245,124,113,254,64,164,132,147,189,40,156,
+177,90,66,201,98,228,80,83,83,32,3,56,203,47,102,122,61,255,15,18,39,215,
+228,219,192,187,72,0,0,0,0,73,69,78,68,174,66,96,130};
+
+static size_t xml_res_size_8 = 1526;
+static unsigned char xml_res_file_8[] = {
+137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0,
+0,115,122,122,244,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
+72,89,115,0,0,4,215,0,0,4,215,1,216,97,229,36,0,0,0,25,116,69,88,116,83,
+111,102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,101,
+46,111,114,103,155,238,60,26,0,0,5,115,73,68,65,84,88,133,157,151,109,76,
+147,87,20,199,127,247,161,165,133,242,86,24,133,90,20,167,12,209,153,24,
+163,130,219,98,64,151,185,76,167,160,217,204,140,155,38,206,15,91,148,17,
+247,97,75,20,149,26,117,203,62,184,24,183,79,91,246,102,28,26,93,68,227,
+116,175,164,6,231,27,113,217,116,190,163,78,3,130,50,40,138,212,182,180,
+189,251,0,62,125,158,182,208,226,249,244,156,151,231,158,255,185,247,156,
+115,207,21,82,74,18,33,177,179,197,132,187,103,14,80,9,76,4,97,7,105,31,
+212,182,131,108,7,46,1,7,177,102,53,202,234,34,95,66,235,198,3,32,182,157,
+181,211,47,55,34,88,6,164,39,132,22,122,145,236,198,40,54,203,117,211,218,
+159,8,128,112,186,204,136,180,90,96,45,144,154,160,227,72,242,0,159,34,
+31,110,145,155,42,188,9,3,16,206,230,124,132,104,0,202,134,90,249,253,153,
+121,20,231,152,1,184,218,229,101,251,169,187,195,1,57,141,148,85,114,211,
+140,142,184,0,196,134,227,83,48,154,15,3,5,195,173,232,90,49,129,242,194,
+129,19,57,118,171,151,138,111,175,12,103,14,208,138,16,243,228,134,105,
+231,181,66,69,231,188,182,201,78,40,240,35,1,191,206,121,150,57,41,222,
+226,81,148,156,36,34,69,5,72,121,68,56,155,243,99,2,16,78,151,153,80,240,
+16,18,7,1,63,4,252,0,148,23,166,115,121,245,100,86,77,125,42,97,231,11,
+39,100,113,225,221,201,234,17,233,64,8,209,32,156,46,85,17,222,1,31,117,
+192,116,149,15,248,89,57,57,131,223,222,42,38,207,98,228,179,121,133,76,
+179,199,207,197,50,135,133,250,197,227,40,202,54,113,98,101,9,207,21,164,
+69,153,12,38,119,24,128,168,109,116,32,120,79,107,245,194,152,52,62,153,
+109,35,224,31,40,103,83,146,96,203,108,71,92,0,219,231,142,38,213,56,16,
+87,78,138,129,223,151,23,51,255,153,204,72,179,181,98,219,89,187,10,128,
+144,82,135,36,229,177,54,63,205,200,215,149,99,49,40,2,159,207,135,215,
+235,101,223,69,55,75,246,223,136,11,160,114,111,11,39,91,31,170,124,138,
+65,225,139,5,99,49,27,116,233,150,74,191,220,8,160,136,157,45,38,4,111,
+104,181,53,101,54,108,169,70,149,175,255,187,131,37,123,46,209,235,15,198,
+5,240,159,39,192,139,223,93,229,192,101,183,42,179,167,25,121,59,50,135,
+4,203,196,206,22,147,66,71,219,75,72,210,194,114,88,84,98,85,237,174,117,
+123,89,115,228,54,218,196,140,71,143,2,33,222,60,112,147,78,79,64,149,125,
+240,124,62,70,69,87,25,233,184,123,230,40,32,171,180,210,153,163,45,228,
+167,133,163,255,230,175,46,60,253,161,1,102,4,32,60,253,33,182,159,12,247,
+157,49,153,201,172,152,146,19,105,86,169,128,40,209,74,22,107,162,151,64,
+195,149,30,253,47,35,0,241,121,115,39,247,125,225,99,171,24,27,117,149,
+76,52,32,209,53,134,23,159,206,80,191,207,180,245,209,246,32,134,179,128,
+159,117,191,220,192,150,105,1,6,206,61,22,245,250,131,92,235,242,50,125,
+212,128,93,150,217,16,97,33,236,6,132,204,71,211,141,253,193,48,115,167,
+119,232,72,79,220,116,131,161,15,12,201,67,218,0,184,189,225,29,176,70,
+117,84,105,87,34,36,244,104,182,44,26,113,4,37,112,28,110,111,120,119,98,
+181,116,5,41,116,55,212,125,111,112,216,31,70,10,162,48,211,164,126,39,
+39,69,198,43,218,21,4,58,0,61,190,48,226,241,86,19,150,228,168,77,74,24,
+68,97,102,50,101,14,139,202,255,116,253,126,132,133,108,87,64,94,214,138,
+254,184,29,238,98,25,166,36,86,77,205,141,15,96,8,16,175,79,202,214,241,
+123,47,116,71,254,117,73,1,209,160,149,212,159,239,166,85,147,249,171,75,
+115,35,219,104,66,32,242,44,70,170,75,109,170,170,245,129,95,23,220,32,
+29,84,200,119,252,138,64,213,244,135,36,59,78,223,83,45,108,169,70,190,
+92,80,56,34,16,22,17,224,240,210,34,198,100,134,43,100,223,69,55,17,179,
+87,47,214,172,70,69,86,23,249,144,236,209,106,118,157,235,162,163,175,95,
+229,95,45,206,226,208,210,34,114,82,227,84,5,144,110,74,226,171,249,14,
+38,103,135,19,184,165,219,199,71,199,35,102,83,201,110,89,93,228,27,8,203,
+100,220,132,224,209,99,157,55,16,162,230,232,109,188,129,144,106,95,58,
+202,66,227,242,98,214,148,218,24,157,25,93,251,214,20,3,235,102,217,249,
+231,157,103,121,121,124,134,122,139,118,122,2,188,242,253,85,221,189,0,
+120,48,138,205,160,153,9,197,58,215,199,192,135,90,171,82,135,133,61,175,
+141,35,59,70,63,248,179,195,195,191,61,62,172,102,3,86,179,129,226,28,147,
+58,7,104,3,89,184,255,22,103,238,70,117,202,173,114,227,244,90,61,0,167,
+203,140,143,38,180,83,17,80,148,109,230,135,37,227,116,245,156,8,117,244,
+245,83,115,244,54,63,95,127,48,208,45,195,29,243,52,242,97,197,227,49,93,
+55,21,139,218,38,59,50,216,140,68,55,250,228,90,12,212,148,230,81,85,146,
+69,65,198,240,173,183,245,129,159,29,167,239,177,235,92,151,238,8,7,65,
+180,34,229,12,237,120,30,61,150,175,119,77,1,14,35,163,199,114,1,76,119,
+164,82,53,193,202,220,241,25,4,67,208,253,40,128,251,81,16,183,47,192,153,
+182,62,234,207,119,211,31,138,241,216,17,180,98,76,153,47,235,202,206,233,
+196,49,31,38,117,199,242,241,203,3,192,204,97,195,77,156,78,145,44,22,201,
+186,242,168,135,73,204,226,150,117,229,29,152,108,229,8,156,8,122,159,216,
+173,160,23,69,113,98,178,149,199,114,14,137,60,78,215,55,229,18,10,62,126,
+156,90,135,53,14,147,27,201,110,148,164,205,114,235,172,206,97,215,79,248,
+121,238,116,25,240,137,10,160,10,33,39,33,25,133,24,76,86,73,27,130,59,
+72,113,17,104,192,36,93,114,83,69,236,41,37,130,254,7,30,131,25,159,192,
+210,21,210,0,0,0,0,73,69,78,68,174,66,96,130};
+
+static size_t xml_res_size_9 = 901;
+static unsigned char xml_res_file_9[] = {
+137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0,
+0,115,122,122,244,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
+72,89,115,0,0,4,86,0,0,4,86,1,47,21,139,83,0,0,0,25,116,69,88,116,83,111,
+102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,101,46,
+111,114,103,155,238,60,26,0,0,3,2,73,68,65,84,88,133,197,151,79,104,84,
+87,20,198,127,223,157,63,4,212,133,165,45,81,17,4,221,184,80,193,81,84,
+2,18,211,141,168,180,46,164,162,210,133,224,38,180,165,165,214,150,168,
+201,248,26,141,10,198,162,210,170,180,139,226,194,65,227,66,52,102,97,33,
+25,37,237,34,198,42,46,82,23,13,180,182,138,136,208,210,26,197,201,204,
+61,93,132,166,29,230,223,155,113,108,14,220,205,185,223,251,190,239,157,
+115,223,225,93,153,25,83,25,110,74,213,129,104,189,9,213,211,19,97,100,
+94,19,40,196,203,233,79,213,179,5,10,70,166,227,198,82,152,54,132,128,15,
+225,180,181,110,45,80,112,107,54,122,122,61,132,184,199,236,16,246,164,
+201,246,38,70,235,210,2,117,14,45,65,145,43,192,156,10,200,251,192,59,150,
+92,54,240,79,230,133,43,160,96,120,29,230,6,193,202,139,139,139,196,114,
+75,172,35,49,240,223,244,11,85,64,159,13,191,139,56,6,68,202,192,158,33,
+125,100,237,137,83,197,54,107,50,160,0,7,195,221,136,15,43,64,239,96,185,
+45,214,177,98,164,20,160,106,3,58,114,103,26,46,115,22,227,205,178,64,179,
+227,188,50,243,19,123,127,193,243,114,176,170,12,168,235,230,44,178,214,
+11,44,45,163,252,8,211,118,75,46,239,11,197,25,118,14,40,248,97,49,242,
+189,192,220,50,176,7,136,157,120,30,22,236,68,109,212,246,44,255,181,32,
+29,78,252,198,90,164,243,192,140,10,208,217,24,41,148,151,203,32,59,192,
+107,238,187,162,220,149,42,160,96,36,142,27,123,187,208,172,214,99,108,
+170,96,232,123,156,219,97,123,151,254,88,146,191,218,81,172,158,158,8,183,
+95,63,136,139,125,76,44,174,18,176,39,136,54,252,178,47,45,137,47,203,87,
+141,1,5,233,70,50,118,14,211,106,0,162,241,137,149,7,162,15,175,86,75,38,
+238,133,225,12,253,21,168,61,221,76,142,20,168,113,50,153,205,48,105,4,
+30,35,125,96,237,137,179,97,57,33,228,40,86,219,181,54,60,223,2,141,5,155,
+217,12,140,143,167,48,45,172,86,28,42,84,64,109,131,51,81,246,12,98,3,197,
+59,245,27,208,106,157,171,122,171,21,174,104,64,29,131,9,148,189,0,204,
+43,220,52,143,113,154,92,252,83,59,220,244,87,173,226,19,84,69,14,161,118,
+247,183,162,200,81,204,26,74,60,119,3,49,148,151,49,126,199,249,175,109,
+127,203,47,53,27,208,174,171,211,136,197,79,3,219,170,224,248,25,167,19,
+140,71,191,170,165,26,249,45,136,69,22,35,159,6,210,19,9,183,17,99,125,
+241,71,53,132,212,77,124,245,133,74,223,122,185,40,57,7,180,231,218,46,
+240,135,176,188,159,203,28,78,151,240,190,219,186,214,20,29,173,213,70,
+193,33,84,128,227,121,250,24,240,30,147,67,221,198,144,190,193,249,207,
+173,179,101,180,30,194,69,13,40,72,55,144,81,10,216,56,145,208,125,188,
+255,130,6,157,180,100,243,31,245,20,46,48,160,32,253,42,25,46,99,182,18,
+113,27,69,143,18,203,166,44,185,38,251,50,132,243,12,168,189,127,62,62,
+210,135,241,19,145,220,27,214,217,210,255,50,69,243,12,168,227,250,34,188,
+219,140,217,91,214,213,124,247,255,18,254,55,246,13,52,152,25,83,181,234,
+122,53,171,37,166,252,118,252,55,50,148,111,19,84,139,201,163,0,0,0,0,73,
+69,78,68,174,66,96,130};
+
+static size_t xml_res_size_10 = 1300;
+static unsigned char xml_res_file_10[] = {
+137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0,
+0,115,122,122,244,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
+72,89,115,0,0,4,86,0,0,4,86,1,47,21,139,83,0,0,0,25,116,69,88,116,83,111,
+102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,101,46,
+111,114,103,155,238,60,26,0,0,4,145,73,68,65,84,88,133,197,150,91,108,84,
+101,20,133,191,125,230,204,76,97,166,247,86,10,233,133,114,177,96,40,208,
+150,114,49,218,146,8,54,220,195,131,137,90,64,1,83,19,13,26,19,98,34,5,
+38,133,40,42,151,26,35,137,10,82,18,49,98,171,134,7,124,64,3,148,8,21,83,
+74,161,177,208,40,134,32,119,66,11,132,118,202,180,51,179,125,152,58,165,
+117,166,119,116,39,231,225,236,181,207,90,235,172,252,255,57,191,168,42,
+255,103,153,67,73,38,31,158,136,164,213,158,211,195,132,23,114,170,212,
+133,127,200,13,200,187,213,41,248,236,7,17,38,135,25,185,132,178,236,97,
+113,0,99,72,196,75,106,178,241,201,175,16,70,92,165,28,53,167,170,43,231,
+120,119,104,208,9,200,166,234,69,136,124,13,56,66,192,45,160,107,212,53,
+173,44,220,243,131,74,64,54,85,191,9,114,32,140,120,13,134,47,75,55,230,
+134,21,7,144,129,236,2,169,168,176,112,62,189,20,88,19,2,86,148,173,140,
+148,245,90,148,211,222,43,87,127,13,200,182,58,7,173,158,253,168,44,12,
+1,95,7,93,174,27,115,15,247,153,175,63,6,164,164,118,20,226,59,8,100,133,
+128,31,0,219,17,110,119,182,244,26,27,114,43,20,194,138,244,121,17,202,
+150,218,68,12,239,103,168,97,0,103,59,4,38,2,182,142,145,8,160,248,33,169,
+47,80,235,222,158,196,97,160,107,160,164,50,2,156,59,17,86,133,128,255,
+68,141,34,117,101,31,233,19,87,191,215,64,201,233,113,136,126,11,58,165,
+27,228,67,165,148,168,182,141,250,214,172,214,190,242,245,235,59,32,235,
+142,62,135,105,223,141,105,139,234,6,213,161,254,213,234,154,126,170,63,
+124,208,199,4,164,164,210,196,35,219,65,223,0,192,180,5,46,240,0,155,73,
+146,15,251,178,229,66,85,175,9,200,250,67,41,248,237,21,160,51,130,77,111,
+27,136,84,97,216,86,171,43,167,97,32,194,65,254,158,18,144,117,199,10,64,
+247,1,9,33,224,11,152,86,63,166,221,143,82,133,161,59,116,67,110,253,144,
+25,144,226,202,73,168,172,69,212,130,104,10,126,201,239,54,226,3,57,128,
+61,98,155,186,102,156,236,175,112,175,6,30,50,146,131,114,16,72,10,52,104,
+6,41,195,144,82,221,156,119,113,160,194,255,84,143,107,64,138,143,45,4,
+246,3,14,132,43,168,124,130,175,253,83,125,127,206,189,193,10,247,106,64,
+214,87,190,134,242,49,112,6,97,7,54,202,213,149,239,29,42,225,176,6,4,132,
+119,142,190,135,200,19,40,207,232,150,217,199,134,90,180,171,94,121,185,
+133,115,137,214,96,167,205,50,19,139,222,198,226,191,240,40,133,3,53,187,
+205,228,76,194,74,148,93,157,77,31,120,9,92,131,169,206,143,85,248,210,
+234,121,6,128,205,34,20,78,142,15,246,71,56,173,228,165,57,131,247,14,155,
+193,220,49,81,88,13,233,242,252,130,199,163,153,63,62,26,128,148,104,27,
+47,102,198,51,38,214,206,11,153,113,68,90,124,224,109,35,53,218,198,146,
+140,24,0,172,134,240,210,148,120,70,56,58,3,55,198,197,71,12,223,185,32,
+141,173,115,146,1,136,29,102,242,211,178,241,172,156,154,64,113,222,72,
+0,142,172,200,160,96,92,20,95,46,77,239,98,192,149,55,138,61,139,71,51,
+204,106,176,98,74,60,59,231,167,146,149,52,156,162,236,68,22,103,196,128,
+183,141,215,179,226,40,24,27,48,185,100,66,12,101,75,210,89,51,253,177,
+78,3,69,211,70,78,60,125,205,29,108,204,74,118,80,117,165,133,15,78,220,
+100,118,90,20,169,209,118,124,126,88,251,227,21,102,38,59,177,72,215,20,
+46,52,121,120,50,217,65,126,90,36,245,183,2,63,193,242,250,59,44,237,120,
+235,249,233,118,246,213,222,0,96,245,212,4,182,85,221,96,85,86,2,102,71,
+154,198,219,135,46,214,124,83,223,20,36,28,27,27,65,107,187,159,214,118,
+63,233,177,54,198,198,218,112,123,3,71,121,139,64,162,179,235,198,57,254,
+215,125,22,101,196,144,28,105,229,247,166,7,0,124,223,112,135,167,211,34,
+153,59,38,10,85,229,151,139,141,164,56,133,252,209,145,236,61,219,136,187,
+221,31,72,136,16,167,226,186,155,110,18,135,155,36,56,44,156,186,234,166,
+238,86,43,9,195,44,68,152,6,247,60,62,110,220,239,250,211,251,249,114,51,
+133,153,241,156,188,218,18,60,250,220,108,110,167,234,114,51,165,5,41,84,
+156,191,131,2,133,19,156,92,191,235,102,207,226,209,120,253,202,171,217,
+137,161,13,212,92,119,227,180,89,248,232,217,84,190,250,173,145,70,183,
+151,147,87,91,56,188,60,131,221,181,183,187,143,243,71,163,135,166,86,47,
+199,47,53,119,233,151,159,107,34,57,202,70,69,253,93,12,129,194,204,56,
+94,254,174,129,153,159,215,241,84,89,3,121,105,78,158,159,20,151,36,172,
+59,242,10,42,187,254,197,252,40,203,106,7,139,21,84,231,153,136,249,3,126,
+223,156,255,212,64,155,7,34,172,62,240,214,13,232,80,58,148,245,55,64,124,
+153,96,137,219,15,113,0,0,0,0,73,69,78,68,174,66,96,130};
+
+static size_t xml_res_size_11 = 1478;
+static unsigned char xml_res_file_11[] = {
+137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0,
+0,115,122,122,244,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
+72,89,115,0,0,4,196,0,0,4,196,1,60,204,212,131,0,0,0,25,116,69,88,116,83,
+111,102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,101,
+46,111,114,103,155,238,60,26,0,0,5,67,73,68,65,84,88,133,189,151,107,76,
+147,87,24,199,127,231,173,109,81,122,67,141,180,192,40,55,47,36,35,91,156,
+78,39,226,133,136,155,26,81,163,91,12,110,51,102,126,28,203,220,246,97,
+51,6,196,17,178,237,139,137,38,155,95,252,176,11,9,155,139,81,54,99,2,198,
+129,96,230,13,99,220,140,23,16,16,129,146,101,220,90,110,45,109,207,62,
+148,150,94,177,24,179,127,242,38,237,251,156,115,158,223,121,159,115,206,
+243,28,33,165,36,30,137,147,109,90,6,135,10,129,29,64,46,8,11,72,203,148,
+213,6,210,6,220,7,206,147,100,186,44,75,115,156,113,141,251,44,0,81,213,
+98,97,82,150,33,216,7,232,227,162,5,7,146,106,212,226,152,60,252,154,237,
+185,0,68,69,67,2,66,119,4,56,4,204,139,211,113,184,198,128,227,200,145,
+74,89,190,97,34,110,0,81,113,211,140,16,231,128,85,207,233,56,92,215,145,
+114,167,44,95,217,23,110,80,194,95,108,251,233,222,186,52,163,246,246,11,
+116,142,70,37,86,21,101,27,239,190,89,221,186,38,220,22,242,5,196,145,38,
+75,170,78,117,187,245,227,229,230,118,135,228,82,187,157,75,29,118,26,59,
+71,112,184,60,179,114,154,183,104,46,155,179,13,108,202,52,80,96,213,227,
+149,146,249,223,220,233,118,123,188,43,131,191,68,0,64,84,52,36,224,164,
+9,88,113,227,96,46,121,41,70,18,18,18,0,112,123,37,215,186,71,185,212,97,
+231,151,123,3,220,255,55,106,56,89,111,213,115,224,213,133,108,206,54,96,
+209,169,67,108,191,63,26,102,123,77,43,192,117,228,200,6,255,154,152,14,
+129,147,163,192,10,128,198,39,14,156,78,39,19,19,62,71,115,20,193,218,116,
+29,239,230,45,192,225,242,198,156,245,227,65,39,5,233,186,8,231,0,245,237,
+195,254,159,171,166,22,55,1,0,81,113,53,5,193,71,254,151,87,186,70,124,
+76,65,16,18,168,106,182,209,109,119,197,4,232,182,187,168,106,182,17,109,
+95,213,183,219,131,255,30,18,85,45,150,0,0,206,201,10,36,115,3,0,79,28,
+120,166,66,227,135,16,192,169,109,86,138,151,154,98,2,20,47,53,241,237,
+86,43,34,10,88,88,216,230,49,41,203,0,20,113,178,77,139,96,111,176,117,
+120,194,67,139,109,44,48,115,63,132,70,37,56,179,39,155,45,57,198,168,206,
+207,236,201,70,163,154,118,239,255,18,97,179,247,73,176,79,156,108,211,
+42,244,245,20,33,209,133,219,47,119,56,104,31,116,242,225,197,46,92,30,
+25,128,24,119,123,233,31,119,135,180,85,4,188,151,183,32,196,185,203,35,
+57,88,219,73,251,160,147,186,199,81,0,64,207,224,80,225,28,144,59,163,89,
+207,61,24,226,135,187,253,244,218,93,12,140,187,249,126,71,38,118,251,24,
+187,207,118,113,243,159,80,0,175,132,146,179,237,168,148,44,118,45,75,194,
+229,145,188,253,235,99,106,31,14,81,215,110,103,52,246,22,222,33,56,220,
+208,140,148,249,177,90,248,85,148,101,96,96,194,77,75,239,24,204,209,248,
+158,48,169,21,193,79,187,50,169,254,123,128,218,135,67,207,26,18,224,138,
+224,139,134,54,144,217,241,180,14,81,12,8,33,32,206,4,11,136,86,5,33,205,
+179,118,14,224,118,249,158,48,197,239,28,64,90,34,114,193,139,128,152,141,
+20,164,136,200,80,255,31,132,176,41,8,226,2,200,74,210,198,5,145,110,210,
+178,41,211,16,39,128,180,41,32,31,68,51,229,167,235,72,49,248,22,217,150,
+197,70,174,125,144,75,233,235,201,51,66,164,207,147,52,190,191,132,11,37,
+139,3,39,102,154,65,67,238,194,132,88,189,238,171,40,56,224,5,74,194,45,
+135,215,90,248,60,223,204,168,219,203,119,91,173,104,84,130,194,76,61,35,
+147,94,110,244,140,70,140,148,102,212,114,97,111,38,86,163,22,173,70,205,
+238,220,36,122,28,147,156,222,158,129,71,250,18,92,20,149,41,152,83,235,
+17,140,132,91,10,51,245,100,152,180,156,120,43,61,228,132,43,91,151,66,
+166,41,50,28,57,38,13,102,157,38,228,216,62,93,156,65,206,252,152,33,113,
+144,100,186,172,200,210,28,39,146,154,96,203,203,139,230,146,156,232,75,
+169,193,137,197,229,145,236,63,223,65,199,80,100,193,219,240,196,193,254,
+243,29,33,199,182,191,239,234,180,68,244,26,85,104,7,73,181,44,205,113,
+250,182,161,86,93,142,96,124,122,246,145,196,18,248,164,238,41,23,91,135,
+35,108,126,93,108,29,230,80,221,211,144,4,6,190,122,98,125,70,72,186,25,
+67,45,142,193,84,58,150,229,249,189,72,78,248,173,235,173,145,213,183,0,
+62,123,35,57,176,48,163,41,197,160,225,211,213,201,129,153,7,67,132,133,
+225,184,191,92,159,62,136,180,28,5,110,105,84,130,53,105,137,33,3,247,58,
+92,84,255,213,207,151,87,108,140,205,80,27,234,213,10,63,223,27,228,207,
+238,81,38,189,161,245,196,166,172,0,192,117,228,72,101,96,98,225,69,233,
+70,107,226,221,31,119,102,44,108,238,26,165,161,211,206,31,157,14,30,246,
+71,175,1,103,82,162,70,33,255,37,29,27,51,244,108,176,26,120,37,205,200,
+146,83,143,108,221,195,206,229,81,139,82,191,54,157,190,179,182,177,115,
+184,198,237,145,169,179,246,58,131,82,12,154,190,229,233,243,223,249,173,
+100,89,83,240,251,232,23,147,35,77,22,188,158,90,166,138,212,23,160,91,
+40,170,98,89,89,16,113,77,139,154,140,100,101,129,13,45,5,192,215,193,187,
+99,214,18,140,35,148,175,208,82,16,205,57,196,115,57,173,184,154,130,115,
+178,2,193,222,104,165,91,12,199,35,72,106,208,170,203,101,121,126,239,140,
+77,103,117,61,239,235,41,242,149,112,98,25,18,115,160,150,144,162,207,151,
+212,228,3,16,231,48,167,214,199,123,61,255,15,248,15,77,215,175,116,59,
+39,0,0,0,0,73,69,78,68,174,66,96,130};
+
+static size_t xml_res_size_12 = 1284;
+static unsigned char xml_res_file_12[] = {
+137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0,
+0,115,122,122,244,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
+72,89,115,0,0,3,177,0,0,3,177,1,245,131,237,73,0,0,0,25,116,69,88,116,83,
+111,102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,101,
+46,111,114,103,155,238,60,26,0,0,4,129,73,68,65,84,88,133,197,151,107,108,
+20,85,20,199,127,103,186,219,37,32,15,151,64,43,72,128,240,8,193,15,154,
+64,27,136,193,23,2,169,248,8,180,240,129,4,33,53,212,87,154,26,161,88,208,
+166,79,48,60,67,44,10,129,136,40,106,20,17,98,37,40,2,109,125,68,194,163,
+168,160,161,126,130,88,232,83,83,75,67,218,238,110,231,248,161,110,59,179,
+51,179,93,36,134,147,76,50,247,204,153,243,255,159,115,238,61,247,94,81,
+85,238,164,24,119,20,29,240,221,174,3,41,193,208,34,76,139,70,40,103,42,
+61,72,2,232,55,229,86,74,32,37,23,38,35,230,34,96,33,48,1,72,165,55,136,
+22,160,97,24,55,191,171,147,172,251,239,225,207,199,18,112,119,14,147,101,
+9,17,144,77,181,195,233,98,7,162,43,189,108,70,209,70,37,171,153,37,151,
+6,114,103,162,108,33,149,66,114,52,60,96,9,164,244,124,6,200,94,68,199,
+122,217,76,227,42,199,36,143,137,52,12,228,174,1,97,57,133,90,21,85,120,
+18,144,146,218,193,160,21,8,217,224,157,165,71,57,207,97,89,203,8,58,6,
+2,175,196,71,54,235,244,47,171,210,123,21,116,117,108,163,39,148,29,207,
+227,10,142,114,92,114,227,130,119,18,224,53,114,235,197,172,206,140,5,247,
+36,32,235,106,230,34,60,79,36,4,145,144,243,59,74,153,236,102,191,148,224,
+39,226,9,126,137,201,164,233,7,108,214,103,199,97,12,89,239,138,21,59,9,
+165,248,219,187,8,235,175,40,227,251,148,190,228,222,7,8,16,98,159,148,
+177,140,175,61,129,1,118,178,148,124,205,163,139,228,168,42,140,152,105,
+90,152,254,139,213,206,153,129,144,110,181,129,3,209,76,140,164,157,147,
+188,28,23,188,149,187,121,138,237,228,106,190,21,28,192,143,26,251,101,
+79,173,223,22,176,53,3,178,254,212,72,72,106,194,101,114,78,226,58,95,248,
+11,184,207,119,205,19,188,158,20,242,116,13,141,50,210,241,237,138,142,
+165,153,32,40,207,104,209,204,202,168,222,14,36,198,34,212,9,62,155,139,
+124,36,133,4,35,55,232,2,6,121,172,157,113,52,115,88,242,109,186,110,146,
+41,215,108,54,177,34,26,242,98,192,131,128,202,188,88,167,126,34,76,164,
+145,114,125,174,87,17,134,36,77,98,129,255,2,153,84,197,154,219,228,7,125,
+128,85,188,78,29,19,172,81,206,183,218,196,100,64,198,17,51,41,195,248,
+248,152,5,253,38,40,249,61,7,200,144,26,207,46,210,193,96,10,52,151,93,
+100,162,206,45,33,85,246,212,250,53,103,70,216,73,64,53,37,94,68,65,110,
+176,135,13,60,206,89,194,17,92,203,113,84,231,240,34,5,92,99,180,151,27,
+161,53,52,26,184,238,36,16,71,102,114,153,253,82,194,189,52,247,233,186,
+255,109,1,131,124,208,66,144,60,93,205,39,204,247,240,224,46,246,101,40,
+210,236,102,148,195,17,142,73,158,13,220,74,226,221,72,6,211,245,96,162,
+224,202,168,228,150,232,32,54,3,245,192,236,232,96,8,157,84,200,22,22,83,
+237,234,233,15,82,121,133,87,169,10,167,129,38,39,154,207,166,104,253,193,
+209,136,204,19,209,183,105,92,165,90,94,112,5,55,49,216,69,22,179,244,61,
+170,52,173,87,233,209,182,157,162,223,88,71,49,147,208,60,2,73,187,150,
+114,210,183,67,182,49,152,46,87,23,23,153,194,32,237,102,3,239,244,233,
+154,9,242,126,228,73,26,25,211,215,182,221,241,229,176,117,104,223,11,42,
+36,112,168,41,253,194,60,206,78,79,32,20,0,234,152,192,78,93,202,103,204,
+165,59,218,122,45,123,71,140,252,76,170,164,91,75,96,203,64,91,35,83,103,
+24,191,111,127,73,215,190,217,173,129,81,25,242,35,89,156,114,5,174,102,
+38,111,179,132,147,154,238,252,24,45,133,157,68,24,49,87,106,78,122,216,
+170,116,61,146,201,154,175,230,173,10,28,63,190,137,10,49,44,231,205,16,
+126,62,103,46,59,53,139,223,152,228,74,204,38,214,76,136,22,105,97,90,169,
+195,196,249,151,72,123,128,12,165,191,133,181,49,148,125,60,205,94,93,68,
+19,206,141,198,83,250,51,241,19,230,205,141,174,28,109,163,10,9,180,55,
+113,0,88,2,208,74,176,99,51,203,135,126,168,25,116,18,72,28,216,78,226,
+12,134,185,76,139,31,113,61,185,244,149,224,70,177,4,9,83,169,240,32,202,
+105,12,182,13,247,115,68,58,79,44,196,240,239,6,29,115,139,208,93,32,197,
+4,30,222,98,191,55,184,16,248,187,80,38,26,202,151,10,151,5,182,14,43,215,
+51,54,163,226,154,17,132,140,183,192,92,158,24,182,158,195,151,180,66,75,
+31,186,60,144,165,180,191,193,20,53,201,84,131,79,71,148,233,149,184,198,
+235,191,159,138,161,139,17,227,9,212,28,143,106,10,170,62,160,21,161,17,
+164,6,53,14,177,113,206,105,141,119,148,182,113,61,72,146,170,242,95,31,
+138,213,184,157,255,111,233,106,246,127,200,29,191,29,255,3,97,2,5,212,
+74,24,35,58,0,0,0,0,73,69,78,68,174,66,96,130};
+
+static size_t xml_res_size_13 = 4246;
+static unsigned char xml_res_file_13[] = {
+137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,128,0,0,0,128,8,6,0,
+0,0,195,62,97,203,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
+72,89,115,0,0,14,225,0,0,14,225,1,42,185,74,121,0,0,0,25,116,69,88,116,
+83,111,102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,
+101,46,111,114,103,155,238,60,26,0,0,16,19,73,68,65,84,120,156,237,157,
+121,124,85,213,181,199,191,59,132,8,4,80,148,50,84,177,224,0,148,65,80,
+47,90,30,141,19,60,169,15,11,143,62,16,73,2,69,10,18,17,1,193,16,16,238,
+5,207,85,4,209,32,8,17,153,202,12,2,173,136,34,210,10,10,15,5,202,85,91,
+193,9,113,194,135,50,137,3,243,144,172,247,199,137,150,33,195,61,211,221,
+39,185,247,251,249,228,243,185,159,228,236,189,86,178,126,217,123,159,61,
+172,173,68,132,4,241,75,146,110,7,18,232,37,33,128,56,39,33,128,56,39,33,
+128,56,39,33,128,56,39,33,128,56,39,33,128,56,39,33,128,56,39,33,128,56,
+39,33,128,56,39,89,183,3,186,80,70,164,18,80,21,168,12,28,3,14,75,40,112,
+220,81,165,97,117,49,16,44,172,211,239,124,7,140,83,229,113,45,64,25,145,
+100,160,81,225,87,195,51,62,215,3,170,1,169,20,45,254,211,192,17,224,16,
+240,21,240,113,225,215,142,159,62,75,40,112,186,72,163,97,117,21,176,170,
+208,158,223,217,8,100,18,148,47,203,141,0,148,17,105,6,180,3,218,2,55,99,
+6,218,109,14,1,235,129,215,128,181,18,10,108,7,32,172,218,0,43,128,154,
+30,216,116,147,124,32,12,60,74,80,242,1,202,180,0,148,17,105,3,244,4,58,
+1,181,53,184,176,55,135,185,219,199,170,169,55,37,33,21,53,216,183,194,
+23,64,6,65,121,235,204,111,150,57,1,40,35,114,37,208,3,200,4,174,212,233,
+203,72,102,19,86,211,80,248,254,111,184,4,200,34,40,63,156,251,131,50,51,
+8,84,70,164,1,102,243,149,14,40,157,190,84,228,52,207,169,177,220,195,75,
+58,221,136,134,195,192,0,130,50,183,184,7,124,47,0,101,68,106,98,142,172,
+179,128,20,205,238,112,17,135,248,139,202,225,54,182,234,118,165,52,182,
+2,233,4,101,103,73,15,249,86,0,202,136,164,2,67,128,108,188,25,208,89,166,
+1,95,179,74,13,230,215,124,174,219,149,146,40,0,158,0,66,4,229,84,105,15,
+251,78,0,133,175,112,125,129,16,80,71,179,59,63,115,35,219,89,169,134,82,
+139,131,186,93,41,137,221,64,79,130,178,46,218,2,190,154,9,84,70,164,51,
+240,1,144,135,143,130,223,133,181,188,174,178,252,30,252,21,64,11,43,193,
+7,159,180,0,202,136,84,192,108,182,134,232,246,229,92,134,49,143,113,106,
+138,159,71,250,199,128,33,4,101,154,157,194,218,5,160,140,200,133,152,175,
+41,191,211,237,203,153,36,147,79,158,26,71,95,86,232,118,165,36,254,5,116,
+39,40,31,218,173,64,171,0,148,17,185,10,120,9,104,172,211,143,115,169,206,
+17,150,169,225,220,206,102,221,174,20,135,0,147,129,28,130,114,194,73,69,
+218,4,160,140,72,59,96,41,80,67,151,15,69,113,57,123,88,165,6,211,140,79,
+117,187,82,28,251,128,94,4,101,181,27,149,105,25,4,42,35,50,0,88,141,207,
+130,31,224,67,182,168,94,126,14,254,171,192,53,110,5,31,98,220,2,40,35,
+82,17,120,6,232,23,75,187,209,208,137,245,44,82,163,168,130,179,21,97,143,
+56,1,12,7,38,17,116,119,238,62,102,107,1,202,136,40,96,25,240,63,49,49,
+104,129,7,89,196,147,106,18,73,20,232,118,165,40,62,196,156,209,251,167,
+23,149,199,178,5,24,131,207,130,95,129,2,38,171,9,244,103,185,110,87,138,
+99,58,240,32,65,57,234,149,129,152,140,1,148,17,233,130,57,159,239,27,170,
+114,148,149,106,136,47,131,127,144,234,252,65,38,160,100,235,58,47,131,
+15,49,232,2,148,17,105,9,188,9,84,241,212,144,5,46,101,63,171,212,32,90,
+240,137,110,87,206,227,13,174,39,83,194,236,230,23,96,78,242,164,73,40,
+240,182,87,246,60,21,128,50,34,181,48,87,165,46,247,204,136,69,90,178,131,
+151,213,96,46,101,191,110,87,206,226,52,21,8,73,22,227,233,73,193,217,13,
+243,110,32,32,161,192,30,47,236,122,38,0,101,68,82,128,117,64,27,79,12,
+216,160,3,27,89,162,70,82,21,79,91,85,203,124,202,101,164,203,163,252,131,
+166,197,61,178,5,184,197,241,166,213,34,240,114,12,240,44,62,10,254,0,150,
+242,162,26,234,187,224,207,163,3,215,202,194,146,130,15,112,35,48,195,11,
+251,158,180,0,202,136,12,4,38,185,94,177,13,146,40,32,87,77,100,16,75,116,
+187,114,22,63,146,74,150,140,96,49,237,173,20,203,145,80,224,9,55,253,112,
+93,0,202,136,92,134,185,141,90,251,222,248,84,142,177,72,141,162,35,27,
+116,187,114,22,155,104,78,186,60,198,23,212,181,90,244,36,208,88,66,1,215,
+118,164,120,209,5,60,130,15,130,95,151,3,172,87,253,124,21,252,124,146,
+8,211,135,52,153,105,39,248,96,110,137,11,187,233,147,171,45,128,50,34,
+77,129,247,208,188,209,164,57,59,89,165,6,83,143,189,58,221,56,139,93,212,
+33,83,12,254,151,107,157,86,37,192,117,18,10,184,50,51,232,118,160,198,
+121,80,167,37,218,179,137,141,170,143,175,130,191,140,118,180,144,69,110,
+4,31,204,29,209,227,220,168,8,92,108,1,148,17,185,9,243,212,140,54,250,
+241,87,166,168,39,72,38,95,167,27,63,115,132,202,12,148,135,152,77,71,47,
+170,111,43,161,128,165,237,95,69,225,230,127,171,171,163,83,43,40,132,9,
+106,18,211,212,227,190,9,254,219,252,154,235,100,129,87,193,7,24,95,184,
+192,230,8,87,4,80,56,215,127,163,27,117,89,165,50,39,88,166,134,243,16,
+11,116,152,63,15,65,49,129,30,180,150,217,236,240,118,2,52,0,116,117,90,
+137,227,46,160,112,27,247,7,192,213,78,157,177,74,109,14,178,82,13,225,
+6,222,143,181,233,34,249,134,154,244,148,71,120,141,27,98,101,242,19,160,
+73,177,39,150,163,192,141,22,224,79,104,8,126,19,62,103,179,234,229,155,
+224,191,68,26,215,200,226,88,6,31,204,191,123,31,39,21,184,33,128,254,46,
+212,97,137,182,108,229,45,213,155,250,124,19,107,211,231,113,156,20,6,200,
+48,58,74,46,7,184,72,135,11,142,254,254,142,186,0,101,68,174,193,220,154,
+28,51,122,179,146,105,234,113,42,98,187,213,115,141,237,92,73,119,121,140,
+237,122,15,41,131,57,47,240,174,157,130,78,91,128,158,14,203,71,141,66,
+120,76,229,49,75,133,125,17,252,41,220,69,43,153,231,135,224,3,244,178,
+91,208,118,11,80,120,154,231,43,176,55,167,105,133,74,156,100,142,26,67,
+55,254,238,181,169,168,200,39,41,102,205,189,160,88,192,29,132,36,139,99,
+92,80,220,99,7,128,95,74,40,80,234,97,208,115,113,178,39,240,86,98,16,252,
+154,124,207,139,106,40,255,193,123,94,155,138,154,10,20,80,59,6,231,4,191,
+164,46,89,50,130,87,105,93,218,163,53,129,246,192,203,86,109,56,233,2,254,
+211,65,217,168,104,196,151,108,86,247,248,42,248,177,160,128,36,158,161,
+27,205,100,73,52,193,255,9,91,241,112,210,2,220,230,160,108,169,220,204,
+59,188,160,178,169,193,143,94,154,241,29,31,208,128,62,18,100,19,205,173,
+22,181,21,15,91,99,128,194,3,157,223,2,21,236,24,45,141,30,188,194,76,245,
+40,41,88,238,210,202,44,167,72,230,113,122,241,152,244,230,36,182,242,77,
+9,80,91,66,1,75,155,29,237,118,1,55,227,81,240,199,168,233,204,83,163,227,
+42,248,91,104,198,117,178,128,209,210,207,110,240,193,92,37,188,213,106,
+33,187,93,192,77,54,203,149,72,123,54,81,159,111,152,203,157,94,84,79,11,
+118,208,146,29,158,212,109,135,35,84,102,148,220,199,100,186,157,187,19,
+216,46,55,97,30,184,141,26,187,2,104,102,179,92,137,172,161,53,107,36,234,
+65,143,37,250,179,156,238,106,141,39,117,219,225,111,252,134,126,242,176,
+221,157,65,197,209,196,106,1,187,2,240,213,121,254,146,168,202,81,166,171,
+177,116,199,31,193,63,72,117,134,200,131,94,181,114,141,172,22,176,60,8,
+84,70,164,10,102,254,57,173,185,250,162,161,9,159,179,92,229,248,38,171,
+215,82,218,241,128,100,179,143,139,189,52,83,77,66,129,195,209,62,108,167,
+5,104,68,25,8,126,58,175,50,93,141,37,149,99,186,93,97,55,191,160,191,12,
+103,165,55,67,167,115,105,4,68,125,148,204,174,0,124,75,10,167,120,90,229,
+114,159,15,14,125,10,138,233,116,102,152,12,228,71,82,99,101,246,106,60,
+22,128,167,237,151,19,234,243,13,203,84,14,1,108,231,76,114,141,29,92,78,
+95,25,197,6,119,54,130,90,225,18,43,15,219,121,247,168,106,163,140,231,
+116,96,35,111,171,76,237,193,63,77,5,198,209,139,22,178,88,71,240,193,98,
+86,85,59,45,128,175,4,80,129,2,12,53,141,17,204,209,158,203,239,29,26,243,
+39,9,242,79,189,119,70,84,183,242,112,153,22,64,109,14,178,88,141,228,86,
+34,90,253,56,198,5,140,145,123,121,138,76,242,245,39,95,141,143,22,32,141,
+119,121,94,61,76,93,14,104,245,227,13,174,167,175,140,100,39,245,180,250,
+113,6,158,183,0,218,201,102,62,99,213,84,173,103,0,126,160,42,217,50,136,
+153,116,66,252,255,86,92,44,118,4,16,245,36,131,219,92,200,97,230,170,49,
+116,210,123,0,137,21,220,194,253,50,140,175,205,52,46,126,195,210,250,121,
+153,17,192,181,124,204,114,149,195,21,236,214,97,30,128,61,92,194,3,146,
+205,114,218,106,243,33,10,14,89,121,216,206,136,37,230,2,232,195,10,222,
+82,189,181,6,255,207,252,158,38,178,212,239,193,135,242,212,2,84,225,56,
+121,106,60,127,180,190,213,205,53,62,227,82,238,149,145,172,165,149,54,
+31,44,98,169,5,176,35,128,152,220,154,208,144,93,44,87,57,52,167,196,43,
+111,60,35,159,36,38,209,157,160,100,113,148,74,90,124,176,201,183,86,30,
+182,35,128,143,109,148,177,68,23,214,50,91,25,84,211,148,208,233,61,174,
+166,143,140,98,171,245,229,117,63,96,41,249,161,93,1,8,30,172,8,86,228,
+52,19,212,36,109,9,157,78,144,194,163,210,155,241,252,145,83,101,243,13,
+25,44,254,131,218,221,20,250,5,240,43,203,5,75,224,50,246,177,84,13,167,
+53,219,220,172,54,106,222,164,5,125,100,20,31,81,95,139,125,151,248,90,
+66,129,75,173,20,176,59,111,249,145,205,114,69,114,59,155,121,87,101,104,
+9,254,33,170,48,64,134,145,38,51,202,122,240,193,70,247,108,87,0,219,109,
+150,59,199,120,1,163,153,193,106,53,136,154,124,239,70,149,150,88,197,111,
+105,42,75,153,74,215,50,61,155,119,6,31,88,45,96,183,163,219,0,12,181,89,
+22,48,143,124,45,84,65,45,247,242,236,167,6,131,101,8,139,252,117,79,149,
+27,88,206,137,103,87,0,235,49,175,34,183,117,54,224,55,108,99,153,26,206,
+101,236,179,105,222,62,11,249,29,131,101,168,174,179,252,94,34,192,235,
+86,11,217,234,2,36,20,248,1,176,117,30,125,16,75,216,160,238,141,121,240,
+119,81,135,255,146,73,100,74,184,60,6,31,224,125,171,167,130,192,217,106,
+224,58,204,68,69,81,81,141,163,204,82,97,186,242,154,3,147,214,41,32,137,
+60,186,48,66,238,231,176,127,174,44,240,2,91,41,227,156,236,94,136,250,
+176,126,115,118,18,81,61,98,30,252,15,105,64,154,204,224,1,201,46,239,193,
+7,11,241,56,19,39,2,120,29,74,79,210,211,147,85,108,86,247,208,144,93,14,
+76,89,227,20,201,132,233,67,75,89,200,91,92,19,51,187,26,57,0,246,78,190,
+56,205,17,244,36,197,188,13,84,226,36,147,213,132,152,95,189,122,146,138,
+76,160,7,219,197,219,212,45,255,160,41,159,97,105,206,197,75,38,75,40,48,
+200,78,65,167,243,157,243,40,66,0,87,176,155,229,42,135,107,189,95,54,56,
+143,20,78,49,146,217,158,28,93,41,32,137,23,184,133,92,201,240,83,240,1,
+230,216,45,232,70,162,200,127,193,191,219,217,78,172,103,142,122,132,139,
+172,173,74,250,154,195,84,97,54,29,153,36,119,251,45,240,0,219,36,20,176,
+221,207,185,177,226,145,7,76,75,38,159,177,106,42,217,204,119,161,74,127,
+240,127,212,226,25,233,198,116,58,243,189,181,205,182,177,36,207,73,97,
+55,4,48,171,30,123,115,22,170,96,131,52,123,83,3,190,227,29,26,147,43,25,
+44,165,157,223,87,5,63,1,102,58,169,192,241,111,39,170,85,218,113,82,46,
+174,196,73,167,85,105,69,80,188,204,111,201,149,12,222,224,122,221,238,
+68,203,40,39,121,130,193,137,0,194,74,97,94,104,28,174,196,73,79,210,197,
+196,130,99,92,192,92,238,100,162,164,123,157,221,219,109,34,152,119,49,
+59,194,158,0,194,170,6,48,31,232,224,212,1,93,236,225,18,166,74,87,158,
+165,11,223,114,161,110,119,236,144,35,161,128,227,179,112,246,222,2,194,
+170,53,69,108,8,25,40,15,101,239,167,198,117,209,86,51,68,45,164,149,245,
+21,76,71,108,227,42,114,37,131,69,180,119,146,144,73,55,107,36,20,112,101,
+41,83,203,165,81,201,228,243,156,26,75,111,86,186,102,187,52,214,208,154,
+167,36,131,191,235,185,215,194,77,92,189,52,202,139,123,3,103,1,189,139,
+251,121,53,142,178,76,13,167,61,155,92,181,91,20,39,72,97,1,119,48,81,210,
+121,159,43,60,183,23,35,22,74,40,144,233,86,101,94,188,227,140,6,186,83,
+196,221,129,191,100,63,171,212,96,207,83,181,29,224,34,242,232,194,84,233,
+234,117,62,158,88,115,18,8,186,89,97,204,174,142,109,202,103,172,86,3,61,
+189,206,237,35,234,51,81,210,153,71,7,142,147,226,153,29,141,248,255,234,
+216,159,43,62,163,43,184,149,8,47,168,108,46,244,232,80,209,58,90,145,43,
+233,188,66,155,242,178,183,175,40,22,72,40,208,195,237,74,189,156,230,186,
+15,104,148,201,234,54,179,84,216,245,212,175,167,72,102,9,183,147,43,25,
+186,51,114,196,130,45,64,95,47,42,246,172,5,0,216,23,190,120,108,45,190,
+27,225,102,157,223,81,157,231,248,3,207,200,93,126,61,158,237,54,187,129,
+128,132,2,123,188,168,220,27,1,132,85,50,230,34,133,107,170,221,73,61,158,
+150,238,204,225,78,142,232,191,155,58,86,28,3,210,36,20,136,58,237,155,
+85,220,239,2,194,170,42,102,194,226,59,220,168,110,35,45,121,74,50,88,201,
+77,110,37,84,46,75,220,227,101,240,193,109,1,132,85,29,96,21,16,245,108,
+96,81,156,166,2,203,105,75,174,100,148,213,3,154,110,16,150,80,224,121,
+175,141,184,39,128,176,106,2,188,130,131,51,131,63,146,202,12,58,51,89,
+186,177,139,58,174,185,86,6,249,43,230,124,138,231,184,35,128,176,186,25,
+88,1,246,54,220,127,73,93,38,201,221,204,228,191,57,84,254,119,239,150,
+198,115,192,3,110,44,244,68,131,115,1,132,85,119,204,61,105,150,103,94,
+182,208,140,92,201,224,47,220,230,135,252,122,186,57,13,60,40,161,192,148,
+88,26,117,38,128,176,26,14,140,197,218,22,204,2,96,197,227,244,218,240,
+176,220,63,26,168,225,200,135,242,193,119,192,93,18,10,196,246,224,4,246,
+151,131,43,0,83,128,44,11,165,14,3,127,6,158,38,40,159,1,40,35,114,21,240,
+18,101,232,2,10,15,248,8,248,189,132,2,90,114,225,88,23,64,88,165,2,207,
+19,253,102,144,221,192,100,96,58,65,57,239,12,120,225,13,100,75,160,252,
+29,213,141,130,87,129,187,11,207,90,106,193,154,0,194,170,54,230,237,148,
+209,156,9,124,7,200,5,150,18,148,18,231,129,11,175,161,125,2,24,18,189,
+51,101,158,92,96,152,132,2,250,210,157,98,69,0,97,213,24,88,13,37,166,209,
+16,76,129,228,18,148,55,44,59,99,68,58,3,227,49,47,61,40,175,236,196,12,
+252,11,186,29,129,104,5,16,86,105,192,139,20,63,96,59,6,204,197,236,223,
+29,29,7,82,70,36,25,115,10,57,4,229,106,50,96,47,96,0,51,236,92,242,236,
+21,165,11,32,172,186,97,6,183,168,171,171,247,0,83,129,103,9,138,165,252,
+116,165,58,102,68,82,49,187,132,108,44,166,64,247,25,135,129,39,129,167,
+172,92,230,20,43,74,22,64,88,101,99,54,201,231,190,230,109,3,38,2,139,8,
+202,9,207,188,3,148,17,169,137,185,11,38,11,27,115,13,26,57,5,76,7,12,9,
+5,98,159,10,37,74,138,22,128,249,154,55,25,232,127,206,79,214,96,246,239,
+127,243,222,181,179,81,70,164,1,16,6,210,241,247,173,101,130,185,24,54,
+82,66,129,79,117,59,83,26,231,11,32,172,170,0,139,129,142,133,223,57,1,
+44,196,12,252,251,49,245,174,8,148,17,185,18,232,1,100,2,222,158,1,183,
+198,231,192,2,96,190,132,2,150,178,117,234,228,108,1,132,85,45,204,137,
+153,27,48,147,14,228,1,121,4,197,187,141,124,14,80,70,164,13,208,19,232,
+4,212,214,224,194,94,204,193,241,124,224,205,88,205,223,187,201,191,5,16,
+86,13,49,95,243,78,98,246,239,243,9,138,254,91,23,163,68,25,145,102,64,
+59,160,45,230,237,230,94,12,28,15,97,102,72,123,13,88,43,161,128,43,249,
+18,117,98,10,32,172,218,0,131,48,71,251,175,16,244,112,159,88,12,40,124,
+149,108,84,248,213,240,140,207,245,48,133,145,74,209,235,32,167,129,35,
+152,129,254,10,51,243,230,199,192,142,159,62,59,61,140,233,55,148,24,84,
+6,126,69,80,92,77,255,234,119,148,17,169,132,121,1,86,101,204,121,140,195,
+18,10,28,215,235,85,236,241,116,83,104,2,255,19,247,139,240,241,78,66,0,
+113,78,66,0,113,78,66,0,113,78,66,0,113,78,66,0,113,78,66,0,113,78,66,0,
+113,78,66,0,113,78,66,0,113,206,255,3,145,115,236,65,132,111,52,203,0,0,
+0,0,73,69,78,68,174,66,96,130};
+
+static size_t xml_res_size_14 = 629;
+static unsigned char xml_res_file_14[] = {
+137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
+0,31,243,255,97,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
+72,89,115,0,0,1,220,0,0,1,220,1,5,161,33,96,0,0,0,25,116,69,88,116,83,111,
+102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,101,46,
+111,114,103,155,238,60,26,0,0,1,242,73,68,65,84,56,141,165,147,77,72,84,
+97,24,133,159,119,186,54,149,37,18,41,150,244,67,196,40,25,20,149,198,4,
+81,230,162,69,5,133,171,104,149,43,9,23,206,40,69,53,57,78,152,68,145,182,
+137,114,102,33,8,133,68,20,129,171,22,45,218,84,243,27,181,233,103,163,
+130,69,24,58,57,193,224,204,120,223,22,54,247,50,215,217,249,237,190,195,
+57,231,61,231,251,120,69,85,89,205,49,202,129,18,78,84,240,115,105,63,178,
+166,25,81,183,65,33,150,230,228,209,74,205,214,151,16,93,188,89,97,32,161,
+228,25,68,35,136,171,14,148,117,154,99,76,130,84,146,5,177,104,121,32,192,
+18,19,37,6,114,43,126,7,225,106,241,94,195,60,175,164,7,47,159,45,206,12,
+53,153,122,102,91,185,169,137,229,16,150,56,121,10,108,113,3,83,188,151,
+75,37,226,8,231,240,232,139,77,66,236,144,221,2,16,16,48,35,69,240,56,73,
+222,73,7,187,153,1,96,145,181,248,241,49,168,29,212,50,79,133,22,238,75,
+232,99,181,157,96,32,238,1,182,3,120,152,198,207,19,162,52,241,155,106,
+0,220,228,24,98,152,148,92,164,149,56,121,140,141,136,121,196,54,48,105,
+41,78,255,198,14,218,185,203,39,221,195,22,210,86,252,151,156,96,175,62,
+99,148,179,255,17,109,129,50,223,184,141,89,198,229,6,199,72,1,240,139,
+205,116,113,133,231,218,230,164,98,27,184,136,98,66,27,49,158,74,128,90,
+230,0,24,227,52,62,245,51,71,85,25,169,68,173,10,253,129,137,239,3,60,250,
+243,90,186,44,113,134,13,52,48,197,32,15,105,100,210,169,254,139,186,62,
+88,6,193,225,144,123,90,183,246,134,57,191,220,14,225,45,7,185,206,101,
+58,185,198,23,118,57,134,211,163,193,3,105,187,194,2,139,35,114,123,95,
+30,163,240,152,118,227,129,94,224,43,59,203,118,70,25,215,190,195,97,203,
+75,135,88,79,134,123,8,63,48,24,145,92,194,139,152,17,160,206,33,93,0,237,
+214,190,230,209,146,48,218,143,7,152,36,168,57,11,116,44,19,166,70,169,
+42,164,212,231,205,174,120,202,213,174,243,63,218,64,171,61,237,173,51,
+184,0,0,0,0,73,69,78,68,174,66,96,130};
+
+static size_t xml_res_size_15 = 8746;
+static unsigned char xml_res_file_15[] = {
+137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,1,0,0,0,1,0,8,6,0,0,0,
+92,114,168,102,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,72,
+89,115,0,0,29,195,0,0,29,195,1,143,57,51,30,0,0,0,25,116,69,88,116,83,111,
+102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,101,46,
+111,114,103,155,238,60,26,0,0,32,0,73,68,65,84,120,156,237,221,119,156,
+21,213,253,255,241,215,89,122,85,65,20,137,198,96,137,104,84,44,87,69,68,
+141,68,163,81,137,141,208,33,248,165,4,27,8,168,128,112,47,113,174,216,
+34,75,81,64,5,73,104,34,136,10,9,98,204,207,24,34,134,162,99,37,177,43,
+26,18,107,0,165,10,46,123,126,127,204,34,11,46,176,229,206,124,206,220,
+249,60,31,15,30,88,118,231,188,197,251,249,236,153,118,142,177,214,162,
+148,74,166,2,233,0,74,41,57,218,0,148,74,48,109,0,74,37,152,54,0,165,18,
+76,27,128,82,9,166,13,64,169,4,211,6,160,84,130,105,3,80,42,193,180,1,40,
+149,96,218,0,148,74,48,109,0,74,37,152,54,0,165,18,76,27,128,82,9,166,13,
+64,169,4,211,6,160,84,130,105,3,80,42,193,180,1,40,149,96,218,0,148,74,
+48,109,0,74,37,152,54,0,165,18,76,27,128,82,9,86,93,58,128,82,123,149,53,
+77,129,166,210,49,242,208,58,210,246,99,109,0,9,98,60,191,0,168,15,52,40,
+249,181,227,175,1,54,0,27,75,126,223,0,108,180,153,84,177,68,206,239,100,
+205,249,192,60,96,63,209,28,249,231,255,1,61,0,140,238,11,16,127,198,243,
+107,0,71,2,199,0,45,74,126,63,2,104,200,206,98,111,0,212,173,224,161,55,
+179,179,33,108,0,214,3,31,2,239,148,252,122,27,248,192,102,82,223,86,253,
+191,98,55,89,211,11,120,0,157,165,230,210,54,96,56,48,154,116,80,248,218,
+0,98,196,120,126,125,160,37,59,139,188,116,177,75,21,74,17,176,138,160,
+25,148,110,12,175,219,76,106,67,133,143,150,53,6,24,5,12,203,97,70,5,239,
+2,157,73,219,87,74,255,67,109,0,14,51,158,95,27,104,13,156,7,180,5,78,39,
+62,63,17,139,0,31,120,174,228,215,82,155,73,109,217,235,119,100,77,109,
+96,26,208,33,244,116,201,50,21,232,79,218,110,218,253,95,104,3,112,72,201,
+84,254,12,118,22,252,153,64,45,209,80,185,179,21,88,206,206,134,176,98,
+151,83,135,172,105,2,44,32,248,111,86,185,241,21,208,151,180,125,108,79,
+95,160,13,64,152,241,252,70,64,71,224,50,160,13,80,79,54,81,100,54,1,47,
+0,11,158,54,253,95,190,136,101,179,9,78,101,84,110,44,1,186,145,182,255,
+222,219,23,105,3,16,96,60,191,38,112,9,208,189,228,247,154,178,137,228,
+252,148,151,121,194,220,204,1,84,252,114,129,42,211,118,224,54,224,14,210,
+118,251,190,190,56,46,231,147,121,193,120,126,43,130,219,47,29,129,70,194,
+113,196,245,224,41,38,155,81,212,36,247,55,17,18,234,35,160,43,105,187,
+180,188,223,160,13,32,100,198,243,155,19,252,164,239,6,28,45,28,199,25,
+183,153,7,201,48,69,58,70,62,153,13,92,67,218,126,93,145,111,210,6,16,18,
+227,249,199,19,220,115,237,128,62,114,253,157,154,124,203,84,227,209,149,
+63,75,71,201,23,27,129,235,72,219,233,149,249,102,109,0,57,102,60,255,84,
+96,4,193,69,61,35,28,199,41,141,88,207,124,115,19,103,243,170,116,148,124,
+241,18,208,133,180,125,191,178,7,208,6,144,35,198,243,207,34,40,252,139,
+164,179,184,232,40,86,179,200,12,224,104,86,75,71,201,7,197,192,61,64,134,
+180,173,210,5,20,109,0,85,100,60,255,103,4,133,255,83,225,40,206,106,195,
+107,204,55,55,209,152,10,157,158,170,178,253,23,232,65,218,62,151,139,131,
+105,3,168,36,227,249,41,96,28,193,147,122,106,15,58,243,12,191,55,30,181,
+216,38,29,37,31,204,7,122,147,182,107,114,117,64,109,0,21,100,60,255,0,
+224,14,160,47,122,113,111,175,70,240,48,158,121,16,131,62,107,82,69,91,
+128,65,164,237,3,185,62,176,54,128,114,50,158,111,128,158,192,221,64,19,
+217,52,110,171,65,17,15,153,81,244,100,161,116,148,124,240,6,193,75,60,
+111,134,113,112,109,0,229,96,60,191,37,48,17,157,238,239,211,254,108,224,
+9,115,11,231,225,75,71,201,7,227,129,91,72,219,173,97,13,160,13,96,47,140,
+231,55,4,60,224,122,160,154,112,28,231,53,231,19,22,153,1,180,224,35,233,
+40,113,247,5,112,53,105,187,40,236,129,180,1,236,129,241,252,43,129,9,232,
+114,84,229,210,138,149,252,209,12,166,9,235,164,163,196,221,51,192,175,
+73,219,207,163,24,76,27,192,110,140,231,215,2,70,3,215,73,103,137,139,95,
+241,44,211,205,72,106,235,149,254,170,216,70,176,8,202,152,29,171,245,68,
+65,27,64,41,198,243,143,4,230,0,167,74,103,137,139,33,76,227,78,51,65,175,
+244,87,205,59,4,23,250,34,127,68,82,27,64,9,227,249,237,129,41,232,2,148,
+229,82,157,237,76,50,119,209,155,249,210,81,226,110,50,112,35,105,187,89,
+98,240,196,55,0,157,242,87,92,67,54,49,207,12,225,2,86,72,71,137,179,117,
+64,31,210,246,113,201,16,137,110,0,58,229,175,184,195,249,148,167,204,141,
+252,132,15,165,163,196,217,223,129,238,164,173,248,139,17,137,125,146,205,
+120,126,59,224,101,180,248,203,45,197,91,44,55,87,107,241,87,94,17,193,
+123,35,109,93,40,126,72,232,12,192,120,126,111,130,53,231,245,222,126,57,
+93,206,98,102,153,52,117,249,70,58,74,92,173,34,120,117,119,185,116,144,
+210,18,55,3,48,158,63,156,224,194,139,22,127,57,13,98,22,143,155,33,90,
+252,149,55,11,56,201,181,226,135,4,205,0,74,182,197,26,71,240,84,159,42,
+135,106,20,115,159,249,29,215,48,79,58,74,92,109,0,174,37,109,103,74,7,
+217,147,68,52,128,146,85,120,103,160,27,78,148,91,3,54,51,199,12,227,23,
+148,123,125,73,181,171,21,4,83,126,167,47,152,228,253,41,128,241,252,6,
+192,34,180,248,203,237,80,190,96,137,233,173,197,95,57,197,4,175,139,183,
+113,189,248,33,207,103,0,198,243,15,2,158,6,78,145,206,18,23,39,243,14,
+11,205,64,154,241,165,116,148,56,250,15,193,237,189,197,210,65,202,43,111,
+103,0,37,197,255,2,90,252,229,118,41,75,88,98,250,104,241,87,206,147,64,
+203,56,21,63,228,233,12,160,100,218,255,52,186,14,127,185,221,192,28,198,
+152,66,170,81,44,29,37,110,54,3,3,73,219,135,164,131,84,70,222,53,128,146,
+71,123,231,163,63,249,203,165,128,98,198,152,49,244,231,81,233,40,113,244,
+26,193,133,190,183,164,131,84,86,94,53,128,146,91,125,51,9,118,214,85,251,
+80,143,45,204,54,195,105,199,18,233,40,177,98,49,88,204,184,2,138,135,132,
+185,90,79,20,242,237,26,192,4,160,189,116,136,56,56,132,255,241,188,233,
+171,197,95,65,159,211,136,139,237,56,170,217,21,117,227,94,252,144,71,13,
+192,120,254,111,129,126,210,57,226,224,68,222,99,133,233,201,41,188,45,
+29,37,86,158,166,53,39,218,217,252,153,51,1,250,24,207,207,74,103,170,170,
+188,216,30,220,120,254,181,4,63,253,213,62,92,196,50,230,154,161,52,64,
+228,245,243,88,218,74,77,134,218,235,25,71,39,236,247,119,123,187,222,102,
+82,177,253,236,197,190,1,24,207,191,10,152,75,30,205,102,194,210,143,199,
+185,223,220,163,87,250,43,224,45,154,211,217,142,226,245,61,223,80,42,6,
+58,216,76,74,244,189,254,202,138,117,3,48,158,255,99,130,87,122,235,75,
+103,113,89,1,197,220,109,238,227,38,156,125,36,221,73,15,114,37,131,236,
+64,54,83,123,95,95,186,17,56,213,102,82,239,70,16,43,167,98,219,0,140,231,
+215,6,150,3,45,165,179,184,172,14,91,153,105,210,92,201,223,164,163,196,
+198,90,26,210,219,166,121,178,98,219,61,190,14,180,178,153,84,172,94,153,
+140,243,180,121,12,90,252,123,117,48,107,89,108,126,163,197,95,1,139,57,
+149,150,118,118,69,139,31,130,207,226,152,220,39,10,87,44,103,0,198,243,
+59,130,62,185,178,55,199,177,138,69,102,0,135,243,169,116,148,88,40,162,
+26,25,219,143,187,233,65,113,213,126,46,118,178,153,212,156,92,229,10,91,
+236,26,128,241,252,163,8,206,251,27,74,103,113,213,249,188,200,60,51,132,
+253,216,40,29,37,22,62,224,80,186,216,219,121,145,159,228,226,112,235,9,
+174,7,188,159,139,131,133,45,86,167,0,37,143,249,206,69,139,127,143,122,
+177,128,69,102,128,22,127,57,205,224,98,78,182,179,114,85,252,16,124,54,
+231,150,124,86,157,23,171,6,64,176,124,247,201,210,33,92,100,176,220,97,
+38,48,197,220,78,13,138,164,227,56,111,61,245,232,106,179,244,176,183,177,
+129,186,185,62,252,201,4,159,85,231,197,230,20,160,100,175,190,88,222,107,
+13,91,109,182,49,205,140,164,3,207,74,71,137,133,229,156,64,23,123,59,171,
+104,22,246,80,87,217,76,234,137,176,7,169,138,88,52,128,146,93,122,223,
+65,55,234,252,158,38,172,99,129,25,204,153,172,148,142,226,188,98,10,184,
+131,171,185,205,246,161,40,154,53,97,63,3,142,177,153,212,250,40,6,171,
+140,184,156,2,100,209,226,255,158,99,248,152,229,230,106,45,254,114,88,
+205,193,156,103,31,32,109,251,69,85,252,16,124,102,157,126,95,192,249,25,
+128,241,252,147,0,31,93,198,123,23,63,229,101,158,48,183,112,0,206,254,
+112,113,198,227,180,165,143,29,206,58,153,107,199,219,129,148,205,164,94,
+147,24,124,95,156,110,0,198,243,13,176,20,104,37,157,197,37,61,120,138,
+201,102,20,53,249,86,58,138,211,54,83,155,1,118,48,83,184,92,58,202,114,
+160,181,205,164,156,43,54,215,79,1,122,161,197,191,139,219,204,131,76,51,
+191,213,226,223,135,87,57,134,83,236,76,23,138,31,130,207,112,47,233,16,
+101,113,118,6,96,60,191,49,193,133,191,198,210,89,92,80,147,111,153,106,
+60,186,242,103,233,40,78,179,24,198,208,133,97,246,58,182,81,67,58,78,105,
+107,8,46,8,174,145,14,82,154,203,75,130,221,133,22,63,0,141,88,207,124,
+115,19,103,243,170,116,20,167,125,70,99,126,109,127,203,95,220,156,52,54,
+38,248,76,247,145,14,82,154,147,51,0,227,249,173,8,206,253,191,183,250,
+66,210,28,197,106,22,153,1,28,141,19,155,201,58,107,17,103,209,211,142,
+228,75,14,144,142,178,55,150,224,90,128,51,123,4,186,122,13,96,28,90,252,
+180,225,53,150,155,171,181,248,247,98,43,53,25,96,7,115,137,29,235,122,
+241,67,240,153,30,39,29,162,52,231,26,128,241,252,159,3,167,75,231,144,
+214,153,103,120,214,92,71,99,190,150,142,226,172,55,105,206,233,246,15,
+140,167,147,116,148,138,56,189,228,51,238,4,231,26,0,48,66,58,128,180,17,
+60,204,44,147,166,22,219,164,163,56,107,18,237,73,217,25,188,17,207,189,
+95,156,249,140,59,117,13,192,120,254,217,192,243,210,57,164,212,160,136,
+135,204,40,122,178,80,58,138,179,214,176,31,189,108,154,5,156,43,29,165,
+170,206,177,153,148,248,154,236,174,205,0,156,233,140,81,219,159,13,60,
+99,110,208,226,223,139,231,56,141,19,237,236,124,40,126,112,228,179,238,
+204,12,192,120,254,105,192,139,210,57,36,52,231,19,22,153,1,180,224,35,
+233,40,78,250,150,234,164,109,63,126,71,247,170,174,214,227,154,211,109,
+38,245,146,100,0,151,254,52,135,75,7,144,208,138,149,172,48,61,181,248,
+247,224,125,14,227,44,251,48,119,243,235,124,43,126,112,224,51,239,196,
+12,192,120,254,9,4,171,170,38,234,214,223,175,120,150,233,102,36,181,245,
+98,95,153,166,113,41,215,219,155,217,152,251,5,59,92,97,129,150,54,147,
+18,123,157,211,149,150,122,43,9,43,254,33,76,99,142,185,85,139,191,12,95,
+83,159,206,118,20,61,237,200,124,46,126,8,62,243,183,138,6,144,158,1,24,
+207,111,14,188,143,59,205,40,84,213,217,206,36,115,23,189,153,47,29,197,
+73,75,57,145,174,246,118,62,226,16,233,40,81,41,6,142,178,153,212,42,137,
+193,93,40,186,238,184,145,35,116,13,217,196,34,51,64,139,191,12,219,41,
+192,163,55,231,216,201,73,42,126,8,62,251,221,37,7,151,214,77,58,64,20,
+126,200,103,44,53,255,199,5,172,144,142,226,156,127,211,148,243,236,3,140,
+180,191,97,187,19,31,201,200,137,213,128,232,159,118,201,75,63,177,124,
+148,171,34,82,188,197,10,211,147,159,240,161,116,20,231,60,198,249,180,
+180,143,176,36,217,139,61,31,93,82,11,145,147,110,183,61,132,199,15,221,
+229,44,230,239,166,47,77,113,234,53,112,113,155,168,67,47,155,166,131,189,
+147,175,104,32,29,199,5,34,181,32,118,17,208,120,126,77,224,83,160,145,
+72,128,8,12,98,22,191,51,227,41,208,237,184,119,241,10,45,232,108,71,241,
+46,63,148,142,226,146,181,192,33,54,147,138,244,182,144,228,12,224,18,242,
+180,248,171,81,204,68,115,55,163,205,88,45,254,82,44,134,123,233,198,153,
+118,170,22,255,247,53,34,168,137,72,73,174,8,36,118,229,51,76,13,216,204,
+28,51,140,95,176,84,58,138,115,214,83,143,179,121,141,231,77,95,233,40,
+161,248,156,70,220,108,7,84,165,185,117,7,158,204,97,164,125,18,57,5,48,
+158,223,136,96,250,95,51,242,193,67,116,40,95,176,208,220,72,75,222,147,
+142,162,34,54,141,75,25,100,7,178,182,106,75,143,111,35,56,13,88,155,163,
+88,251,36,117,10,208,145,60,43,254,147,121,135,21,166,167,22,127,194,124,
+196,33,92,104,239,163,167,29,89,213,226,135,160,38,58,230,32,86,185,73,
+53,128,203,132,198,13,197,165,44,97,137,233,67,51,190,148,142,162,34,82,
+76,1,99,233,204,241,118,78,174,23,33,141,180,54,34,63,5,48,158,95,3,88,
+7,212,139,116,224,144,220,192,28,198,152,66,170,233,197,190,196,248,39,
+71,210,219,142,96,5,199,135,113,248,77,192,1,54,147,138,100,227,7,137,25,
+192,25,228,65,241,23,80,204,88,51,154,241,230,94,45,254,132,216,70,13,70,
+218,223,112,138,157,25,86,241,67,80,27,103,132,117,240,221,73,220,5,104,
+43,48,102,78,213,99,11,179,205,112,218,33,190,162,147,138,200,50,78,160,
+151,77,243,22,205,163,24,174,45,240,66,20,3,73,204,0,98,221,0,14,225,127,
+60,111,250,106,241,39,196,70,234,210,223,222,68,27,59,37,170,226,135,8,
+107,36,210,107,0,198,243,235,16,156,255,215,138,108,208,28,58,145,247,88,
+104,6,114,24,159,75,71,81,17,120,154,214,244,179,195,248,119,244,59,211,
+111,37,184,14,176,37,236,129,162,158,1,180,38,166,197,127,17,203,120,193,
+244,214,226,79,128,255,177,63,221,108,150,139,237,56,137,226,135,160,70,
+90,71,49,80,212,13,32,150,211,255,126,60,206,66,115,35,13,216,44,29,69,
+133,236,17,46,226,56,59,151,89,92,36,29,37,146,90,137,250,34,96,172,26,
+64,1,197,220,109,238,227,38,102,74,71,81,33,91,205,193,244,179,195,88,196,
+89,210,81,118,136,164,86,34,187,6,96,60,191,1,193,27,79,46,239,72,252,157,
+58,108,101,166,73,115,37,127,147,142,162,66,100,49,76,164,61,195,236,245,
+108,112,107,253,193,34,160,145,205,164,54,132,57,72,148,197,216,50,226,
+241,170,164,41,107,152,108,175,96,50,87,72,71,169,148,38,172,99,180,25,
+75,19,214,73,71,113,214,219,252,136,222,118,4,255,160,165,116,148,178,84,
+39,168,153,80,111,7,70,89,144,45,34,28,171,202,86,209,140,85,52,147,142,
+81,41,173,121,131,41,38,171,197,191,7,223,82,157,187,249,53,183,219,255,
+99,171,219,175,164,180,32,143,26,192,49,17,142,149,88,3,121,132,123,204,
+120,170,179,93,58,138,147,94,226,56,122,217,52,43,57,74,58,74,121,132,94,
+51,218,0,242,68,67,54,49,213,120,92,197,115,210,81,156,180,153,218,140,
+176,215,48,158,78,113,90,120,52,175,26,64,172,78,1,226,228,68,222,99,158,
+25,194,209,172,150,142,226,164,103,57,157,190,118,120,28,79,233,66,175,
+153,72,238,2,148,188,1,184,153,24,93,4,140,139,158,44,100,162,185,139,58,
+108,149,142,226,156,117,52,100,144,29,200,31,184,84,58,74,101,21,1,117,
+195,124,51,48,170,130,60,50,194,177,18,161,54,219,184,223,220,67,47,22,
+72,71,113,210,99,156,207,13,246,102,62,143,247,178,147,213,9,106,231,237,
+48,7,136,130,78,255,115,232,72,254,195,60,51,132,147,120,87,58,138,115,
+62,161,9,215,218,33,44,224,92,233,40,185,210,130,16,27,64,84,87,67,244,
+2,96,142,92,193,98,94,54,221,181,248,119,99,49,60,196,21,28,103,231,230,
+83,241,67,200,181,19,213,12,64,27,64,21,85,103,59,119,153,251,25,172,143,
+37,127,207,123,28,70,31,59,130,191,115,138,116,148,48,228,69,3,56,34,162,
+113,242,82,51,190,100,142,185,149,54,188,38,29,197,41,69,84,99,52,221,248,
+173,237,203,55,110,63,208,83,21,161,214,78,84,13,160,202,203,165,38,85,
+91,94,98,182,25,193,65,68,182,82,116,44,188,66,11,122,219,17,188,154,255,
+147,203,80,107,39,170,6,160,155,191,85,144,193,114,43,191,231,54,243,160,
+174,57,88,202,22,106,241,91,219,151,66,186,82,68,53,233,56,81,8,181,118,
+180,1,56,168,17,235,153,97,50,92,204,63,164,163,56,101,49,167,210,199,14,
+231,125,14,147,142,18,37,109,0,73,114,26,111,242,152,25,202,225,124,42,
+29,197,25,95,83,159,155,237,0,166,112,25,22,35,29,39,106,161,214,78,232,
+79,2,26,207,47,0,125,51,165,60,174,101,30,99,76,33,53,137,100,73,248,88,
+152,207,79,185,206,222,194,39,52,145,142,34,169,154,205,164,66,57,15,140,
+98,6,80,63,130,49,98,173,30,91,152,108,70,209,153,103,164,163,56,227,51,
+26,115,131,189,153,121,252,76,58,138,11,234,3,235,195,56,112,20,13,64,167,
+255,123,113,28,171,152,103,134,112,44,171,164,163,56,227,247,180,99,176,
+189,145,117,122,243,104,135,6,104,3,200,63,93,248,51,15,153,59,168,71,232,
+171,63,199,194,135,252,128,190,118,56,127,229,52,233,40,174,9,173,134,244,
+20,64,64,77,190,101,172,41,228,26,230,73,71,113,194,118,10,24,71,103,210,
+182,31,155,169,45,29,199,69,161,213,144,206,0,34,118,56,159,242,152,25,
+202,105,188,41,29,197,9,111,112,52,189,237,8,94,226,56,233,40,46,139,245,
+12,64,149,184,132,23,152,110,70,210,40,156,211,185,88,217,74,77,178,182,
+23,247,208,131,111,245,99,40,38,138,63,249,80,151,53,142,131,106,20,227,
+153,7,24,198,31,48,68,187,29,187,139,94,224,36,250,216,225,188,205,143,
+164,163,196,69,104,53,20,69,3,216,24,193,24,206,58,152,181,204,54,195,57,
+15,95,58,138,184,13,212,101,168,189,129,73,92,149,196,7,122,170,34,180,
+26,210,25,64,136,206,230,85,30,53,195,105,198,151,210,81,196,61,69,27,174,
+177,67,89,205,193,210,81,226,40,214,51,128,68,54,128,155,152,201,157,230,
+254,196,47,207,253,37,7,48,192,14,102,54,23,74,71,137,179,88,55,128,68,
+157,2,236,199,70,254,96,110,227,114,22,75,71,17,55,147,95,112,163,29,204,
+26,246,147,142,18,119,161,213,80,84,171,2,111,2,183,54,94,11,195,73,188,
+203,60,51,132,35,249,143,116,20,81,31,115,8,253,236,48,254,204,153,210,
+81,242,193,102,155,73,213,11,235,224,81,173,9,152,247,167,1,189,153,207,
+50,115,117,162,139,191,152,2,238,163,35,199,219,71,181,248,115,39,47,54,
+7,221,0,249,121,245,167,14,91,153,104,238,162,39,11,165,163,136,122,147,
+230,244,182,105,150,113,130,116,148,124,147,55,13,32,239,28,205,106,30,
+55,183,112,2,239,75,71,17,179,141,26,220,73,79,238,176,87,179,141,26,210,
+113,242,81,94,52,128,188,123,244,237,42,158,99,170,241,104,200,38,233,40,
+98,86,112,60,189,108,154,127,233,154,175,97,10,181,118,162,186,6,240,97,
+68,227,132,174,6,69,140,49,133,204,51,67,18,91,252,155,168,195,141,118,
+48,173,237,195,90,252,225,11,181,118,162,154,1,188,19,209,56,161,58,148,
+47,152,99,134,209,154,55,164,163,136,121,134,51,233,103,135,241,17,135,
+72,71,73,138,80,107,71,27,64,57,93,192,10,102,153,52,77,88,39,29,69,196,
+26,246,99,144,29,200,116,46,145,142,146,52,121,209,0,66,219,219,44,108,
+5,20,51,130,169,140,52,147,41,72,232,242,220,115,184,128,254,246,38,190,
+136,247,70,155,113,21,106,237,68,213,0,62,32,216,234,56,86,239,125,54,230,
+107,102,153,52,23,178,76,58,138,136,255,112,16,215,218,161,252,137,179,
+165,163,36,85,17,65,237,132,38,146,139,128,37,251,155,199,106,209,187,51,
+248,39,175,154,174,137,44,126,139,97,18,237,249,137,157,171,197,47,107,
+85,73,237,132,38,202,159,200,111,3,71,71,56,94,165,221,192,28,70,155,177,
+212,160,72,58,74,228,222,225,112,250,216,225,44,225,100,233,40,42,130,83,
+231,40,27,192,59,64,187,8,199,171,176,6,108,102,138,201,210,129,103,165,
+163,68,174,136,106,220,67,15,60,219,155,173,249,187,209,102,220,132,126,
+241,60,234,6,224,172,227,249,128,121,102,8,199,240,177,116,148,200,189,
+204,177,244,178,105,94,143,199,4,45,73,242,170,1,56,123,39,160,59,139,120,
+192,220,73,93,190,145,142,18,169,45,212,34,99,251,49,134,46,108,143,236,
+153,48,85,1,121,117,10,240,58,142,221,9,168,197,54,198,155,123,233,203,
+147,210,81,34,247,28,167,209,215,222,202,7,28,42,29,69,149,173,136,160,
+102,66,21,201,122,0,223,13,230,249,203,128,86,145,13,184,23,205,249,132,
+121,102,8,167,184,59,49,9,197,87,52,224,38,59,128,135,185,76,58,138,218,
+187,229,54,147,10,253,157,234,168,231,125,207,69,60,94,153,218,177,132,
+87,76,183,196,21,255,19,156,199,177,246,49,45,254,120,136,164,86,18,213,
+0,170,81,204,93,230,126,22,152,193,236,159,159,111,40,151,233,83,14,228,
+42,123,15,87,217,123,248,140,198,210,113,84,249,68,82,43,81,159,143,47,
+5,182,2,181,34,30,151,166,172,225,81,115,43,231,242,74,212,67,139,154,194,
+229,220,108,251,243,149,110,208,20,39,91,9,106,37,116,145,206,0,108,38,
+181,5,88,30,229,152,0,231,242,10,175,154,174,137,42,254,15,56,148,182,118,
+18,125,236,112,45,254,248,89,94,82,43,161,147,184,247,19,217,105,128,193,
+50,132,105,252,213,92,67,83,214,68,53,172,168,237,20,240,59,186,115,130,
+125,148,191,145,146,142,163,42,39,178,26,145,184,37,247,28,112,91,216,131,
+236,207,6,166,155,145,180,99,73,216,67,57,227,53,126,76,111,59,130,151,
+57,86,58,138,170,154,188,110,0,43,128,77,64,104,75,29,159,194,219,204,51,
+67,104,206,39,97,13,225,148,111,168,137,103,251,240,59,186,83,68,53,233,
+56,170,106,54,17,212,72,36,34,63,5,40,121,187,233,133,176,142,255,27,158,
+96,169,233,149,152,226,127,158,147,105,105,103,115,39,61,181,248,243,195,
+11,97,191,1,88,154,212,83,121,11,32,183,123,69,213,229,27,30,48,119,210,
+157,69,185,60,172,179,214,83,143,33,246,6,30,228,74,221,104,51,191,44,136,
+114,48,169,7,192,231,0,219,114,117,176,99,248,152,23,205,175,19,83,252,
+127,228,28,142,179,143,241,128,238,178,155,111,182,17,212,70,100,68,26,
+128,205,164,214,2,79,229,226,88,29,120,22,223,244,224,39,249,179,240,240,
+30,125,65,35,58,218,59,185,204,142,230,191,52,145,142,163,114,239,169,146,
+218,136,140,228,43,96,51,170,242,205,53,40,98,188,185,151,57,102,24,245,
+217,156,171,76,206,154,198,165,28,107,31,99,46,231,75,71,81,225,169,82,
+77,84,134,228,155,121,79,1,107,161,226,43,77,30,198,231,60,102,134,114,
+6,255,204,125,42,7,125,202,129,236,207,6,166,26,79,58,74,149,173,176,199,
+243,32,87,178,150,134,210,81,92,147,179,89,113,69,68,250,54,224,247,6,247,
+252,137,192,53,21,249,158,11,89,198,44,147,166,49,95,135,148,74,229,90,
+49,5,44,224,28,70,219,110,252,131,150,210,113,92,53,201,102,82,215,70,61,
+168,244,187,249,211,41,103,3,40,160,152,145,102,50,35,152,154,216,229,185,
+227,102,19,117,248,61,237,24,107,59,235,186,3,251,54,93,98,80,209,25,0,
+128,241,252,119,217,199,98,161,77,88,199,44,147,230,130,232,158,143,80,
+85,240,95,154,112,191,237,192,131,92,201,58,157,234,151,199,123,54,147,
+250,177,196,192,210,51,0,128,153,236,229,209,224,214,188,193,92,51,148,
+31,240,101,132,145,84,101,188,202,49,20,218,174,204,225,2,190,117,226,163,
+21,27,51,165,6,118,225,255,210,12,96,36,101,220,145,24,200,35,220,109,238,
+75,228,242,220,113,97,49,44,226,44,70,219,174,250,242,81,229,20,35,112,
+245,127,7,241,83,0,0,227,249,179,129,78,59,254,190,33,155,152,106,60,174,
+114,99,1,33,85,134,45,212,98,58,151,48,214,118,230,109,126,36,29,39,206,
+30,181,153,84,103,169,193,93,152,1,0,220,1,116,4,204,137,188,199,60,51,
+132,163,89,45,157,73,149,225,115,26,49,193,254,138,73,180,231,127,236,47,
+29,39,238,44,193,103,95,140,19,51,0,0,227,249,243,123,178,240,178,137,230,
+46,234,176,85,58,142,218,205,191,56,130,66,219,149,89,92,164,27,135,228,
+206,2,155,73,93,46,25,192,141,25,64,214,212,254,216,52,53,63,228,51,233,
+36,106,55,127,161,21,133,182,11,207,16,250,2,181,73,52,74,58,128,252,12,
+32,107,142,4,230,1,39,201,6,81,59,108,165,38,143,112,33,99,108,23,86,114,
+148,116,156,124,245,23,155,73,229,244,141,216,202,144,157,1,100,205,229,
+192,31,128,253,68,115,40,0,214,176,31,147,104,207,4,251,43,93,61,56,124,
+183,75,7,0,169,6,144,53,213,129,59,129,155,68,198,87,187,120,151,31,50,
+198,118,97,26,151,178,37,250,5,155,147,104,137,205,164,156,88,171,46,250,
+6,144,53,205,8,222,121,110,19,249,216,106,23,139,57,149,66,219,149,133,
+180,209,117,5,162,229,196,79,127,136,250,26,64,214,180,5,102,3,7,69,55,
+168,42,237,91,170,51,151,243,41,180,93,121,133,22,210,113,146,232,69,155,
+73,157,33,29,98,135,232,102,0,89,115,10,112,45,176,108,95,95,250,57,141,
+14,88,206,9,231,132,29,169,45,47,209,32,1,107,9,64,176,39,224,67,92,193,
+120,219,73,23,19,145,99,129,1,210,33,74,147,191,11,176,7,198,243,39,3,189,
+195,56,118,1,197,140,53,133,220,16,237,234,75,34,62,228,7,140,179,157,152,
+202,47,217,72,93,233,56,73,55,197,102,82,125,164,67,148,230,198,115,0,101,
+27,10,92,1,185,189,28,93,135,173,60,98,70,112,57,139,115,121,88,231,44,
+229,68,70,219,110,204,231,92,138,69,23,126,82,37,214,16,124,166,157,226,
+236,12,0,192,120,126,111,96,114,174,142,119,32,95,241,39,51,136,86,172,
+204,213,33,157,178,157,2,158,160,45,163,109,87,86,112,188,116,28,181,171,
+62,54,147,154,34,29,98,119,46,207,0,0,30,6,122,1,173,170,122,160,163,88,
+205,211,102,0,71,229,225,59,6,27,168,203,20,46,103,188,237,196,71,28,34,
+29,71,125,223,114,130,207,178,115,156,158,1,0,24,207,63,9,240,161,242,187,
+94,180,98,37,127,50,131,56,144,175,114,23,204,1,255,166,41,227,109,71,166,
+112,57,95,83,95,58,142,42,219,118,32,101,51,169,215,164,131,148,197,249,
+6,0,96,60,127,28,208,191,50,223,123,5,139,153,101,70,228,213,11,70,47,113,
+28,133,182,43,243,248,153,238,6,228,190,241,54,147,114,234,202,127,105,
+174,159,2,236,144,6,58,0,77,43,242,77,253,121,148,49,102,76,94,172,33,88,
+76,1,127,228,28,10,109,23,150,112,178,116,28,85,62,159,17,124,118,157,21,
+139,25,0,128,241,252,43,129,199,203,245,181,88,238,53,227,24,196,172,144,
+83,133,111,51,181,191,91,88,243,125,14,147,142,163,42,230,42,155,73,61,
+33,29,98,111,98,211,0,0,140,231,223,15,92,183,183,175,169,205,54,102,152,
+12,237,249,107,68,169,194,241,73,169,133,53,117,13,253,88,154,96,51,169,
+235,165,67,236,75,92,78,1,118,24,12,180,134,178,231,192,141,249,154,5,102,
+48,103,241,122,180,169,114,232,117,142,166,208,118,229,81,126,206,54,106,
+72,199,81,149,243,42,193,103,213,121,177,154,1,0,24,207,63,10,120,25,118,
+253,177,120,4,255,229,105,211,159,31,243,111,153,96,85,96,49,60,77,107,
+10,109,87,254,202,105,210,113,84,213,172,7,78,181,153,212,251,210,65,202,
+35,118,13,0,192,120,126,71,224,209,29,127,127,26,111,178,208,12,228,32,
+34,221,87,177,202,190,161,38,51,184,152,49,182,11,111,209,92,58,142,202,
+141,78,54,147,138,205,51,230,177,108,0,0,198,243,39,1,253,218,177,132,71,
+205,173,212,229,27,233,72,229,246,5,141,152,104,219,51,145,246,124,201,
+1,210,113,84,238,60,96,51,169,10,109,117,39,45,110,215,0,74,27,120,11,211,
+47,189,195,76,56,180,90,76,110,243,189,73,115,198,216,46,204,228,98,190,
+209,133,53,243,205,235,192,64,233,16,21,21,207,6,144,53,198,26,110,131,
+120,108,56,247,44,167,51,218,118,227,25,90,233,194,27,249,105,35,208,193,
+102,82,241,153,134,150,136,95,3,200,154,90,4,235,8,118,218,199,87,138,218,
+70,13,102,115,33,133,182,11,111,236,125,235,67,21,111,197,64,79,155,73,
+189,43,29,164,50,226,213,0,178,230,0,96,62,16,250,98,33,149,181,150,134,
+223,45,172,249,41,7,74,199,81,225,235,111,51,169,114,61,160,230,162,248,
+52,128,172,57,28,120,26,56,86,58,74,89,222,227,176,239,22,214,220,76,109,
+233,56,42,26,183,219,76,106,130,116,136,170,136,199,93,128,96,57,177,167,
+168,224,187,0,81,120,158,147,25,109,187,177,144,54,186,240,70,178,76,182,
+153,84,95,233,16,85,229,254,12,32,107,126,1,204,5,119,222,119,45,162,26,
+115,185,128,66,219,133,151,221,156,144,168,112,205,7,98,117,187,111,79,
+220,158,1,100,77,31,96,34,142,52,170,175,169,207,67,92,193,125,182,35,171,
+57,88,58,142,146,177,4,248,121,28,175,248,151,197,221,6,144,53,183,3,195,
+165,99,0,172,162,25,227,108,103,30,214,133,53,147,110,37,112,142,205,164,
+242,102,101,25,39,126,178,238,34,107,106,0,83,129,110,210,81,150,113,2,
+133,182,43,79,114,30,219,245,252,62,233,86,1,23,229,83,241,131,107,13,32,
+107,246,3,158,0,218,74,69,216,78,1,79,114,30,133,182,43,203,56,65,42,134,
+114,203,74,130,226,255,68,58,72,174,185,211,0,178,230,48,96,17,200,44,103,
+187,145,186,60,204,47,25,103,59,179,138,102,18,17,148,155,150,0,191,204,
+183,159,252,59,184,209,0,178,166,37,65,241,71,94,121,171,57,152,251,108,
+71,30,226,10,93,88,83,237,110,62,208,57,95,46,248,149,69,190,1,100,205,
+207,129,121,64,131,40,135,125,153,99,41,180,93,152,203,5,186,176,166,42,
+203,100,224,26,155,73,109,151,14,18,38,217,6,144,53,87,3,15,69,152,163,
+120,37,71,189,123,189,189,165,197,243,186,176,166,218,179,219,109,38,229,
+244,98,158,185,34,119,105,59,107,70,18,92,237,143,162,248,55,3,147,128,
+22,39,164,223,59,246,121,78,238,67,176,94,187,82,165,21,3,215,39,165,248,
+65,226,57,128,172,169,78,240,83,255,234,8,70,251,20,152,0,76,34,109,119,
+89,46,200,120,126,59,96,6,176,95,4,57,148,251,54,18,188,213,23,219,23,123,
+42,35,218,6,144,53,13,8,206,247,127,30,242,72,111,0,133,192,108,210,118,
+219,158,190,200,120,254,145,192,28,224,212,144,243,40,183,189,78,240,62,
+127,44,95,233,173,138,232,26,64,214,52,35,184,210,223,50,164,17,44,240,
+12,48,154,180,125,182,188,223,100,60,191,22,48,154,125,44,55,174,242,214,
+3,192,192,124,190,210,191,55,209,52,128,172,57,158,160,248,195,216,217,
+226,27,96,38,48,134,180,125,179,178,7,49,158,223,30,152,130,158,18,36,197,
+122,160,111,156,22,240,12,67,248,13,32,107,218,18,60,221,151,235,194,250,
+146,224,69,161,137,164,237,23,185,56,160,158,18,36,198,171,4,83,254,88,
+44,221,29,166,112,27,64,214,116,35,184,210,159,203,29,46,222,2,198,0,51,
+72,219,156,79,219,244,148,32,239,77,0,6,219,76,42,127,118,139,173,130,240,
+26,64,214,12,7,110,207,225,17,255,74,112,97,239,105,210,225,159,183,148,
+236,69,56,1,7,23,33,81,149,242,25,112,157,235,123,245,69,45,247,13,32,184,
+205,55,17,232,147,131,163,109,35,216,0,164,144,180,141,124,191,47,227,249,
+13,1,15,184,30,244,113,193,152,218,78,208,200,211,54,147,90,47,29,198,53,
+185,109,0,89,83,159,96,245,158,95,84,241,72,107,129,7,129,251,73,91,241,
+55,176,140,231,183,36,104,106,173,165,179,168,10,89,78,240,56,239,107,210,
+65,92,149,187,6,144,53,77,9,214,237,59,165,10,71,121,31,24,11,252,158,180,
+221,156,147,92,57,98,60,223,0,61,129,187,129,38,178,105,212,62,172,1,134,
+2,15,219,76,202,209,21,111,220,144,155,6,144,53,199,18,172,216,123,120,
+37,143,176,132,224,252,254,143,164,173,211,219,252,24,207,63,0,184,3,232,
+139,228,163,212,170,44,22,120,24,24,106,51,169,53,210,97,226,160,234,13,
+32,107,206,33,120,109,178,162,155,220,21,17,60,21,88,72,218,190,84,181,
+16,209,51,158,159,2,198,161,167,5,174,120,17,24,96,51,169,229,210,65,226,
+164,106,13,32,107,58,17,236,210,83,171,2,223,181,158,224,85,203,241,164,
+109,252,246,242,222,141,241,252,159,1,35,128,159,10,71,73,170,37,4,111,
+239,253,69,58,72,28,85,190,1,100,205,45,192,93,80,238,205,238,62,2,198,
+3,83,72,219,13,149,27,212,93,198,243,207,34,104,4,23,73,103,73,136,191,
+16,20,254,18,233,32,113,86,241,6,144,53,213,128,251,40,255,186,232,43,8,
+30,172,121,130,180,205,251,87,112,141,231,159,74,208,8,46,163,252,205,81,
+149,143,5,254,8,140,178,153,84,236,78,27,93,84,177,6,144,53,117,9,238,203,
+183,219,199,87,22,19,92,23,24,77,218,46,173,116,186,24,51,158,127,60,193,
+178,230,29,208,139,133,85,85,76,112,123,249,14,155,73,173,148,14,147,79,
+202,223,0,178,230,32,96,33,112,218,94,190,106,35,193,163,191,227,72,219,
+15,171,156,46,15,24,207,111,14,116,39,88,230,92,183,9,174,152,247,8,94,
+244,154,97,51,169,85,210,97,242,81,249,26,64,214,252,152,224,54,223,17,
+123,248,138,255,18,156,223,63,68,218,230,229,234,169,185,96,60,191,21,208,
+3,232,8,52,18,142,227,170,181,4,47,100,77,215,43,250,225,219,119,3,200,
+154,179,128,5,64,227,50,254,237,43,4,247,239,231,146,182,223,230,60,93,
+158,50,158,95,19,184,132,96,102,112,9,80,83,54,145,184,109,4,15,145,205,
+0,158,178,153,212,30,23,113,81,185,181,247,6,144,53,237,9,254,167,148,222,
+239,218,18,156,10,20,146,182,139,195,12,151,4,198,243,27,17,204,8,43,148,
+13,189,0,0,1,155,73,68,65,84,46,3,218,0,245,100,19,69,102,19,240,2,193,
+15,151,57,54,147,90,187,143,175,87,33,216,115,3,200,154,65,192,189,236,
+188,146,189,5,152,70,176,240,70,226,150,78,138,130,241,252,26,192,25,192,
+121,4,187,35,157,73,197,158,177,112,217,86,130,103,243,159,43,249,181,194,
+102,82,58,107,20,246,253,6,144,53,5,4,239,219,247,47,249,39,159,177,115,
+97,77,125,188,50,66,198,243,107,19,60,105,184,163,33,156,142,244,82,238,
+229,87,4,248,236,44,248,165,54,147,218,34,27,73,237,110,215,6,144,53,117,
+128,89,192,21,192,63,9,206,239,31,33,109,117,241,4,7,24,207,175,79,176,
+166,98,11,224,152,82,191,31,129,92,99,40,34,216,56,243,109,224,157,146,
+95,111,3,175,219,76,42,239,30,248,202,55,59,27,64,214,28,72,240,144,197,
+122,130,243,123,125,180,50,38,74,78,29,142,228,251,77,161,33,193,142,75,
+59,126,85,116,111,243,205,192,134,82,191,214,3,31,178,107,161,127,160,83,
+249,248,10,26,64,214,28,74,112,159,250,79,164,237,191,164,67,169,112,24,
+207,47,0,234,179,179,33,236,248,107,8,10,124,35,59,139,125,163,205,164,
+156,126,51,83,85,221,142,6,80,157,180,45,146,14,163,148,138,86,244,59,3,
+41,165,156,161,207,168,43,149,96,218,0,148,74,48,109,0,74,37,152,54,0,165,
+18,76,27,128,82,9,166,13,64,169,4,211,6,160,84,130,105,3,80,42,193,180,
+1,40,149,96,218,0,148,74,48,109,0,74,37,152,54,0,165,18,76,27,128,82,9,
+166,13,64,169,4,211,6,160,84,130,105,3,80,42,193,180,1,40,149,96,218,0,
+148,74,48,109,0,74,37,152,54,0,165,18,76,27,128,82,9,246,255,1,12,204,192,
+135,186,54,132,175,0,0,0,0,73,69,78,68,174,66,96,130};
+
+static size_t xml_res_size_16 = 1184;
+static unsigned char xml_res_file_16[] = {
+137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0,
+0,115,122,122,244,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
+72,89,115,0,0,3,184,0,0,3,184,1,3,78,7,200,0,0,0,25,116,69,88,116,83,111,
+102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,101,46,
+111,114,103,155,238,60,26,0,0,4,29,73,68,65,84,88,133,197,151,127,76,149,
+85,24,199,63,207,27,23,74,26,37,4,225,28,165,137,213,202,173,150,130,214,
+102,163,214,82,51,109,68,179,132,10,162,69,115,196,248,195,40,127,112,163,
+43,228,194,128,88,184,165,210,15,230,106,21,110,212,200,25,106,163,198,
+156,86,64,148,148,179,127,202,70,32,96,63,48,7,194,189,248,62,253,65,55,
+238,123,121,223,123,47,186,198,179,221,237,190,207,121,206,247,243,156,
+231,188,231,188,231,136,170,50,147,102,204,40,29,136,186,84,1,241,96,104,
+25,102,128,71,168,224,70,46,32,17,208,135,101,58,83,32,158,111,83,17,51,
+19,88,13,204,3,146,153,24,196,32,208,23,199,112,219,73,121,228,182,57,252,
+126,111,4,114,237,152,100,71,148,128,84,118,94,197,40,181,136,230,57,197,
+36,242,23,205,108,100,153,116,135,147,51,81,94,35,25,55,5,234,11,59,5,178,
+173,99,21,72,61,162,115,157,98,110,230,20,7,164,152,249,244,133,147,235,
+67,120,2,183,182,250,29,142,9,136,167,115,22,104,29,66,62,56,87,233,30,
+58,104,146,23,184,154,115,225,224,205,68,145,207,102,253,35,208,25,98,21,
+104,229,4,220,217,114,217,207,65,41,10,9,63,79,12,47,82,212,35,230,23,89,
+193,112,199,4,196,211,145,129,80,232,36,42,40,229,178,139,6,241,224,98,
+220,17,222,77,42,105,186,151,29,250,100,10,70,236,22,91,173,224,151,80,
+170,142,199,50,226,237,6,230,219,117,136,193,203,59,82,78,54,45,142,96,
+128,157,172,163,68,139,25,37,218,239,242,33,102,154,186,211,191,15,140,
+155,90,129,17,111,165,19,60,129,179,124,78,97,72,248,25,102,179,134,26,
+138,180,36,16,14,224,66,141,6,217,211,233,10,116,90,42,32,158,99,241,136,
+107,0,155,151,115,33,61,28,144,98,82,233,113,132,247,112,45,197,250,60,
+167,37,97,74,219,47,58,151,1,226,65,121,72,203,150,52,251,253,86,144,17,
+181,22,157,10,95,78,23,31,75,9,9,156,117,132,3,164,48,64,147,148,88,124,
+99,68,83,161,249,84,146,251,239,40,245,97,192,33,1,149,251,131,69,93,140,
+179,128,94,74,117,131,197,127,159,124,67,22,173,193,225,22,59,162,183,243,
+12,91,57,201,188,0,175,149,17,60,218,148,96,17,31,81,52,240,224,100,119,
+148,82,121,155,76,190,116,4,159,99,22,155,180,136,55,201,66,167,126,18,
+146,101,79,167,75,11,22,251,236,18,72,118,84,101,226,37,124,15,55,43,57,
+230,24,179,95,151,179,129,77,252,70,146,83,136,112,198,155,4,244,218,37,
+224,104,75,249,129,70,217,204,117,244,219,182,15,18,79,177,110,228,67,166,
+204,98,72,11,94,134,182,234,207,209,72,155,20,56,194,247,178,154,91,180,
+49,82,184,146,24,61,232,127,8,174,128,101,141,93,201,8,111,73,5,143,114,
+216,86,233,20,115,120,150,45,28,210,101,145,128,253,214,239,159,127,8,174,
+128,232,33,255,223,91,249,153,118,201,181,133,155,24,212,178,158,69,250,
+209,116,225,192,36,3,130,43,96,142,55,35,174,241,28,90,162,118,203,118,
+98,57,111,43,209,197,77,92,161,99,84,83,251,159,175,159,4,234,201,164,151,
+196,48,124,105,10,124,180,126,11,234,36,230,179,161,187,58,86,113,116,81,
+68,131,1,126,228,6,106,52,135,247,89,201,152,117,235,181,179,239,72,150,
+244,192,41,176,86,96,136,212,116,57,81,245,148,190,180,99,84,99,146,214,
+74,27,235,57,104,171,116,152,165,212,144,67,139,222,25,105,174,62,196,204,
+211,130,116,95,160,211,246,72,38,158,142,140,66,99,95,235,27,84,137,17,
+112,222,244,226,226,3,86,80,163,217,28,103,97,164,96,63,169,76,221,105,
+219,130,221,54,251,128,136,10,15,192,228,22,246,39,113,236,34,139,157,186,
+142,211,92,51,61,240,132,117,97,14,111,183,107,176,38,80,39,49,12,209,128,
+240,24,192,0,9,127,151,243,116,220,187,186,134,17,46,191,24,48,192,81,12,
+243,113,45,205,176,61,185,76,78,193,171,50,27,47,159,32,220,141,114,4,131,
+106,46,208,44,210,190,2,164,30,156,15,165,14,54,10,82,138,46,126,221,122,
+111,176,75,224,21,185,30,147,79,17,78,160,84,227,214,118,75,80,4,199,114,
+171,233,87,24,146,167,165,75,126,10,23,41,90,206,2,148,76,12,246,177,85,
+127,13,25,28,230,98,2,180,162,70,19,101,119,124,173,161,142,210,150,92,
+27,185,76,85,185,216,31,47,171,113,41,253,167,117,53,251,63,108,198,111,
+199,255,0,65,159,207,163,152,64,70,71,0,0,0,0,73,69,78,68,174,66,96,130};
+
+static size_t xml_res_size_17 = 2289;
+static unsigned char xml_res_file_17[] = {
+137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,64,0,0,0,64,8,6,0,0,
+0,170,105,113,222,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
+72,89,115,0,0,7,113,0,0,7,113,1,220,215,168,124,0,0,0,25,116,69,88,116,
+83,111,102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,
+101,46,111,114,103,155,238,60,26,0,0,8,110,73,68,65,84,120,156,237,155,
+107,112,85,213,21,128,191,117,115,243,144,132,71,176,76,32,8,82,7,173,80,
+80,30,137,72,43,51,22,181,128,32,216,34,157,129,96,69,6,4,6,121,8,33,64,
+32,185,220,148,240,208,18,148,135,1,4,170,128,4,10,177,72,35,181,101,202,
+67,104,25,26,34,237,48,60,44,148,210,210,6,4,66,0,109,200,243,174,254,128,
+84,72,238,57,247,156,115,15,102,58,248,205,228,71,238,94,107,237,181,214,
+89,103,159,125,246,222,71,84,149,187,25,79,67,59,208,208,124,147,128,134,
+118,160,161,185,235,19,224,109,200,206,5,4,255,158,104,245,61,89,110,42,
+232,23,47,66,63,60,68,184,236,194,81,249,58,158,2,50,255,112,11,170,171,
+251,163,146,4,146,8,154,8,36,2,45,129,72,224,10,72,49,162,197,4,40,6,57,
+131,167,230,99,2,143,29,212,24,105,76,37,91,128,103,92,116,73,129,69,36,
+144,126,199,18,32,115,15,125,7,101,16,202,64,160,39,14,110,183,7,248,87,
+201,94,25,235,185,143,207,227,93,116,237,28,202,75,100,234,78,0,215,19,
+32,254,67,157,16,22,0,253,195,177,147,204,49,182,203,20,90,82,226,146,103,
+0,20,224,101,36,51,245,98,237,15,174,141,1,146,125,160,53,213,145,89,8,
+35,8,115,112,253,17,123,216,32,25,52,194,124,104,176,65,57,48,141,12,93,
+86,183,193,149,10,144,172,67,211,0,63,112,79,184,182,166,240,62,111,200,
+18,60,4,194,246,235,38,71,129,161,100,232,145,96,141,97,85,128,248,247,
+196,64,236,26,68,134,133,99,7,32,130,0,75,121,131,113,178,53,92,83,183,
+242,54,113,164,242,154,94,55,18,112,92,1,226,63,156,136,212,108,3,146,157,
+122,87,75,99,202,216,44,51,233,199,31,195,53,85,75,9,194,72,102,235,246,
+80,130,142,42,224,230,64,247,59,160,149,19,253,91,185,143,11,20,200,100,
+30,229,100,184,166,106,217,69,128,23,241,105,177,21,97,219,131,149,204,
+63,220,2,161,0,23,130,239,202,103,28,148,17,174,4,95,133,151,77,252,112,
+7,1,158,177,26,60,216,76,128,172,42,138,164,170,58,31,184,223,182,135,117,
+24,32,251,216,39,163,73,228,98,104,225,16,156,162,13,223,215,53,12,213,
+236,190,66,97,95,59,186,246,42,224,60,203,65,122,217,210,9,194,4,217,204,
+54,82,137,197,112,108,178,204,123,12,160,171,110,160,144,142,0,30,132,60,
+153,251,105,7,171,250,150,7,65,201,42,124,25,100,173,67,63,1,240,16,96,
+177,44,102,34,155,194,49,3,192,85,226,24,167,51,200,163,79,144,86,57,73,
+124,211,206,58,161,125,69,104,159,44,32,254,99,113,32,243,109,123,121,11,
+177,92,103,155,164,186,18,252,1,58,211,69,55,26,4,15,160,15,114,165,116,
+130,21,91,214,110,1,41,75,5,18,44,250,87,143,86,92,226,19,121,133,231,216,
+231,212,4,0,1,60,252,76,71,209,75,87,115,38,212,24,172,146,46,11,142,132,
+124,135,8,153,0,241,23,182,4,82,45,123,89,135,71,56,201,65,25,65,55,78,
+56,53,1,192,89,18,248,1,43,200,100,12,53,214,174,91,60,149,229,179,66,9,
+89,176,36,62,32,214,74,143,117,233,43,7,216,47,163,104,195,231,78,212,255,
+199,86,125,138,71,117,35,159,104,87,155,154,242,170,248,139,218,154,73,
+152,38,64,150,158,138,70,24,110,179,87,0,198,146,79,1,147,105,76,153,19,
+117,0,202,136,97,180,206,98,8,11,40,165,137,19,19,209,136,190,104,38,96,
+62,19,44,189,210,27,136,179,211,163,135,0,175,179,148,169,178,193,142,90,
+61,20,97,29,253,137,227,58,147,201,179,172,119,137,102,108,164,15,129,175,
+174,237,64,32,219,72,222,244,49,40,254,67,185,8,99,173,118,126,15,21,108,
+32,131,31,203,110,171,42,174,146,71,31,38,233,84,46,114,219,216,167,120,
+165,181,166,119,63,23,76,199,176,2,4,4,97,160,213,206,19,184,204,118,166,
+240,152,28,181,238,177,75,156,37,129,113,58,131,143,120,34,88,179,80,163,
+207,1,171,130,53,26,223,2,254,162,174,8,137,86,28,104,206,53,86,202,60,
+162,169,228,47,60,24,82,62,150,114,218,115,214,138,105,83,20,33,151,193,
+204,208,9,124,65,35,51,193,1,216,78,128,4,58,128,88,114,228,50,77,120,94,
+127,110,73,182,19,127,35,95,210,44,201,154,113,130,118,140,102,22,251,181,
+139,21,113,195,169,177,201,83,64,44,93,125,59,252,148,143,56,40,35,120,
+136,127,58,182,81,133,151,108,29,73,23,125,223,106,240,128,113,37,27,39,
+64,173,149,191,21,98,168,100,149,100,243,158,204,9,107,157,239,144,118,
+32,73,215,49,155,113,84,16,101,71,181,145,44,44,106,26,172,193,228,49,40,
+137,55,150,207,195,227,1,254,205,86,153,78,87,62,115,108,163,140,24,50,
+25,195,155,12,179,58,11,172,79,149,36,2,87,235,254,108,108,77,52,236,10,
+24,196,94,62,149,225,97,5,255,123,146,233,172,155,88,164,195,157,7,15,16,
+168,9,26,207,29,217,26,243,82,195,60,150,51,77,214,59,182,81,74,19,82,117,
+18,107,173,63,137,29,97,156,0,149,98,196,254,45,144,200,69,54,201,44,122,
+113,216,177,83,249,244,230,85,77,227,60,247,58,182,81,15,79,68,208,101,
+50,147,10,176,190,174,86,75,111,41,100,35,179,73,224,178,93,85,0,206,241,
+45,198,235,116,126,197,147,142,244,77,137,12,30,143,201,60,0,203,9,16,148,
+116,249,5,126,86,18,225,112,67,99,53,207,51,77,39,114,133,198,142,244,67,
+80,166,211,187,215,27,0,33,100,5,132,158,8,53,231,26,235,201,228,89,254,
+224,200,179,83,180,225,21,77,103,55,73,142,244,45,98,120,49,77,198,0,207,
+241,80,99,64,50,199,216,34,51,184,159,160,239,25,166,212,224,33,71,83,240,
+49,134,235,68,219,214,183,201,113,163,6,227,231,138,175,251,97,76,50,55,
+94,182,176,95,70,57,10,254,207,60,68,15,125,151,52,38,126,29,193,115,115,
+31,35,40,134,9,80,80,148,122,91,75,113,148,145,39,179,88,198,235,68,81,
+101,203,143,114,162,72,103,60,201,186,142,34,227,233,185,219,40,17,242,
+107,163,70,243,121,128,176,29,190,90,15,232,200,223,201,151,52,30,230,140,
+109,47,206,208,138,73,164,242,87,109,107,249,77,240,31,180,114,163,66,10,
+141,214,2,32,84,2,226,155,237,162,244,202,151,64,92,10,31,179,82,230,57,
+222,204,104,199,57,62,100,106,200,113,85,17,10,120,130,69,58,156,19,180,
+115,212,87,29,76,55,72,77,231,150,58,161,125,69,28,215,243,114,101,1,27,
+36,195,149,157,28,35,202,136,33,87,95,224,97,221,202,64,205,97,47,221,220,
+48,91,129,154,79,71,205,43,192,47,237,74,60,145,61,236,222,235,118,56,207,
+189,44,227,39,172,208,193,148,16,244,133,45,12,116,153,250,146,76,223,189,
+77,86,132,164,57,66,90,148,84,29,47,212,142,17,167,105,253,221,186,34,109,
+57,79,79,130,30,188,8,201,17,218,147,163,41,108,164,15,149,68,58,178,17,
+130,82,162,98,12,23,67,107,177,180,55,40,254,99,113,72,217,41,110,217,29,
+74,146,227,20,48,217,214,180,87,17,126,171,143,147,67,10,59,233,97,89,207,
+17,162,211,52,35,57,228,50,149,165,247,75,245,117,252,18,116,102,237,255,
+3,100,31,123,24,99,57,248,10,162,88,195,32,58,233,102,250,177,228,206,7,
+143,156,164,89,252,82,75,146,118,142,200,72,86,209,170,49,146,63,122,57,
+11,45,205,249,47,18,79,46,131,89,174,67,184,64,115,203,253,132,201,53,60,
+158,199,117,118,55,195,217,223,173,216,88,15,16,169,18,239,101,47,213,33,
+37,143,243,109,22,235,48,214,243,44,229,246,150,174,194,37,128,50,212,106,
+240,96,53,1,126,137,34,130,181,94,170,83,204,196,118,105,50,139,36,133,
+223,232,247,80,139,43,202,46,51,67,125,73,59,236,40,132,190,5,22,74,83,
+42,249,0,232,29,172,185,10,47,121,244,33,71,83,44,237,9,220,65,150,106,
+102,210,68,187,74,230,21,144,45,109,80,118,0,157,234,54,5,144,171,43,244,
+133,178,108,94,110,85,76,11,187,253,186,73,53,162,147,52,35,249,109,39,
+202,198,21,224,151,71,240,176,3,104,93,167,229,20,194,155,196,240,174,252,
+103,119,141,91,7,37,29,82,2,50,68,51,187,59,222,140,12,158,128,185,242,
+52,74,62,220,182,39,189,15,33,135,26,182,227,211,219,30,1,110,30,149,181,
+193,159,80,134,170,47,233,116,56,70,234,39,32,75,94,66,120,135,27,231,248,
+171,129,173,64,14,25,90,104,106,200,197,195,210,33,56,13,154,78,102,242,
+47,213,133,141,139,219,19,48,87,50,80,178,128,171,40,171,81,150,224,83,
+91,251,88,110,29,151,15,194,37,208,185,104,108,174,250,58,86,186,101,244,
+70,2,252,226,37,130,21,40,79,1,111,17,205,26,210,244,139,176,12,187,240,
+193,4,232,5,84,10,128,15,105,82,181,83,95,235,233,250,235,168,232,28,226,
+136,96,42,1,142,209,129,15,24,162,53,174,119,18,206,39,51,62,247,206,205,
+7,69,23,210,88,85,105,136,63,84,133,57,187,99,26,170,127,85,117,255,147,
+153,255,55,238,250,239,6,191,73,64,67,59,208,208,220,245,9,248,47,129,162,
+138,91,51,247,7,138,0,0,0,0,73,69,78,68,174,66,96,130};
+
+static size_t xml_res_size_18 = 1387;
+static unsigned char xml_res_file_18[] = {
+137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0,
+0,115,122,122,244,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
+72,89,115,0,0,4,196,0,0,4,196,1,60,204,212,131,0,0,0,25,116,69,88,116,83,
+111,102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,101,
+46,111,114,103,155,238,60,26,0,0,4,232,73,68,65,84,88,133,157,151,93,108,
+84,69,20,128,191,217,237,222,187,109,183,116,55,180,208,165,11,180,6,161,
+109,68,137,72,90,5,82,160,18,76,32,252,36,62,16,49,38,168,49,106,2,145,
+24,35,82,161,187,88,8,241,15,8,250,64,162,79,136,33,18,21,80,49,4,45,148,
+96,160,20,98,168,134,22,65,133,208,150,109,5,183,101,75,187,255,227,67,
+183,187,221,191,123,47,158,100,30,102,206,153,51,223,189,103,230,156,25,
+33,165,196,136,136,125,215,85,124,3,75,128,85,64,53,8,39,72,103,92,123,
+27,228,109,160,19,56,138,195,222,34,55,204,8,26,242,171,7,32,118,94,114,
+18,150,219,16,172,3,138,12,209,130,31,201,65,44,98,187,220,50,247,246,255,
+2,16,158,211,86,132,237,93,96,19,80,144,205,198,97,53,227,11,68,181,252,
+15,3,187,145,67,205,178,105,81,192,48,128,240,180,151,33,196,17,160,86,
+203,251,129,53,149,28,187,58,192,225,43,62,45,51,128,54,164,92,45,155,230,
+121,211,21,166,140,197,183,158,125,12,33,218,245,22,175,115,21,178,110,
+246,68,62,88,58,21,107,94,134,155,116,169,69,136,118,241,222,165,217,154,
+0,194,221,90,70,44,242,61,145,144,75,203,155,0,246,44,155,134,0,166,23,
+43,188,245,212,100,61,0,0,23,82,30,23,158,246,178,172,0,194,115,69,33,36,
+191,69,226,34,18,130,72,40,167,167,231,31,157,72,109,121,97,162,191,121,
+190,19,215,4,197,24,132,16,71,132,231,180,53,3,128,96,127,35,80,151,232,
+231,128,40,180,152,216,213,144,250,131,10,44,38,118,53,148,27,1,0,168,141,
+111,238,36,128,104,60,225,68,240,102,134,105,22,136,45,11,157,76,41,178,
+100,152,62,55,123,34,117,174,194,140,241,28,178,73,236,188,228,76,0,32,
+21,15,146,236,179,199,65,56,172,102,26,42,39,208,121,39,245,68,141,68,98,
+116,244,13,179,126,78,137,81,128,2,194,114,27,128,96,255,69,11,55,253,119,
+145,58,73,38,79,25,109,64,133,93,229,239,141,201,13,125,185,111,152,57,
+251,175,24,93,124,76,252,56,236,165,38,110,12,45,209,91,220,44,68,206,61,
+161,57,71,91,138,240,13,44,49,33,99,43,115,89,168,102,193,27,117,147,249,
+120,89,124,211,61,0,196,249,151,170,88,49,179,88,207,108,149,9,147,168,
+206,166,89,57,203,78,219,203,213,184,235,167,80,164,154,147,138,72,8,25,
+214,175,51,85,37,249,124,183,246,97,78,172,155,73,77,105,126,46,179,106,
+193,59,167,186,128,89,99,35,53,165,249,188,255,180,139,5,211,108,9,171,
+152,132,112,44,153,178,5,80,84,96,197,106,29,61,206,18,8,69,83,83,186,98,
+22,140,5,33,18,147,124,218,222,143,187,181,151,129,148,218,33,174,9,182,
+156,242,35,177,57,242,243,104,92,88,198,250,57,37,70,226,7,128,170,170,
+9,8,35,114,103,56,66,99,75,15,159,253,250,15,241,239,25,74,73,197,6,175,
+6,9,9,6,131,4,2,89,139,92,86,145,241,54,94,50,66,80,93,154,207,174,134,
+114,234,167,39,15,70,182,16,40,230,228,95,82,84,21,147,69,77,113,60,62,
+4,225,152,228,147,11,253,120,90,123,25,12,102,134,160,5,201,226,116,218,
+229,51,139,105,94,92,78,165,93,229,155,46,31,47,30,189,145,208,77,43,86,
+233,120,181,38,209,255,189,127,132,5,7,254,74,228,9,0,255,230,199,177,41,
+38,126,188,62,200,166,19,183,184,122,55,235,159,58,147,71,76,118,34,68,
+6,192,15,127,12,114,242,207,123,188,246,196,36,42,29,6,10,205,216,241,140,
+67,116,222,25,193,221,218,203,241,107,131,90,179,58,243,16,166,99,32,95,
+207,166,13,69,37,123,219,250,12,111,202,241,16,79,126,222,69,84,127,83,
+29,53,81,97,107,65,224,215,178,50,224,40,21,34,18,50,50,199,143,195,222,
+98,146,175,204,13,35,229,33,35,190,237,86,51,63,189,48,139,175,158,125,
+136,80,84,38,90,133,93,225,236,250,42,246,60,51,53,5,66,83,36,7,229,134,
+25,193,209,99,168,152,182,33,184,175,7,48,16,136,114,246,166,159,170,18,
+43,138,89,36,154,77,49,243,200,164,124,190,252,237,223,164,177,54,196,48,
+22,177,29,226,229,88,186,235,189,72,62,210,3,0,248,240,92,31,253,195,225,
+140,241,175,187,124,92,232,73,251,134,220,16,187,199,174,235,201,68,164,
+78,218,1,156,215,3,24,10,69,105,62,147,122,213,15,68,98,52,157,238,205,
+62,33,19,162,13,57,212,60,214,73,0,200,166,154,16,138,88,131,160,91,15,
+226,139,142,187,92,246,142,36,250,123,47,244,211,61,168,17,243,36,68,247,
+232,245,60,249,70,72,77,197,238,122,47,176,2,65,143,22,64,76,194,219,63,
+223,2,160,251,94,136,221,231,250,244,152,33,26,234,33,22,93,158,254,54,
+200,184,208,203,29,139,46,35,204,243,128,139,90,254,206,119,223,231,112,
+167,143,173,167,122,9,68,98,122,203,95,68,152,231,73,119,109,71,186,66,
+251,105,22,196,141,96,35,146,172,5,221,110,53,167,149,215,116,39,140,128,
+105,47,74,204,243,64,79,179,84,144,95,166,16,12,123,16,172,69,98,211,52,
+78,46,60,132,228,16,170,165,73,54,205,207,177,59,13,2,36,12,247,93,87,241,
+246,44,5,185,26,68,21,146,50,132,28,125,229,72,225,69,224,5,217,5,226,8,
+101,229,39,141,62,207,255,3,52,228,253,72,11,53,84,78,0,0,0,0,73,69,78,
+68,174,66,96,130};
+
+static size_t xml_res_size_19 = 834;
+static unsigned char xml_res_file_19[] = {
+137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0,
+0,115,122,122,244,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
+72,89,115,0,0,4,193,0,0,4,193,1,17,118,177,117,0,0,0,25,116,69,88,116,83,
+111,102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,101,
+46,111,114,103,155,238,60,26,0,0,2,191,73,68,65,84,88,133,189,214,95,72,
+20,65,28,192,241,239,236,237,221,94,137,217,147,82,113,15,161,16,249,24,
+17,190,154,80,20,24,25,151,4,253,67,210,58,43,130,222,18,41,202,243,37,
+162,151,144,34,178,68,138,186,176,212,254,19,189,20,5,62,4,41,81,4,82,25,
+21,97,89,87,88,230,221,185,183,211,195,157,94,247,135,107,246,254,244,131,
+101,102,118,118,126,243,97,119,102,88,33,165,68,28,123,86,133,176,158,144,
+103,148,243,93,180,139,243,253,7,14,7,90,85,199,232,177,66,234,64,69,190,
+0,13,139,125,244,249,186,58,164,190,255,200,213,22,181,49,0,145,223,26,
+102,36,223,249,1,112,96,209,42,174,53,159,246,55,94,80,7,0,152,17,10,137,
+240,113,189,233,172,223,219,171,14,40,48,66,195,162,133,129,29,231,58,54,
+93,82,7,20,1,209,44,6,183,118,251,27,174,168,3,10,140,16,72,118,113,99,
+75,143,127,67,159,58,160,8,136,38,110,121,123,253,245,3,234,128,2,35,0,
+118,114,123,227,197,206,245,55,213,1,69,64,108,151,247,234,47,251,215,221,
+153,109,11,41,37,162,253,113,53,50,250,50,235,72,221,21,187,178,132,3,11,
+15,159,209,176,208,176,16,16,47,37,26,50,94,198,218,159,156,229,203,38,
+218,234,70,117,101,250,236,91,200,130,136,162,241,142,69,106,249,34,66,
+3,149,79,144,138,40,224,231,176,15,40,2,194,62,160,192,136,180,53,224,212,
+4,1,111,165,210,96,167,203,133,203,112,207,181,79,14,141,243,224,237,100,
+126,0,135,38,168,91,90,170,156,192,237,54,48,12,3,128,192,139,160,173,201,
+51,2,66,166,197,194,227,195,54,179,252,123,139,42,3,114,138,148,45,186,
+71,244,179,92,142,1,240,26,15,93,52,22,25,144,130,104,224,33,107,197,16,
+0,143,88,65,151,180,1,16,128,167,204,200,217,33,156,130,121,97,1,102,34,
+95,182,72,3,24,186,198,115,95,117,206,0,0,247,96,9,188,143,213,157,142,
+4,70,9,96,90,146,158,145,175,121,1,214,4,67,84,154,96,232,16,149,217,159,
+205,8,56,120,255,131,242,100,135,68,47,123,73,254,215,152,79,136,80,188,
+94,163,143,240,67,212,38,245,183,177,143,51,114,115,102,128,221,112,203,
+48,11,196,84,198,190,144,9,110,162,148,233,191,146,238,27,114,102,174,158,
+219,81,108,35,66,38,132,237,172,1,93,19,116,214,46,86,158,192,19,172,99,
+56,152,124,114,86,77,220,165,116,250,35,0,227,162,130,192,204,106,116,233,
+64,215,29,0,60,37,177,200,51,2,124,43,203,149,1,224,141,95,127,69,223,27,
+24,139,3,156,75,56,26,222,29,223,9,233,39,102,26,32,108,90,172,234,126,
+101,3,144,30,167,126,78,81,19,175,79,207,68,19,29,25,126,106,210,0,18,24,
+253,22,74,189,109,43,166,132,53,87,183,82,183,225,44,194,97,100,6,252,151,
+48,35,16,141,106,9,128,196,4,190,20,42,127,187,108,213,79,136,109,2,96,
+82,150,72,50,157,133,177,57,249,3,235,9,253,190,72,67,151,122,0,0,0,0,73,
+69,78,68,174,66,96,130};
+
+static size_t xml_res_size_20 = 544;
+static unsigned char xml_res_file_20[] = {
+137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0,
+0,115,122,122,244,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
+72,89,115,0,0,4,193,0,0,4,193,1,17,118,177,117,0,0,0,25,116,69,88,116,83,
+111,102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,101,
+46,111,114,103,155,238,60,26,0,0,1,157,73,68,65,84,88,133,197,214,187,74,
+3,65,20,198,241,255,108,54,23,215,66,8,104,33,190,129,160,157,181,118,54,
+1,45,237,4,65,124,8,49,104,163,98,161,96,35,216,9,193,215,136,160,62,128,
+133,141,141,18,65,137,226,5,194,102,77,54,57,22,154,16,67,46,123,153,93,
+191,106,216,153,195,252,56,59,59,172,18,17,56,86,105,62,120,96,88,20,251,
+108,202,225,208,117,62,162,68,4,182,85,70,20,85,165,60,84,8,235,108,201,
+169,46,128,209,26,216,117,16,241,80,161,56,97,71,173,232,2,180,59,240,89,
+163,106,26,96,37,193,83,39,194,166,201,8,121,113,140,206,103,110,211,71,
+39,52,197,108,143,70,199,97,114,14,23,176,19,6,86,42,17,93,39,74,151,80,
+121,237,2,76,204,194,114,1,224,7,97,154,88,150,133,138,66,113,182,0,149,
+34,208,113,8,187,227,186,46,182,109,35,17,191,15,115,208,100,11,209,221,
+137,171,82,133,131,235,231,224,187,150,87,201,89,99,201,53,112,6,2,122,
+33,110,95,170,228,206,239,120,119,26,193,1,76,51,35,23,9,24,210,129,110,
+196,155,107,178,88,8,187,249,223,152,0,187,153,141,244,222,253,18,28,221,
+12,92,92,19,3,71,165,180,94,20,74,68,80,219,197,12,95,84,61,85,24,9,72,
+102,194,35,164,50,34,249,121,167,239,87,208,55,205,6,212,29,109,183,149,
+127,128,102,68,48,128,70,68,112,64,39,226,223,0,45,68,205,219,249,141,6,
+16,18,161,7,16,2,161,15,16,16,161,23,16,0,161,31,224,19,17,13,192,7,34,
+58,128,71,68,180,0,15,136,232,1,67,16,241,0,6,32,226,3,244,65,196,11,232,
+129,136,31,208,66,252,230,231,167,52,59,37,60,61,150,99,69,100,167,4,224,
+27,27,92,198,229,13,213,26,65,0,0,0,0,73,69,78,68,174,66,96,130};
+
+static size_t xml_res_size_21 = 680;
+static unsigned char xml_res_file_21[] = {
+137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0,
+0,115,122,122,244,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
+72,89,115,0,0,4,68,0,0,4,68,1,25,255,88,16,0,0,0,25,116,69,88,116,83,111,
+102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,101,46,
+111,114,103,155,238,60,26,0,0,2,37,73,68,65,84,88,133,189,151,63,104,19,
+81,28,199,63,239,229,146,92,18,144,154,193,34,56,116,8,56,185,8,82,71,23,
+55,65,11,130,21,92,116,23,255,141,34,37,155,163,131,142,130,147,224,160,
+131,155,197,65,233,98,21,135,130,165,14,69,227,159,34,73,53,38,173,73,147,
+188,196,231,164,189,36,191,94,238,206,75,190,112,144,247,126,47,191,247,
+201,189,207,5,78,89,107,25,21,85,124,225,160,114,183,65,221,24,185,24,214,
+81,246,140,189,117,108,53,192,90,84,31,64,81,77,13,46,184,203,124,246,186,
+186,242,196,224,204,6,105,8,160,176,141,195,124,62,191,102,207,46,9,229,
+38,11,182,243,119,160,61,155,187,104,126,14,94,167,244,203,141,48,155,3,
+88,84,238,28,139,79,165,126,104,46,121,215,106,239,192,244,194,108,19,79,
+28,239,160,105,32,11,36,19,187,115,105,12,179,188,11,221,248,144,170,132,
+7,144,32,14,242,157,87,234,98,104,128,160,209,210,100,211,76,238,56,68,
+128,73,66,236,62,134,69,229,214,59,236,120,139,239,153,225,180,115,15,18,
+67,39,21,57,219,228,182,154,251,167,15,216,203,133,54,8,14,120,99,112,40,
+155,44,224,198,9,177,143,234,87,5,5,192,231,8,250,73,90,208,235,198,5,208,
+151,96,0,99,132,8,14,48,38,136,112,0,99,128,8,15,240,15,194,196,2,16,72,
+237,66,222,101,102,42,53,52,175,83,46,218,73,138,223,89,219,220,225,83,
+189,35,214,66,3,92,56,146,231,234,241,105,177,150,201,100,72,165,134,225,
+174,61,251,194,157,229,114,60,0,15,86,126,240,188,180,181,103,61,145,116,
+81,3,119,98,189,218,14,210,58,24,64,169,214,166,84,243,107,248,11,146,105,
+72,200,199,225,151,104,18,74,49,237,72,98,254,151,132,82,246,18,243,219,
+182,97,165,220,140,6,224,39,161,20,73,204,71,171,85,230,31,127,136,6,48,
+74,66,41,131,98,86,26,242,159,87,76,18,74,9,38,102,124,18,74,9,32,102,236,
+18,74,209,41,151,154,81,188,222,104,68,3,8,43,161,148,55,155,93,78,62,252,
+24,13,32,138,132,131,169,183,126,67,175,55,228,196,24,37,244,137,22,63,
+78,40,166,255,135,120,239,64,23,203,125,111,177,162,243,121,44,115,227,
+228,81,126,175,231,234,230,210,81,108,239,109,236,187,166,201,216,133,19,
+45,128,63,147,180,205,25,132,236,135,65,0,0,0,0,73,69,78,68,174,66,96,130};
+
+static size_t xml_res_size_22 = 934;
+static unsigned char xml_res_file_22[] = {
+137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0,
+0,115,122,122,244,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
+72,89,115,0,0,4,196,0,0,4,196,1,60,204,212,131,0,0,0,25,116,69,88,116,83,
+111,102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,101,
+46,111,114,103,155,238,60,26,0,0,3,35,73,68,65,84,88,133,197,151,207,111,
+19,87,16,199,63,243,188,217,24,228,0,17,82,126,72,21,225,0,2,170,220,32,
+132,0,7,211,162,74,205,161,228,88,196,129,91,47,136,3,135,94,106,130,237,
+68,201,21,33,254,134,64,111,13,28,80,85,104,229,75,81,163,170,151,86,162,
+169,26,169,165,42,10,84,145,32,36,106,252,214,235,29,14,177,29,255,10,89,
+59,27,152,211,122,222,188,253,126,222,123,126,51,179,162,170,132,49,185,
+189,208,201,203,87,31,1,23,128,99,32,253,160,253,165,225,231,160,139,96,
+230,81,185,15,175,31,105,58,153,15,245,222,173,0,100,250,151,126,10,122,
+3,225,18,208,21,138,22,86,81,253,26,199,207,104,106,228,89,91,0,165,21,
+143,3,215,128,221,33,133,235,109,13,229,38,172,78,110,182,35,77,1,100,122,
+174,23,223,204,130,156,106,83,184,222,230,80,29,211,244,208,243,45,1,36,
+59,247,33,18,123,0,12,68,36,94,182,127,17,25,213,241,227,191,109,10,32,
+217,199,61,120,133,159,137,117,28,192,113,35,214,47,65,168,14,85,239,132,
+217,16,127,226,226,121,223,160,122,0,223,3,223,219,9,128,15,16,153,149,
+108,46,94,118,56,149,33,111,41,133,114,186,242,219,247,112,140,144,216,
+29,167,222,2,133,215,182,88,227,235,114,99,196,76,67,40,171,94,128,31,212,
+28,243,48,36,198,129,20,148,142,64,82,115,189,176,182,128,146,168,142,60,
+59,144,224,225,229,65,226,241,90,136,167,203,30,7,111,253,90,227,155,191,
+50,200,145,253,141,176,159,222,249,147,111,23,150,235,221,107,196,10,135,
+53,53,242,108,157,57,88,203,212,139,151,205,90,75,62,31,42,167,180,98,187,
+240,157,12,128,145,108,206,65,184,248,182,232,29,129,16,249,92,178,185,
+184,193,202,199,192,222,173,226,119,0,34,1,123,206,59,160,23,194,206,176,
+214,150,158,154,252,219,218,49,209,207,28,224,72,43,115,172,181,216,188,
+68,3,64,112,212,0,125,173,78,243,60,27,81,158,144,126,3,244,182,53,55,154,
+100,213,183,189,195,140,0,194,0,13,21,234,221,65,200,162,65,182,9,80,130,
+176,182,157,43,170,139,6,149,249,109,3,0,94,123,121,226,119,3,204,70,1,
+0,109,37,171,123,134,78,205,1,47,223,3,196,10,221,251,126,48,154,78,250,
+40,51,81,1,132,134,80,102,244,234,33,187,126,13,125,111,18,97,229,29,66,
+252,79,135,76,64,85,75,38,169,92,6,37,93,29,101,4,220,38,93,134,170,98,
+139,181,189,164,27,19,140,52,166,104,79,28,130,88,67,123,55,165,55,78,92,
+135,234,142,104,160,107,138,191,87,206,3,103,202,174,64,33,239,7,155,173,
+162,86,168,168,64,179,22,223,91,119,87,122,76,253,137,238,238,201,242,104,
+101,121,250,197,241,2,46,99,192,95,161,20,91,177,141,100,245,20,39,24,211,
+171,135,202,101,181,182,174,106,38,185,4,222,232,142,64,20,11,255,160,197,
+81,253,106,248,69,181,187,225,128,117,250,147,121,92,78,2,63,70,167,174,
+143,113,59,134,52,61,252,164,126,164,105,49,210,76,114,137,131,93,231,16,
+178,219,186,29,194,42,48,65,103,239,57,77,159,254,175,105,200,150,31,167,
+95,126,215,131,227,142,151,62,78,187,67,74,47,163,220,197,236,202,232,84,
+237,150,183,12,80,9,204,230,28,172,36,129,49,68,143,162,244,177,209,204,
+188,96,189,170,254,1,114,143,78,253,94,211,73,63,204,123,223,0,202,222,
+98,133,128,94,40,169,0,0,0,0,73,69,78,68,174,66,96,130};
+
+static size_t xml_res_size_23 = 1152;
+static unsigned char xml_res_file_23[] = {
+137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0,
+0,115,122,122,244,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
+72,89,115,0,0,4,196,0,0,4,196,1,60,204,212,131,0,0,0,25,116,69,88,116,83,
+111,102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,101,
+46,111,114,103,155,238,60,26,0,0,3,253,73,68,65,84,88,133,173,151,65,76,
+20,87,24,199,127,111,152,221,69,11,90,148,194,34,132,42,49,21,65,15,141,
+65,42,189,44,149,152,200,161,154,216,52,109,106,218,30,219,8,7,107,232,
+65,130,187,104,36,169,77,234,129,52,105,155,244,72,172,39,177,77,218,164,
+182,64,90,171,130,161,166,33,82,108,108,172,20,187,64,41,84,89,101,103,
+153,229,235,129,101,217,93,102,103,150,45,255,211,236,188,239,125,255,223,
+124,111,231,125,111,148,136,144,137,84,231,93,15,51,255,190,4,28,2,118,
+130,42,1,41,137,13,143,131,4,65,27,65,212,151,240,232,59,241,251,194,25,
+229,117,2,80,29,131,37,204,203,41,20,111,0,249,25,209,66,8,145,47,208,205,
+128,180,238,123,144,21,64,236,137,219,128,227,192,250,12,141,83,53,135,
+112,30,66,103,210,85,196,18,64,117,244,23,99,106,221,160,94,200,210,56,
+85,253,136,28,22,127,205,184,35,128,106,239,175,66,229,124,13,60,187,70,
+230,75,26,67,169,70,105,219,51,148,22,64,181,95,43,34,50,127,147,28,87,
+57,186,123,141,253,99,16,34,53,137,149,208,150,205,135,221,68,34,151,16,
+41,199,140,128,25,137,207,218,146,239,226,185,205,185,107,1,80,134,82,221,
+170,189,47,158,44,14,64,100,170,21,161,46,254,59,1,162,162,192,195,237,
+119,171,233,60,88,78,225,122,253,255,66,212,66,94,91,18,128,106,237,47,
+134,133,247,86,132,198,32,116,77,161,107,138,166,154,34,238,54,239,230,
+253,58,47,158,28,149,61,130,226,184,58,123,189,52,14,192,194,92,0,33,207,
+50,216,140,160,69,151,151,99,163,39,135,15,26,202,184,211,180,155,215,119,
+109,34,75,140,117,152,122,96,145,37,208,171,99,48,5,108,76,23,221,80,177,
+129,175,142,86,145,155,187,242,127,48,240,224,49,39,174,252,201,213,209,
+208,106,33,66,72,232,25,13,67,237,183,51,7,208,53,133,97,24,132,195,43,
+247,146,189,165,79,241,227,219,149,92,124,165,130,210,252,85,189,57,121,
+176,161,65,3,57,228,20,169,107,139,133,78,7,1,240,106,213,38,70,142,237,
+162,165,206,139,75,203,112,97,148,188,172,1,59,156,1,150,175,237,32,242,
+220,26,231,26,202,248,229,157,106,234,183,102,210,54,22,42,53,192,235,12,
+144,252,68,118,16,0,59,11,115,233,121,115,7,23,142,84,176,37,223,101,147,
+89,149,104,64,241,106,1,50,129,0,120,173,122,113,89,78,236,43,182,204,1,
+120,53,171,187,153,42,19,8,0,187,142,175,3,227,192,102,187,4,230,66,250,
+12,134,97,0,88,190,162,93,67,255,208,114,101,140,96,104,62,205,108,21,212,
+81,140,35,84,103,11,96,5,49,52,57,71,211,55,163,252,112,127,214,118,30,
+72,80,71,212,8,200,126,123,0,135,60,49,136,71,70,148,142,27,211,124,124,
+115,210,17,58,166,95,117,160,27,56,102,15,96,159,76,128,139,183,167,57,
+213,251,23,147,134,98,21,173,252,178,142,71,250,48,152,1,10,178,1,184,62,
+246,152,214,158,49,126,14,62,73,30,112,134,152,165,224,233,30,77,252,62,
+19,161,203,46,210,10,224,247,153,48,71,47,221,227,96,215,111,43,205,83,
+206,19,150,18,186,164,121,187,161,199,38,156,193,237,126,11,177,62,245,
+154,9,239,209,116,216,228,220,213,113,62,191,53,197,188,221,210,44,1,88,
+87,226,9,46,117,26,98,237,88,62,60,48,9,124,148,54,215,130,96,68,133,206,
+129,9,158,255,116,152,79,6,255,182,55,79,132,176,174,196,121,57,185,39,
+8,9,103,66,245,217,160,139,63,102,123,129,23,83,163,189,121,46,220,57,26,
+163,15,13,103,83,43,233,238,132,74,200,13,10,10,124,210,188,221,72,2,0,
+80,129,190,66,34,12,0,219,178,115,114,132,184,143,30,173,149,147,181,19,
+75,183,147,182,98,9,248,166,32,210,8,220,91,115,128,232,252,40,18,109,76,
+52,95,1,0,32,29,7,70,112,179,23,248,105,237,220,229,26,110,87,141,248,107,
+135,83,71,44,155,145,4,124,83,108,205,175,71,209,142,194,105,63,77,47,69,
+8,56,141,167,184,94,252,117,147,150,33,142,31,167,45,223,22,161,187,219,
+98,31,167,105,55,171,20,61,68,184,128,182,46,32,103,147,75,190,106,128,
+120,96,123,159,142,161,124,192,97,148,84,34,120,89,62,204,76,176,216,85,
+239,128,186,140,71,190,23,191,207,204,36,239,127,184,206,178,106,141,44,
+108,8,0,0,0,0,73,69,78,68,174,66,96,130};
+
+static size_t xml_res_size_24 = 637;
+static unsigned char xml_res_file_24[] = {
+137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0,
+0,115,122,122,244,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
+72,89,115,0,0,6,40,0,0,6,40,1,59,154,118,221,0,0,0,25,116,69,88,116,83,
+111,102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,101,
+46,111,114,103,155,238,60,26,0,0,1,250,73,68,65,84,88,133,237,151,191,107,
+212,96,24,199,63,79,46,119,189,90,184,201,193,31,187,5,7,57,255,128,162,
+14,66,55,71,65,144,34,232,162,130,131,58,28,5,53,151,156,83,55,113,237,
+230,225,84,112,40,66,135,20,58,116,170,168,8,138,184,168,224,15,112,234,
+116,73,239,146,199,161,173,151,228,114,114,105,211,166,195,125,167,228,
+155,188,249,126,242,62,111,158,36,162,170,20,41,163,208,244,49,192,81,0,
+16,26,238,38,200,68,220,45,45,106,107,230,118,174,65,214,198,51,132,91,
+9,219,51,119,194,227,0,26,84,242,12,223,38,160,60,144,195,17,40,193,232,
+0,182,44,225,200,108,113,0,80,71,121,141,45,43,88,114,238,208,1,182,2,202,
+59,155,151,49,120,139,35,139,88,114,234,208,0,188,30,166,31,68,198,41,55,
+48,248,130,45,22,11,50,117,224,0,10,166,215,133,173,32,102,31,3,30,209,
+225,51,77,185,122,160,0,40,38,64,103,16,2,224,52,194,75,108,113,177,228,
+108,22,0,51,213,21,206,200,188,123,51,106,253,17,179,90,214,30,187,16,0,
+149,210,192,200,75,161,33,31,214,237,250,202,117,154,175,190,114,210,235,
+95,83,166,73,121,241,10,141,85,143,148,6,145,212,111,153,165,138,31,243,
+38,203,169,16,0,252,226,56,15,244,30,109,254,251,228,250,251,106,68,67,
+202,145,73,67,74,32,235,24,210,142,90,37,13,22,80,170,105,16,208,159,137,
+16,9,215,56,239,206,209,92,254,46,39,250,37,80,174,129,206,140,6,160,250,
+73,237,11,207,163,214,230,124,207,129,65,128,4,196,170,17,234,221,139,143,
+223,124,252,150,188,167,230,70,29,24,17,32,77,66,47,109,17,109,31,226,167,
+215,229,97,229,137,182,211,207,24,174,145,215,128,64,47,233,41,116,16,158,
+250,21,166,107,173,236,225,144,97,6,66,37,144,232,174,240,98,2,26,147,142,
+254,216,75,112,102,128,127,51,32,184,166,114,127,202,209,119,251,9,222,
+11,192,123,224,78,205,209,229,60,130,51,3,212,90,122,37,207,224,93,21,254,
+69,100,130,250,32,113,87,233,230,158,164,116,145,68,47,7,79,198,191,102,
+99,128,162,1,254,2,87,167,156,99,57,199,119,147,0,0,0,0,73,69,78,68,174,
+66,96,130};
+
+static size_t xml_res_size_25 = 708;
+static unsigned char xml_res_file_25[] = {
+137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0,
+0,115,122,122,244,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
+72,89,115,0,0,5,163,0,0,5,163,1,164,52,119,130,0,0,0,25,116,69,88,116,83,
+111,102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,101,
+46,111,114,103,155,238,60,26,0,0,2,65,73,68,65,84,88,133,197,151,189,107,
+19,113,24,199,63,207,229,146,212,40,173,118,16,117,112,208,69,16,28,10,
+138,56,104,193,197,127,160,8,110,110,29,44,74,209,74,91,46,103,154,74,65,
+240,101,17,58,184,72,55,157,116,18,234,34,138,155,131,130,173,98,21,193,
+183,56,136,73,91,95,146,92,238,113,136,74,122,36,185,203,93,94,158,237,
+126,207,243,251,62,159,251,253,158,223,155,168,42,161,45,43,7,113,249,142,
+173,43,97,37,140,240,217,1,225,16,6,75,204,200,13,50,50,216,125,0,48,129,
+56,194,89,12,86,200,202,56,25,73,116,15,64,137,213,124,109,3,174,98,176,
+204,140,140,116,7,160,58,2,94,219,131,112,135,172,60,229,178,28,246,19,
+16,111,17,22,44,57,153,48,152,218,100,18,164,58,183,3,59,155,248,21,88,
+32,198,4,83,250,213,23,96,117,90,78,40,220,3,18,73,19,250,234,253,95,56,
+43,0,105,246,113,147,17,173,212,5,88,75,203,17,215,101,17,37,245,207,217,
+102,8,16,94,160,156,193,210,199,27,0,242,147,114,64,12,30,1,91,189,125,
+218,14,81,5,89,160,194,4,182,230,36,63,205,94,148,39,192,142,70,241,29,
+129,128,85,148,81,67,148,219,205,146,3,20,29,248,237,180,53,121,25,152,
+39,197,125,83,133,254,32,245,94,252,11,208,134,145,120,136,203,24,182,190,
+130,250,235,184,83,16,31,81,198,73,235,221,218,198,150,165,66,64,148,80,
+174,147,34,203,121,253,225,117,6,149,121,143,203,241,255,16,37,232,51,112,
+137,49,138,114,177,73,191,7,8,231,176,244,117,163,128,160,0,229,129,57,
+125,231,109,116,50,242,205,172,191,153,63,71,185,64,90,23,253,132,35,157,
+5,191,202,184,158,213,241,9,56,141,203,80,144,228,16,162,6,106,77,133,74,
+209,1,129,181,164,201,21,92,174,97,235,207,86,52,162,45,42,165,4,220,114,
+4,43,105,105,46,140,68,36,128,254,56,243,216,234,70,209,136,118,31,136,
+152,60,58,64,27,44,232,20,36,11,147,50,228,23,52,176,139,151,140,105,177,
+19,0,187,49,120,230,23,180,158,99,255,22,88,106,5,160,231,83,208,123,0,
+169,222,215,122,7,224,192,41,224,109,207,0,6,103,245,67,60,193,81,224,77,
+79,0,0,82,182,126,142,11,199,68,104,120,108,118,20,0,32,53,171,95,98,38,
+195,34,44,119,19,96,195,62,176,249,146,230,214,51,50,92,41,51,39,66,75,
+143,76,0,195,36,223,106,159,63,132,231,183,174,19,196,144,63,0,0,0,0,73,
+69,78,68,174,66,96,130};
+
+static size_t xml_res_size_26 = 915;
+static unsigned char xml_res_file_26[] = {
+137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0,
+0,115,122,122,244,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
+72,89,115,0,0,4,109,0,0,4,109,1,125,26,147,5,0,0,0,25,116,69,88,116,83,
+111,102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,101,
+46,111,114,103,155,238,60,26,0,0,3,16,73,68,65,84,88,133,197,151,75,76,
+19,81,20,134,191,51,45,69,141,70,37,186,192,184,48,4,19,21,220,128,10,198,
+32,132,196,133,47,140,27,163,241,177,48,49,198,168,145,141,137,82,218,177,
+173,2,75,8,137,46,140,27,99,226,194,133,111,19,87,20,65,23,10,46,84,92,
+24,95,43,93,152,136,111,177,237,204,113,161,192,148,182,208,78,139,158,
+100,22,115,207,127,206,249,230,222,59,115,207,136,170,226,198,164,227,233,
+124,98,35,126,48,122,52,88,125,219,85,18,192,155,115,225,208,115,31,242,
+227,48,208,10,82,130,216,15,221,22,207,25,64,34,143,118,32,210,14,148,141,
+143,26,57,63,68,82,206,108,150,64,34,131,53,168,221,9,82,155,206,139,202,
+157,204,209,241,47,106,214,60,119,5,32,161,193,5,136,118,0,251,1,153,146,
+52,189,217,32,59,53,88,125,37,107,0,9,97,32,3,7,128,54,160,196,101,97,167,
+197,192,104,210,96,213,221,41,1,36,216,83,131,101,156,197,83,84,133,215,
+87,128,218,99,246,3,213,13,106,174,126,144,17,64,66,247,23,241,43,222,11,
+148,3,224,245,81,96,136,79,168,181,206,185,39,12,167,87,205,117,239,40,
+93,92,9,18,6,70,72,196,32,17,43,36,192,60,12,239,122,231,128,49,81,161,
+71,203,127,105,91,189,137,199,174,68,184,61,13,16,73,150,241,29,214,72,
+227,43,96,139,156,232,219,70,34,214,9,44,201,176,28,175,129,15,142,251,
+89,192,202,108,1,82,102,32,5,164,163,238,58,197,44,39,17,11,96,197,191,
+164,145,156,210,224,170,218,209,11,213,125,217,22,135,9,51,32,161,91,179,
+136,205,157,155,42,243,128,112,129,68,226,2,134,225,71,60,7,29,177,137,
+92,10,78,180,228,25,136,207,222,143,90,239,50,94,80,170,102,205,17,212,
+174,64,184,246,23,59,47,0,87,223,113,53,215,188,0,182,75,228,113,29,216,
+223,254,57,192,24,72,160,170,47,159,120,200,98,19,78,183,229,5,32,193,254,
+106,9,68,27,254,27,0,150,46,197,162,71,252,209,27,210,18,93,230,38,69,94,
+123,96,44,94,217,138,176,81,252,125,231,241,205,8,163,90,154,49,98,78,252,
+115,1,1,172,241,120,197,11,214,33,172,248,110,138,138,219,177,191,118,170,
+217,48,50,85,134,228,211,176,53,122,4,155,238,73,244,67,192,79,199,253,
+2,96,73,138,234,207,41,250,26,53,142,169,89,117,107,50,128,92,103,160,34,
+43,213,159,195,171,12,175,239,166,68,6,110,32,118,179,182,174,121,147,78,
+58,125,175,225,232,41,170,52,97,27,67,18,30,12,72,247,203,226,201,1,148,
+40,240,121,162,40,111,8,152,9,26,102,248,211,19,105,27,76,218,160,201,13,
+201,153,134,103,96,109,37,121,157,11,5,49,128,232,30,109,169,126,239,116,
+167,111,74,91,238,109,66,244,42,170,5,232,199,100,24,209,0,190,134,115,
+106,98,167,120,51,181,229,114,178,119,23,134,125,9,21,183,251,68,129,139,
+224,57,174,109,117,31,50,137,38,255,47,240,71,43,81,77,211,31,140,10,140,
+205,168,158,76,227,121,132,97,55,235,233,198,7,105,124,217,3,76,25,220,
+218,191,23,59,113,209,49,244,22,67,90,244,116,253,229,108,115,228,251,37,
+252,219,140,200,48,66,59,190,133,93,106,174,200,169,131,205,15,192,150,
+239,136,213,133,111,102,88,205,181,31,221,164,248,13,195,123,60,251,33,
+106,248,255,0,0,0,0,73,69,78,68,174,66,96,130};
+
+static size_t xml_res_size_27 = 1139;
+static unsigned char xml_res_file_27[] = {
+137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0,
+0,115,122,122,244,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
+72,89,115,0,0,5,63,0,0,5,63,1,19,100,100,172,0,0,0,25,116,69,88,116,83,
+111,102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,101,
+46,111,114,103,155,238,60,26,0,0,3,240,73,68,65,84,88,133,197,151,105,104,
+92,85,20,199,127,231,189,89,226,130,173,68,91,148,182,81,16,23,90,16,67,
+6,53,16,237,88,63,196,74,49,69,237,7,23,4,69,106,5,133,32,196,36,109,153,
+219,44,141,130,40,42,162,45,8,34,181,197,20,75,145,10,130,202,196,170,165,
+38,197,5,219,88,233,7,169,180,136,138,154,72,200,100,250,150,227,135,201,
+50,153,119,103,156,73,90,60,48,204,155,179,253,255,247,222,243,206,153,
+11,139,145,151,143,92,68,207,72,247,98,82,56,139,34,240,207,18,23,165,159,
+158,99,157,255,15,129,186,156,11,128,234,0,61,35,29,11,73,33,53,121,155,
+99,171,112,194,187,80,167,25,209,6,84,150,131,222,60,109,85,224,25,50,169,
+55,206,63,1,51,220,138,35,237,40,119,83,121,215,20,216,66,38,181,235,252,
+16,232,251,166,129,32,120,19,184,167,218,132,192,36,49,185,142,173,77,191,
+86,227,28,43,107,49,195,173,4,193,30,160,190,6,240,28,208,86,45,56,128,
+107,213,118,14,109,36,56,119,0,213,75,113,203,115,44,145,60,200,3,100,82,
+31,87,27,0,182,243,220,62,212,130,232,62,32,78,224,129,151,47,182,250,8,
+7,129,135,112,221,107,208,96,229,180,62,7,108,32,211,244,81,45,224,80,122,
+4,38,187,148,60,123,128,228,172,46,240,10,223,241,228,97,52,216,66,230,
+182,209,89,91,255,209,229,248,228,128,251,200,164,62,169,21,28,74,119,32,
+79,31,232,170,136,87,224,237,66,39,214,97,138,192,1,188,208,91,12,56,20,
+191,5,29,217,21,196,56,133,82,55,223,69,247,178,51,253,8,34,186,80,144,
+74,50,183,3,46,155,163,224,252,76,82,54,95,40,112,40,174,1,145,251,209,
+18,28,113,123,48,119,76,92,40,240,57,2,29,217,21,168,222,84,98,27,35,81,
+191,215,22,164,6,103,210,231,201,139,147,172,3,38,9,217,47,25,106,126,3,
+96,230,8,28,214,68,44,226,124,134,89,125,206,22,52,238,243,129,23,242,214,
+148,199,131,40,143,33,28,210,94,186,22,78,64,194,107,163,166,96,52,170,
+131,241,110,238,37,164,13,32,239,195,148,63,109,80,118,104,63,87,213,74,
+160,112,4,110,44,65,16,206,183,132,50,110,11,8,225,214,226,1,146,159,38,
+80,23,35,142,79,35,88,142,194,140,172,193,161,185,36,209,17,76,234,120,
+129,64,168,97,36,72,244,18,27,1,81,206,150,142,176,34,18,103,108,49,136,
+108,68,181,167,36,209,227,192,241,194,17,168,156,182,68,93,111,203,165,
+73,222,135,40,80,222,231,40,33,63,88,9,192,13,209,68,250,7,204,212,128,
+203,143,22,214,107,81,141,140,235,203,13,99,161,203,122,148,17,20,5,60,
+28,14,198,160,77,12,209,157,52,234,0,107,35,250,152,124,15,197,157,176,
+107,232,180,165,13,111,96,32,125,168,204,170,248,219,176,116,98,156,252,
+202,87,200,149,243,193,140,172,71,34,117,241,11,153,84,3,20,119,66,13,163,
+64,34,59,24,28,180,143,108,10,187,81,25,92,29,132,190,136,94,101,112,230,
+113,142,128,200,235,80,82,140,170,141,124,187,108,126,241,212,34,193,87,
+189,192,45,37,218,16,120,59,74,96,32,125,18,113,14,68,217,106,23,219,14,
+183,215,12,222,153,125,14,207,235,194,143,244,178,247,48,77,39,103,126,
+204,47,50,243,229,213,228,189,81,96,73,36,161,56,239,146,136,183,99,154,
+255,170,8,220,245,105,61,184,175,2,15,207,234,98,137,194,7,198,113,189,
+213,108,107,62,107,39,0,208,253,249,38,52,216,7,98,251,247,59,6,206,59,
+56,236,39,30,14,99,210,133,14,96,78,36,240,126,111,68,101,19,202,19,160,
+151,69,34,221,132,18,75,180,97,82,31,206,91,151,117,21,157,217,231,17,94,
+168,184,82,193,7,249,13,21,129,240,74,32,94,214,87,81,92,167,131,254,59,
+95,138,166,41,39,91,179,79,17,242,90,197,196,213,137,135,208,206,206,180,
+245,194,82,249,94,176,125,168,5,95,119,3,55,46,8,90,57,69,60,246,40,189,
+45,95,151,115,249,239,155,145,57,145,192,251,243,105,194,224,89,192,50,
+53,173,114,6,135,23,137,47,219,93,110,164,87,79,96,150,136,58,76,102,211,
+184,210,138,112,59,42,13,136,94,129,50,133,72,14,229,39,144,239,32,56,72,
+50,253,5,70,162,109,217,34,255,2,107,225,84,76,2,118,23,86,0,0,0,0,73,69,
+78,68,174,66,96,130};
+
+static size_t xml_res_size_28 = 1110;
+static unsigned char xml_res_file_28[] = {
+137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0,
+0,115,122,122,244,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
+72,89,115,0,0,5,59,0,0,5,59,1,236,153,227,190,0,0,0,25,116,69,88,116,83,
+111,102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,101,
+46,111,114,103,155,238,60,26,0,0,3,211,73,68,65,84,88,133,181,150,93,104,
+28,101,20,134,159,51,59,217,38,43,24,69,80,10,181,84,173,10,70,208,182,
+201,38,254,180,106,164,244,34,96,197,84,47,68,208,155,18,84,42,161,23,109,
+211,84,246,219,68,13,8,182,66,105,139,138,94,216,171,70,80,227,47,166,13,
+93,107,253,205,106,81,27,68,40,177,180,197,54,68,109,137,198,164,153,157,
+57,94,52,147,205,206,204,102,179,27,123,96,96,230,61,231,61,231,253,206,
+247,55,176,16,235,202,110,102,231,87,53,11,73,97,85,94,124,176,29,213,87,
+112,175,168,60,71,197,2,186,178,207,161,236,2,96,124,34,182,16,1,82,54,
+35,61,248,44,176,59,207,149,31,17,29,193,227,36,150,126,141,197,0,59,146,
+167,47,143,128,244,96,27,176,175,4,207,67,232,199,147,93,152,250,254,255,
+79,192,139,217,197,228,244,4,144,152,55,7,62,70,229,25,76,253,169,98,1,
+243,95,3,157,245,103,129,135,129,137,50,4,180,32,250,61,233,193,181,197,
+2,42,89,3,107,129,62,160,156,237,231,128,182,146,74,126,24,116,148,191,
+11,82,13,7,129,245,248,157,80,247,122,98,177,101,192,227,8,31,0,110,4,171,
+10,164,151,174,111,239,10,58,202,239,128,111,126,39,108,247,6,58,155,70,
+102,112,51,120,59,162,123,65,86,71,176,134,81,119,5,166,105,204,7,42,63,
+68,252,78,56,158,83,128,155,134,227,232,120,51,232,190,8,214,141,72,204,
+204,6,42,239,64,41,83,21,210,217,183,17,158,8,120,38,208,216,114,204,202,
+223,97,33,29,40,101,34,10,137,167,129,223,2,158,26,196,221,232,127,92,62,
+1,0,166,238,31,4,19,225,105,245,95,42,158,130,113,195,67,137,24,143,0,9,
+148,126,60,222,18,131,23,22,49,20,71,254,29,1,174,42,192,85,23,99,146,231,
+42,234,192,249,237,164,156,41,250,38,29,158,68,121,20,120,3,139,222,200,
+96,83,55,5,12,132,112,161,14,42,152,130,63,183,176,68,96,7,192,197,28,76,
+230,102,92,173,154,102,93,17,218,241,48,36,203,0,108,0,158,255,226,14,60,
+231,158,2,191,218,71,121,105,205,79,65,154,37,172,154,225,77,139,0,168,
+182,1,161,17,248,44,162,216,223,160,1,72,23,229,5,120,78,35,158,236,41,
+12,112,211,64,72,128,196,57,19,60,235,102,137,56,19,46,14,68,93,96,42,46,
+248,83,224,90,163,225,0,189,37,42,83,109,140,99,34,28,13,226,147,46,103,
+199,60,222,143,174,175,55,71,128,167,242,2,208,99,97,191,181,26,163,161,
+53,34,6,47,166,108,16,161,15,200,161,40,240,157,90,172,171,53,252,21,49,
+16,1,30,12,227,252,10,179,183,97,71,230,52,232,146,128,136,22,122,238,251,
+36,122,84,160,134,234,11,80,125,181,225,66,177,24,210,217,22,208,143,2,
+232,48,169,134,155,160,96,23,120,239,134,217,222,11,81,93,240,77,12,147,
+115,22,55,135,109,208,174,8,79,159,255,146,79,110,199,95,159,110,231,108,
+91,193,197,207,187,139,22,40,101,110,85,26,88,25,64,61,212,218,27,22,208,
+125,239,16,194,129,80,18,213,14,58,143,180,151,93,188,51,179,25,199,233,
+32,55,21,244,28,192,172,58,225,127,20,30,197,91,15,46,197,170,250,25,244,
+202,112,198,216,126,22,217,237,152,187,195,11,109,182,117,28,186,6,177,
+95,69,53,127,11,218,241,75,15,156,71,245,54,76,242,92,180,0,128,109,71,
+90,193,125,7,137,186,39,100,12,225,77,68,123,169,186,246,135,233,99,246,
+210,92,59,86,18,245,30,67,121,10,168,13,81,237,184,135,109,111,32,213,248,
+94,65,198,232,81,12,108,3,171,103,206,145,130,3,214,40,162,10,122,29,154,
+63,29,163,77,182,210,115,255,203,33,180,104,252,246,204,38,208,157,165,
+19,151,52,7,216,68,207,3,175,69,202,154,147,218,121,184,9,143,253,192,242,
+138,74,139,252,66,204,219,72,119,243,151,69,67,74,38,49,67,113,166,70,219,
+80,182,132,15,170,98,166,195,88,246,110,150,38,246,208,86,239,204,21,57,
+255,31,18,163,22,185,204,26,92,107,61,232,157,8,183,162,90,131,80,141,242,
+7,194,73,148,111,80,239,83,170,155,51,24,9,255,156,68,216,127,65,255,70,
+162,172,242,156,128,0,0,0,0,73,69,78,68,174,66,96,130};
+
+static size_t xml_res_size_29 = 555;
+static unsigned char xml_res_file_29[] = {
+137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0,
+0,115,122,122,244,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
+72,89,115,0,0,5,137,0,0,5,137,1,109,104,157,250,0,0,0,25,116,69,88,116,
+83,111,102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,
+101,46,111,114,103,155,238,60,26,0,0,1,168,73,68,65,84,88,133,197,214,49,
+75,195,64,20,192,241,127,218,51,77,65,40,42,162,46,29,186,56,73,233,40,
+142,29,220,252,10,78,58,56,11,218,65,208,201,126,10,81,252,28,197,169,179,
+160,139,56,56,136,131,88,68,92,52,151,94,26,135,54,180,53,181,205,181,201,
+249,32,16,222,229,46,63,114,151,123,103,113,210,12,16,54,165,133,28,197,
+130,77,26,241,244,33,121,254,244,0,238,153,203,86,131,90,165,21,182,89,
+212,110,2,132,77,125,187,196,209,214,170,254,232,237,47,120,187,139,230,
+69,30,86,202,0,212,26,47,212,155,175,97,203,16,66,0,160,60,148,39,245,95,
+14,240,254,8,23,155,209,252,210,58,28,60,140,234,177,65,219,111,88,231,
+183,213,160,86,105,101,194,172,242,36,174,235,78,135,208,143,16,177,156,
+25,204,74,105,30,145,249,157,53,141,136,0,76,35,70,2,76,34,254,4,152,66,
+140,5,152,64,136,56,15,73,217,221,35,28,199,137,54,230,23,161,188,27,205,
+207,175,37,7,24,139,40,20,97,231,50,238,48,145,232,110,197,128,35,50,228,
+132,53,185,135,176,177,132,94,205,248,110,119,144,126,48,122,184,240,198,
+85,29,92,21,107,56,16,62,104,34,254,138,137,139,112,100,40,175,123,253,
+27,32,65,132,232,223,248,8,124,125,4,182,246,116,40,178,40,178,195,128,
+67,174,57,182,174,244,0,0,62,228,44,112,98,255,79,112,22,236,113,202,62,
+48,203,20,12,132,84,196,92,192,209,72,4,48,11,34,49,192,180,136,68,1,211,
+32,18,7,232,34,82,1,232,32,82,3,196,69,164,10,136,131,72,29,48,9,97,4,48,
+14,161,177,129,38,131,0,232,149,1,192,224,23,24,68,40,213,47,122,198,1,
+208,3,244,74,121,255,72,134,71,142,100,14,25,147,66,98,227,246,202,248,
+15,58,85,192,175,251,92,135,114,0,0,0,0,73,69,78,68,174,66,96,130};
+
+static size_t xml_res_size_30 = 743;
+static unsigned char xml_res_file_30[] = {
+137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0,
+0,115,122,122,244,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
+72,89,115,0,0,5,186,0,0,5,186,1,27,237,141,201,0,0,0,25,116,69,88,116,83,
+111,102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,101,
+46,111,114,103,155,238,60,26,0,0,2,100,73,68,65,84,88,133,237,151,61,104,
+19,97,24,199,127,111,238,46,105,47,130,37,218,8,78,90,5,151,96,16,138,144,
+69,51,139,224,160,136,210,85,65,197,193,14,130,83,74,68,4,65,80,92,138,
+139,58,41,74,197,73,136,131,32,210,69,44,85,176,197,218,148,34,162,88,107,
+91,41,169,215,36,247,241,58,216,214,59,155,207,203,165,46,254,183,251,63,
+239,243,222,143,247,142,231,121,94,33,165,196,45,113,249,117,31,132,46,
+198,163,170,210,211,21,9,19,128,230,151,45,59,191,80,42,131,204,201,76,
+239,37,119,76,93,183,90,136,110,164,76,30,218,189,153,187,71,118,52,254,
+150,217,49,248,62,230,245,186,19,16,79,240,112,124,129,19,143,167,1,146,
+34,59,18,145,3,189,253,213,1,252,234,253,16,188,204,122,189,3,3,16,79,120,
+61,193,5,145,29,97,21,34,20,24,64,51,250,13,113,163,50,64,105,73,197,177,
+54,8,226,109,151,42,178,47,54,81,226,1,64,52,172,132,116,77,217,233,216,
+101,134,63,254,224,248,144,221,248,134,243,251,65,185,185,246,88,182,44,
+98,31,122,184,149,114,106,166,169,20,85,13,97,29,6,248,210,191,215,19,212,
+117,29,77,211,42,103,218,37,152,121,227,50,98,160,166,97,91,18,128,206,
+171,163,20,103,28,242,247,39,57,181,111,107,13,128,26,50,12,163,58,68,225,
+43,220,73,121,189,45,123,224,220,132,199,26,254,180,196,156,81,253,147,
+214,253,9,13,195,192,52,205,122,203,106,106,98,174,232,31,32,40,136,150,
+0,218,9,209,84,29,104,7,68,211,133,40,104,8,95,149,208,48,12,76,43,152,
+98,229,187,23,24,74,12,253,108,30,77,117,109,161,84,169,25,43,58,47,30,
+113,140,231,164,229,237,202,0,125,79,166,155,6,81,35,157,8,101,117,27,11,
+152,2,160,108,175,175,128,187,248,204,65,70,189,249,238,135,167,147,139,
+77,3,32,22,65,235,128,144,191,195,108,189,27,74,192,44,226,183,129,5,211,
+142,91,128,240,156,219,160,184,214,26,136,5,97,77,65,9,9,143,61,40,143,
+242,138,68,197,20,15,192,73,114,173,1,72,192,132,168,6,170,235,108,115,
+164,170,2,4,63,17,73,248,105,130,85,123,12,104,35,64,147,16,237,155,9,27,
+132,104,239,80,186,2,33,157,234,20,237,159,138,37,88,102,25,28,155,2,58,
+223,136,121,194,193,221,11,234,64,96,46,147,17,167,199,51,226,204,212,154,
+31,13,153,27,3,240,7,226,158,188,146,190,238,182,255,205,197,228,63,128,
+75,42,29,5,155,146,254,14,96,59,207,68,189,4,63,42,18,150,32,64,58,179,
+127,199,126,1,226,42,223,28,85,35,230,39,0,0,0,0,73,69,78,68,174,66,96,
+130};
+
+static size_t xml_res_size_31 = 1110;
+static unsigned char xml_res_file_31[] = {
+137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0,
+0,115,122,122,244,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
+72,89,115,0,0,4,198,0,0,4,198,1,67,50,23,10,0,0,0,25,116,69,88,116,83,111,
+102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,101,46,
+111,114,103,155,238,60,26,0,0,3,211,73,68,65,84,88,133,181,151,77,108,84,
+85,20,199,127,231,205,180,99,75,90,153,6,91,208,82,67,44,73,149,88,173,
+118,106,92,64,23,26,67,217,24,53,22,141,113,225,74,131,214,68,91,52,148,
+143,9,177,104,68,36,49,152,70,13,38,117,225,71,74,82,54,13,2,146,128,138,
+11,27,170,80,148,64,196,16,107,83,105,196,78,117,106,103,94,233,123,199,
+197,56,227,76,231,190,233,188,166,158,228,109,206,61,231,127,126,185,247,
+220,123,223,21,85,197,175,73,207,208,26,92,235,211,92,39,49,221,217,220,
+230,87,43,232,187,58,128,74,4,184,47,215,7,178,123,120,133,70,239,189,230,
+71,202,90,20,128,75,147,209,47,238,93,126,165,22,7,96,201,221,102,0,235,
+255,7,144,215,135,87,161,180,24,7,213,53,251,11,233,21,219,132,178,251,
+204,131,136,244,130,174,93,32,242,39,84,183,104,180,249,132,111,0,233,62,
+245,5,200,44,34,31,179,162,228,176,190,116,127,66,246,141,44,99,198,126,
+11,228,57,64,138,162,5,5,125,143,242,208,86,237,106,252,91,246,141,44,35,
+113,253,97,112,159,68,41,209,93,145,141,121,0,178,237,203,199,17,237,207,
+18,153,198,10,124,69,105,217,157,192,234,34,11,207,183,49,132,31,80,54,
+0,229,255,225,233,99,26,141,12,100,0,228,192,229,16,191,141,93,2,110,205,
+147,8,150,166,190,165,181,43,132,151,223,174,29,245,118,170,9,199,127,125,
+197,88,28,96,110,54,245,45,173,173,33,22,123,25,210,7,145,37,53,20,234,
+197,52,64,214,76,84,134,2,52,173,76,205,234,247,87,103,248,203,118,124,
+50,200,77,144,221,3,221,39,187,65,122,40,212,104,193,82,170,42,202,233,
+221,84,71,251,186,170,76,160,2,253,63,78,178,229,200,40,147,137,185,133,
+42,59,160,157,186,43,242,78,14,0,128,108,255,250,9,212,233,3,66,166,204,
+112,89,144,111,159,109,100,109,117,165,81,121,244,207,89,154,62,184,80,
+0,66,166,81,221,172,209,230,35,105,79,206,65,164,123,214,127,134,59,183,
+195,11,253,237,135,106,169,14,41,201,100,210,56,94,119,99,41,189,155,234,
+188,210,65,180,51,187,120,30,64,42,72,170,76,185,21,161,0,143,52,132,1,
+176,109,219,19,162,125,93,21,149,161,128,25,192,149,91,230,187,242,1,172,
+192,61,166,220,198,154,178,156,230,240,130,16,200,52,103,190,182,54,47,
+12,224,97,166,77,98,219,54,182,109,23,21,235,101,249,0,174,243,157,41,240,
+252,68,194,40,156,76,38,115,32,20,56,123,117,198,92,205,149,51,11,3,136,
+53,101,202,141,219,14,135,46,76,26,117,179,33,62,57,255,135,247,153,32,
+58,158,239,202,222,134,59,78,63,141,235,124,8,90,98,202,95,126,67,128,211,
+207,52,80,91,105,62,154,127,183,45,90,250,46,19,75,122,1,16,199,213,118,
+141,70,142,166,93,153,25,144,109,39,119,226,206,125,228,85,28,96,42,233,
+176,190,239,18,3,23,99,57,203,161,192,192,197,24,45,239,159,35,54,157,240,
+74,7,165,2,145,65,121,109,248,197,76,93,85,69,182,159,122,23,229,121,239,
+204,124,171,8,5,104,172,41,3,96,100,34,65,60,123,218,139,185,192,148,253,
+26,109,238,76,221,5,174,78,32,197,94,245,41,139,219,14,223,140,78,155,7,
+13,119,71,158,137,94,131,244,18,220,188,122,47,240,139,47,130,133,172,240,
+45,122,133,112,120,127,6,64,59,234,109,84,182,206,11,154,194,178,14,131,
+142,45,30,194,30,71,221,99,64,238,190,84,237,210,142,122,59,3,0,160,111,
+180,30,2,78,0,131,168,180,179,170,118,165,246,108,120,20,39,126,7,234,28,
+68,125,156,47,138,162,206,65,156,120,131,70,91,54,82,94,90,141,200,83,136,
+14,130,30,75,255,13,129,159,159,210,174,227,109,132,66,7,80,189,173,112,
+32,63,115,221,121,65,247,62,112,180,96,156,95,128,76,194,171,159,215,18,
+44,31,65,53,156,63,40,253,186,167,117,179,31,61,223,239,2,125,179,109,12,
+200,59,82,255,29,29,242,171,183,184,151,145,234,57,15,53,179,127,201,1,
+44,49,94,88,4,57,235,87,106,113,175,99,113,134,192,154,183,12,50,169,209,
+86,95,47,99,128,127,0,231,244,140,94,3,164,35,138,0,0,0,0,73,69,78,68,174,
+66,96,130};
+
+static size_t xml_res_size_32 = 914;
+static unsigned char xml_res_file_32[] = {
+137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0,
+0,115,122,122,244,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
+72,89,115,0,0,5,7,0,0,5,7,1,236,210,93,151,0,0,0,25,116,69,88,116,83,111,
+102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,101,46,
+111,114,103,155,238,60,26,0,0,3,15,73,68,65,84,88,133,237,151,93,72,83,
+97,24,199,127,239,230,218,102,26,36,125,104,17,20,102,102,73,162,105,41,
+70,22,66,209,85,55,65,5,82,4,121,147,150,125,42,6,65,69,132,4,101,23,65,
+16,20,81,65,17,20,131,40,251,162,46,42,40,115,73,177,18,179,32,178,154,
+105,68,31,150,231,52,207,222,46,206,113,31,109,122,206,50,240,34,255,55,
+123,207,115,254,123,158,223,158,243,188,123,55,33,165,100,36,101,27,209,
+234,163,0,64,146,21,147,216,223,210,0,212,37,148,89,200,13,114,79,209,105,
+51,219,136,119,96,196,1,146,68,253,157,101,224,72,29,212,225,74,214,176,
+145,69,162,187,85,138,2,177,207,251,101,72,143,8,126,23,236,190,251,18,
+73,214,160,38,187,3,28,206,4,171,91,86,187,249,16,106,1,253,53,2,34,9,141,
+92,94,83,196,11,0,30,51,7,31,153,244,99,79,152,192,210,46,64,11,128,128,
+212,36,141,195,162,145,10,154,112,163,70,89,250,112,114,142,21,236,144,
+219,248,78,114,76,10,27,65,118,113,150,12,241,137,131,114,3,221,164,25,
+113,139,42,237,111,161,89,91,77,37,158,152,226,0,110,84,42,241,240,76,172,
+161,140,39,49,247,151,226,165,65,28,163,134,11,108,22,23,67,113,75,29,200,
+228,61,151,68,29,174,126,21,5,112,205,88,4,243,214,193,148,66,221,240,161,
+5,158,157,129,206,251,76,199,79,147,216,66,158,60,79,7,211,66,57,222,146,
+142,68,32,144,188,145,25,161,184,233,16,218,8,114,77,212,80,140,15,16,176,
+244,0,206,210,173,184,220,127,180,89,6,225,209,81,184,181,19,144,60,32,
+143,197,242,4,193,136,38,103,209,73,58,159,184,71,254,64,168,221,244,17,
+172,229,166,81,28,200,223,8,69,85,168,191,2,40,138,18,109,20,54,40,222,
+14,133,155,0,40,229,41,235,185,26,101,233,96,90,100,113,227,3,154,168,76,
+120,245,133,123,60,148,237,13,197,85,85,141,133,0,40,111,0,183,62,96,229,
+162,217,44,189,57,64,62,237,250,34,163,16,198,140,141,186,23,23,98,76,10,
+76,93,8,64,33,109,195,3,112,163,50,147,119,250,197,164,220,184,158,184,
+16,147,243,0,152,197,91,146,137,211,37,171,0,125,56,249,74,138,126,241,
+227,227,160,62,85,85,81,213,136,173,217,235,7,224,11,169,252,196,245,247,
+0,0,173,100,235,139,174,214,33,125,138,162,132,33,252,250,220,180,144,99,
+150,222,28,192,203,108,125,209,211,6,175,174,155,67,248,46,67,183,190,107,
+154,153,59,124,128,147,114,37,223,48,134,239,230,214,80,123,227,170,215,
+143,114,165,10,85,131,175,164,112,92,174,26,62,128,159,9,212,203,106,163,
+64,23,156,42,129,231,23,32,24,8,155,130,1,61,118,170,4,122,187,80,2,176,
+165,191,134,247,76,52,5,48,63,142,13,29,19,135,168,160,41,28,176,59,195,
+59,163,219,7,90,120,8,207,177,130,106,89,171,159,160,118,199,80,105,45,
+28,199,134,170,101,45,183,89,192,17,209,72,26,223,244,130,198,176,13,232,
+51,227,216,46,183,225,97,137,30,8,24,80,67,64,88,6,0,240,176,132,7,50,143,
+229,60,100,190,104,163,192,248,146,122,66,54,94,153,195,13,138,233,97,124,
+244,155,76,32,44,63,130,97,43,254,227,48,63,140,254,153,2,106,248,215,85,
+132,196,232,127,195,255,30,224,55,133,61,15,69,51,241,172,123,0,0,0,0,73,
+69,78,68,174,66,96,130};
+
+static size_t xml_res_size_33 = 759;
+static unsigned char xml_res_file_33[] = {
+137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0,
+0,115,122,122,244,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
+72,89,115,0,0,5,163,0,0,5,163,1,164,52,119,130,0,0,0,25,116,69,88,116,83,
+111,102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,101,
+46,111,114,103,155,238,60,26,0,0,2,116,73,68,65,84,88,133,197,151,75,104,
+19,97,16,128,191,217,236,174,122,16,169,151,82,188,249,194,39,136,86,105,
+21,27,3,90,60,120,21,196,199,177,55,241,110,250,72,19,26,209,90,69,177,
+136,96,15,30,60,8,245,224,81,16,193,90,65,69,91,8,72,75,209,131,32,52,69,
+4,123,176,180,110,154,29,15,33,193,184,221,60,54,15,7,254,203,254,243,248,
+152,153,127,254,127,69,85,9,42,18,159,222,142,145,109,209,254,195,31,130,
+250,48,130,5,126,187,89,18,83,119,16,119,6,149,35,65,131,3,152,213,5,158,
+177,49,150,47,35,86,31,104,75,238,171,86,229,35,48,128,36,166,206,34,122,
+29,101,107,241,134,17,106,40,128,196,167,59,16,247,54,208,185,182,70,109,
+25,16,191,38,148,107,239,91,201,132,134,17,46,1,82,194,71,26,228,123,69,
+209,84,135,52,214,254,180,36,128,140,143,135,72,181,94,193,48,99,152,246,
+166,138,28,87,46,14,112,70,7,218,95,172,9,32,253,111,194,184,171,163,40,
+251,0,48,237,220,170,175,44,161,198,73,141,29,124,87,0,144,190,201,54,212,
+29,65,245,188,71,189,49,16,63,81,186,52,214,254,73,136,190,186,8,122,31,
+101,163,175,122,99,32,210,24,238,49,3,139,103,40,15,129,140,175,234,170,
+147,91,245,149,54,92,227,81,161,7,164,119,114,15,100,71,81,34,190,38,117,
+207,132,164,188,167,160,119,226,28,232,8,202,150,198,67,72,202,115,23,104,
+50,252,4,75,118,33,220,34,119,108,138,165,206,229,240,29,68,0,50,240,122,
+55,89,247,46,202,41,207,102,33,19,114,3,205,60,240,26,155,47,225,159,177,
+237,85,74,149,28,163,154,232,154,5,186,165,119,226,52,48,140,234,254,194,
+102,62,11,150,245,67,7,58,190,122,92,39,62,250,55,245,95,82,209,117,172,
+201,240,115,236,240,1,68,123,16,153,47,130,112,86,130,63,40,42,5,0,208,
+24,174,38,35,99,56,191,119,98,24,113,132,95,0,184,154,109,10,64,1,228,102,
+247,146,14,117,13,98,201,14,96,12,113,107,234,200,192,87,169,14,134,23,
+128,30,137,7,123,85,229,165,38,99,200,149,230,191,2,212,42,85,151,64,238,
+125,89,199,252,183,189,101,21,237,13,235,9,149,119,95,125,15,44,164,183,
+33,50,85,86,47,179,2,90,126,108,55,182,4,21,140,237,198,247,64,25,136,230,
+52,161,47,132,46,54,239,20,120,32,228,51,161,204,133,154,222,244,129,32,
+0,76,123,14,147,136,70,59,211,205,159,3,217,204,28,206,114,68,163,135,210,
+208,236,65,36,50,139,197,9,29,58,158,206,127,170,190,4,182,177,136,147,
+125,92,181,157,226,96,91,87,53,118,180,232,47,234,15,114,76,236,98,147,
+84,227,24,0,0,0,0,73,69,78,68,174,66,96,130};
+
+static size_t xml_res_size_34 = 3670;
+static unsigned char xml_res_file_34[] = {
+60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101,
+110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101,
+115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58,
+47,47,119,119,119,46,119,120,119,105,100,103,101,116,115,46,111,114,103,
+47,119,120,120,114,99,34,62,10,32,32,60,33,45,45,32,72,97,110,100,108,101,
+114,32,71,101,110,101,114,97,116,105,111,110,32,105,115,32,79,78,32,45,
+45,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,
+120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,97,98,111,117,116,
+51,50,34,62,77,97,105,110,70,114,97,109,101,66,105,116,109,97,112,115,46,
+99,112,112,36,100,97,116,97,95,105,109,97,103,101,115,95,114,105,98,98,
+111,110,95,97,98,111,117,116,51,50,46,112,110,103,60,47,111,98,106,101,
+99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,
+119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,97,100,100,51,
+50,34,62,77,97,105,110,70,114,97,109,101,66,105,116,109,97,112,115,46,99,
+112,112,36,100,97,116,97,95,105,109,97,103,101,115,95,114,105,98,98,111,
+110,95,97,100,100,51,50,46,112,110,103,60,47,111,98,106,101,99,116,62,10,
+32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,
+116,109,97,112,34,32,110,97,109,101,61,34,99,104,97,114,116,51,50,34,62,
+77,97,105,110,70,114,97,109,101,66,105,116,109,97,112,115,46,99,112,112,
+36,100,97,116,97,95,105,109,97,103,101,115,95,114,105,98,98,111,110,95,
+99,104,97,114,116,51,50,46,112,110,103,60,47,111,98,106,101,99,116,62,10,
+32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,
+116,109,97,112,34,32,110,97,109,101,61,34,99,108,111,115,101,51,50,34,62,
+77,97,105,110,70,114,97,109,101,66,105,116,109,97,112,115,46,99,112,112,
+36,100,97,116,97,95,105,109,97,103,101,115,95,114,105,98,98,111,110,95,
+99,108,111,115,101,51,50,46,112,110,103,60,47,111,98,106,101,99,116,62,
+10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,
+105,116,109,97,112,34,32,110,97,109,101,61,34,99,111,112,121,51,50,34,62,
+77,97,105,110,70,114,97,109,101,66,105,116,109,97,112,115,46,99,112,112,
+36,100,97,116,97,95,105,109,97,103,101,115,95,114,105,98,98,111,110,95,
+99,111,112,121,51,50,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,
+32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,
+109,97,112,34,32,110,97,109,101,61,34,100,97,116,97,82,101,112,111,114,
+116,51,50,34,62,77,97,105,110,70,114,97,109,101,66,105,116,109,97,112,115,
+46,99,112,112,36,100,97,116,97,95,105,109,97,103,101,115,95,114,105,98,
+98,111,110,95,100,97,116,97,82,101,112,111,114,116,51,50,46,112,110,103,
+60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,
+108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,
+61,34,100,101,108,101,116,101,51,50,34,62,77,97,105,110,70,114,97,109,101,
+66,105,116,109,97,112,115,46,99,112,112,36,100,97,116,97,95,105,109,97,
+103,101,115,95,114,105,98,98,111,110,95,100,101,108,101,116,101,51,50,46,
+112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,
+116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,
+97,109,101,61,34,100,114,97,103,51,50,34,62,77,97,105,110,70,114,97,109,
+101,66,105,116,109,97,112,115,46,99,112,112,36,100,97,116,97,95,105,109,
+97,103,101,115,95,114,105,98,98,111,110,95,100,114,97,103,51,50,46,112,
+110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,
+32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,
+101,61,34,101,120,105,116,51,50,34,62,77,97,105,110,70,114,97,109,101,66,
+105,116,109,97,112,115,46,99,112,112,36,100,97,116,97,95,105,109,97,103,
+101,115,95,114,105,98,98,111,110,95,101,120,105,116,51,50,46,112,110,103,
+60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,
+108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,
+61,34,102,97,117,108,116,51,50,34,62,77,97,105,110,70,114,97,109,101,66,
+105,116,109,97,112,115,46,99,112,112,36,100,97,116,97,95,105,109,97,103,
+101,115,95,114,105,98,98,111,110,95,102,97,117,108,116,51,50,46,112,110,
+103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,
+99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,
+101,61,34,102,97,117,108,116,80,111,119,101,114,51,50,34,62,77,97,105,110,
+70,114,97,109,101,66,105,116,109,97,112,115,46,99,112,112,36,100,97,116,
+97,95,105,109,97,103,101,115,95,114,105,98,98,111,110,95,102,97,117,108,
+116,80,111,119,101,114,51,50,46,112,110,103,60,47,111,98,106,101,99,116,
+62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,
+66,105,116,109,97,112,34,32,110,97,109,101,61,34,102,105,116,51,50,34,62,
+77,97,105,110,70,114,97,109,101,66,105,116,109,97,112,115,46,99,112,112,
+36,100,97,116,97,95,105,109,97,103,101,115,95,114,105,98,98,111,110,95,
+102,105,116,51,50,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,
+60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,
+109,97,112,34,32,110,97,109,101,61,34,103,117,105,100,101,51,50,34,62,77,
+97,105,110,70,114,97,109,101,66,105,116,109,97,112,115,46,99,112,112,36,
+100,97,116,97,95,105,109,97,103,101,115,95,114,105,98,98,111,110,95,103,
+117,105,100,101,51,50,46,112,110,103,60,47,111,98,106,101,99,116,62,10,
+32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,
+116,109,97,112,34,32,110,97,109,101,61,34,108,111,103,111,49,50,56,34,62,
+77,97,105,110,70,114,97,109,101,66,105,116,109,97,112,115,46,99,112,112,
+36,100,97,116,97,95,105,109,97,103,101,115,95,108,111,103,111,49,50,56,
+46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,
+99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,
+97,109,101,61,34,108,111,103,111,49,54,34,62,77,97,105,110,70,114,97,109,
+101,66,105,116,109,97,112,115,46,99,112,112,36,100,97,116,97,95,105,109,
+97,103,101,115,95,108,111,103,111,49,54,46,112,110,103,60,47,111,98,106,
+101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,
+34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,108,111,103,
+111,50,53,54,34,62,77,97,105,110,70,114,97,109,101,66,105,116,109,97,112,
+115,46,99,112,112,36,100,97,116,97,95,105,109,97,103,101,115,95,108,111,
+103,111,50,53,54,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,
+60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,
+109,97,112,34,32,110,97,109,101,61,34,108,111,103,111,51,50,34,62,77,97,
+105,110,70,114,97,109,101,66,105,116,109,97,112,115,46,99,112,112,36,100,
+97,116,97,95,105,109,97,103,101,115,95,108,111,103,111,51,50,46,112,110,
+103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,
+99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,
+101,61,34,108,111,103,111,54,52,34,62,77,97,105,110,70,114,97,109,101,66,
+105,116,109,97,112,115,46,99,112,112,36,100,97,116,97,95,105,109,97,103,
+101,115,95,108,111,103,111,54,52,46,112,110,103,60,47,111,98,106,101,99,
+116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,
+120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,109,111,118,101,51,
+50,34,62,77,97,105,110,70,114,97,109,101,66,105,116,109,97,112,115,46,99,
+112,112,36,100,97,116,97,95,105,109,97,103,101,115,95,114,105,98,98,111,
+110,95,109,111,118,101,51,50,46,112,110,103,60,47,111,98,106,101,99,116,
+62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,
+66,105,116,109,97,112,34,32,110,97,109,101,61,34,110,101,119,51,50,34,62,
+77,97,105,110,70,114,97,109,101,66,105,116,109,97,112,115,46,99,112,112,
+36,100,97,116,97,95,105,109,97,103,101,115,95,114,105,98,98,111,110,95,
+110,101,119,51,50,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,
+60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,
+109,97,112,34,32,110,97,109,101,61,34,111,112,101,110,51,50,34,62,77,97,
+105,110,70,114,97,109,101,66,105,116,109,97,112,115,46,99,112,112,36,100,
+97,116,97,95,105,109,97,103,101,115,95,114,105,98,98,111,110,95,111,112,
+101,110,51,50,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,
+111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,
+97,112,34,32,110,97,109,101,61,34,112,97,115,116,101,51,50,34,62,77,97,
+105,110,70,114,97,109,101,66,105,116,109,97,112,115,46,99,112,112,36,100,
+97,116,97,95,105,109,97,103,101,115,95,114,105,98,98,111,110,95,112,97,
+115,116,101,51,50,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,
+60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,
+109,97,112,34,32,110,97,109,101,61,34,112,97,117,115,101,83,116,111,112,
+112,101,100,51,50,34,62,77,97,105,110,70,114,97,109,101,66,105,116,109,
+97,112,115,46,99,112,112,36,100,97,116,97,95,105,109,97,103,101,115,95,
+114,105,98,98,111,110,95,112,97,117,115,101,83,116,111,112,112,101,100,
+51,50,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,
+106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,
+34,32,110,97,109,101,61,34,112,108,97,121,83,116,111,112,112,101,100,51,
+50,34,62,77,97,105,110,70,114,97,109,101,66,105,116,109,97,112,115,46,99,
+112,112,36,100,97,116,97,95,105,109,97,103,101,115,95,114,105,98,98,111,
+110,95,112,108,97,121,83,116,111,112,112,101,100,51,50,46,112,110,103,60,
+47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,
+97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,
+34,112,111,119,101,114,70,76,111,119,51,50,34,62,77,97,105,110,70,114,97,
+109,101,66,105,116,109,97,112,115,46,99,112,112,36,100,97,116,97,95,105,
+109,97,103,101,115,95,114,105,98,98,111,110,95,112,111,119,101,114,70,76,
+111,119,51,50,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,
+111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,
+97,112,34,32,110,97,109,101,61,34,114,101,100,111,51,50,34,62,77,97,105,
+110,70,114,97,109,101,66,105,116,109,97,112,115,46,99,112,112,36,100,97,
+116,97,95,105,109,97,103,101,115,95,114,105,98,98,111,110,95,114,101,100,
+111,51,50,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,
+98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,
+112,34,32,110,97,109,101,61,34,114,101,115,101,116,51,50,34,62,77,97,105,
+110,70,114,97,109,101,66,105,116,109,97,112,115,46,99,112,112,36,100,97,
+116,97,95,105,109,97,103,101,115,95,114,105,98,98,111,110,95,114,101,115,
+101,116,51,50,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,
+111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,
+97,112,34,32,110,97,109,101,61,34,114,111,116,97,116,101,67,108,111,99,
+107,51,50,34,62,77,97,105,110,70,114,97,109,101,66,105,116,109,97,112,115,
+46,99,112,112,36,100,97,116,97,95,105,109,97,103,101,115,95,114,105,98,
+98,111,110,95,114,111,116,97,116,101,67,108,111,99,107,51,50,46,112,110,
+103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,
+99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,
+101,61,34,114,111,116,97,116,101,67,111,117,110,116,101,114,67,108,111,
+99,107,51,50,34,62,77,97,105,110,70,114,97,109,101,66,105,116,109,97,112,
+115,46,99,112,112,36,100,97,116,97,95,105,109,97,103,101,115,95,114,105,
+98,98,111,110,95,114,111,116,97,116,101,67,111,117,110,116,101,114,67,108,
+111,99,107,51,50,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,
+60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,
+109,97,112,34,32,110,97,109,101,61,34,115,97,118,101,51,50,34,62,77,97,
+105,110,70,114,97,109,101,66,105,116,109,97,112,115,46,99,112,112,36,100,
+97,116,97,95,105,109,97,103,101,115,95,114,105,98,98,111,110,95,115,97,
+118,101,51,50,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,
+111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,
+97,112,34,32,110,97,109,101,61,34,115,97,118,101,65,115,51,50,34,62,77,
+97,105,110,70,114,97,109,101,66,105,116,109,97,112,115,46,99,112,112,36,
+100,97,116,97,95,105,109,97,103,101,115,95,114,105,98,98,111,110,95,115,
+97,118,101,65,115,51,50,46,112,110,103,60,47,111,98,106,101,99,116,62,10,
+32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,
+116,109,97,112,34,32,110,97,109,101,61,34,115,101,116,116,105,110,103,115,
+51,50,34,62,77,97,105,110,70,114,97,109,101,66,105,116,109,97,112,115,46,
+99,112,112,36,100,97,116,97,95,105,109,97,103,101,115,95,114,105,98,98,
+111,110,95,115,101,116,116,105,110,103,115,51,50,46,112,110,103,60,47,111,
+98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,
+115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,115,
+110,97,112,51,50,34,62,77,97,105,110,70,114,97,109,101,66,105,116,109,97,
+112,115,46,99,112,112,36,100,97,116,97,95,105,109,97,103,101,115,95,114,
+105,98,98,111,110,95,115,110,97,112,51,50,46,112,110,103,60,47,111,98,106,
+101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,
+34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,117,110,100,
+111,51,50,34,62,77,97,105,110,70,114,97,109,101,66,105,116,109,97,112,115,
+46,99,112,112,36,100,97,116,97,95,105,109,97,103,101,115,95,114,105,98,
+98,111,110,95,117,110,100,111,51,50,46,112,110,103,60,47,111,98,106,101,
+99,116,62,10,60,47,114,101,115,111,117,114,99,101,62,10};
+
+void wxC9ED9InitBitmapResources()
+{
+
+ // Check for memory FS. If not present, load the handler:
+ {
+ wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one"));
+ wxFileSystem fsys;
+ wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file"));
+ wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file"));
+ if (f) delete f;
+ else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase);
+ }
+
+ XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_about32.png"), xml_res_file_0, xml_res_size_0, wxT("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_add32.png"), xml_res_file_1, xml_res_size_1, wxT("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_chart32.png"), xml_res_file_2, xml_res_size_2, wxT("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_close32.png"), xml_res_file_3, xml_res_size_3, wxT("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_copy32.png"), xml_res_file_4, xml_res_size_4, wxT("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_dataReport32.png"), xml_res_file_5, xml_res_size_5, wxT("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_delete32.png"), xml_res_file_6, xml_res_size_6, wxT("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_drag32.png"), xml_res_file_7, xml_res_size_7, wxT("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_exit32.png"), xml_res_file_8, xml_res_size_8, wxT("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_fault32.png"), xml_res_file_9, xml_res_size_9, wxT("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_faultPower32.png"), xml_res_file_10, xml_res_size_10, wxT("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_fit32.png"), xml_res_file_11, xml_res_size_11, wxT("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_guide32.png"), xml_res_file_12, xml_res_size_12, wxT("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_logo128.png"), xml_res_file_13, xml_res_size_13, wxT("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_logo16.png"), xml_res_file_14, xml_res_size_14, wxT("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_logo256.png"), xml_res_file_15, xml_res_size_15, wxT("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_logo32.png"), xml_res_file_16, xml_res_size_16, wxT("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_logo64.png"), xml_res_file_17, xml_res_size_17, wxT("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_move32.png"), xml_res_file_18, xml_res_size_18, wxT("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_new32.png"), xml_res_file_19, xml_res_size_19, wxT("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_open32.png"), xml_res_file_20, xml_res_size_20, wxT("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_paste32.png"), xml_res_file_21, xml_res_size_21, wxT("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_pauseStopped32.png"), xml_res_file_22, xml_res_size_22, wxT("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_playStopped32.png"), xml_res_file_23, xml_res_size_23, wxT("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_powerFLow32.png"), xml_res_file_24, xml_res_size_24, wxT("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_redo32.png"), xml_res_file_25, xml_res_size_25, wxT("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_reset32.png"), xml_res_file_26, xml_res_size_26, wxT("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_rotateClock32.png"), xml_res_file_27, xml_res_size_27, wxT("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_rotateCounterClock32.png"), xml_res_file_28, xml_res_size_28, wxT("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_save32.png"), xml_res_file_29, xml_res_size_29, wxT("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_saveAs32.png"), xml_res_file_30, xml_res_size_30, wxT("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_settings32.png"), xml_res_file_31, xml_res_size_31, wxT("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_snap32.png"), xml_res_file_32, xml_res_size_32, wxT("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_undo32.png"), xml_res_file_33, xml_res_size_33, wxT("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$C__Users_NDSE-69_Documents_GitHub_PSP_Project_MainFrameBitmaps.xrc"), xml_res_file_34, xml_res_size_34, wxT("text/xml"));
+ wxXmlResource::Get()->Load(wxT("memory:XRC_resource/MainFrameBitmaps.cpp$C__Users_NDSE-69_Documents_GitHub_PSP_Project_MainFrameBitmaps.xrc"));
+}
diff --git a/Project/base/PropertiesFormBase.cpp b/Project/base/PropertiesFormBase.cpp
new file mode 100644
index 0000000..b451f01
--- /dev/null
+++ b/Project/base/PropertiesFormBase.cpp
@@ -0,0 +1,806 @@
+//////////////////////////////////////////////////////////////////////
+// This file was auto-generated by codelite's wxCrafter Plugin
+// wxCrafter project file: PropertiesForm.wxcp
+// Do not modify this file by hand!
+//////////////////////////////////////////////////////////////////////
+
+#include "PropertiesFormBase.h"
+
+
+// Declare the bitmap loading function
+extern void wxCDAD0InitBitmapResources();
+
+static bool bBitmapLoaded = false;
+
+
+GeneralPropertiesFormBase::GeneralPropertiesFormBase(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style)
+ : wxDialog(parent, id, title, pos, size, style)
+{
+ if ( !bBitmapLoaded ) {
+ // We need to initialise the default bitmap handler
+ wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler);
+ wxCDAD0InitBitmapResources();
+ bBitmapLoaded = true;
+ }
+
+ wxBoxSizer* boxSizer_lvl1_1 = new wxBoxSizer(wxVERTICAL);
+ this->SetSizer(boxSizer_lvl1_1);
+
+ m_notebook = new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), wxBK_DEFAULT);
+ m_notebook->SetName(wxT("m_notebook"));
+
+ boxSizer_lvl1_1->Add(m_notebook, 1, wxALL|wxEXPAND, WXC_FROM_DIP(5));
+
+ m_panelGeneral = new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL);
+ m_notebook->AddPage(m_panelGeneral, _("General"), false);
+
+ wxBoxSizer* boxSizerLvl2_1 = new wxBoxSizer(wxVERTICAL);
+ m_panelGeneral->SetSizer(boxSizerLvl2_1);
+
+ wxBoxSizer* boxSizerLvl3_1 = new wxBoxSizer(wxVERTICAL);
+
+ boxSizerLvl2_1->Add(boxSizerLvl3_1, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextLanguage = new wxStaticText(m_panelGeneral, wxID_ANY, _("Language"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+
+ boxSizerLvl3_1->Add(m_staticTextLanguage, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxArrayString m_choiceLanguageArr;
+ m_choiceLanguageArr.Add(wxT("English"));
+ m_choiceLanguageArr.Add(wxT("Portuguese"));
+ m_choiceLanguage = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), m_choiceLanguageArr, 0);
+ m_choiceLanguage->SetSelection(0);
+
+ boxSizerLvl3_1->Add(m_choiceLanguage, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl3_2 = new wxBoxSizer(wxVERTICAL);
+
+ boxSizerLvl2_1->Add(boxSizerLvl3_2, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextTheme = new wxStaticText(m_panelGeneral, wxID_ANY, _("Theme"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+
+ boxSizerLvl3_2->Add(m_staticTextTheme, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxArrayString m_choiceThemeArr;
+ m_choiceThemeArr.Add(wxT("Light"));
+ m_choiceThemeArr.Add(wxT("Dark"));
+ m_choiceTheme = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), m_choiceThemeArr, 0);
+ m_choiceTheme->SetSelection(0);
+
+ boxSizerLvl3_2->Add(m_choiceTheme, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizer_bottonButtons = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizer_lvl1_1->Add(boxSizer_bottonButtons, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5));
+
+ boxSizer_bottonButtons->Add(0, 0, 1, wxALL, WXC_FROM_DIP(5));
+
+ m_buttonOK = new wxButton(this, wxID_ANY, _("OK"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizer_bottonButtons->Add(m_buttonOK, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5));
+
+ m_buttonCancel = new wxButton(this, wxID_ANY, _("Cancel"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizer_bottonButtons->Add(m_buttonCancel, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5));
+
+
+ #if wxVERSION_NUMBER >= 2900
+ if(!wxPersistenceManager::Get().Find(m_notebook)){
+ wxPersistenceManager::Get().RegisterAndRestore(m_notebook);
+ } else {
+ wxPersistenceManager::Get().Restore(m_notebook);
+ }
+ #endif
+
+ SetName(wxT("GeneralPropertiesFormBase"));
+ SetSize(-1,-1);
+ if (GetSizer()) {
+ GetSizer()->Fit(this);
+ }
+ if(GetParent()) {
+ CentreOnParent(wxBOTH);
+ } else {
+ CentreOnScreen(wxBOTH);
+ }
+#if wxVERSION_NUMBER >= 2900
+ if(!wxPersistenceManager::Get().Find(this)) {
+ wxPersistenceManager::Get().RegisterAndRestore(this);
+ } else {
+ wxPersistenceManager::Get().Restore(this);
+ }
+#endif
+ // Connect events
+ m_buttonOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(GeneralPropertiesFormBase::OnButtonOKClick), NULL, this);
+ m_buttonCancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(GeneralPropertiesFormBase::OnButtonCancelClick), NULL, this);
+
+}
+
+GeneralPropertiesFormBase::~GeneralPropertiesFormBase()
+{
+ m_buttonOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(GeneralPropertiesFormBase::OnButtonOKClick), NULL, this);
+ m_buttonCancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(GeneralPropertiesFormBase::OnButtonCancelClick), NULL, this);
+
+}
+
+SimulationsSettingsFormBase::SimulationsSettingsFormBase(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style)
+ : wxDialog(parent, id, title, pos, size, style)
+{
+ if ( !bBitmapLoaded ) {
+ // We need to initialise the default bitmap handler
+ wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler);
+ wxCDAD0InitBitmapResources();
+ bBitmapLoaded = true;
+ }
+
+ wxBoxSizer* boxSizer_lvl1_1 = new wxBoxSizer(wxVERTICAL);
+ this->SetSizer(boxSizer_lvl1_1);
+
+ m_notebook = new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), wxBK_DEFAULT);
+ m_notebook->SetName(wxT("m_notebook"));
+
+ boxSizer_lvl1_1->Add(m_notebook, 1, wxALL|wxEXPAND, WXC_FROM_DIP(5));
+
+ m_panelGeneral = new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL);
+ m_notebook->AddPage(m_panelGeneral, _("General"), false);
+
+ wxBoxSizer* boxSizerLvl2_1 = new wxBoxSizer(wxVERTICAL);
+ m_panelGeneral->SetSizer(boxSizerLvl2_1);
+
+ wxBoxSizer* boxSizerLvl3_1 = new wxBoxSizer(wxVERTICAL);
+
+ boxSizerLvl2_1->Add(boxSizerLvl3_1, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextBasePower = new wxStaticText(m_panelGeneral, wxID_ANY, _("Base power"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+
+ boxSizerLvl3_1->Add(m_staticTextBasePower, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_1 = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl3_1->Add(boxSizerLvl4_1, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_textCtrlbasePower = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT("100,0"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlbasePower->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl4_1->Add(m_textCtrlbasePower, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxArrayString m_choiceBasePowerArr;
+ m_choiceBasePowerArr.Add(wxT("VA"));
+ m_choiceBasePowerArr.Add(wxT("kVA"));
+ m_choiceBasePowerArr.Add(wxT("MVA"));
+ m_choiceBasePower = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), m_choiceBasePowerArr, 0);
+ m_choiceBasePower->SetSelection(2);
+
+ boxSizerLvl4_1->Add(m_choiceBasePower, 0, wxLEFT|wxRIGHT|wxBOTTOM, WXC_FROM_DIP(5));
+
+ wxStaticBoxSizer* staticBoxSizerLvl3_2 = new wxStaticBoxSizer( new wxStaticBox(m_panelGeneral, wxID_ANY, _("Continuous calculation")), wxVERTICAL);
+
+ boxSizerLvl2_1->Add(staticBoxSizerLvl3_2, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5));
+
+ m_checkBoxFaultAfterPF = new wxCheckBox(m_panelGeneral, wxID_ANY, _("Calculate fault after power flow"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+ m_checkBoxFaultAfterPF->SetValue(true);
+
+ staticBoxSizerLvl3_2->Add(m_checkBoxFaultAfterPF, 0, wxALL, WXC_FROM_DIP(5));
+
+ m_checkBoxSCPowerAfterPF = new wxCheckBox(m_panelGeneral, wxID_ANY, _("Calculate short-circuit power after power flow"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);
+ m_checkBoxSCPowerAfterPF->SetValue(true);
+
+ staticBoxSizerLvl3_2->Add(m_checkBoxSCPowerAfterPF, 0, wxALL, WXC_FROM_DIP(5));
+
+ m_panelPF = new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL);
+ m_notebook->AddPage(m_panelPF, _("Power flow"), false);
+
+ wxBoxSizer* boxSizerLvl2_2 = new wxBoxSizer(wxVERTICAL);
+ m_panelPF->SetSizer(boxSizerLvl2_2);
+
+ wxBoxSizer* boxSizerLvl3_3 = new wxBoxSizer(wxVERTICAL);
+
+ boxSizerLvl2_2->Add(boxSizerLvl3_3, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextPFMethod = new wxStaticText(m_panelPF, wxID_ANY, _("Solution method"), wxDefaultPosition, wxDLG_UNIT(m_panelPF, wxSize(-1,-1)), 0);
+
+ boxSizerLvl3_3->Add(m_staticTextPFMethod, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxArrayString m_choicePFMethodArr;
+ m_choicePFMethodArr.Add(wxT("Gauss-Seidel"));
+ m_choicePFMethodArr.Add(wxT("Newton-Raphson"));
+ m_choicePFMethod = new wxChoice(m_panelPF, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelPF, wxSize(-1,-1)), m_choicePFMethodArr, 0);
+ m_choicePFMethod->SetSelection(0);
+
+ boxSizerLvl3_3->Add(m_choicePFMethod, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND, WXC_FROM_DIP(5));
+
+ wxGridSizer* gridSizerLvl_3_4 = new wxGridSizer(0, 2, 0, 0);
+
+ boxSizerLvl2_2->Add(gridSizerLvl_3_4, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_2 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl_3_4->Add(boxSizerLvl4_2, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextAccFactor = new wxStaticText(m_panelPF, wxID_ANY, _("Acceleration factor"), wxDefaultPosition, wxDLG_UNIT(m_panelPF, wxSize(-1,-1)), 0);
+
+ boxSizerLvl4_2->Add(m_staticTextAccFactor, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_textCtrlAccFactor = new wxTextCtrl(m_panelPF, wxID_ANY, wxT("1,0"), wxDefaultPosition, wxDLG_UNIT(m_panelPF, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlAccFactor->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl4_2->Add(m_textCtrlAccFactor, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_3 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl_3_4->Add(boxSizerLvl4_3, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextPFTolerance = new wxStaticText(m_panelPF, wxID_ANY, _("Tolerance"), wxDefaultPosition, wxDLG_UNIT(m_panelPF, wxSize(-1,-1)), 0);
+
+ boxSizerLvl4_3->Add(m_staticTextPFTolerance, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_textCtrlPFTolerance = new wxTextCtrl(m_panelPF, wxID_ANY, wxT("1e-7"), wxDefaultPosition, wxDLG_UNIT(m_panelPF, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlPFTolerance->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl4_3->Add(m_textCtrlPFTolerance, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_4 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl_3_4->Add(boxSizerLvl4_4, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextPFMaxIterations = new wxStaticText(m_panelPF, wxID_ANY, _("Max. iterations"), wxDefaultPosition, wxDLG_UNIT(m_panelPF, wxSize(-1,-1)), 0);
+
+ boxSizerLvl4_4->Add(m_staticTextPFMaxIterations, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_textCtrlPFMaxIterations = new wxTextCtrl(m_panelPF, wxID_ANY, wxT("5000"), wxDefaultPosition, wxDLG_UNIT(m_panelPF, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlPFMaxIterations->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl4_4->Add(m_textCtrlPFMaxIterations, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_panelStability = new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL);
+ m_notebook->AddPage(m_panelStability, _("Stability"), false);
+
+ wxBoxSizer* boxSizerLvl2_3 = new wxBoxSizer(wxVERTICAL);
+ m_panelStability->SetSizer(boxSizerLvl2_3);
+
+ wxGridSizer* gridSizerLvl_2_3 = new wxGridSizer(0, 2, 0, 0);
+
+ boxSizerLvl2_3->Add(gridSizerLvl_2_3, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl3_6 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl_2_3->Add(boxSizerLvl3_6, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextTimeStep = new wxStaticText(m_panelStability, wxID_ANY, _("Time step"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);
+
+ boxSizerLvl3_6->Add(m_staticTextTimeStep, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_6 = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl3_6->Add(boxSizerLvl4_6, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_textCtrlTimeStep = new wxTextCtrl(m_panelStability, wxID_ANY, wxT("0,01"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlTimeStep->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl4_6->Add(m_textCtrlTimeStep, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_staticTextSec_1 = new wxStaticText(m_panelStability, wxID_ANY, _("s"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);
+
+ boxSizerLvl4_6->Add(m_staticTextSec_1, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl3_7 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl_2_3->Add(boxSizerLvl3_7, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextTSimTime = new wxStaticText(m_panelStability, wxID_ANY, _("Simulation time"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);
+
+ boxSizerLvl3_7->Add(m_staticTextTSimTime, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_7 = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl3_7->Add(boxSizerLvl4_7, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_textCtrlSimTime = new wxTextCtrl(m_panelStability, wxID_ANY, wxT("10"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlSimTime->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl4_7->Add(m_textCtrlSimTime, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_staticTextSec_2 = new wxStaticText(m_panelStability, wxID_ANY, _("s"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);
+
+ boxSizerLvl4_7->Add(m_staticTextSec_2, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl3_5 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl_2_3->Add(boxSizerLvl3_5, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextFreq = new wxStaticText(m_panelStability, wxID_ANY, _("System frequency"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);
+
+ boxSizerLvl3_5->Add(m_staticTextFreq, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_5 = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl3_5->Add(boxSizerLvl4_5, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_textCtrlFreq = new wxTextCtrl(m_panelStability, wxID_ANY, wxT("60,0"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlFreq->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl4_5->Add(m_textCtrlFreq, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_staticTextFreqUnit = new wxStaticText(m_panelStability, wxID_ANY, _("Hz"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);
+
+ boxSizerLvl4_5->Add(m_staticTextFreqUnit, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl3_8 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl_2_3->Add(boxSizerLvl3_8, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextTStabTolerance = new wxStaticText(m_panelStability, wxID_ANY, _("Tolerance"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);
+
+ boxSizerLvl3_8->Add(m_staticTextTStabTolerance, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_textCtrlStabTolerance = new wxTextCtrl(m_panelStability, wxID_ANY, wxT("1e-8"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlStabTolerance->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl3_8->Add(m_textCtrlStabTolerance, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl3_9 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl_2_3->Add(boxSizerLvl3_9, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextTStabMaxIterations = new wxStaticText(m_panelStability, wxID_ANY, _("Max. Iterations"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);
+
+ boxSizerLvl3_9->Add(m_staticTextTStabMaxIterations, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_textCtrlStabMaxIterations = new wxTextCtrl(m_panelStability, wxID_ANY, wxT("100"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlStabMaxIterations->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl3_9->Add(m_textCtrlStabMaxIterations, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl3_10 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl_2_3->Add(boxSizerLvl3_10, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextCtrlStepRation = new wxStaticText(m_panelStability, wxID_ANY, _("Controls step ratio"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);
+
+ boxSizerLvl3_10->Add(m_staticTextCtrlStepRation, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_textCtrlCtrlStepRatio = new wxTextCtrl(m_panelStability, wxID_ANY, wxT("10"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlCtrlStepRatio->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl3_10->Add(m_textCtrlCtrlStepRatio, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl3_11 = new wxBoxSizer(wxVERTICAL);
+
+ gridSizerLvl_2_3->Add(boxSizerLvl3_11, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextPrintTime = new wxStaticText(m_panelStability, wxID_ANY, _("Plot time"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);
+
+ boxSizerLvl3_11->Add(m_staticTextPrintTime, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_8 = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl3_11->Add(boxSizerLvl4_8, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_textCtrlPrintTime = new wxTextCtrl(m_panelStability, wxID_ANY, wxT("0,01"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlPrintTime->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl4_8->Add(m_textCtrlPrintTime, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_staticTextSec_4 = new wxStaticText(m_panelStability, wxID_ANY, _("s"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);
+
+ boxSizerLvl4_8->Add(m_staticTextSec_4, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_checkBoxUseCOI = new wxCheckBox(m_panelStability, wxID_ANY, _("Use center of inertia as reference"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);
+ m_checkBoxUseCOI->SetValue(true);
+
+ boxSizerLvl2_3->Add(m_checkBoxUseCOI, 0, wxALL, WXC_FROM_DIP(5));
+
+ m_panelLoadComp = new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL);
+ m_notebook->AddPage(m_panelLoadComp, _("ZIP Load"), false);
+
+ wxBoxSizer* boxSizerLvl2_4 = new wxBoxSizer(wxVERTICAL);
+ m_panelLoadComp->SetSizer(boxSizerLvl2_4);
+
+ m_checkBoxUseCompLoads = new wxCheckBox(m_panelLoadComp, wxID_ANY, _("Use general composition to all system loads"), wxDefaultPosition, wxDLG_UNIT(m_panelLoadComp, wxSize(-1,-1)), 0);
+ m_checkBoxUseCompLoads->SetValue(false);
+
+ boxSizerLvl2_4->Add(m_checkBoxUseCompLoads, 0, wxALL, WXC_FROM_DIP(5));
+
+ wxGridSizer* gridSizerLvl2_4 = new wxGridSizer(0, 2, 0, 0);
+
+ boxSizerLvl2_4->Add(gridSizerLvl2_4, 1, wxEXPAND, WXC_FROM_DIP(5));
+
+ wxStaticBoxSizer* staticBoxSizerLvl3_4 = new wxStaticBoxSizer( new wxStaticBox(m_panelLoadComp, wxID_ANY, _("Active power")), wxVERTICAL);
+
+ gridSizerLvl2_4->Add(staticBoxSizerLvl3_4, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_12 = new wxBoxSizer(wxVERTICAL);
+
+ staticBoxSizerLvl3_4->Add(boxSizerLvl4_12, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextActivePowerImp = new wxStaticText(m_panelLoadComp, wxID_ANY, _("Constant impedance"), wxDefaultPosition, wxDLG_UNIT(m_panelLoadComp, wxSize(-1,-1)), 0);
+
+ boxSizerLvl4_12->Add(m_staticTextActivePowerImp, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl5_9 = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl4_12->Add(boxSizerLvl5_9, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_textCtrlActivePowerImp = new wxTextCtrl(m_panelLoadComp, wxID_ANY, wxT("100"), wxDefaultPosition, wxDLG_UNIT(m_panelLoadComp, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlActivePowerImp->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl5_9->Add(m_textCtrlActivePowerImp, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_staticTextPerc_1 = new wxStaticText(m_panelLoadComp, wxID_ANY, _("%"), wxDefaultPosition, wxDLG_UNIT(m_panelLoadComp, wxSize(-1,-1)), 0);
+
+ boxSizerLvl5_9->Add(m_staticTextPerc_1, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_13 = new wxBoxSizer(wxVERTICAL);
+
+ staticBoxSizerLvl3_4->Add(boxSizerLvl4_13, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextActivePowerCur = new wxStaticText(m_panelLoadComp, wxID_ANY, _("Constant current"), wxDefaultPosition, wxDLG_UNIT(m_panelLoadComp, wxSize(-1,-1)), 0);
+
+ boxSizerLvl4_13->Add(m_staticTextActivePowerCur, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl5_10 = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl4_13->Add(boxSizerLvl5_10, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_textCtrlActivePowerCur = new wxTextCtrl(m_panelLoadComp, wxID_ANY, wxT("0"), wxDefaultPosition, wxDLG_UNIT(m_panelLoadComp, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlActivePowerCur->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl5_10->Add(m_textCtrlActivePowerCur, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_staticTextPerc_2 = new wxStaticText(m_panelLoadComp, wxID_ANY, _("%"), wxDefaultPosition, wxDLG_UNIT(m_panelLoadComp, wxSize(-1,-1)), 0);
+
+ boxSizerLvl5_10->Add(m_staticTextPerc_2, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_14 = new wxBoxSizer(wxVERTICAL);
+
+ staticBoxSizerLvl3_4->Add(boxSizerLvl4_14, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextActivePowerPow = new wxStaticText(m_panelLoadComp, wxID_ANY, _("Constant power"), wxDefaultPosition, wxDLG_UNIT(m_panelLoadComp, wxSize(-1,-1)), 0);
+
+ boxSizerLvl4_14->Add(m_staticTextActivePowerPow, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl5_11 = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl4_14->Add(boxSizerLvl5_11, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_textCtrlActivePowerPow = new wxTextCtrl(m_panelLoadComp, wxID_ANY, wxT("0"), wxDefaultPosition, wxDLG_UNIT(m_panelLoadComp, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlActivePowerPow->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl5_11->Add(m_textCtrlActivePowerPow, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_staticTextPerc_3 = new wxStaticText(m_panelLoadComp, wxID_ANY, _("%"), wxDefaultPosition, wxDLG_UNIT(m_panelLoadComp, wxSize(-1,-1)), 0);
+
+ boxSizerLvl5_11->Add(m_staticTextPerc_3, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxStaticBoxSizer* staticBoxSizerLvl3_5 = new wxStaticBoxSizer( new wxStaticBox(m_panelLoadComp, wxID_ANY, _("Reactive power")), wxVERTICAL);
+
+ gridSizerLvl2_4->Add(staticBoxSizerLvl3_5, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_15 = new wxBoxSizer(wxVERTICAL);
+
+ staticBoxSizerLvl3_5->Add(boxSizerLvl4_15, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextReactivePowerImp = new wxStaticText(m_panelLoadComp, wxID_ANY, _("Constant impedance"), wxDefaultPosition, wxDLG_UNIT(m_panelLoadComp, wxSize(-1,-1)), 0);
+
+ boxSizerLvl4_15->Add(m_staticTextReactivePowerImp, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl5_12 = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl4_15->Add(boxSizerLvl5_12, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_textCtrlReactivePowerImp = new wxTextCtrl(m_panelLoadComp, wxID_ANY, wxT("100"), wxDefaultPosition, wxDLG_UNIT(m_panelLoadComp, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlReactivePowerImp->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl5_12->Add(m_textCtrlReactivePowerImp, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_staticTextPerc_4 = new wxStaticText(m_panelLoadComp, wxID_ANY, _("%"), wxDefaultPosition, wxDLG_UNIT(m_panelLoadComp, wxSize(-1,-1)), 0);
+
+ boxSizerLvl5_12->Add(m_staticTextPerc_4, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_16 = new wxBoxSizer(wxVERTICAL);
+
+ staticBoxSizerLvl3_5->Add(boxSizerLvl4_16, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextReactivePowerCur = new wxStaticText(m_panelLoadComp, wxID_ANY, _("Constant current"), wxDefaultPosition, wxDLG_UNIT(m_panelLoadComp, wxSize(-1,-1)), 0);
+
+ boxSizerLvl4_16->Add(m_staticTextReactivePowerCur, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl5_13 = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl4_16->Add(boxSizerLvl5_13, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_textCtrlReactivePowerCur = new wxTextCtrl(m_panelLoadComp, wxID_ANY, wxT("0"), wxDefaultPosition, wxDLG_UNIT(m_panelLoadComp, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlReactivePowerCur->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl5_13->Add(m_textCtrlReactivePowerCur, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_staticTextPerc_5 = new wxStaticText(m_panelLoadComp, wxID_ANY, _("%"), wxDefaultPosition, wxDLG_UNIT(m_panelLoadComp, wxSize(-1,-1)), 0);
+
+ boxSizerLvl5_13->Add(m_staticTextPerc_5, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_17 = new wxBoxSizer(wxVERTICAL);
+
+ staticBoxSizerLvl3_5->Add(boxSizerLvl4_17, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextReactivePowerPow = new wxStaticText(m_panelLoadComp, wxID_ANY, _("Constant power"), wxDefaultPosition, wxDLG_UNIT(m_panelLoadComp, wxSize(-1,-1)), 0);
+
+ boxSizerLvl4_17->Add(m_staticTextReactivePowerPow, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl5_14 = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl4_17->Add(boxSizerLvl5_14, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_textCtrlReactivePowerPow = new wxTextCtrl(m_panelLoadComp, wxID_ANY, wxT("0"), wxDefaultPosition, wxDLG_UNIT(m_panelLoadComp, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlReactivePowerPow->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl5_14->Add(m_textCtrlReactivePowerPow, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_staticTextPerc_6 = new wxStaticText(m_panelLoadComp, wxID_ANY, _("%"), wxDefaultPosition, wxDLG_UNIT(m_panelLoadComp, wxSize(-1,-1)), 0);
+
+ boxSizerLvl5_14->Add(m_staticTextPerc_6, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_staticTextUV = new wxStaticText(m_panelLoadComp, wxID_ANY, _("Undervoltage limit which the loads will be modelled by\nconstant impedance:"), wxDefaultPosition, wxDLG_UNIT(m_panelLoadComp, wxSize(-1,-1)), 0);
+
+ boxSizerLvl2_4->Add(m_staticTextUV, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl2_5 = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl2_4->Add(boxSizerLvl2_5, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_18 = new wxBoxSizer(wxVERTICAL);
+
+ boxSizerLvl2_5->Add(boxSizerLvl4_18, 1, 0, WXC_FROM_DIP(5));
+
+ m_staticTextUVCur = new wxStaticText(m_panelLoadComp, wxID_ANY, _("Constant current"), wxDefaultPosition, wxDLG_UNIT(m_panelLoadComp, wxSize(-1,-1)), 0);
+
+ boxSizerLvl4_18->Add(m_staticTextUVCur, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl5_15 = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl4_18->Add(boxSizerLvl5_15, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_textCtrlUVCur = new wxTextCtrl(m_panelLoadComp, wxID_ANY, wxT("70"), wxDefaultPosition, wxDLG_UNIT(m_panelLoadComp, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlUVCur->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl5_15->Add(m_textCtrlUVCur, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_staticTextPerc_7 = new wxStaticText(m_panelLoadComp, wxID_ANY, _("%"), wxDefaultPosition, wxDLG_UNIT(m_panelLoadComp, wxSize(-1,-1)), 0);
+
+ boxSizerLvl5_15->Add(m_staticTextPerc_7, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl4_19 = new wxBoxSizer(wxVERTICAL);
+
+ boxSizerLvl2_5->Add(boxSizerLvl4_19, 1, 0, WXC_FROM_DIP(5));
+
+ m_staticTextUVPow = new wxStaticText(m_panelLoadComp, wxID_ANY, _("Constant power"), wxDefaultPosition, wxDLG_UNIT(m_panelLoadComp, wxSize(-1,-1)), 0);
+
+ boxSizerLvl4_19->Add(m_staticTextUVPow, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizerLvl5_16 = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizerLvl4_19->Add(boxSizerLvl5_16, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_textCtrlUVPow = new wxTextCtrl(m_panelLoadComp, wxID_ANY, wxT("70"), wxDefaultPosition, wxDLG_UNIT(m_panelLoadComp, wxSize(-1,-1)), 0);
+ #if wxVERSION_NUMBER >= 3000
+ m_textCtrlUVPow->SetHint(wxT(""));
+ #endif
+
+ boxSizerLvl5_16->Add(m_textCtrlUVPow, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ m_staticTextPerc_8 = new wxStaticText(m_panelLoadComp, wxID_ANY, _("%"), wxDefaultPosition, wxDLG_UNIT(m_panelLoadComp, wxSize(-1,-1)), 0);
+
+ boxSizerLvl5_16->Add(m_staticTextPerc_8, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));
+
+ wxBoxSizer* boxSizer_bottonButtons = new wxBoxSizer(wxHORIZONTAL);
+
+ boxSizer_lvl1_1->Add(boxSizer_bottonButtons, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5));
+
+ boxSizer_bottonButtons->Add(0, 0, 1, wxALL, WXC_FROM_DIP(5));
+
+ m_buttonOK = new wxButton(this, wxID_ANY, _("OK"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizer_bottonButtons->Add(m_buttonOK, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5));
+
+ m_buttonCancel = new wxButton(this, wxID_ANY, _("Cancel"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizer_bottonButtons->Add(m_buttonCancel, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5));
+
+
+ #if wxVERSION_NUMBER >= 2900
+ if(!wxPersistenceManager::Get().Find(m_notebook)){
+ wxPersistenceManager::Get().RegisterAndRestore(m_notebook);
+ } else {
+ wxPersistenceManager::Get().Restore(m_notebook);
+ }
+ #endif
+
+ SetName(wxT("SimulationsSettingsFormBase"));
+ SetSize(-1,-1);
+ if (GetSizer()) {
+ GetSizer()->Fit(this);
+ }
+ if(GetParent()) {
+ CentreOnParent(wxBOTH);
+ } else {
+ CentreOnScreen(wxBOTH);
+ }
+#if wxVERSION_NUMBER >= 2900
+ if(!wxPersistenceManager::Get().Find(this)) {
+ wxPersistenceManager::Get().RegisterAndRestore(this);
+ } else {
+ wxPersistenceManager::Get().Restore(this);
+ }
+#endif
+ // Connect events
+ m_choicePFMethod->Connect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(SimulationsSettingsFormBase::OnPFMethodChoiceSelected), NULL, this);
+ m_checkBoxUseCompLoads->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(SimulationsSettingsFormBase::OnCheckboxUseCompLoadClick), NULL, this);
+ m_buttonOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SimulationsSettingsFormBase::OnButtonOKClick), NULL, this);
+ m_buttonCancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SimulationsSettingsFormBase::OnButtonCancelClick), NULL, this);
+
+}
+
+SimulationsSettingsFormBase::~SimulationsSettingsFormBase()
+{
+ m_choicePFMethod->Disconnect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(SimulationsSettingsFormBase::OnPFMethodChoiceSelected), NULL, this);
+ m_checkBoxUseCompLoads->Disconnect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(SimulationsSettingsFormBase::OnCheckboxUseCompLoadClick), NULL, this);
+ m_buttonOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SimulationsSettingsFormBase::OnButtonOKClick), NULL, this);
+ m_buttonCancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SimulationsSettingsFormBase::OnButtonCancelClick), NULL, this);
+
+}
+
+AboutFormBase::AboutFormBase(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style)
+ : wxDialog(parent, id, title, pos, size, style)
+{
+ if ( !bBitmapLoaded ) {
+ // We need to initialise the default bitmap handler
+ wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler);
+ wxCDAD0InitBitmapResources();
+ bBitmapLoaded = true;
+ }
+
+ wxBoxSizer* boxSizerMain = new wxBoxSizer(wxVERTICAL);
+ this->SetSizer(boxSizerMain);
+
+ m_notebook = new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), wxBK_DEFAULT);
+ m_notebook->SetName(wxT("m_notebook"));
+
+ boxSizerMain->Add(m_notebook, 1, wxALL|wxEXPAND, WXC_FROM_DIP(5));
+
+ m_panelLogo = new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL);
+ m_notebook->AddPage(m_panelLogo, _("About"), false);
+
+ wxBoxSizer* boxSizerLvl1_1 = new wxBoxSizer(wxVERTICAL);
+ m_panelLogo->SetSizer(boxSizerLvl1_1);
+
+ m_staticBitmapLogo = new wxStaticBitmap(m_panelLogo, wxID_ANY, wxXmlResource::Get()->LoadBitmap(wxT("About2017")), wxDefaultPosition, wxDLG_UNIT(m_panelLogo, wxSize(-1,-1)), 0 );
+
+ boxSizerLvl1_1->Add(m_staticBitmapLogo, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, WXC_FROM_DIP(5));
+
+ m_panelCredits = new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL);
+ m_notebook->AddPage(m_panelCredits, _("Credits"), false);
+
+ wxBoxSizer* boxSizerLvl1_2 = new wxBoxSizer(wxVERTICAL);
+ m_panelCredits->SetSizer(boxSizerLvl1_2);
+
+ m_gridCredits = new wxGrid(m_panelCredits, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelCredits, wxSize(-1,-1)), wxWANTS_CHARS);
+ m_gridCredits->CreateGrid(0, 0);
+ m_gridCredits->SetRowLabelAlignment(wxALIGN_RIGHT, wxALIGN_CENTRE);
+ m_gridCredits->SetColLabelAlignment(wxALIGN_CENTRE, wxALIGN_CENTRE);
+ #if wxVERSION_NUMBER >= 2904
+ m_gridCredits->UseNativeColHeader(true);
+ #endif
+ m_gridCredits->EnableEditing(false);
+
+ boxSizerLvl1_2->Add(m_gridCredits, 1, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_panelLicense = new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL);
+ m_notebook->AddPage(m_panelLicense, _("License"), false);
+
+ wxBoxSizer* boxSizerLvl1_3 = new wxBoxSizer(wxVERTICAL);
+ m_panelLicense->SetSizer(boxSizerLvl1_3);
+
+ m_richTextCtrlLicense = new wxRichTextCtrl(m_panelLicense, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelLicense, wxSize(-1,-1)), wxTE_MULTILINE|wxTE_PROCESS_TAB|wxTE_PROCESS_ENTER|wxWANTS_CHARS);
+
+ boxSizerLvl1_3->Add(m_richTextCtrlLicense, 1, wxALL|wxEXPAND, WXC_FROM_DIP(5));
+
+ wxFlexGridSizer* flexGridSizer247 = new wxFlexGridSizer(2, 2, 0, 0);
+ flexGridSizer247->SetFlexibleDirection( wxBOTH );
+ flexGridSizer247->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
+ flexGridSizer247->AddGrowableCol(1);
+
+ boxSizerMain->Add(flexGridSizer247, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5));
+
+ m_staticTextVersionLabel = new wxStaticText(this, wxID_ANY, _("Version:"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ flexGridSizer247->Add(m_staticTextVersionLabel, 0, wxALL, WXC_FROM_DIP(5));
+
+ m_staticTextVersion = new wxStaticText(this, wxID_ANY, _("Alpha 2017w45a"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ flexGridSizer247->Add(m_staticTextVersion, 0, wxALL, WXC_FROM_DIP(5));
+
+ m_staticTextHome = new wxStaticText(this, wxID_ANY, _("Home page:"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ flexGridSizer247->Add(m_staticTextHome, 0, wxALL, WXC_FROM_DIP(5));
+
+ m_hyperLinkPSP = new wxHyperlinkCtrl(this, wxID_ANY, _("https://thales1330.github.io/PSP/"), wxT("https://thales1330.github.io/PSP/"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), wxHL_DEFAULT_STYLE);
+ m_hyperLinkPSP->SetNormalColour(wxColour(wxT("#0000FF")));
+ m_hyperLinkPSP->SetHoverColour(wxColour(wxT("#0000FF")));
+ m_hyperLinkPSP->SetVisitedColour(wxColour(wxT("#FF0000")));
+
+ flexGridSizer247->Add(m_hyperLinkPSP, 0, wxALL, WXC_FROM_DIP(5));
+
+ m_buttonOK = new wxButton(this, wxID_ANY, _("OK"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+
+ boxSizerMain->Add(m_buttonOK, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, WXC_FROM_DIP(5));
+
+
+ #if wxVERSION_NUMBER >= 2900
+ if(!wxPersistenceManager::Get().Find(m_notebook)){
+ wxPersistenceManager::Get().RegisterAndRestore(m_notebook);
+ } else {
+ wxPersistenceManager::Get().Restore(m_notebook);
+ }
+ #endif
+
+ SetName(wxT("AboutFormBase"));
+ SetSize(-1,-1);
+ if (GetSizer()) {
+ GetSizer()->Fit(this);
+ }
+ if(GetParent()) {
+ CentreOnParent(wxBOTH);
+ } else {
+ CentreOnScreen(wxBOTH);
+ }
+#if wxVERSION_NUMBER >= 2900
+ if(!wxPersistenceManager::Get().Find(this)) {
+ wxPersistenceManager::Get().RegisterAndRestore(this);
+ } else {
+ wxPersistenceManager::Get().Restore(this);
+ }
+#endif
+ // Connect events
+ m_buttonOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(AboutFormBase::OnOKButtonClick), NULL, this);
+
+}
+
+AboutFormBase::~AboutFormBase()
+{
+ m_buttonOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(AboutFormBase::OnOKButtonClick), NULL, this);
+
+}
diff --git a/Project/base/PropertiesFormBase.h b/Project/base/PropertiesFormBase.h
new file mode 100644
index 0000000..887f14b
--- /dev/null
+++ b/Project/base/PropertiesFormBase.h
@@ -0,0 +1,260 @@
+//////////////////////////////////////////////////////////////////////
+// This file was auto-generated by codelite's wxCrafter Plugin
+// wxCrafter project file: PropertiesForm.wxcp
+// Do not modify this file by hand!
+//////////////////////////////////////////////////////////////////////
+
+#ifndef _PSP_PROJECT_PROPERTIESFORM_BASE_CLASSES_H
+#define _PSP_PROJECT_PROPERTIESFORM_BASE_CLASSES_H
+
+#include <wx/settings.h>
+#include <wx/xrc/xmlres.h>
+#include <wx/xrc/xh_bmp.h>
+#include <wx/dialog.h>
+#include <wx/iconbndl.h>
+#include <wx/artprov.h>
+#include <wx/sizer.h>
+#include <wx/notebook.h>
+#include <wx/panel.h>
+#include <wx/imaglist.h>
+#include <wx/stattext.h>
+#include <wx/choice.h>
+#include <wx/arrstr.h>
+#include <wx/button.h>
+#include <wx/textctrl.h>
+#include <wx/statbox.h>
+#include <wx/checkbox.h>
+#include <wx/statbmp.h>
+#include <wx/grid.h>
+#include <wx/richtext/richtextctrl.h>
+#include <wx/hyperlink.h>
+#if wxVERSION_NUMBER >= 2900
+#include <wx/persist.h>
+#include <wx/persist/toplevel.h>
+#include <wx/persist/bookctrl.h>
+#include <wx/persist/treebook.h>
+#endif
+
+#ifdef WXC_FROM_DIP
+#undef WXC_FROM_DIP
+#endif
+#if wxVERSION_NUMBER >= 3100
+#define WXC_FROM_DIP(x) wxWindow::FromDIP(x, NULL)
+#else
+#define WXC_FROM_DIP(x) x
+#endif
+
+
+class GeneralPropertiesFormBase : public wxDialog
+{
+protected:
+ wxNotebook* m_notebook;
+ wxPanel* m_panelGeneral;
+ wxStaticText* m_staticTextLanguage;
+ wxChoice* m_choiceLanguage;
+ wxStaticText* m_staticTextTheme;
+ wxChoice* m_choiceTheme;
+ wxButton* m_buttonOK;
+ wxButton* m_buttonCancel;
+
+protected:
+ virtual void OnButtonOKClick(wxCommandEvent& event) { event.Skip(); }
+ virtual void OnButtonCancelClick(wxCommandEvent& event) { event.Skip(); }
+
+public:
+ wxStaticText* GetStaticTextLanguage() { return m_staticTextLanguage; }
+ wxChoice* GetChoiceLanguage() { return m_choiceLanguage; }
+ wxStaticText* GetStaticTextTheme() { return m_staticTextTheme; }
+ wxChoice* GetChoiceTheme() { return m_choiceTheme; }
+ wxPanel* GetPanelGeneral() { return m_panelGeneral; }
+ wxNotebook* GetNotebook() { return m_notebook; }
+ wxButton* GetButtonOK() { return m_buttonOK; }
+ wxButton* GetButtonCancel() { return m_buttonCancel; }
+ GeneralPropertiesFormBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("General settings"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE);
+ virtual ~GeneralPropertiesFormBase();
+};
+
+
+class SimulationsSettingsFormBase : public wxDialog
+{
+protected:
+ wxNotebook* m_notebook;
+ wxPanel* m_panelGeneral;
+ wxStaticText* m_staticTextBasePower;
+ wxTextCtrl* m_textCtrlbasePower;
+ wxChoice* m_choiceBasePower;
+ wxCheckBox* m_checkBoxFaultAfterPF;
+ wxCheckBox* m_checkBoxSCPowerAfterPF;
+ wxPanel* m_panelPF;
+ wxStaticText* m_staticTextPFMethod;
+ wxChoice* m_choicePFMethod;
+ wxStaticText* m_staticTextAccFactor;
+ wxTextCtrl* m_textCtrlAccFactor;
+ wxStaticText* m_staticTextPFTolerance;
+ wxTextCtrl* m_textCtrlPFTolerance;
+ wxStaticText* m_staticTextPFMaxIterations;
+ wxTextCtrl* m_textCtrlPFMaxIterations;
+ wxPanel* m_panelStability;
+ wxStaticText* m_staticTextTimeStep;
+ wxTextCtrl* m_textCtrlTimeStep;
+ wxStaticText* m_staticTextSec_1;
+ wxStaticText* m_staticTextTSimTime;
+ wxTextCtrl* m_textCtrlSimTime;
+ wxStaticText* m_staticTextSec_2;
+ wxStaticText* m_staticTextFreq;
+ wxTextCtrl* m_textCtrlFreq;
+ wxStaticText* m_staticTextFreqUnit;
+ wxStaticText* m_staticTextTStabTolerance;
+ wxTextCtrl* m_textCtrlStabTolerance;
+ wxStaticText* m_staticTextTStabMaxIterations;
+ wxTextCtrl* m_textCtrlStabMaxIterations;
+ wxStaticText* m_staticTextCtrlStepRation;
+ wxTextCtrl* m_textCtrlCtrlStepRatio;
+ wxStaticText* m_staticTextPrintTime;
+ wxTextCtrl* m_textCtrlPrintTime;
+ wxStaticText* m_staticTextSec_4;
+ wxCheckBox* m_checkBoxUseCOI;
+ wxPanel* m_panelLoadComp;
+ wxCheckBox* m_checkBoxUseCompLoads;
+ wxStaticText* m_staticTextActivePowerImp;
+ wxTextCtrl* m_textCtrlActivePowerImp;
+ wxStaticText* m_staticTextPerc_1;
+ wxStaticText* m_staticTextActivePowerCur;
+ wxTextCtrl* m_textCtrlActivePowerCur;
+ wxStaticText* m_staticTextPerc_2;
+ wxStaticText* m_staticTextActivePowerPow;
+ wxTextCtrl* m_textCtrlActivePowerPow;
+ wxStaticText* m_staticTextPerc_3;
+ wxStaticText* m_staticTextReactivePowerImp;
+ wxTextCtrl* m_textCtrlReactivePowerImp;
+ wxStaticText* m_staticTextPerc_4;
+ wxStaticText* m_staticTextReactivePowerCur;
+ wxTextCtrl* m_textCtrlReactivePowerCur;
+ wxStaticText* m_staticTextPerc_5;
+ wxStaticText* m_staticTextReactivePowerPow;
+ wxTextCtrl* m_textCtrlReactivePowerPow;
+ wxStaticText* m_staticTextPerc_6;
+ wxStaticText* m_staticTextUV;
+ wxStaticText* m_staticTextUVCur;
+ wxTextCtrl* m_textCtrlUVCur;
+ wxStaticText* m_staticTextPerc_7;
+ wxStaticText* m_staticTextUVPow;
+ wxTextCtrl* m_textCtrlUVPow;
+ wxStaticText* m_staticTextPerc_8;
+ wxButton* m_buttonOK;
+ wxButton* m_buttonCancel;
+
+protected:
+ virtual void OnPFMethodChoiceSelected(wxCommandEvent& event) { event.Skip(); }
+ virtual void OnCheckboxUseCompLoadClick(wxCommandEvent& event) { event.Skip(); }
+ virtual void OnButtonOKClick(wxCommandEvent& event) { event.Skip(); }
+ virtual void OnButtonCancelClick(wxCommandEvent& event) { event.Skip(); }
+
+public:
+ wxStaticText* GetStaticTextBasePower() { return m_staticTextBasePower; }
+ wxTextCtrl* GetTextCtrlbasePower() { return m_textCtrlbasePower; }
+ wxChoice* GetChoiceBasePower() { return m_choiceBasePower; }
+ wxCheckBox* GetCheckBoxFaultAfterPF() { return m_checkBoxFaultAfterPF; }
+ wxCheckBox* GetCheckBoxSCPowerAfterPF() { return m_checkBoxSCPowerAfterPF; }
+ wxPanel* GetPanelGeneral() { return m_panelGeneral; }
+ wxStaticText* GetStaticTextPFMethod() { return m_staticTextPFMethod; }
+ wxChoice* GetChoicePFMethod() { return m_choicePFMethod; }
+ wxStaticText* GetStaticTextAccFactor() { return m_staticTextAccFactor; }
+ wxTextCtrl* GetTextCtrlAccFactor() { return m_textCtrlAccFactor; }
+ wxStaticText* GetStaticTextPFTolerance() { return m_staticTextPFTolerance; }
+ wxTextCtrl* GetTextCtrlPFTolerance() { return m_textCtrlPFTolerance; }
+ wxStaticText* GetStaticTextPFMaxIterations() { return m_staticTextPFMaxIterations; }
+ wxTextCtrl* GetTextCtrlPFMaxIterations() { return m_textCtrlPFMaxIterations; }
+ wxPanel* GetPanelPF() { return m_panelPF; }
+ wxStaticText* GetStaticTextTimeStep() { return m_staticTextTimeStep; }
+ wxTextCtrl* GetTextCtrlTimeStep() { return m_textCtrlTimeStep; }
+ wxStaticText* GetStaticTextSec_1() { return m_staticTextSec_1; }
+ wxStaticText* GetStaticTextTSimTime() { return m_staticTextTSimTime; }
+ wxTextCtrl* GetTextCtrlSimTime() { return m_textCtrlSimTime; }
+ wxStaticText* GetStaticTextSec_2() { return m_staticTextSec_2; }
+ wxStaticText* GetStaticTextFreq() { return m_staticTextFreq; }
+ wxTextCtrl* GetTextCtrlFreq() { return m_textCtrlFreq; }
+ wxStaticText* GetStaticTextFreqUnit() { return m_staticTextFreqUnit; }
+ wxStaticText* GetStaticTextTStabTolerance() { return m_staticTextTStabTolerance; }
+ wxTextCtrl* GetTextCtrlStabTolerance() { return m_textCtrlStabTolerance; }
+ wxStaticText* GetStaticTextTStabMaxIterations() { return m_staticTextTStabMaxIterations; }
+ wxTextCtrl* GetTextCtrlStabMaxIterations() { return m_textCtrlStabMaxIterations; }
+ wxStaticText* GetStaticTextCtrlStepRation() { return m_staticTextCtrlStepRation; }
+ wxTextCtrl* GetTextCtrlCtrlStepRatio() { return m_textCtrlCtrlStepRatio; }
+ wxStaticText* GetStaticTextPrintTime() { return m_staticTextPrintTime; }
+ wxTextCtrl* GetTextCtrlPrintTime() { return m_textCtrlPrintTime; }
+ wxStaticText* GetStaticTextSec_4() { return m_staticTextSec_4; }
+ wxCheckBox* GetCheckBoxUseCOI() { return m_checkBoxUseCOI; }
+ wxPanel* GetPanelStability() { return m_panelStability; }
+ wxCheckBox* GetCheckBoxUseCompLoads() { return m_checkBoxUseCompLoads; }
+ wxStaticText* GetStaticTextActivePowerImp() { return m_staticTextActivePowerImp; }
+ wxTextCtrl* GetTextCtrlActivePowerImp() { return m_textCtrlActivePowerImp; }
+ wxStaticText* GetStaticTextPerc_1() { return m_staticTextPerc_1; }
+ wxStaticText* GetStaticTextActivePowerCur() { return m_staticTextActivePowerCur; }
+ wxTextCtrl* GetTextCtrlActivePowerCur() { return m_textCtrlActivePowerCur; }
+ wxStaticText* GetStaticTextPerc_2() { return m_staticTextPerc_2; }
+ wxStaticText* GetStaticTextActivePowerPow() { return m_staticTextActivePowerPow; }
+ wxTextCtrl* GetTextCtrlActivePowerPow() { return m_textCtrlActivePowerPow; }
+ wxStaticText* GetStaticTextPerc_3() { return m_staticTextPerc_3; }
+ wxStaticText* GetStaticTextReactivePowerImp() { return m_staticTextReactivePowerImp; }
+ wxTextCtrl* GetTextCtrlReactivePowerImp() { return m_textCtrlReactivePowerImp; }
+ wxStaticText* GetStaticTextPerc_4() { return m_staticTextPerc_4; }
+ wxStaticText* GetStaticTextReactivePowerCur() { return m_staticTextReactivePowerCur; }
+ wxTextCtrl* GetTextCtrlReactivePowerCur() { return m_textCtrlReactivePowerCur; }
+ wxStaticText* GetStaticTextPerc_5() { return m_staticTextPerc_5; }
+ wxStaticText* GetStaticTextReactivePowerPow() { return m_staticTextReactivePowerPow; }
+ wxTextCtrl* GetTextCtrlReactivePowerPow() { return m_textCtrlReactivePowerPow; }
+ wxStaticText* GetStaticTextPerc_6() { return m_staticTextPerc_6; }
+ wxStaticText* GetStaticTextUV() { return m_staticTextUV; }
+ wxStaticText* GetStaticTextUVCur() { return m_staticTextUVCur; }
+ wxTextCtrl* GetTextCtrlUVCur() { return m_textCtrlUVCur; }
+ wxStaticText* GetStaticTextPerc_7() { return m_staticTextPerc_7; }
+ wxStaticText* GetStaticTextUVPow() { return m_staticTextUVPow; }
+ wxTextCtrl* GetTextCtrlUVPow() { return m_textCtrlUVPow; }
+ wxStaticText* GetStaticTextPerc_8() { return m_staticTextPerc_8; }
+ wxPanel* GetPanelLoadComp() { return m_panelLoadComp; }
+ wxNotebook* GetNotebook() { return m_notebook; }
+ wxButton* GetButtonOK() { return m_buttonOK; }
+ wxButton* GetButtonCancel() { return m_buttonCancel; }
+ SimulationsSettingsFormBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Simulation settings"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE);
+ virtual ~SimulationsSettingsFormBase();
+};
+
+
+class AboutFormBase : public wxDialog
+{
+protected:
+ wxNotebook* m_notebook;
+ wxPanel* m_panelLogo;
+ wxStaticBitmap* m_staticBitmapLogo;
+ wxPanel* m_panelCredits;
+ wxGrid* m_gridCredits;
+ wxPanel* m_panelLicense;
+ wxRichTextCtrl* m_richTextCtrlLicense;
+ wxStaticText* m_staticTextVersionLabel;
+ wxStaticText* m_staticTextVersion;
+ wxStaticText* m_staticTextHome;
+ wxHyperlinkCtrl* m_hyperLinkPSP;
+ wxButton* m_buttonOK;
+
+protected:
+ virtual void OnOKButtonClick(wxCommandEvent& event) { event.Skip(); }
+
+public:
+ wxStaticBitmap* GetStaticBitmapLogo() { return m_staticBitmapLogo; }
+ wxPanel* GetPanelLogo() { return m_panelLogo; }
+ wxGrid* GetGridCredits() { return m_gridCredits; }
+ wxPanel* GetPanelCredits() { return m_panelCredits; }
+ wxRichTextCtrl* GetRichTextCtrlLicense() { return m_richTextCtrlLicense; }
+ wxPanel* GetPanelLicense() { return m_panelLicense; }
+ wxNotebook* GetNotebook() { return m_notebook; }
+ wxStaticText* GetStaticTextVersionLabel() { return m_staticTextVersionLabel; }
+ wxStaticText* GetStaticTextVersion() { return m_staticTextVersion; }
+ wxStaticText* GetStaticTextHome() { return m_staticTextHome; }
+ wxHyperlinkCtrl* GetHyperLinkPSP() { return m_hyperLinkPSP; }
+ wxButton* GetButtonOK() { return m_buttonOK; }
+ AboutFormBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("About PSP-UFU"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE);
+ virtual ~AboutFormBase();
+};
+
+#endif
diff --git a/Project/base/PropertiesFormBitmaps.cpp b/Project/base/PropertiesFormBitmaps.cpp
new file mode 100644
index 0000000..9a7a6c3
--- /dev/null
+++ b/Project/base/PropertiesFormBitmaps.cpp
@@ -0,0 +1,2659 @@
+//
+// This file was automatically generated by wxrc, do not edit by hand.
+//
+
+#include <wx/wxprec.h>
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#include <wx/filesys.h>
+#include <wx/fs_mem.h>
+#include <wx/xrc/xmlres.h>
+#include <wx/xrc/xh_all.h>
+
+#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805
+ #define XRC_ADD_FILE(name, data, size, mime) \
+ wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime)
+#else
+ #define XRC_ADD_FILE(name, data, size, mime) \
+ wxMemoryFSHandler::AddFile(name, data, size)
+#endif
+
+static size_t xml_res_size_0 = 52890;
+static unsigned char xml_res_file_0[] = {
+137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,2,88,0,0,1,138,8,2,0,
+0,0,95,26,168,50,0,0,0,1,115,82,71,66,0,174,206,28,233,0,0,0,4,103,65,77,
+65,0,0,177,143,11,252,97,5,0,0,0,9,112,72,89,115,0,0,14,195,0,0,14,195,
+1,199,111,168,100,0,0,0,25,116,69,88,116,83,111,102,116,119,97,114,101,
+0,112,97,105,110,116,46,110,101,116,32,52,46,48,46,49,55,51,110,159,99,
+0,0,206,10,73,68,65,84,120,94,236,157,7,152,27,197,253,247,99,12,24,3,54,
+152,222,59,9,157,80,67,239,161,5,18,146,208,33,148,208,75,32,188,127,106,
+32,128,68,53,216,96,211,139,193,52,3,38,128,43,24,247,118,189,247,234,235,
+189,247,94,244,126,78,51,90,214,187,146,78,39,223,233,86,210,124,159,121,
+238,180,179,51,187,59,237,247,153,223,214,223,56,148,148,148,148,148,148,
+194,88,10,132,193,167,238,30,25,148,148,148,44,165,30,215,216,84,195,51,
+184,164,64,24,124,250,37,209,177,36,118,40,180,119,202,24,37,37,37,43,168,
+190,81,142,205,159,226,100,140,210,24,105,112,80,134,81,145,255,32,108,
+110,149,161,191,95,198,40,5,70,140,177,5,81,67,161,173,67,198,40,5,181,
+58,58,135,198,81,75,171,163,183,87,198,40,5,169,234,27,228,216,92,28,35,
+99,148,198,66,237,29,142,172,34,71,90,129,163,162,118,116,88,232,63,8,151,
+39,56,126,137,31,10,12,96,165,64,74,129,48,196,180,169,108,104,28,173,76,
+116,212,54,200,24,165,32,149,2,97,96,84,215,40,205,96,122,129,99,96,64,
+70,110,137,252,7,225,66,103,123,19,154,154,101,140,82,96,164,64,24,98,202,
+43,25,106,77,76,103,117,157,140,81,10,82,41,16,6,70,10,132,74,10,132,161,
+38,5,194,144,145,2,97,96,164,64,168,164,64,24,106,82,32,12,25,41,16,6,70,
+10,132,74,10,132,161,38,5,194,144,145,2,97,96,164,64,168,164,64,24,106,
+82,32,12,25,41,16,6,70,10,132,74,10,132,161,38,5,194,144,145,2,97,96,164,
+64,168,164,64,24,106,82,32,12,25,41,16,6,70,10,132,74,10,132,161,38,5,194,
+144,145,2,97,96,164,64,168,164,64,24,106,82,32,12,25,41,16,6,70,10,132,
+74,10,132,161,38,5,194,144,145,2,97,96,164,64,168,164,64,24,106,82,32,12,
+25,41,16,6,70,10,132,74,10,132,161,38,5,194,144,145,2,97,96,164,64,168,
+164,64,24,106,82,32,12,25,41,16,6,70,10,132,142,158,158,158,198,198,198,
+134,134,134,254,112,253,254,147,2,97,136,73,129,48,100,164,64,24,24,133,
+59,8,123,123,123,55,109,218,180,110,221,186,181,107,215,242,99,96,84,234,
+32,216,164,64,24,98,82,32,12,25,41,16,6,70,225,14,194,214,214,214,168,168,
+40,40,40,212,210,210,34,87,184,4,26,113,25,73,86,235,20,176,108,106,106,
+98,177,175,175,79,166,240,44,210,136,140,5,5,5,249,249,249,252,96,251,237,
+237,237,86,115,61,21,8,67,76,10,132,33,35,107,130,16,147,216,217,217,89,
+87,87,87,85,85,149,155,155,203,95,12,93,87,87,151,92,237,89,56,30,36,171,
+175,175,175,174,174,38,99,101,101,37,25,209,184,123,32,10,132,155,129,176,
+177,177,81,174,112,170,163,163,35,51,51,51,50,50,146,52,144,140,102,43,
+47,47,79,76,76,140,136,136,136,143,143,167,45,7,61,124,204,152,198,166,
+153,201,40,82,242,187,162,162,162,180,180,52,38,38,134,24,226,201,43,147,
+90,64,10,132,33,38,5,194,144,145,213,64,200,36,30,83,134,61,196,142,101,
+101,101,49,197,103,17,247,128,69,68,60,22,85,38,221,92,160,14,94,70,71,
+71,147,12,163,74,22,50,146,29,219,72,12,38,17,58,118,119,119,203,212,1,
+87,184,131,144,169,77,122,122,58,237,135,104,21,25,235,68,96,81,81,81,114,
+114,50,179,30,183,205,195,132,40,47,47,15,200,209,156,250,169,16,241,180,
+49,192,99,179,248,127,102,82,146,128,29,145,145,62,65,2,43,120,135,10,132,
+33,38,5,194,144,145,69,64,136,29,195,12,50,125,207,206,206,46,44,44,196,
+226,153,79,137,225,237,53,53,53,37,37,37,193,54,126,104,150,141,31,181,
+181,181,105,105,105,184,16,13,13,13,36,19,241,154,216,84,115,115,51,25,
+217,56,86,215,151,147,109,163,46,117,179,204,80,251,181,59,165,53,64,77,
+77,13,205,166,111,75,79,162,115,224,38,166,164,164,136,115,170,109,109,
+109,52,39,156,27,214,217,7,192,204,143,216,75,106,106,234,184,52,188,94,
+10,132,33,38,5,194,144,145,69,64,136,49,132,82,229,229,229,204,227,61,157,
+6,19,194,238,145,24,103,0,97,63,49,110,57,57,57,248,12,141,141,141,222,
+77,34,155,5,135,80,54,35,35,35,240,174,161,2,161,81,80,16,239,16,143,80,
+46,251,32,218,56,54,54,150,140,113,113,113,56,248,222,59,138,94,244,170,
+200,200,72,124,199,241,245,11,21,8,67,76,10,132,33,35,43,128,16,39,1,251,
+230,246,252,150,39,97,208,240,11,75,75,75,161,32,4,245,125,174,207,46,192,
+109,102,102,102,128,77,162,2,225,102,98,74,130,151,54,34,10,10,225,23,174,
+93,187,182,172,172,76,46,251,172,174,174,174,132,132,132,146,146,18,223,
+59,217,168,75,129,48,196,164,64,24,50,26,119,16,226,222,97,160,26,26,26,
+228,178,207,98,150,31,19,19,51,82,167,2,225,56,226,23,226,30,232,47,57,
+141,181,20,8,127,85,107,107,107,82,82,146,56,201,57,82,37,38,38,22,23,23,
+243,215,15,167,158,30,195,126,43,42,42,228,114,192,165,64,24,98,82,32,12,
+25,141,47,8,113,203,112,206,96,161,92,246,89,76,235,139,138,138,242,243,
+243,225,25,78,130,140,245,89,226,206,154,188,188,60,239,103,83,71,81,10,
+132,82,180,92,92,92,156,225,174,81,31,85,95,95,207,164,137,45,192,51,154,
+95,198,142,68,226,70,172,192,159,25,23,82,32,12,49,41,16,134,140,198,23,
+132,109,109,109,57,57,57,126,156,165,236,235,235,203,206,206,38,59,22,213,
+191,243,156,100,129,163,126,156,156,243,79,10,132,82,117,117,117,25,25,
+25,114,97,36,162,201,161,96,123,123,59,191,241,237,162,163,163,249,43,86,
+249,46,54,2,68,75,75,75,199,229,4,169,2,97,136,73,129,48,100,52,142,32,
+236,234,234,130,97,24,70,185,60,18,149,148,148,100,101,101,225,207,97,217,
+210,210,210,252,115,48,112,10,113,40,3,99,18,21,8,135,68,131,49,127,241,
+244,4,140,119,137,167,236,181,214,42,44,44,244,227,84,0,18,119,156,246,
+244,244,200,229,0,74,129,48,196,164,64,24,50,26,71,16,138,123,0,253,56,
+57,137,33,141,137,137,209,78,168,86,87,87,179,40,126,143,72,24,67,14,32,
+48,87,10,3,10,194,161,9,66,127,159,33,104,171,22,71,118,45,142,108,35,52,
+52,74,63,186,163,187,163,186,169,90,31,26,90,26,6,6,61,31,230,96,191,163,
+215,159,90,235,237,237,205,203,203,243,3,66,240,15,255,189,166,166,70,46,
+59,121,6,83,253,59,153,192,49,248,116,118,20,232,246,25,159,197,241,174,
+182,206,182,162,234,34,125,168,109,170,21,240,230,80,87,199,212,255,18,
+81,71,104,109,147,205,65,187,52,119,54,235,67,123,119,251,184,120,171,163,
+35,142,220,213,211,66,67,189,125,189,45,157,45,134,54,146,235,134,64,216,
+191,40,178,123,105,116,79,117,157,28,44,140,175,238,222,238,238,158,205,
+130,88,165,52,238,162,117,12,146,43,134,64,136,97,28,178,138,75,162,101,
+7,102,24,214,183,212,27,12,99,103,183,207,103,161,24,11,189,221,190,24,
+251,132,132,132,250,250,122,185,48,18,53,55,55,199,199,199,203,5,167,117,
+141,142,142,246,143,103,165,165,165,197,197,197,114,193,71,1,136,1,247,
+230,215,208,255,25,17,90,85,215,53,14,46,139,237,89,20,217,147,81,48,168,
+213,141,121,200,248,110,216,189,129,176,160,166,32,58,63,90,31,242,202,
+243,104,87,113,58,120,205,186,24,241,122,151,204,204,60,168,64,124,94,85,
+222,130,228,5,250,16,147,23,163,177,211,141,186,154,29,5,171,29,85,201,
+142,238,145,185,54,52,82,70,70,134,31,244,26,58,200,188,60,26,94,46,59,
+207,142,102,101,101,113,252,114,217,103,209,36,226,65,84,185,236,69,244,
+227,210,228,161,98,118,182,250,104,223,169,121,67,77,166,20,167,244,15,
+80,226,126,220,89,241,170,85,148,158,158,14,200,73,95,211,92,99,72,191,
+33,119,67,79,239,56,120,171,163,163,254,94,71,101,186,163,42,197,225,187,
+189,176,182,202,107,203,23,165,44,50,180,145,88,213,222,222,158,144,144,
+182,102,93,252,218,245,241,121,249,133,162,87,55,181,54,69,230,70,174,203,
+90,167,15,125,3,161,50,57,232,108,115,180,143,199,5,149,209,16,6,45,187,
+34,59,161,40,65,31,90,58,134,110,217,99,90,156,153,153,43,198,230,154,245,
+41,229,229,229,88,9,210,71,229,70,25,154,158,1,238,211,60,181,171,221,81,
+149,238,40,140,28,170,49,175,162,219,196,197,197,249,119,146,12,199,192,
+112,86,12,143,208,191,83,172,108,10,163,36,23,134,21,53,208,214,228,168,
+72,118,52,253,234,153,232,181,62,123,189,190,255,111,204,217,88,223,60,
+68,122,106,181,176,176,108,221,134,132,53,235,18,98,227,179,154,92,246,
+60,34,55,66,159,158,80,89,231,235,217,62,111,32,76,42,77,50,180,95,74,65,
+10,237,215,209,209,17,165,123,207,25,118,185,170,170,202,79,16,102,47,24,
+10,121,63,59,106,243,135,234,197,55,65,50,255,64,72,13,130,112,253,69,65,
+250,46,51,41,63,110,123,161,188,48,201,167,41,24,32,44,88,239,44,230,79,
+142,154,92,71,203,240,89,60,129,176,165,165,101,253,250,245,178,222,157,
+42,44,44,36,125,8,130,176,56,66,118,140,186,2,223,59,134,101,229,5,132,
+177,177,177,178,45,215,174,165,113,133,1,98,192,255,148,246,147,33,189,
+183,161,228,69,61,173,142,186,44,71,109,134,37,66,105,172,35,233,19,71,
+252,7,142,156,101,142,26,211,90,115,104,200,119,12,140,236,108,202,88,11,
+231,126,99,238,70,67,211,224,228,177,138,193,168,77,82,17,45,139,169,241,
+19,132,12,222,234,194,161,254,159,189,208,145,187,116,88,16,178,35,232,
+165,57,76,35,18,232,170,173,173,149,11,78,21,20,20,248,241,104,25,18,135,
+225,147,95,209,211,229,40,207,116,228,254,52,84,192,250,114,25,185,185,
+12,149,182,56,101,113,117,195,80,61,131,27,189,25,140,136,136,16,103,7,
+151,164,45,49,100,41,174,242,213,61,253,13,62,141,39,197,108,138,49,108,
+55,54,55,182,177,169,49,59,59,91,30,130,75,73,73,73,0,38,46,39,206,144,
+126,73,226,146,236,220,108,86,25,68,69,23,21,21,85,20,102,73,16,138,144,
+179,184,189,178,160,164,152,53,195,40,45,45,13,199,206,167,41,213,230,130,
+157,201,201,201,250,151,6,209,102,169,169,169,122,52,250,174,146,146,146,
+148,148,20,121,76,158,85,86,144,211,151,185,88,87,204,69,125,101,185,37,
+67,175,245,150,202,201,201,193,43,133,199,204,233,132,214,38,173,53,212,
+228,242,164,229,177,113,177,209,209,209,178,198,93,162,230,153,205,101,
+23,102,27,210,175,72,91,81,90,94,90,29,156,170,171,170,24,40,88,247,107,
+141,229,46,233,171,43,170,173,169,146,171,131,80,217,69,52,208,162,121,
+241,11,231,68,45,126,123,227,146,153,235,150,190,182,230,167,149,185,181,
+75,210,43,94,95,24,249,236,119,27,31,253,122,227,3,95,69,60,244,85,196,
+75,63,165,206,75,170,250,38,177,112,250,154,21,175,174,254,233,245,181,
+63,189,177,110,233,123,17,75,230,198,44,42,40,175,168,26,97,29,52,231,71,
+245,127,122,150,195,62,193,97,255,77,176,133,9,189,111,29,222,153,248,85,
+103,123,27,195,115,11,213,213,213,197,168,31,21,117,116,118,172,207,89,
+111,24,110,149,13,149,236,5,107,32,135,165,75,152,202,252,130,124,204,160,
+33,125,82,254,208,253,234,158,212,81,158,231,200,91,161,245,255,193,156,
+197,181,133,57,114,157,7,97,15,225,174,31,38,17,118,98,67,12,19,122,40,
+136,141,149,11,35,17,64,138,140,140,148,199,228,65,45,181,149,142,234,28,
+71,206,82,173,128,61,229,67,167,214,204,50,84,26,83,201,130,178,2,226,177,
+153,178,126,93,42,45,29,178,117,144,210,144,37,179,48,83,12,132,97,245,
+155,161,87,235,120,208,250,12,99,123,47,77,88,154,191,41,159,214,221,176,
+97,131,60,4,167,152,83,224,149,103,150,102,26,210,111,200,218,208,220,210,
+220,102,18,133,97,230,219,88,85,164,213,133,163,96,163,163,190,176,167,
+185,186,161,174,150,85,222,85,92,92,76,93,248,7,194,248,248,120,189,255,
+39,64,232,223,93,191,128,144,170,96,50,37,15,203,131,26,107,171,6,133,71,
+56,84,204,13,20,115,160,179,173,163,93,86,5,106,111,111,231,144,244,202,
+175,204,55,212,100,98,65,34,35,141,173,201,26,119,137,177,87,94,94,158,
+177,41,195,144,126,117,230,234,146,178,18,86,5,163,170,74,139,122,115,87,
+254,218,55,74,18,250,234,139,171,42,202,228,234,32,81,105,89,89,108,118,
+209,188,168,92,251,207,233,55,204,139,57,253,163,13,199,188,19,113,208,
+155,81,187,189,22,179,227,203,177,219,189,20,183,141,61,110,130,45,254,
+55,30,194,86,246,184,109,94,136,155,252,82,236,148,87,98,247,124,61,250,
+176,217,145,39,189,21,125,201,135,177,247,125,151,244,250,242,204,5,241,
+249,89,5,94,219,183,172,172,106,253,71,237,51,14,52,1,38,8,194,224,75,219,
+53,205,191,189,56,105,149,115,162,56,10,202,205,205,77,28,37,197,39,198,
+255,156,252,179,97,184,69,165,68,49,145,221,184,113,163,28,150,46,97,247,
+171,107,170,215,101,174,51,164,79,45,76,245,98,55,122,155,171,29,117,155,
+112,12,68,255,31,204,89,210,90,85,34,215,121,16,13,206,1,248,97,18,17,54,
+4,43,36,23,156,106,104,104,240,207,35,100,162,16,21,21,133,199,38,15,203,
+164,138,138,138,166,170,18,71,85,150,211,23,148,3,188,49,107,189,68,206,
+230,50,84,218,194,228,133,81,105,81,196,155,39,28,248,226,212,128,25,132,
+105,155,210,156,131,97,120,253,134,186,243,164,164,18,227,169,209,164,77,
+73,204,32,168,38,188,81,121,8,206,83,163,148,144,244,126,157,26,93,56,212,
+222,53,133,142,190,30,223,207,128,193,81,122,182,31,231,1,200,66,70,136,
+34,151,93,32,132,61,114,217,103,81,94,154,132,130,203,101,47,162,6,74,98,
+112,4,29,133,107,135,174,134,250,80,76,79,167,70,153,216,14,249,139,46,
+81,243,248,214,28,73,77,147,251,83,163,67,173,24,140,162,51,20,69,12,213,
+216,166,53,142,150,218,161,107,233,114,133,165,53,48,56,216,211,63,208,
+222,211,159,90,221,241,242,198,202,51,62,201,218,233,213,196,237,95,78,
+156,244,98,194,68,187,145,115,254,5,192,185,245,11,9,108,112,135,151,19,
+119,153,158,120,229,215,121,115,147,235,42,90,122,58,123,7,122,251,229,
+97,12,105,160,111,48,109,158,99,198,238,6,192,4,67,152,224,120,117,71,71,
+236,91,3,61,29,140,214,209,18,51,96,70,250,168,168,179,171,115,67,206,6,
+195,112,171,168,175,192,25,202,202,202,146,35,211,169,152,152,24,102,216,
+126,158,26,101,109,127,239,16,48,48,143,48,99,184,83,163,16,72,156,137,
+149,203,35,17,6,80,92,97,209,132,167,225,223,19,20,88,102,14,67,46,184,
+147,232,158,67,165,107,174,117,228,46,25,178,255,217,11,7,91,27,68,188,
+65,134,74,131,115,85,245,67,215,224,0,144,254,20,244,250,245,235,49,140,
+196,47,73,117,115,106,212,185,165,225,229,207,53,66,122,21,147,172,213,
+235,18,196,113,228,228,228,211,63,136,47,173,43,141,200,139,208,135,236,
+178,108,204,183,220,156,89,189,29,142,154,188,161,147,197,35,148,232,115,
+236,84,46,251,44,14,50,35,35,67,127,179,12,53,152,151,151,231,223,229,70,
+142,65,60,143,56,140,0,118,253,38,71,219,8,94,122,84,221,92,29,83,16,163,
+15,5,213,5,236,145,85,244,245,245,17,169,171,215,37,173,90,159,90,81,81,
+35,142,188,190,165,126,77,230,26,125,72,40,72,8,230,107,132,125,142,234,
+44,71,67,57,243,20,25,99,97,13,12,58,74,91,122,86,21,182,188,19,87,115,
+243,143,5,135,191,157,182,213,40,97,207,199,0,26,79,250,40,243,223,191,
+148,124,153,90,31,83,222,222,218,214,226,136,123,199,241,250,46,38,198,
+88,62,188,180,141,227,203,63,58,74,35,100,205,90,82,94,174,17,182,182,182,
+38,38,166,9,171,136,132,97,65,233,197,233,6,195,88,217,232,243,35,91,93,
+29,206,187,198,134,57,101,197,94,152,34,251,119,179,12,94,90,102,102,166,
+92,112,90,182,232,232,104,255,64,40,62,91,33,23,134,21,104,168,203,115,
+20,71,58,218,221,223,114,104,168,100,64,40,174,17,82,88,160,179,206,121,
+153,48,54,54,190,177,81,102,223,162,107,132,242,191,59,53,181,55,149,55,
+148,235,131,184,105,71,104,113,100,247,146,136,102,66,83,179,244,204,56,
+62,122,137,62,12,127,121,223,7,247,200,44,118,84,82,82,226,223,227,19,76,
+118,244,87,134,219,156,239,98,16,140,25,145,192,112,81,81,17,19,49,185,
+60,170,226,56,57,36,131,228,58,135,99,89,92,239,162,200,222,69,81,253,218,
+115,132,84,72,103,119,167,62,116,245,12,77,145,228,234,224,211,224,208,
+236,193,242,194,7,139,42,109,187,255,167,226,163,223,203,152,54,61,41,192,
+252,51,135,137,47,36,28,61,115,125,194,7,215,58,94,222,206,200,24,235,135,
+23,182,114,172,253,175,163,99,179,187,54,44,40,198,90,126,69,126,114,65,
+178,62,52,182,72,108,212,212,246,173,220,80,188,130,16,89,77,74,98,112,
+127,12,86,145,224,237,161,50,183,242,97,44,87,58,63,191,42,23,70,34,108,
+96,84,84,148,230,87,224,197,70,70,70,250,119,181,8,231,82,255,112,154,79,
+194,241,245,128,9,3,125,42,26,42,58,152,22,56,85,223,216,255,75,76,11,244,
+201,220,212,173,153,138,134,246,134,250,246,122,125,232,246,249,161,35,
+111,32,244,174,113,124,160,30,19,95,80,80,224,211,105,73,147,160,32,78,
+161,198,21,184,232,223,3,245,85,85,85,129,127,231,186,144,122,160,126,28,
+133,65,234,236,29,168,110,235,253,34,181,254,228,143,50,39,189,152,48,238,
+252,211,194,110,182,149,159,219,254,212,111,223,202,200,24,139,7,16,248,
+246,97,67,247,84,123,57,123,100,37,97,127,12,146,43,228,3,245,131,132,192,
+63,80,223,220,220,28,27,27,235,135,123,64,22,64,168,1,108,211,166,77,27,
+55,110,20,191,71,164,246,246,246,248,120,252,51,127,92,201,145,74,189,89,
+70,138,74,199,7,247,227,236,40,8,20,119,184,240,187,171,171,139,174,227,
+135,87,71,198,172,172,172,234,113,250,108,189,2,225,120,169,177,171,127,
+126,70,195,205,63,22,236,243,70,138,1,66,227,27,38,216,226,254,96,155,187,
+210,126,170,145,49,214,15,47,110,227,88,112,243,208,3,30,67,115,140,160,
+215,248,190,107,52,221,249,202,108,61,152,125,84,69,69,5,206,28,230,20,
+40,98,18,253,248,120,5,59,45,44,44,44,41,41,145,203,99,44,5,66,41,234,29,
+167,208,191,79,64,136,153,11,173,158,146,146,226,31,204,154,154,154,162,
+163,163,245,167,43,3,41,5,194,192,171,127,96,240,127,153,13,184,128,83,
+94,77,50,64,200,10,225,20,219,231,57,246,3,7,131,238,49,137,25,187,59,82,
+62,115,116,251,243,1,25,107,106,124,65,216,218,218,42,120,38,151,125,22,
+206,64,82,82,18,252,171,114,126,126,220,191,45,144,209,191,187,117,252,
+144,2,225,175,234,238,238,78,76,76,244,239,51,76,120,132,184,116,204,125,
+252,152,61,181,57,223,50,26,152,51,0,110,165,64,24,72,53,116,246,45,201,
+109,58,103,110,182,117,78,129,234,195,182,182,168,243,109,239,87,217,119,
+53,50,198,226,225,197,173,29,31,28,239,40,222,224,203,213,175,32,210,248,
+130,176,127,232,46,146,161,39,14,71,122,201,6,51,136,51,135,67,185,126,
+253,122,63,46,21,177,187,178,178,161,167,155,252,32,168,127,82,32,220,76,
+80,48,35,35,3,255,76,46,251,172,210,210,210,181,107,215,230,231,231,203,
+101,159,197,156,139,238,226,199,30,71,81,10,132,129,81,125,103,223,59,113,
+53,231,125,150,179,221,75,137,6,252,88,36,108,111,219,248,180,237,190,38,
+251,20,35,102,44,30,94,155,230,88,243,140,163,213,159,59,59,44,174,241,
+5,33,194,51,219,180,105,83,110,110,238,72,153,84,81,81,1,5,35,35,35,13,
+207,20,14,43,118,148,231,212,24,221,57,232,86,10,132,70,137,179,148,35,
+242,11,113,255,201,130,83,24,23,23,55,162,147,171,80,48,38,38,166,161,97,
+232,169,23,25,53,30,82,32,12,128,178,235,58,207,254,52,219,178,8,20,225,
+101,219,109,93,246,73,70,204,88,60,188,58,213,145,245,157,163,63,104,159,
+237,241,170,113,7,33,26,112,126,50,30,249,126,237,6,203,182,113,227,70,
+140,97,113,113,241,72,79,141,146,5,244,6,248,182,65,5,66,55,130,130,201,
+201,201,180,71,119,183,183,215,141,211,45,58,157,175,216,142,143,143,23,
+143,18,246,244,244,20,21,21,17,211,216,216,232,165,237,193,94,87,87,151,
+184,158,236,199,101,228,81,151,2,225,216,105,96,208,81,220,212,253,226,
+134,202,41,175,88,241,90,160,8,19,108,241,251,218,126,250,194,126,249,160,
+129,49,22,15,47,77,114,124,125,153,163,62,71,214,117,40,202,10,32,68,88,
+179,236,236,108,88,88,93,93,237,221,81,195,178,149,151,151,227,18,212,215,
+215,99,33,17,84,99,177,172,172,204,251,5,63,118,129,49,36,49,134,81,24,
+79,242,178,145,146,146,18,156,147,177,118,21,20,8,221,171,163,163,3,16,
+38,37,37,9,170,49,193,17,68,164,61,160,35,139,120,129,57,57,57,249,206,
+111,48,233,123,6,9,232,43,52,39,40,229,7,76,213,136,200,22,200,75,163,226,
+245,199,198,198,150,150,150,250,113,107,242,88,72,129,112,140,212,221,55,
+240,118,108,205,209,239,165,79,180,39,24,216,99,169,240,91,219,15,235,236,
+39,246,219,39,26,73,99,229,240,234,20,71,204,155,142,174,113,187,178,30,
+24,89,4,132,8,59,86,87,87,7,14,19,19,19,177,126,88,54,152,39,86,97,199,
+248,93,91,91,155,153,153,137,221,195,25,208,191,24,4,158,145,0,147,136,
+107,152,145,145,65,70,141,136,88,78,97,18,217,96,122,122,58,38,23,211,74,
+122,86,97,72,177,144,226,213,155,17,17,17,254,61,219,230,187,20,8,61,138,
+150,160,157,196,236,38,210,169,168,168,40,241,3,17,73,219,184,245,23,201,
+136,160,96,74,74,138,76,173,19,8,100,114,68,207,32,141,204,48,222,82,32,
+28,117,209,180,185,245,93,23,124,158,51,233,69,75,35,112,130,45,238,247,
+182,121,5,246,125,131,233,6,209,23,38,56,62,56,206,81,17,239,8,153,207,
+72,121,150,117,64,40,4,165,196,189,160,210,156,233,4,228,112,12,112,33,
+220,90,54,34,155,155,155,221,102,132,115,185,185,185,176,83,159,145,29,
+225,105,12,189,80,199,41,126,203,21,99,35,5,66,159,68,11,209,192,204,122,
+218,218,218,152,194,140,136,97,76,127,152,4,225,56,178,5,242,202,88,43,
+73,129,112,116,213,217,55,240,99,118,227,145,239,166,27,168,99,181,48,209,
+22,251,87,219,107,165,246,61,141,164,177,114,120,117,7,199,194,91,29,205,
+35,252,88,107,208,202,106,32,212,11,63,1,203,134,48,107,222,207,151,26,
+68,98,60,63,50,98,81,61,157,21,195,198,230,229,229,73,12,174,93,139,67,
+41,87,140,141,20,8,149,20,8,71,83,13,157,125,119,45,41,154,106,201,167,
+3,245,97,43,91,236,99,246,135,106,237,59,27,73,99,229,240,206,225,67,159,
+23,232,13,163,110,106,101,16,142,181,240,32,179,178,178,54,110,220,8,17,
+199,250,129,66,5,66,37,247,32,100,70,102,144,92,161,228,65,3,131,131,229,
+45,61,151,205,203,181,230,3,130,250,176,163,109,195,76,251,141,221,246,
+109,140,164,177,108,120,113,27,199,156,83,29,53,233,244,75,89,221,225,161,
+112,6,33,194,236,128,192,0,24,31,5,194,112,87,127,127,255,138,152,166,159,
+55,150,16,154,154,37,9,219,187,218,51,202,51,244,161,168,182,200,219,119,
+63,194,94,93,125,3,159,37,215,29,246,86,154,1,57,22,12,123,216,86,124,104,
+255,107,48,81,112,230,94,142,245,118,71,215,120,62,107,59,94,10,115,16,
+6,76,10,132,97,173,190,190,190,204,204,204,181,235,228,199,32,227,226,226,
+196,41,136,154,102,247,223,35,20,185,148,204,154,21,83,109,253,211,161,
+132,35,108,255,139,180,31,23,76,239,209,126,235,96,71,209,154,161,79,10,
+132,165,20,8,3,35,5,194,176,86,71,71,71,116,116,180,160,160,80,126,254,
+208,199,32,43,235,43,13,32,92,159,179,190,179,171,147,85,66,94,30,175,12,
+55,181,116,247,63,183,174,220,250,167,67,9,191,183,205,75,182,255,206,72,
+26,203,134,151,39,59,126,188,209,250,223,81,218,66,13,14,14,118,116,119,
+180,116,181,232,131,246,189,185,250,134,129,69,145,61,132,37,209,161,127,
+139,236,56,74,129,48,172,85,95,95,47,1,232,18,92,76,77,77,141,76,142,52,
+128,112,89,202,178,228,180,100,86,9,101,103,103,143,232,62,177,80,85,99,
+87,223,29,139,139,44,254,140,4,97,107,91,204,141,182,23,242,236,251,27,
+97,99,217,240,230,126,142,196,15,29,61,35,123,59,87,48,170,215,243,135,
+121,187,187,187,179,178,242,214,172,139,31,10,27,210,2,240,92,121,216,74,
+129,48,172,101,246,8,115,115,115,135,222,13,81,87,110,24,153,235,178,215,
+181,182,183,178,74,136,100,250,239,242,135,167,58,123,7,174,154,159,191,
+205,11,86,167,224,68,91,204,253,182,39,26,236,83,141,176,177,108,248,252,
+60,71,93,118,176,124,77,112,11,229,5,132,133,133,133,235,214,173,147,35,
+115,237,218,248,248,248,177,190,121,50,108,165,64,24,214,234,235,235,203,
+202,202,210,6,91,98,98,162,143,215,8,55,109,218,196,252,84,46,132,165,138,
+154,186,255,248,101,238,4,19,117,172,22,166,218,214,253,219,246,255,58,
+236,65,242,137,249,215,118,118,44,185,203,209,49,182,175,17,25,95,49,232,
+202,203,203,139,93,42,40,44,88,153,190,210,48,220,178,10,179,160,96,76,
+76,140,24,152,66,81,81,81,250,55,182,40,141,162,20,8,195,93,189,189,189,
+203,163,107,151,111,44,35,180,180,202,231,253,155,219,154,179,202,178,244,
+161,168,186,72,187,110,129,194,28,132,245,29,125,23,127,153,59,209,242,
+215,5,247,179,45,253,198,126,113,175,125,107,35,111,172,24,38,56,230,156,
+226,200,255,41,228,239,139,169,172,172,204,201,201,169,169,169,169,117,
+170,178,170,114,117,230,106,3,8,115,75,114,171,171,171,147,147,147,37,3,
+157,138,28,249,151,28,148,124,148,2,161,210,80,15,88,24,53,72,208,158,35,
+28,28,28,28,24,28,208,7,195,197,137,112,6,97,103,239,192,159,191,201,183,
+254,221,49,211,108,171,151,218,207,26,8,138,27,68,95,156,232,248,242,34,
+71,83,113,56,60,38,88,234,148,92,240,122,106,148,81,166,63,53,154,148,148,
+164,46,204,143,145,20,8,149,100,15,32,248,254,102,153,176,5,97,115,87,255,
+237,139,138,44,254,18,237,173,108,177,167,217,62,141,177,31,109,228,141,
+37,67,153,125,143,232,239,158,29,232,179,226,219,7,199,66,6,16,246,245,
+245,37,22,38,226,20,234,67,93,243,208,201,97,86,149,149,213,172,94,151,
+68,88,179,49,112,159,107,15,67,41,16,42,41,16,250,42,220,149,167,86,149,
+77,122,201,234,119,199,92,106,155,93,104,223,39,40,222,163,29,105,63,238,
+84,219,103,123,189,150,48,47,173,94,214,114,168,203,0,194,193,193,193,238,
+158,238,142,174,14,125,208,61,62,225,88,28,217,75,88,18,163,30,88,26,67,
+41,16,42,41,16,250,164,222,254,193,183,98,170,39,90,251,30,209,73,182,168,
+171,108,175,183,216,119,48,240,198,130,161,195,190,221,44,219,13,83,108,
+235,196,13,71,187,189,158,188,166,168,53,28,158,14,48,128,208,187,124,121,
+160,126,96,96,0,223,81,72,124,195,200,15,137,141,132,237,243,193,10,132,
+74,10,132,195,171,111,96,240,189,248,154,237,173,253,125,121,160,242,130,
+237,142,206,96,248,196,124,166,253,224,219,109,207,110,103,139,212,31,255,
+9,31,100,102,215,201,79,220,133,176,70,29,132,218,183,81,81,113,113,177,
+31,215,17,161,96,121,121,57,217,139,138,138,44,242,145,212,0,75,129,80,
+73,129,112,120,101,212,118,30,48,43,85,111,181,173,22,182,181,69,125,102,
+191,162,203,190,173,1,57,86,11,253,246,173,190,178,95,122,184,237,199,9,
+182,56,67,17,112,13,207,255,60,167,187,127,52,236,144,133,53,234,32,44,
+41,41,129,133,221,221,221,93,93,93,89,89,89,13,13,13,114,133,207,34,99,
+118,118,118,91,91,91,101,101,229,88,127,2,215,63,225,173,82,64,33,126,203,
+216,17,106,232,44,180,243,139,81,230,247,18,88,26,132,29,29,29,5,46,209,
+117,104,45,185,98,36,98,130,195,44,137,153,78,120,222,220,225,139,20,8,
+189,171,181,167,255,226,175,114,13,86,219,58,1,162,28,100,91,188,220,126,
+154,245,47,10,214,219,119,122,213,126,235,14,182,13,134,34,104,1,22,62,
+186,162,180,167,63,148,207,144,142,58,8,177,111,108,176,165,165,133,33,
+153,146,146,130,197,171,169,169,137,142,142,142,140,140,196,238,53,54,54,
+38,37,37,49,96,89,149,150,150,6,50,49,167,17,17,17,171,87,175,214,44,106,
+103,103,39,238,32,132,128,130,21,21,21,102,78,140,187,0,60,197,73,112,42,
+35,35,195,191,251,134,202,202,202,98,99,99,19,19,19,235,235,141,23,164,
+45,13,66,90,5,151,159,214,69,52,36,19,31,63,206,128,179,5,58,10,173,75,
+85,250,125,2,125,188,196,1,211,120,148,29,21,22,22,250,215,252,76,244,196,
+22,16,163,69,198,234,164,64,232,69,237,189,3,247,44,41,50,216,107,75,133,
+83,108,159,71,217,143,181,248,99,18,28,222,106,251,41,23,218,222,51,59,
+130,134,176,211,171,73,223,103,53,14,132,46,10,71,29,132,88,6,8,199,144,
+4,102,201,201,201,140,113,224,199,223,230,230,230,244,244,116,160,200,95,
+232,8,0,202,203,203,161,29,49,237,237,237,169,169,169,24,70,177,133,254,
+254,126,232,136,133,204,204,204,36,210,154,32,172,173,149,111,157,165,188,
+24,31,108,99,181,83,226,99,233,148,23,94,136,178,19,195,15,86,145,69,239,
+62,82,33,44,98,81,153,31,24,202,104,117,16,2,63,113,196,20,30,183,157,223,
+113,113,113,76,103,192,27,69,162,237,227,227,227,137,167,165,233,4,20,62,
+38,38,134,181,148,83,108,1,137,194,211,240,164,9,186,75,193,244,90,102,
+115,52,167,104,102,255,138,192,70,200,142,214,172,89,227,150,94,10,132,
+158,68,215,251,40,177,118,135,151,173,123,105,240,34,219,187,229,246,61,
+172,239,11,206,181,95,177,167,109,249,176,20,20,225,168,247,210,43,91,67,
+246,74,213,168,131,144,173,225,226,96,27,97,67,94,94,30,147,126,44,6,118,
+3,99,8,237,192,30,145,216,64,64,200,152,197,128,96,84,49,155,107,215,174,
+213,64,136,136,199,65,36,49,46,163,53,65,136,51,231,124,207,113,42,176,
+199,37,192,236,243,59,59,59,27,79,151,34,243,23,194,177,72,74,76,37,94,
+35,200,32,1,201,228,38,156,167,70,153,10,80,15,36,144,81,46,89,29,132,235,
+215,175,223,232,212,134,13,27,4,225,105,84,168,70,177,27,26,26,168,145,
+214,214,86,166,0,76,100,48,247,84,4,29,130,233,0,205,172,191,228,75,27,
+211,87,168,23,11,54,176,119,9,16,82,70,250,49,109,15,254,137,161,248,20,
+83,76,118,40,44,164,39,1,156,163,151,83,106,170,133,181,44,234,11,203,111,
+102,124,204,21,228,242,230,42,175,118,148,86,14,133,46,159,31,229,10,19,
+16,102,213,118,254,238,157,116,131,153,182,72,216,218,22,115,189,253,197,
+58,107,127,98,30,66,23,217,247,254,167,237,191,91,217,98,13,199,239,61,
+92,54,47,183,165,59,52,239,96,116,114,208,87,16,118,247,200,177,89,246,
+171,61,55,10,176,97,223,49,11,216,1,44,33,246,16,30,8,164,193,3,126,48,
+240,177,129,2,132,152,11,76,10,38,2,72,104,14,3,107,177,39,100,39,198,143,
+75,140,1,16,120,3,219,206,249,124,11,8,224,248,193,54,128,160,224,120,195,
+212,0,9,40,69,110,110,46,228,99,66,64,49,41,8,102,202,224,224,146,11,75,
+104,246,122,131,198,35,20,119,70,137,115,217,148,60,33,33,129,114,82,120,
+156,98,90,23,200,81,120,168,64,15,16,83,6,226,197,70,168,29,0,73,221,233,
+209,24,44,2,123,98,90,71,73,113,7,105,102,74,65,97,41,81,84,84,20,117,66,
+121,169,22,166,8,204,12,232,1,84,5,105,68,231,232,232,248,213,191,163,54,
+216,130,127,103,86,221,42,28,64,216,221,55,112,225,23,57,6,3,109,145,176,
+189,109,227,75,246,219,45,254,30,109,40,248,189,253,130,223,219,230,77,
+28,33,5,69,120,124,101,89,127,176,205,92,125,209,136,64,232,139,160,2,198,
+29,134,33,120,134,197,3,126,88,9,246,130,101,0,111,24,82,113,145,5,11,128,
+1,33,158,148,88,9,18,139,45,96,99,201,66,36,105,152,94,139,72,75,9,243,
+37,142,150,67,229,248,41,17,38,8,22,80,112,1,66,129,0,98,4,35,49,131,148,
+69,92,23,211,152,71,205,240,151,188,102,16,182,180,58,178,139,29,153,133,
+142,202,186,161,243,64,91,46,255,65,216,220,38,131,230,151,136,35,166,120,
+72,52,30,5,163,252,76,10,152,233,0,66,48,64,187,98,145,89,69,26,106,132,
+90,64,144,67,3,33,120,0,18,84,141,161,228,65,33,131,71,72,1,5,248,105,254,
+216,216,88,234,68,80,144,25,0,63,168,10,90,154,254,13,245,41,50,145,114,
+43,14,7,147,68,106,82,244,131,81,81,200,131,144,190,50,43,166,122,107,75,
+62,53,56,197,182,126,174,253,202,30,107,127,98,190,221,190,221,147,182,
+7,57,84,195,193,251,30,14,156,149,154,86,19,130,239,82,97,216,34,185,48,
+26,194,178,9,35,137,132,149,19,49,252,213,36,34,157,201,55,91,43,98,144,
+22,41,151,45,38,64,8,234,176,57,152,119,126,99,220,240,16,64,29,134,8,79,
+23,16,10,4,0,66,184,128,193,4,16,224,3,231,129,92,90,161,176,153,208,148,
+196,218,12,64,19,73,112,4,9,163,85,1,254,131,208,44,138,77,73,48,235,224,
+29,67,79,225,241,129,68,12,139,130,127,160,130,120,225,14,83,102,208,200,
+90,106,71,248,127,240,3,40,34,34,41,63,105,196,150,131,69,148,14,239,86,
+248,118,176,60,51,51,83,76,2,232,1,241,241,241,148,136,154,161,225,169,
+1,138,76,98,166,117,98,42,68,145,245,32,164,222,208,40,246,242,144,7,97,
+86,109,231,33,179,173,248,188,196,126,182,159,62,177,255,185,223,62,209,
+0,30,235,132,1,251,86,169,246,195,110,176,189,184,181,45,198,112,240,35,
+10,19,108,241,15,254,92,210,19,114,79,83,140,58,8,195,65,88,57,32,39,4,
+11,49,101,205,205,205,252,102,222,207,44,159,223,136,72,140,18,118,146,
+25,127,69,69,5,54,10,39,129,120,185,9,231,109,131,100,97,213,40,186,4,158,
+52,154,32,132,91,56,64,136,178,97,229,41,167,136,1,114,16,142,223,252,37,
+18,137,130,241,87,172,229,7,145,196,240,151,69,178,35,129,198,224,18,165,
+142,140,140,100,238,3,246,152,206,192,123,252,66,126,196,197,197,225,41,
+226,23,26,64,8,237,72,207,20,9,143,16,100,138,141,80,9,160,145,100,98,113,
+84,20,218,32,236,233,31,124,120,89,137,5,95,40,122,166,109,78,156,253,40,
+43,223,26,211,109,223,246,77,251,13,7,219,22,25,142,220,191,176,253,203,
+137,63,102,53,202,86,9,21,41,16,134,131,70,19,132,74,8,222,195,117,33,65,
+119,17,195,95,22,133,136,212,254,138,85,98,237,80,126,167,134,18,233,22,
+183,92,161,13,194,212,234,142,41,175,88,235,78,209,9,182,184,83,108,159,
+91,249,19,243,224,185,201,62,229,33,251,163,219,218,162,12,7,191,37,225,
+192,89,169,117,29,86,188,106,229,183,20,8,195,65,10,132,97,161,16,6,97,
+67,103,223,153,159,102,27,204,241,248,134,237,108,17,183,216,158,47,179,
+239,97,96,143,117,66,159,125,226,82,251,89,167,218,62,51,28,249,150,7,252,
+242,39,86,149,133,210,35,246,10,132,225,32,5,194,176,80,8,131,208,190,190,
+194,82,247,200,76,178,69,61,107,187,199,202,239,209,238,179,111,253,156,
+237,174,93,109,171,124,124,76,112,164,225,128,55,83,179,66,232,29,164,91,
+8,194,126,231,109,240,237,186,79,213,247,246,246,102,103,103,111,216,176,
+65,92,39,99,237,250,245,235,51,51,51,251,156,175,37,75,78,78,142,136,136,
+16,119,81,144,184,173,173,173,160,160,128,44,34,175,210,24,73,129,48,44,
+20,170,32,172,104,237,57,254,131,12,131,33,30,199,176,179,109,141,221,118,
+7,164,49,176,199,34,97,208,62,33,199,126,224,101,182,89,254,61,32,225,123,
+120,110,109,121,200,60,74,177,37,32,4,96,133,133,133,113,113,113,218,29,
+0,168,166,166,166,184,184,184,177,177,49,49,49,177,179,179,147,4,93,93,
+93,169,169,169,21,21,21,37,37,37,112,177,163,163,35,61,61,157,72,32,154,
+155,155,155,148,148,164,191,97,2,64,18,47,238,183,144,81,206,72,254,18,
+35,126,4,94,148,212,176,107,98,40,130,136,228,104,41,41,152,31,186,228,
+227,188,17,68,44,178,138,69,113,167,136,51,211,184,105,139,64,88,95,95,
+175,191,201,7,177,200,212,134,150,22,165,205,203,203,203,200,200,16,38,
+152,72,86,177,72,60,245,66,147,231,228,228,136,186,80,26,107,133,42,8,191,
+74,171,223,206,50,159,27,60,220,246,195,15,246,243,7,172,122,107,76,183,
+125,219,79,108,127,62,218,54,127,140,28,65,125,216,253,245,228,252,134,
+16,113,10,183,4,132,152,251,242,242,114,12,93,107,107,171,140,114,190,66,
+83,60,41,40,104,135,169,196,108,2,66,208,136,255,7,63,200,69,22,86,145,
+11,223,81,216,76,145,23,4,194,75,214,138,231,13,68,36,155,34,146,52,152,
+211,170,170,170,192,179,16,127,23,168,235,203,200,145,80,58,142,19,204,
+99,237,249,139,9,202,114,190,68,134,2,66,119,220,92,106,134,226,112,192,
+196,147,120,124,89,232,39,8,105,60,138,29,25,25,73,163,202,40,231,3,3,81,
+81,81,52,39,5,19,51,29,154,135,54,142,143,143,103,85,90,90,26,181,192,100,
+71,52,91,126,126,62,44,244,187,135,89,68,148,133,18,81,27,114,217,25,67,
+205,208,161,69,119,228,7,21,34,186,59,173,14,141,196,162,126,149,51,223,
+216,42,36,65,56,48,56,120,150,101,174,14,238,101,251,37,210,126,92,191,
+85,223,32,218,108,223,241,118,219,179,59,110,193,99,130,35,13,247,44,249,
+245,125,96,65,173,45,1,161,24,245,88,66,61,36,216,26,46,4,246,1,199,64,
+88,134,218,218,218,132,132,4,225,84,16,143,191,72,26,225,45,8,255,65,131,
+4,20,1,141,36,192,150,110,220,184,81,68,146,18,115,138,201,197,22,1,24,
+97,121,2,38,14,27,179,47,206,244,202,40,103,25,41,53,199,3,224,41,29,30,
+17,71,46,158,169,192,57,102,21,139,20,28,94,82,28,76,19,9,32,162,204,60,
+30,242,19,132,20,131,26,103,22,0,213,101,148,243,217,17,34,105,120,218,
+143,150,22,147,20,26,9,46,138,199,42,169,41,22,105,39,18,144,152,150,163,
+252,164,23,217,153,86,80,23,172,210,79,106,168,35,226,73,3,51,200,43,34,
+45,34,42,129,246,214,159,184,160,105,57,120,218,94,188,76,142,38,7,255,
+180,180,152,25,80,100,18,51,27,162,44,84,5,201,136,39,65,0,88,24,146,32,
+92,146,219,100,48,190,227,18,182,182,197,156,105,155,99,217,27,68,123,237,
+91,167,217,15,251,163,237,157,0,56,130,250,128,83,152,89,27,10,207,215,
+51,198,145,92,24,185,220,130,80,120,132,120,117,218,216,103,132,18,47,224,
+135,197,128,16,164,33,1,6,86,188,163,3,219,66,50,108,14,44,193,146,176,
+217,149,43,87,178,72,228,248,130,144,99,64,88,51,61,8,41,2,252,195,48,98,
+226,196,105,97,142,159,178,20,21,21,81,46,14,18,192,99,216,57,96,12,32,
+71,206,42,34,69,94,81,99,192,21,145,94,20,28,197,198,198,226,60,128,18,
+168,49,234,44,240,223,35,164,186,57,116,104,39,163,92,175,88,35,158,82,
+137,119,1,240,155,34,209,72,172,74,73,73,161,0,44,82,108,138,135,93,166,
+19,64,5,173,72,32,132,74,33,35,205,79,75,139,72,242,86,87,87,211,45,248,
+17,24,231,201,71,81,3,180,37,199,79,185,52,16,82,22,14,158,162,137,57,29,
+109,198,111,34,41,56,63,136,209,202,37,124,98,58,16,200,164,117,69,36,41,
+73,64,21,81,129,218,252,128,178,3,78,106,146,58,244,187,6,66,15,132,245,
+157,125,199,190,111,137,171,131,55,218,94,40,183,239,110,192,143,69,66,
+155,125,251,231,237,119,237,109,91,102,56,230,0,132,137,47,36,60,179,166,
+188,55,248,63,75,193,176,69,114,97,228,210,131,80,216,116,236,6,246,1,108,
+224,72,0,3,172,40,118,64,24,73,204,2,182,2,123,66,74,178,176,200,218,184,
+184,56,44,128,200,75,74,44,140,240,52,0,3,145,136,93,96,136,48,35,88,143,
+156,156,28,108,133,72,28,72,121,7,33,135,132,121,23,30,48,197,164,248,84,
+2,135,138,81,114,11,66,42,129,2,146,61,61,61,29,3,40,226,173,8,66,33,26,
+216,45,8,203,202,202,168,5,126,96,127,169,32,202,67,97,40,51,173,72,25,
+200,226,9,132,84,16,185,72,64,207,19,109,105,89,16,34,142,92,204,104,52,
+16,10,176,17,73,89,104,87,90,148,82,176,72,183,224,47,61,152,57,14,224,
+228,183,40,81,116,116,52,37,213,152,71,135,136,143,143,167,86,233,61,98,
+38,129,168,40,81,75,212,36,227,65,68,142,84,161,7,194,143,18,107,183,27,
+239,15,208,79,180,197,222,107,123,178,195,190,157,1,63,86,8,226,49,193,
+191,219,166,111,107,139,54,28,118,192,194,113,239,103,148,183,140,231,133,
+159,81,145,147,131,254,131,80,216,67,113,90,139,97,136,173,64,24,141,245,
+235,215,51,156,69,36,191,5,255,24,227,107,215,174,101,17,70,10,115,135,
+233,39,1,134,69,108,77,152,208,200,200,72,76,7,219,196,98,104,190,199,198,
+141,27,177,45,24,79,17,169,101,9,140,12,32,196,184,113,36,88,57,72,6,209,
+43,43,43,41,178,152,241,115,180,136,31,216,67,144,193,95,10,130,229,231,
+152,157,89,135,64,136,241,36,23,70,143,181,20,71,196,3,66,34,131,0,132,
+226,76,32,13,64,203,81,41,192,128,234,160,117,89,69,163,82,6,168,0,18,0,
+27,29,139,181,164,161,192,162,82,144,72,47,106,129,223,34,146,223,36,166,
+46,196,213,99,17,105,29,209,210,94,64,72,209,56,114,230,65,76,127,40,59,
+49,52,57,179,54,74,68,171,211,69,88,164,199,139,83,7,136,196,130,121,164,
+39,129,152,10,0,48,202,78,36,189,92,115,40,71,170,16,3,97,107,119,255,37,
+227,253,233,221,157,109,107,94,183,223,108,205,55,136,114,84,11,236,231,
+30,97,251,222,112,204,1,14,19,108,241,159,167,212,5,218,55,25,109,13,97,
+112,52,110,101,96,56,99,247,183,208,130,99,97,48,146,126,219,129,177,147,
+0,33,101,196,136,81,70,126,99,217,112,120,32,25,191,19,18,18,64,29,197,
+199,226,49,197,231,55,127,197,5,35,76,19,96,211,159,24,3,1,96,130,120,224,
+66,97,41,50,22,85,176,131,148,196,243,3,147,171,153,205,81,209,22,129,144,
+242,96,241,57,68,74,5,168,177,251,148,13,71,30,107,78,129,113,110,112,128,
+248,75,36,86,24,96,176,74,160,142,50,80,114,225,242,203,109,57,65,40,222,
+70,70,57,97,30,211,40,129,79,166,63,73,73,73,2,132,64,148,186,147,25,44,
+32,3,8,233,1,96,143,66,209,3,24,60,180,31,253,3,170,9,216,115,228,212,21,
+85,193,4,2,40,130,58,210,83,57,90,37,144,128,69,26,94,204,21,72,76,164,
+0,33,187,160,99,41,16,10,101,214,118,238,49,35,217,96,118,3,25,118,181,
+173,90,96,63,175,219,190,173,129,64,86,8,141,246,169,247,217,158,216,197,
+182,218,112,204,227,18,78,250,40,51,216,79,142,58,57,56,10,32,68,152,62,
+49,168,253,22,150,4,174,88,208,37,224,168,48,92,148,14,115,7,210,248,129,
+89,131,11,28,42,70,146,72,196,34,171,48,101,192,66,172,34,35,107,1,36,214,
+73,243,136,132,47,36,78,43,146,134,69,12,41,107,197,118,176,129,192,69,
+176,86,164,31,21,109,17,8,41,45,226,7,199,36,108,52,139,28,183,40,18,127,
+249,45,22,137,23,139,34,189,182,86,252,22,2,132,144,149,18,106,217,69,188,
+115,27,114,155,67,251,219,178,158,52,186,162,109,152,242,208,180,116,2,
+209,150,204,98,64,35,222,27,176,167,57,65,56,163,136,162,145,18,23,16,4,
+34,26,24,192,179,138,223,164,212,186,53,32,100,222,64,46,102,18,84,41,139,
+52,57,127,217,5,41,163,163,163,169,100,18,147,87,164,247,93,33,6,194,15,
+18,106,241,54,12,54,55,48,97,130,45,238,183,182,31,226,236,71,89,240,49,
+9,14,41,213,126,248,169,182,207,198,250,49,65,223,195,4,123,124,92,197,
+175,207,146,7,163,70,17,132,33,47,12,32,252,195,214,201,101,191,132,181,
+199,145,208,28,196,192,104,139,64,168,73,144,64,46,248,43,44,53,83,3,185,
+16,36,162,225,193,18,127,169,1,88,5,164,1,185,152,224,208,156,176,16,4,
+34,98,72,0,195,248,13,204,88,69,94,210,224,249,49,217,17,155,66,194,35,
+172,116,126,167,144,109,210,159,196,57,1,182,195,84,136,72,42,153,72,232,
+40,51,248,172,80,2,33,179,170,83,62,206,52,24,220,128,133,243,108,31,36,
+216,143,176,224,123,180,155,237,59,126,96,255,219,33,182,133,134,3,30,247,
+112,231,226,34,43,205,93,71,44,5,194,0,11,139,135,221,195,144,202,229,128,
+104,116,64,56,42,26,242,245,130,118,196,192,45,61,210,252,19,32,204,211,
+61,79,50,138,10,37,16,70,149,182,77,28,143,119,170,225,11,222,102,127,174,
+194,146,55,136,86,218,119,187,202,246,250,100,91,132,225,152,173,16,14,
+127,59,45,168,111,153,81,32,12,7,89,8,132,74,104,140,166,2,33,3,194,129,
+65,199,109,11,11,13,166,54,0,97,146,45,242,30,219,83,120,93,6,2,89,36,212,
+216,167,37,217,127,151,104,63,34,192,97,189,253,196,231,237,119,121,255,
+156,239,148,87,146,22,229,6,113,223,11,0,8,153,70,27,6,62,179,97,225,18,
+17,207,15,33,34,197,34,233,69,50,165,209,146,2,97,88,40,100,64,184,169,
+177,123,191,55,3,253,1,222,93,109,171,94,183,255,163,213,190,189,1,63,225,
+28,6,236,91,69,218,143,187,214,246,10,83,4,67,117,153,195,191,127,41,237,
+238,11,86,219,61,214,32,236,238,238,102,251,157,186,123,0,219,156,143,76,
+228,58,223,188,209,213,213,197,239,252,252,252,196,196,68,146,53,59,63,
+111,27,116,151,144,172,47,5,194,176,80,200,128,240,139,212,250,29,2,251,
+233,65,40,248,163,253,188,94,171,190,71,123,92,194,160,125,194,91,246,107,
+247,178,45,219,202,183,183,213,252,254,195,140,250,206,128,94,242,25,69,
+57,57,56,86,32,236,112,222,88,30,31,31,175,191,55,164,164,164,164,162,162,
+130,24,241,52,90,79,79,79,107,107,43,105,160,32,241,13,13,13,85,206,123,
+245,101,106,165,209,208,88,129,16,231,189,182,182,150,14,164,191,197,81,
+68,150,149,149,213,212,212,224,224,51,21,162,93,73,67,147,211,222,213,213,
+213,172,85,13,60,22,10,13,16,246,15,14,254,223,138,210,9,118,163,157,29,
+187,112,128,109,201,247,182,11,44,120,107,204,120,133,126,251,86,9,246,
+35,47,181,189,229,35,2,69,216,230,133,132,224,125,221,154,147,131,99,8,
+66,140,33,206,159,30,132,197,197,197,245,245,245,88,72,113,75,57,38,177,
+188,188,156,72,236,39,241,233,233,233,252,149,73,131,68,152,247,184,205,
+63,193,1,221,41,93,84,84,84,102,102,38,107,169,225,232,232,104,210,0,123,
+74,23,27,27,11,236,101,210,128,104,172,64,136,243,46,30,36,79,78,78,214,
+30,15,192,211,207,201,201,161,156,52,60,127,197,195,34,176,48,43,43,139,
+148,162,177,183,240,214,91,75,9,246,20,22,22,210,162,218,253,47,116,110,
+202,72,36,18,159,28,3,255,69,69,69,52,63,221,157,191,116,136,177,184,0,
+16,26,32,108,238,10,220,115,244,19,108,113,151,219,102,37,217,127,103,32,
+65,56,135,74,251,110,143,219,254,181,191,109,169,161,174,124,9,175,70,84,
+202,86,12,54,57,57,56,86,32,100,212,99,28,176,132,122,16,50,84,147,146,
+146,196,83,88,237,206,87,210,96,46,132,71,65,122,108,72,112,121,11,28,45,
+62,238,198,141,27,245,32,196,232,229,231,231,83,22,202,69,217,197,179,227,
+24,127,113,107,61,70,18,52,200,164,1,209,88,129,16,170,81,84,154,144,249,
+139,118,70,187,211,249,90,88,12,61,245,2,6,104,126,220,124,98,104,114,24,
+73,74,236,181,198,140,96,23,109,204,84,128,70,205,203,203,3,243,162,239,
+138,57,29,142,111,66,66,2,253,128,226,147,134,170,200,200,200,160,30,40,
+62,53,163,247,161,71,75,161,1,194,178,150,158,3,103,5,226,2,33,20,60,219,
+246,113,153,125,207,65,19,12,194,51,224,19,167,218,15,63,209,246,229,214,
+182,24,67,93,249,24,206,250,52,91,182,98,176,105,76,65,136,204,32,196,86,
+136,7,165,48,11,128,1,179,137,231,64,140,92,29,108,130,229,152,184,248,
+248,120,61,8,197,37,79,108,32,150,31,139,71,1,177,147,226,29,35,88,66,126,
+232,47,154,6,64,99,5,66,204,46,38,30,28,26,62,213,132,104,114,252,66,106,
+7,36,128,64,230,62,84,19,189,129,134,15,222,198,118,43,10,5,249,112,121,
+41,160,126,18,71,195,227,4,211,197,1,36,94,32,109,79,135,160,151,16,73,
+231,208,15,137,209,82,104,128,112,99,73,219,86,99,127,94,116,71,219,134,
+91,108,207,55,218,167,24,96,16,158,1,4,22,217,247,121,217,126,219,206,182,
+181,134,138,26,81,216,250,133,132,186,142,160,188,76,232,228,96,32,64,40,
+248,199,95,126,131,7,204,99,106,106,42,107,49,17,194,169,144,25,130,74,
+20,167,186,186,26,139,135,157,215,131,48,42,42,10,248,97,27,147,147,147,
+249,11,23,73,134,25,12,176,35,168,105,12,111,150,161,240,120,60,76,106,
+48,247,50,202,73,65,156,33,218,152,10,194,238,99,157,225,63,200,236,113,
+189,165,44,148,68,25,233,226,244,0,186,178,140,114,70,194,69,237,114,55,
+127,89,75,159,16,83,63,126,139,248,209,85,104,128,240,169,213,101,6,243,
+58,234,97,7,219,134,55,108,55,182,91,242,61,218,227,18,230,219,47,58,222,
+246,245,168,188,170,102,126,134,229,222,144,233,139,198,26,132,204,149,
+107,107,107,113,3,196,164,25,22,98,7,176,27,216,4,49,39,198,144,194,197,
+177,48,11,1,16,197,137,137,137,1,123,191,252,242,11,204,211,236,60,191,
+197,107,70,40,38,213,43,78,147,194,11,10,62,46,37,29,43,16,82,66,124,62,
+90,55,58,58,26,212,81,54,196,15,42,133,210,50,187,97,145,42,160,129,105,
+236,80,5,33,162,115,211,204,120,198,148,87,196,136,9,32,157,155,223,68,
+82,124,230,10,244,9,45,193,88,40,4,64,72,237,156,248,225,216,190,80,102,
+138,109,221,199,246,191,244,219,39,26,96,16,134,1,71,176,220,190,199,237,
+182,255,78,178,69,25,106,201,239,112,239,210,160,252,84,175,147,131,99,
+8,66,36,198,190,32,34,60,16,49,44,58,87,14,105,76,141,195,88,11,139,135,
+240,249,48,65,20,4,52,82,52,102,252,105,105,105,120,68,248,69,216,192,28,
+231,39,153,48,140,56,9,50,91,96,53,86,32,196,191,201,203,203,203,206,206,
+198,169,167,240,0,15,191,24,55,136,137,0,70,153,72,10,79,201,97,33,130,
+19,250,86,15,13,81,34,104,71,217,233,220,154,255,135,168,25,166,63,76,17,
+248,77,37,136,27,133,198,186,248,33,0,194,138,214,158,109,95,28,195,23,
+202,108,103,139,124,192,246,248,66,251,185,139,236,231,140,105,88,108,63,
+59,215,126,160,149,239,68,109,181,239,240,133,253,114,28,193,209,253,150,
+239,233,159,100,181,247,6,223,48,15,0,8,53,1,12,249,43,228,132,149,195,
+219,161,128,101,206,143,82,17,195,236,95,179,75,194,9,166,158,197,60,32,
+240,26,195,83,163,20,27,163,143,137,135,1,120,129,20,152,66,18,131,192,
+0,53,66,60,63,80,232,81,16,81,64,60,221,164,164,36,80,71,195,211,210,21,
+206,79,86,65,71,154,92,92,12,96,30,180,110,221,58,145,102,76,47,14,135,
+0,8,127,202,107,26,211,55,171,77,180,197,78,177,173,159,106,91,55,214,225,
+47,182,153,101,246,61,44,11,194,108,251,65,151,217,102,239,96,219,96,168,
+159,45,15,71,190,155,94,218,28,124,39,126,2,9,194,144,23,70,143,217,63,
+214,79,46,91,70,99,8,66,189,160,2,146,11,97,35,166,2,224,13,210,211,252,
+76,2,10,11,11,137,132,250,218,172,135,4,29,29,29,164,17,51,6,17,57,22,10,
+1,16,206,136,170,10,192,157,50,99,26,118,180,109,248,151,237,209,78,251,
+36,3,123,44,18,154,237,59,206,183,95,180,175,237,167,209,117,4,181,176,
+223,155,41,169,213,91,250,62,222,192,75,129,48,28,20,32,16,42,1,63,113,
+66,96,92,20,2,32,188,109,97,97,32,31,165,31,245,112,128,109,201,103,246,
+63,117,89,149,130,17,246,227,175,180,189,225,247,211,17,190,132,169,175,
+38,173,45,26,253,71,131,198,90,10,132,225,32,5,194,144,214,224,160,163,
+187,147,80,93,148,223,209,80,59,244,187,55,40,223,87,48,48,56,120,250,156,
+44,131,97,13,162,112,166,237,147,44,251,193,253,246,173,12,248,177,66,192,
+67,181,219,238,216,205,182,114,140,28,65,45,224,208,255,144,245,235,135,
+184,131,69,10,132,225,32,5,194,144,86,127,183,35,239,103,71,246,130,95,
+67,121,188,92,21,84,170,237,232,61,242,221,116,131,97,13,138,48,201,22,
+121,141,237,149,106,251,174,6,252,88,33,244,218,183,142,181,31,125,190,
+237,131,173,2,245,33,223,153,81,85,253,193,246,197,250,198,198,198,252,
+252,124,185,160,20,162,82,32,12,105,225,17,214,102,111,6,194,222,160,124,
+76,37,189,166,243,128,128,188,83,102,116,195,65,182,197,31,217,175,178,
+230,103,43,138,236,251,252,203,246,216,94,182,95,12,199,60,166,225,238,
+37,69,221,253,65,2,194,129,1,71,75,157,163,177,170,179,44,187,62,43,194,
+209,88,201,111,199,64,216,221,232,16,38,82,32,12,117,117,181,57,242,151,
+75,10,214,14,221,173,19,140,90,93,216,178,219,235,201,6,171,106,241,112,
+160,109,113,148,253,56,11,158,14,29,180,79,136,179,31,117,220,208,99,242,
+99,120,69,208,109,184,232,139,156,142,32,122,130,162,174,204,145,187,212,
+145,189,104,48,123,161,35,103,137,163,34,85,129,48,84,165,64,24,6,42,79,
+24,162,32,56,236,147,111,63,15,58,125,159,213,184,99,96,191,190,180,37,
+97,123,219,198,43,109,51,11,236,251,26,8,52,238,1,4,22,218,247,125,204,
+254,144,47,31,17,28,139,112,196,187,233,173,61,193,195,146,190,94,199,166,
+85,114,18,153,179,216,209,82,46,227,149,66,78,10,132,97,32,198,115,206,
+66,71,93,206,208,153,210,224,212,87,105,245,219,189,20,28,32,156,98,91,
+255,150,237,186,86,251,14,6,8,141,123,232,179,79,156,99,251,203,81,182,
+249,163,242,190,52,255,194,190,111,164,180,116,7,149,83,213,84,37,65,88,
+176,82,185,131,33,44,5,194,176,80,123,73,110,111,107,240,221,176,167,233,
+147,164,186,109,198,242,105,250,81,9,91,217,226,246,181,253,180,220,126,
+154,213,78,135,226,8,150,218,247,188,198,183,175,201,143,105,216,233,213,
+164,230,224,2,97,127,159,163,40,106,8,132,173,234,163,240,161,44,5,194,
+176,80,176,63,71,248,110,92,205,4,147,85,181,84,192,205,250,171,237,245,
+108,251,65,6,8,141,123,168,179,239,252,169,253,202,99,108,223,26,14,120,
+92,194,214,47,36,52,118,5,215,55,40,6,29,13,69,253,155,214,15,253,80,10,
+93,41,16,134,133,130,26,132,88,160,25,81,85,6,147,106,169,176,173,45,234,
+69,251,63,235,237,59,25,32,52,238,33,211,126,240,31,109,239,108,103,139,
+48,28,240,56,134,242,214,32,187,111,185,171,165,177,172,64,61,62,17,226,
+82,32,12,11,5,53,8,7,6,7,95,88,95,97,176,167,214,9,251,219,150,254,104,
+63,191,207,74,223,172,24,180,255,166,201,62,229,125,251,223,118,182,173,
+25,235,199,228,71,26,50,107,3,250,193,213,45,23,3,71,61,71,24,242,82,32,
+12,11,5,53,8,251,6,6,159,92,53,230,95,34,244,35,108,101,139,189,204,54,
+59,210,126,220,128,149,222,160,61,104,159,176,194,254,135,75,108,111,111,
+99,139,54,28,176,21,66,100,233,232,127,119,122,76,165,64,24,14,82,32,12,
+11,5,53,8,123,251,7,31,94,86,98,176,167,227,30,192,204,227,246,127,213,
+218,167,25,56,52,190,161,217,190,227,195,182,255,219,213,182,202,106,142,
+160,22,150,229,253,250,145,234,160,144,2,97,56,72,129,48,44,164,64,56,186,
+97,47,219,47,175,217,254,209,99,223,198,192,161,113,12,157,246,73,49,246,
+99,206,177,125,100,89,4,138,176,44,95,129,80,201,114,82,32,12,11,5,251,
+169,209,167,86,91,229,212,232,86,182,216,63,218,222,137,176,31,63,104,66,
+209,56,134,18,251,94,119,218,158,158,102,91,109,56,90,11,134,232,50,117,
+106,84,201,114,82,32,12,11,169,155,101,70,37,224,108,93,105,155,89,101,
+223,205,58,159,213,229,72,214,217,79,252,173,237,135,113,124,76,126,68,
+33,75,221,44,163,100,61,41,16,134,133,130,26,132,131,14,199,204,232,106,
+131,61,13,124,216,211,182,252,37,219,237,189,246,173,13,40,26,199,144,103,
+223,255,1,219,227,219,218,162,12,135,106,229,80,17,108,143,79,40,16,134,
+131,20,8,195,66,65,13,66,244,94,124,205,248,126,149,247,40,219,119,107,
+236,39,91,135,130,237,246,201,51,109,55,253,206,246,125,192,190,160,52,
+42,97,155,224,123,160,94,129,48,44,164,64,24,22,10,118,16,142,227,43,214,
+182,182,197,252,197,54,163,218,190,139,69,78,135,14,216,183,42,181,239,
+249,87,219,235,193,229,8,138,176,243,244,96,123,197,154,2,97,120,72,129,
+48,44,20,236,32,156,55,78,47,221,158,106,91,247,148,253,129,38,251,20,3,
+141,198,43,212,216,167,205,182,95,119,144,109,177,225,56,131,37,236,247,
+102,176,189,116,91,129,48,60,164,64,24,22,10,118,16,142,203,103,152,142,
+180,253,111,133,253,15,221,150,121,70,34,201,254,187,115,109,31,142,251,
+139,179,183,36,28,25,92,159,97,114,74,129,48,28,164,64,24,22,10,118,16,
+174,41,10,232,135,121,39,218,98,78,183,125,146,109,63,200,34,207,72,52,
+216,167,190,100,187,125,7,219,6,139,191,121,124,216,240,199,47,115,131,
+233,195,188,78,41,16,134,131,20,8,195,66,193,14,194,204,218,206,3,103,165,
+26,172,234,24,133,93,109,171,158,178,61,80,109,223,197,64,163,113,9,61,
+246,109,150,216,207,254,163,237,29,107,190,47,109,164,225,254,159,138,123,
+250,131,236,51,14,10,132,225,32,5,194,176,80,176,131,176,190,163,239,168,
+247,210,13,86,117,44,194,52,219,234,249,182,139,44,114,58,180,217,190,227,
+61,182,167,118,9,134,199,228,125,12,111,68,87,245,7,219,215,161,21,8,195,
+65,10,132,97,161,96,7,225,192,224,224,153,159,100,25,172,234,232,6,92,174,
+147,108,95,198,219,143,50,208,104,92,66,187,125,242,90,251,73,28,143,225,
+32,131,58,76,180,199,255,152,21,124,95,135,86,32,12,7,41,16,134,133,130,
+29,132,232,174,37,69,99,247,40,33,20,252,183,237,255,85,218,119,51,0,105,
+92,66,190,125,255,91,109,207,77,177,173,55,28,100,176,135,157,166,39,173,
+47,110,149,205,25,60,82,32,12,7,41,16,134,133,66,0,132,51,163,170,182,26,
+27,16,78,182,69,124,104,255,107,151,125,146,1,72,129,15,3,246,9,223,216,
+47,222,215,246,83,176,188,47,109,68,97,191,55,83,83,171,131,236,253,106,
+72,129,48,28,164,64,24,22,10,1,16,254,146,223,60,113,12,158,169,63,206,
+246,245,26,251,73,227,254,176,60,8,204,178,31,116,175,237,169,160,126,58,
+194,123,56,242,221,244,178,150,32,123,191,26,82,32,12,7,41,16,134,133,66,
+0,132,181,237,189,147,94,28,77,16,78,180,197,220,105,127,122,147,125,191,
+113,167,96,155,125,123,187,253,206,67,109,11,130,253,233,8,239,225,204,
+79,179,58,251,130,236,217,9,164,64,24,14,82,32,12,11,133,0,8,7,29,142,83,
+62,206,52,216,86,191,195,84,219,186,153,246,155,58,236,219,25,152,20,224,
+208,111,159,88,102,223,227,10,219,27,91,219,98,12,71,24,122,225,129,159,
+138,101,91,6,149,20,8,195,65,10,132,97,161,16,0,33,122,126,221,40,124,140,
+9,175,235,120,219,215,223,218,47,238,179,79,52,96,41,192,161,198,62,237,
+85,251,173,123,218,150,27,142,48,84,195,130,236,224,187,101,20,41,16,134,
+131,20,8,195,66,161,1,194,152,178,246,137,91,118,191,204,68,91,236,245,
+182,151,242,236,251,27,152,20,248,176,202,126,202,169,182,207,38,5,225,
+139,179,253,11,219,188,144,208,212,25,100,47,87,19,82,32,12,7,41,16,134,
+133,66,3,132,101,45,61,7,207,246,255,253,50,83,108,235,239,183,61,209,106,
+223,222,192,164,0,7,28,193,255,218,238,217,49,228,158,142,240,30,206,253,
+44,91,182,98,176,73,129,48,28,164,64,24,22,10,13,16,182,116,247,95,241,
+117,158,193,194,250,18,38,216,226,142,182,205,255,214,254,199,126,251,86,
+6,44,5,50,116,216,183,251,198,126,241,217,182,143,130,235,35,130,163,18,
+102,199,84,203,86,12,54,41,16,134,131,20,8,195,66,161,1,194,129,193,193,
+199,86,150,250,241,88,253,201,182,207,51,237,135,12,140,43,5,91,236,59,
+220,97,123,102,170,109,157,225,216,194,33,108,243,66,66,78,93,240,61,65,
+40,164,64,24,14,82,32,12,11,133,6,8,209,188,180,250,17,125,143,105,7,219,
+134,123,109,79,182,141,235,233,80,28,193,133,246,115,15,179,253,104,56,
+182,240,9,39,125,148,89,223,25,100,31,166,215,164,64,24,14,82,32,12,11,
+133,12,8,203,90,122,124,255,12,197,158,182,229,159,218,175,28,223,103,36,
+50,236,135,220,100,179,135,219,21,65,125,152,96,139,127,106,85,89,208,125,
+116,66,147,2,97,56,72,129,48,44,20,50,32,196,154,254,115,113,145,193,212,
+186,13,39,216,190,74,183,31,54,142,23,5,251,236,19,63,180,253,117,111,219,
+178,173,108,113,134,99,11,171,48,245,213,164,37,185,65,220,247,20,8,195,
+65,10,132,97,161,144,1,33,138,43,111,223,218,235,187,214,38,217,162,254,
+102,123,173,196,190,151,129,76,129,12,61,246,109,222,180,223,112,178,237,
+139,227,109,95,7,32,28,109,155,111,217,151,116,255,238,157,244,202,214,
+94,217,120,65,40,5,194,112,144,2,97,88,40,148,64,56,48,56,120,238,220,108,
+131,181,213,194,62,182,159,63,177,255,185,213,190,131,129,76,1,14,128,176,
+202,190,107,0,66,165,125,183,165,246,51,255,98,155,177,147,109,173,161,
+42,44,18,30,90,86,18,172,103,69,157,82,32,12,7,41,16,134,133,66,9,132,104,
+78,82,173,249,181,156,19,108,113,7,216,150,172,177,159,60,190,207,72,4,
+38,12,218,39,116,219,183,205,180,31,124,181,237,213,41,182,117,150,125,
+30,99,43,123,124,82,85,135,108,182,224,148,2,97,56,72,129,48,44,20,98,32,
+204,169,239,218,247,141,20,189,193,157,108,139,184,198,246,74,174,253,0,
+3,48,66,50,224,8,126,99,191,24,4,82,106,125,37,88,48,156,61,55,123,32,168,
+253,65,5,194,240,144,2,97,88,40,196,64,216,214,51,240,167,121,191,62,89,
+63,201,22,249,154,237,31,45,227,125,58,52,0,161,218,190,235,115,182,187,
+143,177,125,187,131,109,131,86,124,203,6,188,246,111,211,27,130,156,131,
+10,132,97,33,5,194,176,80,136,129,16,125,146,84,55,249,165,196,173,156,
+167,67,23,219,207,25,223,135,229,199,58,116,219,183,41,182,239,253,178,
+253,246,125,109,63,7,209,91,105,78,248,48,179,162,53,248,62,64,104,144,
+2,97,56,72,129,48,44,20,122,32,108,233,238,63,125,78,214,149,182,55,210,
+237,135,142,251,7,5,199,46,180,218,183,255,217,126,198,189,182,39,247,177,
+253,28,92,95,43,220,230,133,132,151,54,84,246,5,251,137,81,5,194,240,144,
+2,97,88,40,244,64,232,24,232,203,90,240,76,131,125,170,129,28,161,20,22,
+217,207,57,211,54,103,154,109,245,132,32,124,18,113,247,25,201,121,245,
+93,178,177,130,89,10,132,225,32,5,194,176,80,168,129,176,165,204,241,227,
+205,142,23,183,54,144,35,4,66,191,125,171,114,251,30,95,219,47,57,217,246,
+69,48,242,79,11,15,45,43,145,141,21,228,82,32,12,7,41,16,134,133,66,7,132,
+131,131,142,252,159,29,159,156,230,120,33,212,46,10,14,216,39,36,218,127,
+247,136,237,145,223,219,230,109,99,139,54,112,37,184,194,126,111,166,150,
+183,4,253,213,65,33,5,194,112,144,2,97,88,40,68,64,56,208,239,136,127,207,
+49,99,119,3,66,66,32,100,219,15,186,205,246,220,46,182,85,19,67,226,11,
+77,47,110,168,232,103,202,18,18,82,32,12,7,41,16,134,133,66,1,132,189,29,
+142,152,89,142,55,247,115,204,216,77,31,250,95,219,173,206,190,179,31,97,
+124,95,198,77,24,180,79,224,48,54,218,127,127,135,253,153,160,120,28,194,
+199,112,200,236,180,156,144,184,58,40,164,64,24,14,82,32,12,11,133,2,8,
+123,218,28,21,241,142,242,88,67,232,43,141,121,230,203,31,79,181,125,54,
+162,112,133,237,13,156,48,3,153,2,25,64,224,12,219,77,167,219,62,217,49,
+132,16,72,216,250,133,132,23,214,87,132,192,205,162,154,20,8,195,65,225,
+5,194,193,205,37,99,71,174,45,204,30,120,133,218,205,50,155,43,171,182,
+115,167,87,147,12,22,217,83,152,96,139,159,102,91,179,220,126,218,184,60,
+122,216,103,159,88,111,223,105,186,237,150,125,108,63,7,251,133,64,183,
+225,208,183,82,155,186,250,101,195,132,132,20,8,195,65,225,5,194,250,250,
+250,194,194,194,162,162,162,226,226,226,234,234,234,190,62,127,62,22,218,
+214,214,198,22,74,74,74,248,33,163,44,175,208,6,97,111,255,224,83,171,202,
+188,127,146,66,132,173,108,177,167,217,62,141,179,31,101,224,83,0,66,183,
+125,219,141,246,223,63,105,127,240,64,219,98,195,81,133,76,152,250,106,
+210,242,77,205,178,85,66,69,10,132,225,160,240,2,97,65,65,1,8,4,96,173,
+173,173,176,161,161,161,65,174,24,137,64,96,101,101,101,123,123,187,127,
+28,29,23,133,54,8,209,166,198,238,195,223,78,51,216,101,115,56,215,246,
+193,38,251,126,1,126,0,191,199,190,205,247,182,11,254,104,123,103,15,219,
+242,16,254,54,33,174,246,19,43,203,152,148,200,38,9,21,41,16,134,131,194,
+14,132,101,101,101,157,157,157,29,29,29,176,1,34,242,35,45,45,45,57,57,
+25,79,177,185,185,153,30,79,26,254,162,170,170,170,210,210,82,86,197,199,
+199,147,69,108,97,112,112,144,4,141,141,141,61,61,61,65,116,118,52,228,
+65,72,75,188,23,95,179,141,103,167,112,91,91,244,223,108,175,5,242,125,
+164,3,246,173,26,236,59,45,179,159,126,142,237,195,109,108,209,193,245,
+94,24,63,194,193,179,211,50,106,229,48,9,37,5,17,8,153,154,167,167,167,
+71,56,21,29,29,93,94,94,238,135,141,34,11,70,114,227,198,141,169,169,169,
+65,52,215,223,66,133,29,8,83,82,82,4,231,232,49,45,45,45,32,13,191,16,7,
+49,41,41,137,230,103,45,116,228,47,41,129,31,44,100,85,102,102,38,126,164,
+216,194,192,192,0,224,204,205,205,21,104,9,22,22,134,60,8,81,79,255,224,
+181,255,219,164,55,205,90,216,214,22,245,168,237,225,38,251,20,3,171,198,
+40,244,219,183,74,181,31,246,138,253,182,83,108,159,135,198,227,16,190,
+132,87,54,86,134,208,45,50,191,42,136,64,216,219,219,203,72,103,114,143,
+93,234,234,234,74,76,76,228,119,127,127,63,241,136,72,204,23,108,35,134,
+191,136,24,254,138,181,114,19,14,7,254,64,66,66,2,19,253,186,186,186,238,
+238,110,25,27,234,10,59,16,194,54,122,3,93,1,182,85,84,84,180,183,183,199,
+198,198,174,93,187,54,38,38,6,16,230,229,229,209,51,152,10,209,9,232,37,
+76,169,152,25,173,88,177,130,238,37,55,225,112,208,195,216,2,195,131,236,
+10,132,150,210,166,134,238,163,222,77,55,24,104,188,177,89,246,235,219,
+237,147,13,184,26,163,80,96,223,247,118,219,179,251,219,150,134,228,189,
+48,158,194,85,223,230,119,244,14,200,102,8,45,5,23,8,115,114,114,176,75,
+76,238,43,43,43,147,147,147,177,102,216,180,184,184,56,236,27,147,126,86,
+17,201,42,24,201,252,158,152,140,140,140,248,248,248,245,235,215,147,82,
+108,132,52,133,133,133,108,1,151,32,88,236,219,150,43,236,64,8,219,152,
+236,0,179,162,162,34,26,155,126,80,91,91,203,36,8,63,175,180,180,148,30,
+47,64,200,42,34,133,215,136,255,71,70,177,5,122,6,171,152,40,213,215,215,
+211,159,44,222,81,134,38,128,76,254,250,251,178,114,179,26,26,27,196,239,
+16,238,220,148,108,110,114,221,212,87,19,53,3,189,187,109,197,151,246,203,
+2,240,169,222,102,251,142,209,246,99,110,183,253,119,59,91,100,200,159,
+5,53,132,19,62,204,168,12,254,175,76,120,82,112,129,16,147,133,77,3,135,
+112,78,156,223,98,234,207,95,216,134,74,156,194,44,192,197,214,214,86,113,
+210,11,103,32,50,50,18,131,38,54,130,97,196,24,178,5,204,32,14,165,136,
+12,121,133,23,8,65,87,86,86,22,83,36,4,246,232,55,120,129,52,57,14,19,205,
+15,17,153,13,225,44,210,99,232,37,192,146,1,64,74,254,146,76,108,1,138,
+144,17,52,146,222,250,189,164,174,169,46,58,63,154,240,115,210,207,17,185,
+17,252,72,45,73,165,128,114,117,40,170,171,111,224,153,53,229,194,64,139,
+47,52,245,217,39,26,160,53,186,161,206,190,243,219,246,107,47,179,205,222,
+217,182,70,99,67,248,132,221,94,79,94,190,169,57,36,79,138,10,5,227,169,
+81,126,51,221,7,138,117,117,117,197,197,197,204,227,249,141,201,194,142,
+65,62,140,24,94,32,246,13,16,178,10,69,71,71,107,32,196,190,177,17,96,73,
+70,220,0,17,25,242,10,47,16,14,121,72,46,241,91,139,129,13,252,16,34,146,
+69,225,54,241,67,91,59,148,223,41,126,139,72,185,108,97,149,215,149,47,
+72,94,160,15,107,115,214,6,197,145,111,137,96,225,229,243,242,142,182,205,
+79,183,31,58,48,150,55,136,182,217,183,127,215,118,205,225,182,31,240,2,
+13,120,8,159,240,212,170,178,80,122,124,94,19,195,164,177,165,145,169,100,
+86,97,86,102,126,38,63,8,29,157,150,158,251,234,65,8,195,18,18,18,152,220,
+51,245,7,120,217,217,217,0,15,16,86,87,87,99,220,88,5,8,153,247,51,167,
+111,110,110,94,183,110,157,6,66,50,226,11,82,124,178,224,74,138,200,144,
+87,120,129,48,220,20,158,32,68,85,89,235,54,189,116,168,129,91,163,21,58,
+237,147,50,237,135,188,97,191,225,32,219,162,112,59,11,170,15,19,236,241,
+87,124,157,215,211,31,154,151,6,187,123,186,215,100,175,49,12,159,134,22,
+127,30,184,10,152,152,160,67,175,40,167,226,226,226,240,101,241,11,1,33,
+14,31,192,43,47,47,135,139,141,141,141,128,144,69,86,129,204,228,228,228,
+196,196,196,146,146,18,13,132,136,100,108,33,47,47,47,28,108,133,144,2,
+97,40,43,28,65,56,216,239,72,154,227,152,117,128,129,94,163,18,250,237,
+19,151,218,207,186,218,246,234,126,182,159,12,84,8,195,112,214,167,217,
+69,77,33,123,87,97,48,130,80,201,111,41,16,134,178,194,14,132,253,189,142,
+152,217,142,233,59,25,0,182,133,97,208,62,1,47,112,149,253,148,51,108,159,
+108,111,219,24,212,159,9,28,173,176,231,140,148,136,210,182,208,189,50,
+168,64,24,94,82,32,12,101,133,23,8,187,155,29,27,95,118,188,186,163,1,99,
+91,24,54,217,247,253,200,126,213,5,182,247,182,182,197,24,96,16,182,97,
+191,55,83,23,231,134,248,211,56,10,132,97,165,144,5,97,95,95,95,81,81,81,
+74,74,74,123,123,187,140,114,222,243,153,151,151,39,238,152,98,177,161,
+161,33,41,41,73,188,127,129,244,249,249,249,172,202,205,205,5,21,36,200,
+204,204,12,246,27,136,187,123,187,43,26,42,8,169,121,169,155,202,55,241,
+163,182,165,86,220,7,20,106,106,171,118,124,127,173,227,165,109,13,24,243,
+59,12,218,127,147,110,63,244,1,219,227,191,181,253,176,173,45,202,64,130,
+112,14,248,130,75,243,154,66,247,25,28,41,5,194,176,82,104,130,16,91,95,
+93,93,157,157,157,93,89,89,9,14,53,211,47,30,150,104,107,107,139,138,138,
+2,144,201,201,201,245,245,245,208,142,223,144,15,70,246,246,246,14,12,12,
+144,94,60,80,81,82,82,82,92,92,172,191,101,148,85,218,214,132,180,69,67,
+252,22,202,185,159,209,217,32,219,201,223,148,223,216,216,40,151,67,79,
+237,213,142,255,93,61,42,223,172,135,127,237,246,201,185,246,3,238,183,
+63,190,147,109,109,8,191,26,212,191,48,249,165,196,25,81,85,33,243,209,
+93,47,98,18,25,145,31,177,44,99,217,207,105,63,47,77,93,202,15,66,83,155,
+229,252,96,131,149,96,17,123,165,63,235,51,100,71,156,105,248,75,60,18,
+49,226,55,226,183,72,25,206,10,89,16,150,150,150,214,213,213,129,55,252,
+60,188,61,17,95,88,88,8,26,233,40,192,175,162,162,2,40,146,0,218,129,189,
+230,230,102,214,194,72,241,104,4,140,132,28,172,213,40,200,15,60,72,210,
+192,75,18,139,72,84,85,85,213,227,84,77,77,141,30,153,126,11,24,179,23,
+14,155,191,252,150,177,254,138,45,192,114,28,95,28,220,214,214,86,25,27,
+58,26,116,148,69,57,62,63,207,192,51,255,66,141,125,218,215,246,75,174,
+181,189,50,213,182,206,0,0,21,8,59,188,156,248,210,134,202,208,123,173,
+182,39,245,245,15,189,126,140,185,50,243,200,158,222,30,126,91,141,25,216,
+43,236,152,102,223,80,75,75,139,176,81,226,245,200,88,36,102,255,20,129,
+35,199,106,97,85,80,83,83,19,150,13,163,135,48,11,44,138,188,225,172,208,
+4,33,205,143,245,23,175,128,161,79,104,29,5,52,226,38,210,51,162,163,163,
+33,98,110,110,46,157,6,40,166,167,167,131,49,224,199,15,214,210,227,215,
+172,89,147,149,149,69,140,120,215,26,121,217,8,224,164,27,145,50,33,33,
+65,99,94,90,90,26,14,37,98,203,250,30,105,22,57,186,186,135,9,45,45,109,
+113,113,113,107,157,90,183,110,29,27,111,107,235,53,164,241,61,116,118,
+13,208,215,217,142,216,96,100,100,100,101,101,181,33,205,136,130,229,230,
+142,101,209,142,119,127,235,216,226,135,5,187,237,219,190,101,191,238,88,
+219,55,83,108,235,13,214,95,5,17,182,127,57,241,237,216,234,238,190,208,
+124,88,194,147,0,70,109,109,45,163,94,46,143,150,250,122,29,221,93,142,
+94,255,95,199,35,192,150,152,152,136,201,98,22,46,34,153,193,99,208,48,
+80,229,229,229,120,2,44,242,119,227,198,141,252,197,52,137,231,235,197,
+75,69,88,133,109,4,129,68,98,187,68,246,112,86,200,130,80,60,25,99,0,33,
+189,135,94,66,87,96,30,68,55,162,7,128,61,18,32,38,80,76,175,232,31,116,
+122,226,215,175,95,47,102,91,226,146,33,121,217,72,65,65,1,93,135,141,71,
+69,69,105,157,207,119,16,150,215,57,22,70,13,19,150,69,212,175,93,187,65,
+112,75,232,151,136,58,67,26,223,195,146,200,14,185,21,151,86,175,79,88,
+28,213,111,72,230,99,136,206,112,244,122,43,95,96,213,223,235,40,94,231,
+120,115,95,3,210,70,20,122,237,91,23,218,247,125,195,126,227,129,182,197,
+234,94,80,47,97,202,43,73,47,108,168,232,13,230,7,231,153,134,142,40,244,
+15,12,217,10,236,128,24,56,76,34,177,24,134,52,126,4,71,127,159,163,177,
+204,145,191,210,145,189,208,81,184,214,209,94,63,48,48,104,72,227,54,24,
+132,41,107,109,109,5,120,216,46,205,22,49,131,199,70,117,116,116,96,142,
+152,1,19,223,216,216,8,246,176,99,164,199,160,97,187,96,97,70,70,6,63,16,
+222,66,81,81,17,63,68,118,168,15,71,153,253,227,39,240,91,68,178,53,178,
+147,70,60,131,40,34,67,79,33,123,106,20,218,209,204,112,139,158,161,181,
+52,93,7,193,188,152,152,24,26,88,184,140,116,11,144,217,210,210,194,42,
+82,10,40,10,82,130,73,250,147,200,14,228,240,8,217,44,25,241,8,5,29,145,
+56,183,64,23,97,110,53,44,8,23,68,13,19,86,172,207,16,3,79,211,242,141,
+149,134,52,190,135,95,134,176,186,153,86,175,139,91,28,217,99,72,230,99,
+136,74,183,12,8,251,58,29,145,175,57,94,219,197,0,54,223,67,143,125,155,
+101,246,211,239,178,61,125,152,237,71,117,33,208,123,56,244,173,180,111,
+211,27,6,130,249,74,82,103,143,35,33,111,100,33,41,187,9,95,74,14,27,167,
+98,99,99,19,115,123,12,201,70,26,26,54,213,59,178,23,232,67,89,65,151,33,
+141,219,208,97,122,98,19,43,167,1,79,196,0,66,22,5,8,153,208,99,163,72,
+131,1,132,100,34,1,120,99,190,142,185,19,191,97,36,116,20,171,16,25,49,
+98,88,197,170,170,42,10,43,34,177,138,208,145,77,1,93,102,6,34,50,244,20,
+154,32,68,116,5,218,114,205,154,53,226,220,38,72,163,201,233,49,17,17,17,
+203,151,47,167,43,128,55,58,205,138,21,43,104,123,154,25,16,210,239,87,
+175,94,45,102,79,80,16,183,143,24,126,176,200,6,129,28,233,215,173,91,199,
+54,153,28,209,141,196,9,7,58,205,202,149,43,153,67,177,150,93,208,183,60,
+225,208,23,16,254,178,177,98,237,90,57,9,21,90,18,209,106,72,227,123,88,
+20,217,45,183,226,210,170,245,137,11,162,6,13,201,124,12,22,2,33,20,124,
+121,123,3,219,124,14,19,74,103,157,122,137,237,237,157,108,107,149,23,56,
+108,216,253,245,228,21,5,45,193,254,14,181,150,14,99,103,30,46,12,174,216,
+80,32,199,140,78,63,71,52,153,82,142,44,180,101,172,53,128,176,62,173,208,
+144,198,109,104,118,119,254,210,12,66,189,71,40,102,240,26,8,89,11,5,197,
+75,183,89,4,120,169,169,169,194,184,9,145,49,55,55,23,55,0,123,136,161,
+19,115,125,5,194,144,18,60,19,87,143,253,22,120,163,75,109,201,133,101,
+186,159,225,146,155,57,180,182,245,38,37,37,139,81,71,95,100,90,215,217,
+213,111,72,51,130,208,53,64,39,214,78,239,224,7,183,180,180,25,211,140,
+36,140,191,87,208,94,235,88,254,136,137,109,62,132,23,38,14,157,71,253,
+230,10,71,193,74,199,64,223,7,9,181,187,189,150,108,48,250,42,232,195,4,
+123,252,225,111,167,173,42,12,133,215,46,143,28,132,76,73,203,197,168,209,
+235,231,136,22,67,178,145,6,176,103,0,97,73,82,157,33,141,219,224,29,132,
+240,12,206,129,43,113,141,16,242,49,77,23,144,19,32,100,85,94,94,94,102,
+102,38,89,68,122,102,240,172,18,219,17,18,30,161,184,142,152,146,146,66,
+22,140,30,233,115,114,114,248,75,98,182,12,68,5,32,67,76,225,2,66,90,84,
+204,131,252,22,217,113,4,233,43,114,121,204,196,161,210,137,241,92,153,
+130,121,114,46,125,23,189,150,169,159,184,15,104,11,167,2,227,175,214,138,
+33,146,189,184,181,17,114,195,134,183,15,115,68,78,119,84,37,59,250,93,
+115,231,254,193,159,243,155,143,125,63,195,96,253,85,16,97,235,23,18,110,
+252,161,32,167,78,94,40,10,118,245,245,59,42,26,70,22,74,171,134,30,178,
+146,0,116,138,65,84,94,215,103,72,54,210,208,83,223,184,25,8,11,35,90,27,
+123,13,105,220,6,183,39,99,186,187,187,129,19,86,2,182,137,231,196,152,
+241,67,172,161,9,180,107,176,139,107,123,164,132,103,8,112,194,57,172,89,
+125,125,189,97,90,47,64,136,215,72,246,174,174,46,224,199,214,48,32,197,
+197,197,228,226,111,75,75,11,241,248,136,122,63,50,52,20,46,32,28,21,5,
+160,249,217,5,162,183,197,198,197,210,191,135,22,28,91,180,83,231,246,134,
+30,38,17,51,68,36,87,4,153,6,29,45,229,142,57,167,140,236,97,65,144,57,
+235,0,71,252,187,142,174,38,188,64,185,37,151,168,137,250,142,190,191,124,
+147,55,209,158,96,192,64,152,135,109,95,76,120,108,101,89,91,79,8,78,252,
+71,36,248,177,113,227,198,117,235,214,109,216,176,1,79,75,59,3,185,101,
+26,116,244,116,56,138,35,134,40,88,188,209,209,179,165,83,13,49,162,113,
+7,153,55,139,1,14,228,144,88,139,68,36,63,68,188,144,62,94,147,56,53,10,
+255,12,9,68,22,36,98,144,51,121,72,73,129,208,66,162,135,149,212,149,100,
+148,102,164,22,165,174,76,90,153,94,146,206,239,250,230,95,223,10,63,82,
+117,247,116,179,5,66,116,118,116,116,78,52,63,114,202,115,58,186,130,237,
+93,57,131,3,142,226,245,142,247,143,54,114,206,75,152,190,147,99,222,165,
+142,132,247,28,29,195,212,94,115,87,255,147,171,202,118,123,93,157,38,29,
+10,19,108,241,199,188,151,254,67,86,99,8,127,95,112,68,194,145,194,73,218,
+242,19,51,70,117,180,56,242,126,150,191,71,67,152,142,45,63,99,9,233,197,
+83,209,114,57,156,164,64,104,33,49,231,138,222,20,109,120,171,83,81,117,
+145,92,61,114,53,181,53,25,182,182,60,125,121,107,71,176,61,86,159,179,
+200,249,53,9,223,30,22,124,109,154,227,167,251,134,158,47,236,254,245,165,
+7,222,213,211,63,184,161,184,245,247,31,168,211,164,241,127,159,159,159,
+91,223,165,40,136,218,59,219,27,91,26,107,26,106,226,211,227,235,154,234,
+248,221,214,209,182,229,206,80,115,91,51,155,106,172,41,107,204,90,58,244,
+163,165,145,24,185,78,105,252,20,238,32,28,242,243,157,146,203,78,25,98,
+244,139,250,223,163,46,5,66,163,250,123,29,137,31,58,94,241,225,6,209,23,
+183,113,204,216,221,177,248,14,71,125,174,249,44,232,176,162,69,55,53,118,
+95,62,47,111,135,87,18,13,108,8,147,176,251,235,201,211,35,42,59,195,236,
+121,121,79,98,140,103,149,101,45,74,89,68,88,152,188,80,252,200,174,200,
+222,242,177,191,50,107,165,216,218,162,228,5,226,71,126,121,112,124,254,
+62,180,21,214,32,20,183,165,20,20,20,84,85,85,1,33,17,201,143,242,242,242,
+194,194,194,122,231,123,137,58,59,59,139,156,234,234,234,234,233,233,97,
+85,101,101,229,24,177,80,129,112,51,245,119,59,54,190,52,252,55,149,94,
+218,214,49,247,76,71,196,171,142,250,60,153,209,95,225,26,206,207,104,56,
+103,110,246,214,47,132,209,85,195,157,167,39,221,252,99,65,68,105,155,114,
+4,53,49,192,51,203,50,13,99,103,84,64,184,60,115,185,97,179,249,101,10,
+132,227,175,176,6,97,83,83,147,120,190,208,249,92,129,188,77,188,185,185,
+57,37,37,133,191,155,54,109,106,111,111,207,203,203,19,15,208,228,230,230,
+214,214,214,86,87,87,147,5,40,138,196,163,43,5,194,95,213,211,234,88,120,
+171,227,229,201,70,236,25,194,167,167,59,242,151,13,189,116,123,112,116,
+238,236,192,208,213,180,247,206,138,169,158,250,106,146,1,24,33,25,14,127,
+59,109,89,126,115,123,143,114,4,55,147,2,97,184,73,157,26,29,122,59,67,
+108,108,172,246,134,133,186,186,58,252,63,113,211,48,228,203,116,190,171,
+26,242,241,131,85,224,144,248,209,191,120,238,148,2,161,84,91,165,227,187,
+191,15,61,249,103,192,158,12,19,28,51,118,115,204,187,204,145,183,212,49,
+48,38,119,54,98,237,114,234,186,46,253,42,119,74,136,158,41,157,96,143,
+223,115,70,242,191,127,41,109,234,10,247,91,67,221,42,100,64,200,252,158,
+105,125,82,82,18,166,76,59,120,140,27,243,251,196,196,68,97,232,74,74,74,
+72,192,188,159,223,164,79,77,77,13,225,87,169,121,82,184,131,16,164,225,
+225,225,17,106,78,94,103,103,103,90,90,26,192,163,67,84,58,5,2,233,55,44,
+118,116,116,136,19,164,34,229,168,139,158,90,214,80,150,93,153,157,86,146,
+182,50,97,101,86,121,22,191,235,154,235,228,234,145,171,171,167,139,45,
+16,162,50,163,98,115,99,249,177,169,106,19,145,114,181,53,85,147,238,248,
+242,143,238,41,248,194,4,199,187,191,115,172,121,218,81,178,209,209,55,
+230,165,104,233,238,95,148,211,116,253,247,5,59,188,28,82,56,220,247,141,
+148,71,126,41,141,41,111,239,83,39,67,61,40,100,64,200,36,158,137,190,120,
+64,176,215,245,41,155,138,138,10,108,26,134,142,153,125,115,115,115,86,
+86,22,191,49,131,192,146,85,213,213,213,204,245,69,202,240,81,56,130,176,
+187,187,123,205,154,53,120,129,252,96,17,63,12,200,137,247,239,9,65,59,
+58,16,211,37,58,10,179,36,241,96,105,78,78,142,72,63,166,98,164,33,14,32,
+54,46,150,93,139,69,185,206,47,137,45,4,205,115,132,101,209,142,119,60,
+124,77,98,230,158,67,15,197,183,150,15,221,65,19,64,181,245,12,172,45,106,
+57,255,179,28,3,78,130,49,108,253,66,194,189,75,139,243,27,186,194,237,
+35,18,35,21,195,36,100,78,141,194,191,154,154,26,38,247,24,58,17,195,111,
+104,7,29,89,213,214,214,134,47,136,63,80,85,85,133,107,216,208,208,144,
+144,144,176,37,239,207,10,82,133,181,71,72,87,160,31,208,27,152,46,209,
+246,116,20,58,58,125,2,10,50,69,42,40,40,224,135,240,2,89,43,190,93,34,
+115,142,177,32,110,92,92,156,214,113,183,92,76,247,144,92,176,166,6,7,28,
+69,107,29,239,28,110,228,223,244,157,28,31,159,52,244,114,209,54,255,61,
+227,45,87,255,192,224,226,156,166,11,191,200,217,53,56,95,204,182,255,155,
+169,119,46,46,202,168,9,242,87,11,5,80,253,3,253,93,221,93,45,109,45,169,
+153,169,29,157,29,252,30,149,225,223,221,211,205,166,186,234,43,187,114,
+126,26,250,193,82,207,232,79,175,57,84,237,220,21,108,203,200,200,192,154,
+105,246,36,50,50,146,105,61,179,127,226,197,109,16,184,128,226,188,151,
+213,39,202,99,166,176,6,33,156,203,206,206,134,112,64,130,174,131,255,7,
+240,0,33,145,116,11,17,73,12,221,5,82,226,20,202,108,99,175,176,3,97,127,
+143,35,106,230,144,207,167,71,224,203,219,57,22,221,230,216,244,139,163,
+54,207,81,26,229,168,47,145,137,199,79,237,61,3,27,74,90,31,91,81,118,200,
+236,52,3,105,172,25,182,121,33,225,156,185,217,111,70,87,167,213,116,142,
+255,71,148,154,170,3,236,205,111,185,24,137,65,241,64,189,65,224,45,63,
+63,191,178,178,82,44,50,215,199,136,105,167,70,177,45,248,136,20,13,211,
+135,125,227,7,198,173,180,180,180,188,188,92,36,8,67,133,251,53,66,80,71,
+47,103,30,132,26,27,27,233,22,34,18,9,14,17,47,22,157,201,3,164,177,0,161,
+118,106,212,114,234,235,113,68,207,116,188,186,163,228,223,11,91,13,253,
+6,129,117,57,142,142,70,71,209,6,71,238,146,161,247,81,213,22,208,24,178,
+60,227,170,158,254,193,150,238,254,255,101,54,156,54,39,107,242,75,137,
+91,217,141,248,25,247,176,245,11,9,211,166,39,221,252,67,65,100,105,27,
+240,198,157,149,135,62,190,42,73,113,228,46,117,52,86,14,121,255,65,162,
+32,5,33,163,74,88,176,138,138,10,241,130,80,92,64,98,136,103,45,145,185,
+185,185,109,109,109,201,201,201,24,189,170,170,42,138,137,59,40,172,95,
+120,42,220,65,168,23,221,61,192,192,243,164,81,7,97,125,125,61,62,46,147,
+68,171,169,56,43,190,109,201,35,131,47,109,11,2,7,95,152,216,54,243,176,
+234,47,111,170,76,92,218,94,93,48,88,149,249,235,187,137,179,23,180,231,
+197,12,193,124,203,196,132,128,185,240,104,169,178,186,250,151,148,162,
+123,231,39,31,55,43,102,151,87,226,182,50,1,41,192,97,107,123,252,1,51,
+19,47,156,147,242,202,234,77,89,229,245,173,173,173,24,59,191,69,39,28,
+93,245,111,138,148,173,89,176,218,209,84,236,232,25,58,217,56,138,146,125,
+125,84,197,97,7,35,8,53,137,19,90,140,125,26,148,82,224,243,117,116,116,
+96,88,74,74,74,136,199,101,20,191,211,210,210,196,29,164,50,91,248,73,129,
+208,138,98,248,141,46,8,153,9,178,205,206,45,19,134,149,113,53,154,42,205,
+108,251,248,124,248,55,116,143,232,231,231,13,102,124,219,90,158,89,93,
+85,89,83,93,213,94,95,49,88,147,175,81,144,208,87,158,81,93,93,85,189,101,
+98,228,51,224,71,87,133,69,69,41,121,197,171,51,74,62,141,46,186,227,135,
+156,223,189,157,18,96,31,17,255,239,247,111,197,63,178,32,253,139,141,89,
+43,18,115,211,115,242,228,44,99,11,132,199,64,15,28,93,117,101,44,213,55,
+232,96,193,154,210,140,216,132,209,19,254,205,168,43,49,49,49,168,65,136,
+134,78,186,56,29,65,236,9,19,98,188,67,45,18,25,126,135,173,20,8,173,168,
+81,7,161,245,52,232,232,168,117,124,253,167,161,123,97,230,156,234,200,
+93,236,232,237,100,68,202,149,66,44,246,116,57,74,34,29,185,63,13,153,206,
+81,58,53,42,7,253,24,104,96,112,176,111,96,176,171,111,32,171,182,243,145,
+239,226,207,153,147,190,215,140,148,105,211,147,118,120,37,113,155,23,19,
+38,152,0,230,71,0,177,147,94,74,152,242,74,210,174,175,37,239,247,70,202,
+181,255,219,244,117,122,125,73,93,107,76,124,98,119,47,59,31,77,209,253,
+70,87,142,226,36,73,65,26,180,60,125,176,179,205,249,5,217,81,19,86,190,
+110,180,197,54,199,228,113,169,0,130,80,47,154,85,254,82,218,92,10,132,
+86,84,136,131,112,232,6,209,53,67,143,204,47,189,199,81,176,66,251,70,160,
+71,117,182,56,42,83,28,245,214,190,235,117,115,197,198,198,54,52,52,214,
+180,247,38,84,182,47,200,110,156,29,83,253,248,202,210,155,127,44,184,240,
+139,156,163,223,75,223,231,141,148,93,166,39,121,191,190,136,159,183,227,
+43,137,187,189,158,188,255,155,41,39,126,152,121,197,215,121,119,46,46,
+122,118,109,249,199,137,181,203,242,155,51,106,59,181,215,193,224,172,227,
+184,4,193,121,173,146,100,71,254,170,161,166,108,111,30,149,57,77,16,107,
+156,64,168,228,73,10,132,86,84,136,131,176,46,219,145,245,131,163,97,147,
+163,207,231,187,249,97,103,255,152,188,205,103,140,4,8,13,175,231,192,242,
+119,244,14,212,117,244,149,182,244,108,106,232,206,169,239,202,172,237,
+76,173,238,136,46,107,91,190,169,249,187,204,134,79,146,106,63,75,169,131,
+154,171,11,91,226,43,218,211,107,58,179,234,186,114,235,187,10,26,187,43,
+90,123,155,186,250,187,61,60,0,31,52,32,108,172,114,116,181,57,66,249,60,
+135,207,82,32,180,152,20,8,173,168,16,7,225,208,123,209,66,211,33,24,28,
+28,236,235,239,35,68,199,70,215,213,215,137,223,190,156,143,34,133,22,124,
+23,61,132,237,183,180,182,36,36,37,244,244,244,240,59,100,251,76,136,73,
+129,208,98,82,32,180,162,194,224,26,97,104,170,174,169,46,118,83,108,204,
+166,152,159,147,126,222,152,189,145,31,4,90,83,174,30,109,21,87,21,179,
+253,13,217,27,150,167,44,23,251,42,168,41,144,235,148,172,44,5,66,139,73,
+129,208,138,82,32,12,82,149,84,149,44,76,94,104,120,135,214,216,129,48,
+181,48,213,176,175,164,146,36,185,78,201,202,82,32,180,152,20,8,173,40,
+5,194,32,149,2,161,146,79,82,32,180,152,20,8,173,40,5,194,32,149,2,161,
+146,79,82,32,180,152,20,8,173,40,5,194,32,149,2,161,146,79,82,32,180,152,
+20,8,173,40,5,194,32,149,2,161,146,79,82,32,180,152,20,8,173,40,5,194,32,
+85,107,123,107,89,125,25,97,109,194,218,77,21,155,196,239,177,107,199,250,
+230,122,182,207,142,54,36,109,40,169,45,225,119,99,91,216,125,91,60,40,
+165,64,104,49,41,16,90,81,10,132,65,173,193,193,193,152,152,152,134,134,
+6,185,236,179,200,40,36,151,125,83,71,71,71,98,98,226,232,191,15,83,105,
+236,164,64,104,49,41,16,90,76,3,253,142,190,222,222,206,142,204,196,216,
+129,158,110,126,135,251,203,168,130,77,96,172,166,166,102,227,198,141,105,
+105,105,141,141,141,190,83,173,189,189,189,192,169,226,226,98,237,211,113,
+195,10,10,230,230,230,70,70,70,22,22,22,142,201,91,49,149,198,66,10,132,
+22,147,2,161,197,212,84,227,40,92,51,184,105,101,111,214,82,71,193,74,71,
+193,42,71,99,248,126,45,115,88,85,87,87,131,156,69,139,22,125,245,213,87,
+115,231,206,253,238,187,239,126,254,249,231,212,212,84,240,32,83,140,182,
+186,186,135,9,133,133,69,28,210,90,167,34,34,34,106,235,90,13,9,220,134,
+150,150,182,216,216,88,145,107,221,186,117,206,79,135,247,25,210,152,67,
+99,83,71,116,116,52,233,69,198,248,248,248,150,214,94,67,26,67,240,153,
+176,74,99,41,5,66,139,73,129,208,98,234,237,113,228,175,144,47,233,39,148,
+198,90,237,29,155,184,56,101,101,101,153,155,43,203,169,108,167,114,156,
+194,77,17,202,203,27,250,42,208,166,77,155,112,116,202,203,203,241,150,
+90,90,90,252,62,143,215,214,214,86,84,84,244,201,39,159,92,115,205,53,187,
+237,182,219,196,137,19,183,50,137,200,73,147,38,29,123,236,177,247,220,
+115,207,252,249,243,217,175,47,92,196,9,227,56,101,121,156,114,91,168,117,
+17,185,239,205,31,10,239,127,151,247,193,255,54,125,240,125,193,199,11,
+74,62,93,92,241,197,178,186,111,215,180,253,20,209,190,118,237,122,129,
+37,161,213,235,51,23,70,59,134,13,203,55,150,65,64,153,199,169,37,145,237,
+134,52,34,252,24,57,240,206,55,89,111,127,157,73,152,243,229,106,240,175,
+211,231,31,126,185,65,172,18,225,147,69,101,90,198,207,127,174,37,102,222,
+162,204,212,84,89,64,47,50,52,16,213,46,87,108,177,180,182,168,171,171,
+147,81,195,137,106,23,31,15,18,162,33,228,138,225,132,123,45,243,88,71,
+29,173,142,214,90,71,67,217,208,55,138,249,65,8,170,151,232,134,170,20,
+8,173,167,166,106,73,193,156,197,142,134,18,171,125,206,27,19,249,247,191,
+255,253,55,46,77,152,48,65,176,103,155,109,182,217,118,219,109,33,208,228,
+201,147,183,223,126,251,29,118,216,97,71,167,166,78,157,58,109,218,52,160,
+181,255,254,251,31,121,228,145,127,248,195,31,174,184,226,138,123,239,189,
+119,214,172,89,81,81,81,35,186,163,114,201,146,37,87,95,125,245,62,251,
+236,35,247,237,131,56,188,67,14,57,228,134,27,110,88,186,116,169,247,125,
+149,150,150,254,238,119,191,147,217,60,151,107,251,237,119,220,110,242,
+80,216,126,135,157,118,156,186,203,212,105,187,239,190,247,65,7,28,124,
+244,145,199,157,117,218,185,127,251,235,117,247,63,246,216,227,95,124,241,
+197,234,213,171,37,208,214,174,93,16,229,24,54,172,88,159,38,83,187,180,
+124,99,181,33,141,8,95,173,104,222,122,155,109,229,81,14,167,51,47,188,
+78,203,120,237,237,207,78,156,184,181,92,49,156,106,107,107,101,189,56,
+69,237,201,21,91,44,188,100,177,205,151,95,126,89,70,13,167,189,246,218,
+43,49,49,81,228,66,116,39,185,98,56,157,124,242,201,50,143,117,212,82,247,
+235,52,151,80,18,237,232,30,171,179,23,74,190,75,129,208,122,26,232,119,
+20,69,15,13,146,220,159,28,157,109,50,210,50,50,128,208,111,129,150,93,
+119,221,245,226,139,47,198,200,202,77,123,22,126,228,29,119,220,177,243,
+206,59,195,39,153,127,36,34,215,78,59,237,116,235,173,183,226,217,200,45,
+154,100,0,161,127,98,71,148,11,75,125,225,133,23,126,244,209,71,240,108,
+197,134,18,13,69,94,194,47,27,140,30,225,226,200,54,67,26,17,70,6,194,139,
+174,215,50,142,8,132,184,107,178,94,156,10,82,16,158,114,202,41,50,143,
+117,52,56,232,40,142,255,21,132,53,121,234,38,0,43,72,129,208,146,106,44,
+117,228,44,114,52,215,200,69,43,105,180,64,168,9,151,235,182,219,110,43,
+42,42,146,59,48,169,176,176,240,220,115,207,149,169,183,76,71,31,125,244,
+134,13,27,220,222,142,59,42,32,212,11,159,24,199,183,162,162,66,238,192,
+171,122,122,123,177,245,226,226,226,250,245,235,11,10,10,250,251,221,159,
+9,104,110,110,198,67,149,251,24,78,184,194,50,155,195,241,236,179,207,110,
+189,117,80,130,112,239,189,247,78,74,250,245,249,72,223,65,120,234,169,
+167,202,60,150,82,107,205,208,201,30,40,88,180,193,209,167,238,111,178,
+132,20,8,173,168,129,238,206,182,236,245,131,61,62,127,174,47,128,26,117,
+16,34,28,169,51,207,60,211,96,124,133,160,224,31,254,240,7,153,110,52,116,
+212,81,71,165,167,167,203,173,235,52,234,32,68,120,135,56,178,114,7,195,
+137,138,197,241,141,140,140,172,173,173,245,242,228,140,2,161,239,32,164,
+231,200,60,150,82,127,175,163,56,194,145,189,208,209,80,108,181,11,31,97,
+43,5,66,43,170,187,187,187,40,53,102,208,146,207,17,142,5,8,17,44,124,232,
+161,135,12,0,24,28,28,124,240,193,7,183,218,106,43,153,104,52,196,142,174,
+186,234,42,51,105,198,2,132,8,246,124,242,201,39,190,60,68,65,154,206,206,
+206,152,216,24,142,205,75,250,17,129,240,198,27,111,148,217,130,28,132,
+201,201,201,34,23,242,29,132,167,157,118,154,204,99,53,53,148,15,221,44,
+211,209,34,23,149,198,91,10,132,86,148,149,31,168,31,35,16,162,157,119,
+222,121,229,202,149,114,55,78,165,165,165,237,191,255,254,114,245,168,106,
+209,162,69,114,31,46,141,17,8,209,17,71,28,225,229,196,47,2,123,37,117,
+37,89,101,89,105,197,105,43,147,86,102,150,101,242,187,161,197,253,243,
+248,35,2,225,77,55,221,36,179,133,37,8,79,63,253,116,153,199,106,82,143,
+79,88,76,10,132,86,84,120,130,16,207,239,241,199,31,215,158,10,7,15,111,
+189,245,214,196,137,19,229,234,81,213,223,254,246,55,177,23,77,99,7,66,
+184,181,112,225,66,47,78,94,255,64,127,68,126,132,225,173,161,197,213,197,
+114,245,230,26,17,8,111,190,249,102,153,45,44,65,120,198,25,103,200,60,
+86,147,2,161,197,164,64,104,69,133,39,8,17,83,120,205,4,83,252,171,175,
+190,90,174,24,78,152,248,41,83,166,76,158,60,121,130,111,183,149,30,115,
+204,49,141,141,155,189,150,115,236,64,136,238,189,247,94,47,175,125,25,
+59,16,254,227,31,255,144,217,130,25,132,251,236,179,79,74,74,138,200,133,
+124,7,225,153,103,158,41,243,88,77,10,132,22,147,2,161,21,21,182,32,220,
+121,231,157,75,74,74,180,29,249,248,200,224,164,73,147,30,123,236,177,53,
+107,214,204,155,55,239,184,227,142,147,177,94,117,192,1,7,100,102,102,138,
+29,9,141,41,8,79,62,249,100,47,15,245,143,29,8,111,185,229,22,153,45,44,
+65,120,214,89,103,201,60,86,147,2,161,197,164,64,104,69,133,18,8,191,255,
+254,251,185,115,231,222,116,211,77,190,248,106,164,73,72,72,16,59,170,174,
+174,246,209,189,187,241,198,27,197,155,71,6,7,7,223,126,251,237,237,182,
+219,78,174,240,172,221,119,223,61,50,50,82,236,72,104,68,32,60,251,236,
+179,23,46,92,200,190,46,189,244,82,25,229,85,187,238,186,171,151,71,24,
+199,14,132,183,222,122,171,204,22,228,32,76,77,77,21,185,144,239,32,164,
+153,100,30,171,73,129,208,98,82,32,180,162,66,6,132,7,29,116,16,158,16,
+124,162,44,159,125,246,217,14,59,236,32,87,120,214,130,5,11,196,142,162,
+163,163,101,212,112,90,190,124,185,200,130,86,172,88,177,203,46,187,200,
+21,158,53,117,234,84,125,46,52,34,16,82,3,20,10,245,247,247,191,246,218,
+107,190,92,200,172,169,241,248,84,104,40,129,144,185,11,160,2,93,158,164,
+77,116,2,0,194,115,206,57,71,230,177,154,20,8,45,38,5,66,43,42,100,64,120,
+240,193,7,119,118,202,167,33,27,27,27,47,188,240,66,185,194,179,62,248,
+224,3,145,126,254,252,249,50,106,56,193,48,145,5,197,196,196,224,237,201,
+21,158,53,121,242,100,92,58,153,199,41,63,64,40,50,102,102,102,30,112,192,
+1,114,133,103,185,125,120,81,136,77,13,221,53,90,145,149,82,148,178,34,
+97,69,102,121,38,191,235,155,235,229,234,205,53,34,16,222,118,219,109,50,
+91,160,64,184,205,54,219,48,51,16,175,105,117,43,166,14,98,155,35,2,97,
+90,90,154,200,133,124,7,225,185,231,158,43,243,88,77,10,132,22,147,2,161,
+21,21,146,32,164,80,216,101,185,194,179,94,125,245,85,145,254,227,143,63,
+150,81,94,133,55,214,218,218,42,178,160,216,216,216,61,246,216,67,174,243,
+172,73,147,38,125,255,253,247,50,143,83,126,131,176,170,170,234,132,19,
+78,144,43,60,107,195,134,13,34,189,91,13,121,151,131,131,120,207,49,177,
+49,160,66,44,202,117,155,107,68,32,188,253,246,219,101,54,135,227,185,231,
+158,11,0,8,57,182,175,190,250,74,102,243,170,0,128,240,188,243,206,147,
+121,172,38,5,66,139,73,129,208,138,10,73,16,146,241,254,251,239,151,43,
+60,235,249,231,159,23,233,223,124,243,77,25,53,156,244,30,161,143,32,196,
+113,193,227,148,121,156,242,27,132,245,245,245,190,188,251,102,197,138,
+21,34,189,23,117,117,117,225,209,122,111,119,191,65,72,197,6,41,8,247,221,
+119,95,189,63,237,59,8,207,63,255,124,153,199,106,82,32,180,152,20,8,173,
+168,144,4,33,197,249,215,191,254,37,87,120,150,6,66,92,67,25,53,156,22,
+47,94,44,178,32,31,65,8,18,190,254,250,107,153,199,41,191,65,216,216,216,
+120,250,233,167,203,21,158,53,46,32,212,191,224,45,12,65,120,193,5,23,200,
+60,86,147,2,161,197,164,64,104,69,133,12,8,15,57,228,16,191,65,232,187,
+71,248,223,255,254,87,100,65,209,209,209,190,92,35,68,159,125,246,153,204,
+227,84,72,130,240,206,59,239,148,217,28,14,155,205,22,110,32,188,240,194,
+11,101,30,171,73,129,208,98,82,32,180,162,20,8,209,156,57,115,100,212,112,
+58,242,200,35,53,195,157,153,153,121,253,245,215,95,230,131,12,175,115,
+179,2,8,123,123,123,135,109,119,191,65,104,183,219,131,23,132,25,25,25,
+50,219,72,64,120,209,69,23,201,60,86,147,2,161,197,164,64,104,69,41,16,
+162,245,235,215,203,168,225,52,113,226,196,123,238,185,71,187,101,6,156,
+244,248,32,67,245,142,8,132,87,95,125,117,80,120,132,119,221,117,151,204,
+22,150,32,252,227,31,255,40,243,88,77,10,132,22,147,2,161,21,21,146,32,
+236,239,239,31,17,8,171,170,170,124,255,238,4,44,188,247,222,123,155,154,
+154,252,174,52,43,128,144,186,45,77,31,230,171,35,35,2,225,221,119,223,
+45,179,57,28,47,188,240,66,184,129,240,226,139,47,150,121,172,38,5,66,139,
+73,129,208,138,10,73,16,226,168,97,151,229,10,207,210,64,8,56,127,251,219,
+223,202,88,223,116,234,169,167,206,155,55,143,218,19,91,24,145,252,6,97,
+109,109,237,201,39,159,44,87,120,150,47,32,116,244,246,56,10,86,59,154,
+107,229,162,59,249,13,194,23,95,124,113,155,109,182,145,43,134,83,0,64,
+248,202,43,175,200,60,195,201,0,66,95,94,152,32,116,201,37,151,200,60,86,
+147,2,161,197,164,64,104,69,133,36,8,249,113,227,141,55,202,21,158,133,
+227,34,210,83,252,187,238,186,75,198,250,172,169,83,167,94,117,213,85,250,
+143,21,248,40,191,65,88,86,86,118,236,177,199,202,21,158,181,106,213,42,
+145,222,155,90,202,29,57,139,28,133,107,29,253,125,50,198,164,17,129,240,
+158,123,238,145,217,172,7,66,223,239,10,54,128,112,215,93,119,149,43,134,
+211,165,151,94,42,243,88,77,10,132,22,147,2,161,21,21,146,32,108,104,104,
+56,247,220,115,229,10,207,154,62,125,186,72,143,22,45,90,228,187,237,214,
+52,97,194,132,221,118,219,237,227,143,63,102,143,114,67,62,200,111,16,166,
+167,167,239,183,223,126,114,133,103,105,239,216,244,40,54,88,153,230,200,
+94,48,20,106,179,88,150,241,155,107,68,32,188,239,190,251,100,54,135,227,
+165,151,94,10,0,8,39,78,156,248,143,127,252,99,150,59,189,245,214,91,250,
+239,50,210,208,50,207,112,50,128,144,198,149,43,134,211,101,151,93,38,243,
+88,77,10,132,22,147,2,161,21,21,122,32,164,44,31,125,244,209,78,59,237,
+36,87,120,22,230,82,236,8,85,87,87,159,120,226,137,114,197,8,133,209,191,
+232,162,139,150,47,95,206,1,203,205,121,149,127,32,4,75,79,61,245,148,47,
+215,222,180,119,108,122,212,64,223,144,47,40,64,88,176,202,209,245,235,
+235,114,244,178,56,8,189,104,231,157,119,214,191,94,199,111,16,250,248,
+120,12,186,252,242,203,101,30,171,73,129,208,98,82,32,180,162,66,6,132,
+144,239,233,167,159,198,28,159,125,246,217,83,166,76,145,177,94,53,111,
+222,60,185,39,231,139,199,102,207,158,237,135,83,168,105,143,61,246,152,
+49,99,134,47,44,28,17,8,15,59,236,176,255,254,247,191,184,62,199,28,115,
+140,47,31,187,64,222,63,82,63,164,230,26,73,65,17,202,113,10,221,104,68,
+32,188,255,254,251,101,54,231,205,41,150,2,225,107,175,189,38,87,12,39,
+3,8,125,121,97,130,208,159,254,244,39,153,199,106,82,32,180,152,20,8,173,
+168,144,1,161,31,90,179,102,141,220,147,83,56,148,87,94,121,165,143,223,
+99,242,164,107,174,185,38,63,63,95,123,221,179,91,141,8,132,35,213,164,
+73,147,244,47,68,117,175,226,13,142,194,53,61,185,43,218,50,151,59,106,
+75,134,66,175,155,111,249,142,8,132,15,60,240,128,204,230,188,57,197,82,
+32,100,130,34,87,12,39,3,8,247,220,115,79,185,98,56,93,113,197,21,50,143,
+213,164,64,104,49,41,16,142,191,240,123,42,42,42,228,203,249,157,74,79,
+79,223,184,113,99,102,102,166,92,118,170,113,243,47,170,143,151,198,20,
+132,120,141,16,75,238,201,37,16,117,206,57,231,200,20,126,9,142,30,126,
+248,225,223,124,243,141,118,97,207,172,49,5,225,177,199,30,235,229,195,
+188,82,112,186,191,175,182,182,54,38,38,70,198,184,211,136,64,248,224,131,
+15,202,108,206,155,83,44,5,194,153,51,103,202,21,195,201,111,16,50,133,
+146,121,172,38,5,66,139,73,129,208,18,170,169,169,193,70,172,245,42,96,
+41,83,143,171,198,20,132,199,29,119,92,117,117,181,220,147,75,208,43,53,
+53,21,146,109,161,95,184,253,246,219,191,247,222,123,158,88,56,166,32,188,
+233,166,155,240,242,229,158,188,170,169,169,41,54,54,86,46,184,147,2,225,
+94,123,237,37,87,12,167,63,255,249,207,50,207,184,139,94,167,15,237,77,
+67,32,52,68,18,148,198,73,10,132,150,16,116,73,76,76,148,196,115,167,236,
+236,108,239,103,246,2,166,177,3,33,156,195,112,139,111,205,155,85,82,82,
+114,247,221,119,251,114,187,141,23,237,176,195,14,239,190,251,110,79,143,
+155,83,142,99,7,66,240,243,229,151,95,138,19,221,56,124,81,81,81,145,158,
+245,203,47,191,124,252,241,199,114,193,37,124,196,150,150,22,113,156,35,
+2,225,191,254,245,47,145,11,77,159,62,221,82,32,124,227,141,55,228,138,
+225,100,0,225,222,123,239,45,87,12,167,191,252,229,47,50,207,248,138,145,
+91,18,189,217,5,96,183,161,44,78,166,87,10,184,20,8,173,34,12,156,132,158,
+73,17,17,17,13,13,13,94,78,235,5,82,99,7,194,93,118,217,133,194,202,221,
+184,19,0,251,226,139,47,246,217,103,31,153,193,47,77,155,54,109,206,156,
+57,114,139,58,141,29,8,143,58,234,40,54,46,246,178,98,197,138,221,119,223,
+157,146,122,18,180,152,58,117,170,92,112,233,176,195,14,211,110,58,29,17,
+8,31,122,232,33,145,11,89,13,132,179,102,205,146,43,134,147,1,132,190,119,
+128,171,174,186,74,230,25,119,181,183,56,178,23,26,201,103,8,125,110,230,
+103,74,129,145,2,161,133,148,153,153,41,200,103,80,108,108,172,39,63,41,
+240,26,35,16,98,220,159,121,230,153,97,239,15,34,65,97,97,225,101,151,93,
+230,187,77,55,139,125,197,197,25,103,223,99,4,194,201,147,39,207,155,55,
+79,155,196,0,66,223,223,115,166,9,118,198,199,199,139,45,140,8,132,15,63,
+252,176,200,133,94,123,237,53,75,129,112,246,236,217,114,197,112,10,5,16,
+162,178,116,35,249,244,161,174,64,38,83,26,15,41,16,90,72,141,141,141,27,
+55,110,148,244,211,105,68,15,134,143,181,198,2,132,123,238,185,231,171,
+175,190,234,251,93,178,173,173,173,47,190,248,226,72,95,192,166,215,223,
+254,246,183,246,246,118,185,57,167,70,29,132,19,38,76,192,23,196,133,149,
+59,112,106,203,65,216,210,210,226,31,8,95,127,253,245,208,0,33,139,114,
+197,112,178,22,8,59,155,29,185,203,140,252,19,97,211,10,71,207,112,247,
+82,41,141,165,20,8,45,36,24,147,156,156,44,233,231,82,126,126,62,241,50,
+133,5,52,186,32,156,52,105,210,117,215,93,23,29,29,221,219,219,43,119,224,
+155,72,191,105,211,166,107,174,185,198,191,59,104,118,221,117,87,189,81,
+70,163,11,194,93,118,217,229,241,199,31,231,8,13,116,223,114,16,50,9,8,
+13,16,190,245,214,91,114,197,112,50,128,208,151,247,248,8,89,11,132,3,253,
+142,178,120,35,2,69,168,74,85,119,202,140,175,20,8,173,165,154,154,154,
+245,235,215,75,6,174,93,139,225,168,172,172,148,235,172,161,17,129,16,203,
+59,205,41,192,179,219,110,187,237,177,199,30,123,239,189,247,254,251,239,
+127,232,161,135,94,122,233,165,211,167,79,47,43,43,219,146,155,128,218,
+218,218,94,121,229,21,223,239,167,215,235,157,119,222,209,83,106,68,32,
+4,69,20,10,218,137,114,113,0,251,236,179,207,129,7,30,120,248,225,135,95,
+127,253,245,159,126,250,41,126,155,91,7,119,203,65,72,145,253,3,225,140,
+25,51,2,0,66,118,49,107,214,172,34,15,210,63,67,242,246,219,111,203,60,
+195,201,0,66,250,143,92,49,156,172,5,66,212,82,239,200,253,201,72,65,98,
+186,54,59,57,161,20,120,41,16,90,75,80,33,53,53,85,98,112,237,218,244,244,
+116,75,185,131,104,68,32,60,228,144,67,126,249,229,23,10,2,209,163,162,
+162,146,146,146,178,178,178,202,203,203,71,247,146,103,100,100,36,88,245,
+221,202,11,225,137,234,237,242,136,64,120,206,57,231,172,94,189,154,114,
+109,220,184,49,38,38,38,37,37,37,39,39,167,186,186,122,216,198,10,121,16,
+114,108,62,190,116,219,111,16,30,112,192,1,114,197,112,178,28,8,113,10,
+75,19,140,32,172,76,149,107,149,198,79,10,132,150,19,206,132,19,130,67,
+70,182,169,169,201,34,55,139,106,26,41,8,181,151,110,143,157,168,162,198,
+198,198,7,31,124,208,247,239,23,34,188,55,253,197,215,17,129,80,255,210,
+237,17,105,28,65,56,115,230,76,5,194,241,87,103,155,17,132,234,102,81,11,
+72,129,208,114,194,194,138,219,71,19,18,18,2,64,145,145,42,96,32,28,24,
+24,248,194,55,225,55,139,44,175,188,242,202,212,169,83,229,190,135,211,
+118,219,109,167,127,71,129,149,65,184,219,110,187,225,79,139,45,40,16,30,
+120,224,129,114,197,112,178,34,8,81,121,198,175,20,172,43,80,87,7,173,32,
+5,66,43,10,79,5,119,208,96,140,44,162,128,129,144,29,249,232,225,189,248,
+226,139,34,75,79,79,207,11,47,188,224,227,91,176,145,254,189,166,86,6,225,
+46,187,236,50,111,222,60,241,206,29,191,65,248,198,27,111,132,6,8,15,58,
+232,32,185,98,56,89,20,132,29,205,142,188,95,134,40,184,105,165,163,71,
+93,29,180,132,20,8,173,40,24,80,91,91,235,251,227,4,129,84,32,65,56,121,
+242,100,185,33,175,154,174,251,132,97,101,101,165,239,167,206,222,123,239,
+61,153,45,80,32,220,180,105,211,243,207,63,255,228,147,79,222,126,251,237,
+80,234,89,223,4,221,33,65,116,116,52,189,130,250,244,15,132,111,190,249,
+166,239,25,3,0,194,247,223,127,95,230,25,78,6,16,30,124,240,193,114,197,
+112,178,40,8,135,174,20,58,95,52,83,30,235,240,240,213,73,165,0,75,129,
+208,162,26,233,227,4,1,83,32,65,184,243,206,59,203,13,121,21,190,142,204,
+227,212,157,119,222,41,87,12,167,151,94,122,73,230,9,20,8,81,119,119,119,
+90,90,90,73,73,137,92,246,89,212,100,74,74,10,136,154,52,105,146,60,142,
+225,164,7,225,172,89,179,44,5,194,207,63,255,92,230,25,78,6,16,210,169,
+228,138,225,100,81,16,162,150,58,117,179,168,165,164,64,168,52,50,5,18,
+132,62,62,23,129,137,151,121,156,154,51,103,142,143,15,23,62,254,248,227,
+50,79,0,65,8,204,202,203,203,253,115,247,219,218,218,146,146,146,124,63,
+247,171,7,225,236,217,179,45,5,66,146,201,60,195,201,0,194,67,15,61,84,
+174,24,78,214,5,225,224,128,163,185,92,254,86,178,128,20,8,149,70,166,64,
+130,208,199,71,167,13,32,92,187,118,173,143,32,212,127,192,61,48,32,108,
+104,104,136,141,141,29,254,147,76,158,85,86,86,22,0,16,54,53,53,201,108,
+78,141,5,8,231,205,155,39,243,12,39,3,8,15,59,236,48,185,98,56,209,81,101,
+30,37,37,175,82,32,84,26,153,2,9,66,31,175,6,25,64,24,23,23,231,35,8,111,
+191,253,118,153,39,32,32,236,239,239,143,143,143,111,110,110,150,203,126,
+169,183,183,119,151,93,118,145,199,49,156,244,32,244,253,57,66,106,207,
+128,234,177,0,225,194,133,11,101,158,225,100,0,161,239,15,212,223,120,227,
+141,50,143,146,146,87,41,16,42,141,76,1,3,33,216,56,238,184,227,228,134,
+188,202,0,194,180,180,52,31,65,168,255,74,81,0,64,88,83,83,99,126,233,154,
+31,242,253,110,17,61,8,95,124,241,69,31,65,56,121,242,100,195,215,19,199,
+2,132,171,87,175,150,121,134,147,1,132,187,237,182,155,92,49,156,238,190,
+251,110,153,71,73,201,171,20,8,149,70,166,64,130,240,130,11,46,144,27,242,
+42,195,205,50,235,214,173,243,17,132,79,63,253,180,204,51,246,32,36,125,
+81,81,81,109,109,173,92,222,2,157,112,194,9,242,56,134,147,254,195,188,
+207,60,243,140,143,79,110,28,112,192,1,134,79,54,142,5,8,113,142,101,158,
+225,4,8,181,71,69,33,244,180,105,211,228,138,225,244,223,255,254,87,228,
+82,82,242,46,5,66,165,145,41,96,32,196,115,186,241,198,27,229,134,188,234,
+201,39,159,148,121,156,154,59,119,174,143,32,156,61,123,182,204,19,16,16,
+230,230,230,106,223,215,221,18,93,118,217,101,242,56,134,211,205,55,223,
+44,243,56,28,184,191,19,39,78,148,43,188,234,180,211,78,51,220,180,60,22,
+32,44,40,40,240,209,67,221,115,207,61,181,207,102,49,147,240,253,227,204,
+31,125,244,145,200,165,164,228,93,10,132,74,35,83,192,64,8,57,158,123,238,
+57,185,33,175,186,252,242,203,101,30,167,174,188,242,74,185,98,56,45,88,
+176,64,230,25,123,16,194,245,252,252,124,191,107,67,175,71,30,121,68,30,
+199,112,58,239,188,243,68,22,246,126,213,85,87,201,216,225,116,237,181,
+215,210,202,34,163,208,88,128,176,186,186,26,87,79,102,243,42,92,192,149,
+43,87,138,92,137,137,137,59,238,184,163,92,49,156,86,173,90,37,114,41,41,
+121,151,2,161,210,200,20,48,16,162,249,243,231,251,242,114,25,44,227,178,
+101,203,234,234,234,106,106,106,190,248,226,11,31,61,6,220,163,228,228,
+100,185,167,177,7,33,245,150,146,146,50,42,143,135,126,249,229,151,242,
+56,134,211,62,251,236,179,110,221,186,202,202,202,168,168,40,223,111,182,
+124,233,165,151,12,23,50,199,2,132,141,141,141,103,156,113,134,204,230,
+85,180,20,78,127,69,69,5,236,124,226,137,39,124,244,35,39,77,154,68,127,
+144,59,83,82,242,42,5,66,165,145,41,144,32,140,139,139,219,99,143,61,228,
+182,188,106,215,93,119,61,243,204,51,79,59,237,52,223,47,32,5,248,165,219,
+253,253,253,217,217,217,134,155,80,252,83,97,97,161,239,95,158,58,224,128,
+3,78,62,249,100,223,95,75,54,117,234,212,141,27,55,202,61,185,52,22,32,
+100,78,240,239,127,255,91,102,27,78,83,166,76,57,229,148,83,254,240,135,
+63,248,238,14,94,126,249,229,150,125,43,133,146,213,164,64,168,52,50,5,
+18,132,56,1,199,31,127,188,220,214,104,107,75,62,195,228,247,169,209,81,
+249,254,84,91,91,219,95,255,250,87,121,40,163,45,96,99,254,4,230,88,128,
+16,177,89,223,39,46,35,21,135,49,210,54,82,10,91,41,16,42,141,76,129,4,
+33,122,226,137,39,124,188,197,99,68,218,102,155,109,230,206,157,171,55,
+148,1,0,97,70,70,198,168,220,44,131,115,249,225,135,31,238,176,195,14,242,
+104,70,79,84,139,254,253,171,154,198,8,132,16,253,226,139,47,150,57,71,
+85,103,156,113,134,213,190,104,173,100,101,41,16,42,141,76,1,6,97,77,77,
+205,201,39,159,44,55,55,122,58,246,216,99,245,223,96,66,99,13,66,210,23,
+23,23,215,215,215,203,229,45,16,32,204,201,201,185,239,190,251,124,188,
+57,214,119,93,121,229,149,110,81,61,70,32,68,84,251,17,71,28,33,51,143,
+146,192,249,252,249,243,149,59,168,228,187,20,8,149,70,166,0,131,16,37,
+39,39,251,126,73,204,23,77,158,60,121,193,130,5,6,67,57,214,32,68,85,85,
+85,153,153,153,91,110,160,169,210,172,172,44,254,254,229,47,127,25,209,
+183,136,189,8,166,158,122,234,169,158,238,46,25,59,16,162,85,171,86,249,
+254,174,156,97,197,1,60,245,212,83,204,21,228,214,149,148,124,144,2,161,
+210,200,20,120,16,98,212,190,255,254,251,195,15,63,92,110,116,203,116,208,
+65,7,125,251,237,183,114,211,58,5,0,132,189,189,189,113,113,113,94,156,
+194,129,129,1,170,183,171,171,139,191,94,182,159,155,155,43,190,77,200,
+223,107,174,185,198,143,15,28,154,117,210,73,39,1,105,177,125,179,198,20,
+132,61,61,61,31,125,244,145,239,183,243,120,209,14,59,236,96,183,219,13,
+111,3,80,82,26,86,10,132,74,35,83,224,65,136,196,201,64,28,32,185,93,127,
+117,238,185,231,70,69,69,185,117,23,2,0,66,132,83,152,144,144,64,29,202,
+101,167,88,172,172,172,76,74,74,98,21,164,140,141,141,229,47,191,43,42,
+42,26,27,27,13,79,50,180,182,182,198,196,196,104,145,96,245,173,183,222,
+218,66,143,249,236,179,207,78,79,79,247,82,162,49,5,33,162,6,160,187,239,
+79,58,122,210,243,207,63,191,37,47,52,87,10,91,41,16,42,141,76,227,2,66,
+161,246,246,246,89,179,102,225,26,142,244,62,17,210,31,121,228,145,239,
+190,251,46,190,130,39,115,31,24,16,162,194,194,194,154,154,26,178,163,238,
+238,110,16,24,25,25,9,6,138,139,139,155,155,155,177,227,112,154,31,16,46,
+63,63,63,58,58,58,43,43,171,174,174,78,192,27,103,177,168,168,8,58,138,
+77,9,1,69,242,226,26,238,177,199,30,62,62,99,39,68,226,131,15,62,120,246,
+236,217,195,194,99,172,65,40,68,251,226,26,30,118,216,97,59,238,184,227,
+136,46,127,146,254,138,43,174,72,73,73,49,76,26,148,148,124,148,2,161,210,
+200,132,173,153,63,127,254,115,190,9,110,141,250,179,92,181,181,181,255,
+251,223,255,30,124,240,193,211,79,63,125,202,148,41,210,22,186,19,107,73,
+115,223,125,247,125,251,237,183,184,98,50,191,7,181,180,180,188,253,246,
+219,242,184,135,211,55,223,124,35,179,141,92,80,39,53,53,181,186,186,154,
+67,194,118,231,229,229,177,107,79,88,133,220,16,58,51,51,83,220,113,202,
+15,79,55,67,178,133,248,248,248,215,94,123,13,36,28,116,208,65,94,174,29,
+178,234,232,163,143,190,229,150,91,40,47,148,149,249,189,10,36,203,146,
+15,39,187,221,158,150,150,38,179,249,165,134,134,134,31,127,252,241,222,
+123,239,253,195,31,254,48,117,234,84,121,208,238,52,109,218,180,139,46,
+186,232,177,199,30,251,225,135,31,70,229,118,92,165,176,149,2,161,210,136,
+229,116,102,124,149,204,51,218,194,151,130,136,24,232,21,43,86,188,249,
+230,155,79,61,245,212,191,254,245,175,59,238,184,227,161,135,30,122,250,
+233,167,49,241,235,214,173,219,180,105,19,105,124,127,116,79,30,177,111,
+146,121,252,82,83,83,83,76,76,76,66,66,2,80,244,197,137,97,50,129,207,23,
+21,21,5,183,188,239,26,199,145,141,195,78,182,63,119,238,220,103,158,121,
+230,158,123,238,185,225,134,27,110,188,241,198,71,31,125,116,198,140,25,
+184,107,73,73,73,21,21,21,184,95,35,42,133,179,208,62,73,102,216,50,117,
+118,118,226,55,83,222,37,75,150,188,241,198,27,15,63,252,240,237,183,223,
+126,221,117,215,81,28,112,251,254,251,239,47,90,180,168,160,160,0,106,26,
+206,51,43,41,249,33,5,66,165,80,144,180,193,46,201,88,75,138,195,195,171,
+131,130,128,13,63,175,185,185,217,237,53,75,77,24,122,112,30,23,23,87,84,
+84,132,179,53,162,107,96,162,54,52,201,216,32,148,44,128,75,50,86,73,105,
+148,164,64,168,164,20,80,181,181,181,101,102,102,226,167,226,147,193,182,
+13,27,54,128,55,80,103,184,215,17,47,16,175,168,176,176,48,37,37,5,94,214,
+215,215,3,0,254,146,88,221,21,169,164,52,186,82,32,84,82,10,156,240,255,
+240,237,90,91,91,197,34,108,19,87,1,137,140,136,136,16,119,205,0,63,104,
+199,34,130,130,141,141,141,154,203,72,250,146,146,18,210,139,69,37,37,165,
+81,145,2,161,146,82,128,52,48,48,80,94,94,238,233,94,146,238,238,110,48,
+89,85,85,85,81,81,129,131,136,59,232,214,243,35,50,49,49,113,84,222,89,
+170,164,164,36,164,64,168,164,20,32,225,8,70,69,69,109,249,7,40,106,106,
+106,138,139,139,213,165,50,37,165,209,146,2,161,146,82,32,4,183,160,215,
+168,0,172,183,183,55,47,47,79,93,41,84,82,26,45,41,16,42,41,5,66,240,47,
+55,55,215,203,251,213,124,87,127,127,127,90,90,154,118,161,81,73,73,105,
+11,165,64,168,164,20,8,1,194,210,210,210,81,121,207,14,155,194,35,212,127,
+85,88,73,73,105,75,164,64,168,164,20,8,225,198,21,21,21,141,214,123,118,
+216,84,93,93,157,92,80,82,82,218,50,41,16,42,41,5,66,125,125,125,41,41,
+41,163,8,194,178,178,50,185,160,164,164,180,101,82,32,84,82,10,132,240,
+8,115,115,115,183,252,150,81,33,5,66,37,165,81,148,2,161,146,82,32,52,48,
+48,144,159,159,63,42,215,8,217,20,76,53,124,131,66,73,73,201,111,41,16,
+42,41,5,66,131,131,131,5,5,5,163,117,215,104,70,70,198,136,94,58,170,164,
+164,228,69,10,132,74,74,129,16,32,44,46,46,30,149,183,163,117,117,117,101,
+102,102,170,175,46,40,41,141,150,20,8,149,148,2,164,182,182,182,232,232,
+232,45,127,16,30,207,18,249,242,253,38,37,37,37,95,164,64,168,164,20,32,
+225,20,110,218,180,41,61,61,93,46,251,165,246,246,246,168,168,40,117,94,
+84,73,105,20,165,64,168,164,20,56,117,118,118,198,198,198,226,26,202,229,
+17,10,148,166,164,164,212,214,214,242,67,70,41,41,41,109,177,20,8,149,148,
+2,42,241,61,66,63,94,144,6,252,202,203,203,11,10,10,212,91,70,149,148,70,
+87,10,132,74,74,1,21,60,107,104,104,72,72,72,24,41,11,203,202,202,112,7,
+213,73,81,37,165,81,151,2,161,146,210,152,11,248,245,247,247,247,246,246,
+106,119,184,52,54,54,194,194,230,230,102,226,69,140,39,145,183,171,171,
+75,124,188,215,239,115,170,74,74,74,94,164,64,168,164,52,230,106,106,106,
+202,204,204,76,76,76,204,206,206,214,92,58,88,152,145,145,65,124,69,69,
+133,91,28,130,64,188,198,77,155,54,37,39,39,87,86,86,142,214,235,217,148,
+148,148,12,82,32,84,82,26,91,1,176,148,148,148,181,46,149,148,148,136,120,
+225,38,66,184,252,252,252,152,152,152,248,248,120,126,55,52,52,64,202,170,
+170,42,146,197,198,198,70,70,70,22,23,23,227,17,146,88,228,82,82,82,26,
+117,41,16,42,41,141,173,122,122,122,18,18,18,36,6,215,174,45,42,42,146,
+43,92,26,24,24,104,110,110,6,129,185,185,185,16,113,253,250,245,56,142,
+165,165,165,248,145,234,169,121,37,165,0,72,129,80,73,105,108,37,222,50,
+186,110,221,58,40,8,17,189,127,71,16,248,225,8,202,5,37,37,165,128,72,129,
+80,73,105,204,37,78,129,22,20,20,224,249,121,63,201,169,64,168,164,20,120,
+41,16,42,41,89,72,10,132,74,110,85,92,92,76,199,136,113,41,45,45,109,216,
+251,141,149,124,151,2,161,82,56,42,58,58,250,243,207,63,159,49,99,198,139,
+47,190,248,241,199,31,47,90,180,168,186,186,90,174,27,87,41,16,42,153,149,
+157,157,125,198,25,103,76,157,58,117,138,75,123,239,189,247,71,31,125,36,
+87,43,109,177,198,13,132,221,221,221,211,166,77,219,201,165,157,119,222,
+121,247,221,119,223,103,159,125,14,62,248,224,99,143,61,246,204,51,207,
+252,231,63,255,137,133,42,43,43,211,38,62,252,120,254,249,231,101,6,157,
+254,241,143,127,136,4,150,82,79,79,207,198,141,27,239,189,247,222,63,252,
+225,15,135,31,126,248,126,251,237,39,142,182,182,182,86,166,80,114,170,
+190,190,126,223,125,247,21,149,163,233,176,195,14,243,126,45,205,63,181,
+180,180,204,156,57,147,62,182,195,14,59,76,154,52,105,27,167,248,49,121,
+242,100,44,203,237,183,223,158,153,153,169,159,104,115,12,242,128,116,250,
+237,111,127,59,42,31,145,112,43,5,66,79,58,250,232,163,101,3,184,180,199,
+30,123,124,250,233,167,114,245,40,233,164,147,78,146,91,119,106,215,93,
+119,165,99,28,112,192,1,71,29,117,212,105,167,157,118,253,245,215,211,127,
+242,243,243,3,249,114,159,230,230,230,191,255,253,239,19,38,76,248,205,
+230,218,126,251,237,127,252,241,199,241,186,157,184,174,174,238,143,127,
+252,163,172,38,157,222,125,247,93,153,34,168,52,110,32,236,234,234,218,
+106,171,173,100,147,122,214,254,251,239,255,244,211,79,87,86,86,146,5,11,
+245,228,147,79,202,21,58,209,75,196,54,253,16,219,172,169,169,1,183,6,109,
+97,247,162,116,15,63,252,48,230,85,30,162,78,236,78,38,82,114,138,17,101,
+174,40,108,220,168,124,186,79,47,236,215,165,151,94,42,119,224,65,59,238,
+184,227,91,111,189,69,243,137,44,28,131,92,161,211,94,123,237,165,61,2,
+49,82,185,237,108,250,185,145,2,161,39,97,10,100,3,184,196,12,230,131,15,
+62,144,171,71,73,204,114,228,214,61,107,151,93,118,185,245,214,91,243,242,
+242,100,30,191,132,133,145,205,191,185,12,247,9,51,58,112,9,228,142,127,
+243,27,144,204,196,90,46,252,230,55,135,28,114,72,66,66,194,184,176,144,
+78,139,147,42,143,67,167,55,222,120,67,166,8,42,89,29,132,136,169,16,221,
+174,179,179,115,44,64,136,165,187,246,218,107,153,238,25,36,208,235,183,
+150,44,89,194,40,149,199,183,185,20,8,13,98,68,109,189,245,214,178,118,
+92,26,117,16,86,87,87,95,112,193,5,230,105,181,89,83,167,78,157,59,119,
+174,200,53,234,32,196,165,144,61,76,167,23,95,124,81,174,86,32,244,44,235,
+128,16,209,145,46,191,252,242,45,57,187,131,79,41,155,95,39,124,44,253,
+54,91,90,90,174,187,238,58,205,78,238,188,243,206,223,127,255,61,166,233,
+146,75,46,17,49,232,176,195,14,107,111,111,151,25,2,40,5,194,209,145,239,
+32,68,140,1,113,113,120,212,65,136,125,60,229,148,83,228,134,116,42,46,
+46,150,41,252,210,244,233,211,39,78,156,40,183,229,20,179,200,227,142,59,
+238,152,99,142,25,117,71,39,216,197,204,64,214,145,78,163,14,194,165,75,
+151,238,180,211,78,114,235,195,233,172,179,206,18,179,236,198,198,70,230,
+224,6,157,124,242,201,229,229,229,98,179,35,149,126,58,175,233,223,255,
+254,183,92,173,64,232,89,150,2,33,218,113,199,29,55,108,216,32,179,141,
+92,221,221,221,114,67,58,29,122,232,161,85,85,85,34,1,61,240,211,79,63,
+61,232,160,131,14,60,240,64,104,119,194,9,39,204,154,53,75,188,162,111,
+211,166,77,87,92,113,5,198,132,85,8,124,138,44,129,20,195,243,175,127,253,
+171,28,18,58,205,153,51,71,166,8,42,89,11,132,204,179,68,211,202,101,151,
+182,217,102,27,12,89,95,95,159,239,32,108,110,110,78,79,79,95,191,126,253,
+34,167,86,173,90,149,151,151,103,254,150,233,72,65,88,88,88,24,23,23,183,
+108,217,178,5,11,22,252,252,243,207,9,9,9,110,237,245,99,143,61,102,40,
+29,137,229,58,147,196,253,96,36,192,143,228,128,221,30,39,106,109,109,197,
+74,26,132,163,204,170,222,222,222,152,152,152,200,200,72,50,186,77,38,182,
+80,86,86,182,102,205,154,159,126,250,137,221,49,14,69,164,16,229,90,190,
+124,57,229,74,77,77,53,172,210,139,29,101,101,101,109,220,184,113,241,226,
+197,162,86,51,51,51,181,19,137,190,136,196,28,42,133,101,95,217,217,217,
+180,169,239,32,164,116,184,98,81,81,81,20,225,151,95,126,161,20,44,186,
+173,43,131,72,131,215,37,55,173,211,249,231,159,255,248,227,143,155,45,
+236,182,219,110,203,100,92,228,109,115,39,243,78,169,91,170,133,3,163,99,
+80,147,116,12,183,239,212,30,17,8,217,81,124,124,252,138,21,43,22,46,92,
+24,17,17,65,205,123,122,227,182,104,101,189,68,163,48,119,36,23,117,69,
+109,231,231,231,235,207,161,209,202,73,73,73,52,196,234,213,171,105,8,25,
+235,78,117,117,117,76,67,215,174,93,203,97,208,238,235,214,173,43,42,42,
+242,126,58,142,54,165,153,216,47,181,193,174,105,241,17,93,241,165,155,
+49,120,87,174,92,73,125,82,3,162,147,251,14,66,138,79,253,211,10,28,45,
+245,70,233,124,127,59,157,91,16,238,187,239,190,102,163,132,152,239,82,
+195,50,167,75,184,74,137,137,137,162,213,24,110,84,157,219,1,50,44,8,245,
+162,191,49,66,197,192,161,92,252,192,104,184,237,249,212,149,232,0,122,
+137,131,100,85,116,116,52,134,84,180,160,72,239,86,88,197,228,228,100,234,
+159,49,78,175,206,205,205,117,187,47,202,37,134,131,94,114,221,230,194,
+139,101,131,152,11,250,3,86,142,70,25,187,171,236,254,201,90,32,196,139,
+162,247,100,100,100,48,37,151,81,46,189,255,254,251,61,61,61,190,128,144,
+89,252,59,239,188,131,197,161,251,238,190,251,238,59,59,181,235,174,187,
+50,144,46,190,248,98,134,189,76,231,112,48,216,72,121,200,33,135,200,13,
+233,132,131,255,229,151,95,210,135,100,82,231,125,134,215,95,127,61,19,
+180,189,246,218,11,247,14,247,98,218,180,105,252,62,234,168,163,94,122,
+233,37,205,66,97,217,231,207,159,127,229,149,87,26,74,55,123,246,108,226,
+145,118,153,29,83,130,201,251,199,63,254,33,182,201,214,56,78,14,152,227,
+196,64,99,62,12,157,239,254,251,239,63,252,240,195,153,27,106,250,221,239,
+126,247,246,219,111,83,222,59,239,188,115,207,61,247,252,207,127,254,131,
+57,166,140,114,181,78,28,222,140,25,51,200,190,219,110,187,137,195,190,
+236,178,203,68,95,164,239,2,3,198,57,133,66,251,236,179,207,45,183,220,
+98,54,184,140,162,185,115,231,158,122,234,169,251,237,183,31,148,210,106,
+149,197,115,206,57,199,199,139,246,204,160,79,63,253,116,14,149,99,96,95,
+228,125,232,161,135,240,174,100,29,233,100,6,33,163,247,214,91,111,165,
+174,180,236,148,130,69,142,150,85,50,145,7,81,231,212,158,220,180,75,59,
+236,176,131,24,225,127,251,219,223,204,167,76,1,60,25,233,0,88,70,131,206,
+60,243,204,138,138,10,177,101,68,74,166,198,7,31,124,48,199,204,129,209,
+49,56,182,189,247,222,251,184,227,142,123,253,245,215,53,35,200,49,124,
+241,197,23,88,58,185,3,157,46,185,228,18,86,9,84,12,217,173,236,13,52,141,
+205,102,163,107,81,70,42,153,109,178,113,170,235,236,179,207,254,236,179,
+207,12,29,3,255,64,54,179,78,140,20,118,253,224,131,15,146,107,168,93,119,
+217,133,217,58,149,32,0,207,52,241,186,235,174,227,32,57,96,186,4,105,158,
+121,230,25,141,253,154,48,202,175,188,242,202,241,199,31,79,175,32,25,135,
+33,186,40,189,133,65,7,71,101,58,157,64,224,221,119,223,77,45,209,76,236,
+84,212,6,191,57,36,218,218,151,43,14,84,20,253,153,193,75,193,69,95,165,
+194,193,137,47,32,4,66,79,61,245,212,17,71,28,65,46,246,203,209,138,122,
+163,215,205,155,55,207,203,12,79,19,71,46,183,174,19,123,161,171,48,168,
+229,178,75,119,220,113,135,30,177,24,174,71,30,121,132,38,166,98,69,171,
+81,105,84,29,199,207,216,209,15,16,6,194,39,159,124,34,183,162,19,71,203,
+136,6,255,250,43,133,152,130,171,174,186,138,58,215,122,62,63,88,188,237,
+182,219,152,37,200,68,78,81,192,71,31,125,84,116,0,189,56,126,26,235,140,
+51,206,16,91,160,5,41,38,6,65,179,69,154,176,6,88,179,35,143,60,146,195,
+166,8,162,2,169,121,28,80,208,174,47,44,221,21,123,56,52,30,54,215,231,
+159,127,46,83,56,69,79,166,107,105,27,20,93,136,109,138,145,91,80,80,32,
+211,141,183,44,7,66,38,146,204,95,48,205,50,202,165,153,51,103,210,204,
+222,65,40,208,114,226,137,39,154,183,172,105,202,148,41,140,109,49,199,
+124,247,221,119,61,165,196,50,98,56,152,133,145,12,210,188,252,242,203,
+94,182,73,98,220,74,198,42,137,41,23,189,193,108,88,137,17,18,215,8,5,87,
+24,39,196,200,20,155,139,248,155,110,186,137,93,147,88,136,98,202,117,46,
+109,189,245,214,255,247,127,255,71,31,21,27,193,4,112,192,208,81,172,213,
+235,217,103,159,53,31,63,21,133,187,240,240,195,15,227,112,203,40,167,216,
+26,36,214,59,52,240,149,189,123,58,84,196,42,140,172,91,31,72,19,19,115,
+72,44,51,184,68,70,179,129,67,12,21,13,132,24,133,143,63,254,152,1,236,
+246,0,136,220,110,187,237,152,155,123,154,141,34,122,14,163,78,102,112,
+9,83,34,216,131,65,49,87,14,238,53,171,56,6,185,172,19,70,86,92,35,164,
+173,103,205,154,53,117,234,84,185,194,36,142,237,152,99,142,193,90,209,
+51,105,74,183,199,143,136,71,24,154,161,99,109,170,72,93,252,206,201,39,
+158,232,37,49,224,164,50,53,28,66,98,185,78,39,140,148,249,154,40,197,132,
+250,228,61,247,220,115,101,148,75,244,1,208,171,89,58,198,32,254,28,67,
+192,211,97,32,218,8,107,174,101,161,153,152,59,98,100,189,28,57,67,3,63,
+195,173,123,33,68,23,210,250,179,94,160,197,208,75,145,30,132,212,112,92,
+92,28,195,208,203,222,193,9,179,46,239,51,54,142,80,102,208,233,127,255,
+251,31,185,64,20,61,77,70,57,197,100,66,43,62,29,6,4,122,217,251,69,23,
+93,148,147,147,35,246,126,195,13,55,120,73,201,20,10,47,156,100,204,71,
+159,123,238,57,115,193,133,72,137,1,193,140,104,227,142,14,201,196,90,174,
+214,233,158,123,238,49,155,5,178,235,167,17,20,132,185,254,239,127,255,
+123,79,7,198,97,252,191,255,247,255,180,75,152,195,94,35,132,178,223,126,
+251,173,167,97,139,136,103,12,254,240,195,15,102,175,58,240,178,22,8,177,
+236,52,6,107,237,118,187,140,114,9,20,13,11,194,188,188,60,166,63,50,214,
+179,182,221,118,91,236,23,233,1,161,167,70,66,24,104,184,66,95,252,215,
+191,254,229,169,47,234,197,188,143,97,70,185,204,230,94,47,1,66,60,81,195,
+160,50,139,105,193,63,255,249,79,38,239,206,194,185,7,33,229,197,28,136,
+197,167,159,126,218,19,8,61,9,63,70,203,174,23,77,243,230,155,111,138,253,
+226,112,156,118,218,105,114,133,103,81,171,180,154,151,73,183,254,230,183,
+97,165,7,225,87,95,125,181,227,142,59,202,21,30,52,121,242,228,39,158,120,
+194,147,133,165,81,110,188,241,70,153,212,165,237,183,223,94,56,118,215,
+92,115,141,185,27,48,43,103,149,119,16,226,156,185,189,49,216,32,236,26,
+237,2,8,229,178,7,13,129,176,175,55,117,217,167,135,29,176,183,140,242,
+32,142,22,23,71,59,135,230,22,132,248,187,134,171,212,66,244,228,67,14,
+57,196,109,183,167,206,181,25,122,68,68,4,236,145,43,60,139,189,204,159,
+63,95,100,97,82,229,118,78,99,16,182,123,205,154,53,34,139,89,179,103,207,
+166,35,201,164,195,73,15,66,236,6,216,150,43,60,139,65,234,253,242,191,
+23,16,226,235,80,94,25,229,20,100,21,78,21,30,30,189,66,198,122,16,99,10,
+22,138,185,23,211,20,25,235,78,199,30,123,44,32,164,51,227,180,13,219,193,
+72,128,85,116,30,187,71,16,226,138,201,95,155,11,183,91,123,124,118,221,
+186,117,190,84,224,95,254,242,23,97,145,134,5,225,194,133,11,113,94,101,
+172,103,225,32,46,95,190,92,100,25,71,89,20,132,47,188,240,130,140,114,
+137,152,97,65,232,189,123,233,133,99,78,87,243,5,132,76,226,112,231,101,
+148,87,49,44,151,46,93,234,11,8,139,138,138,232,235,114,217,171,48,10,204,
+152,196,44,210,12,66,164,175,195,103,158,121,198,19,8,169,88,236,190,92,
+216,92,48,198,45,230,255,250,215,191,50,83,67,56,10,230,150,114,171,163,
+143,62,90,27,87,102,185,53,172,12,81,183,123,215,64,88,89,89,137,147,33,
+99,189,138,250,95,182,108,153,216,151,65,244,156,59,238,184,67,166,211,
+233,195,15,63,100,45,238,242,229,38,225,15,177,202,11,8,241,233,175,190,
+250,106,25,165,211,62,251,236,35,127,185,68,237,225,42,185,221,148,94,67,
+32,108,46,253,219,31,79,247,210,39,53,177,205,199,30,123,76,116,12,183,
+32,68,123,238,185,167,252,101,146,167,137,157,118,94,203,124,109,194,147,
+78,62,249,100,113,126,5,38,153,143,28,83,43,127,233,116,243,205,55,235,
+79,253,105,162,56,76,74,100,34,157,24,5,83,166,76,145,11,58,105,32,228,
+0,216,166,47,245,198,228,0,75,162,63,197,103,144,23,16,126,241,197,23,6,
+16,254,249,207,127,6,132,45,45,45,84,130,140,242,42,246,254,223,255,254,
+151,189,248,2,66,182,140,59,37,163,188,10,222,172,95,191,158,205,122,2,
+33,189,197,237,240,231,120,196,132,143,233,62,80,247,165,2,105,136,5,11,
+22,144,101,88,16,98,13,100,212,112,186,242,202,43,221,246,135,64,202,162,
+32,196,248,202,40,151,134,5,33,131,193,108,49,201,197,76,220,220,185,153,
+134,108,220,184,113,229,202,149,255,254,247,191,221,26,232,71,30,121,4,
+255,134,238,136,9,147,81,46,225,132,225,122,46,94,188,216,220,111,158,123,
+238,57,14,131,174,64,23,49,175,61,241,196,19,95,121,229,149,182,182,182,
+85,171,86,153,225,138,223,147,155,155,123,160,233,154,252,5,23,92,32,28,
+29,183,32,212,203,19,8,169,85,140,44,131,217,108,77,166,78,157,202,100,
+150,25,153,217,123,184,248,226,139,25,30,8,34,202,40,151,24,204,180,133,
+249,170,27,18,231,135,205,162,212,28,134,76,228,18,254,104,118,118,118,
+70,70,134,217,46,107,32,252,244,211,79,205,46,2,245,140,159,106,54,19,76,
+87,197,238,12,98,152,129,13,153,72,39,218,232,189,247,222,243,114,70,215,
+11,8,65,190,249,206,23,14,140,146,154,189,207,255,252,231,63,236,133,191,
+110,193,112,234,169,167,178,42,41,49,97,83,196,162,195,15,52,246,70,97,
+109,49,22,134,30,69,107,138,179,193,110,65,120,217,101,151,209,243,33,189,
+92,214,233,156,115,206,161,151,178,71,115,163,211,63,217,32,190,166,185,
+206,197,21,104,243,16,195,141,96,178,72,174,59,239,188,83,70,185,4,213,
+128,196,235,175,191,46,151,93,186,240,194,11,245,231,252,53,113,84,244,
+58,153,72,167,247,223,127,159,233,227,126,251,237,39,151,93,210,64,88,94,
+94,126,212,81,71,201,88,151,216,59,117,126,219,109,183,201,101,151,126,
+255,251,223,123,105,113,47,32,156,59,119,174,1,39,52,10,77,19,23,23,103,
+182,33,15,63,252,48,158,19,45,43,151,93,98,224,183,183,183,127,251,237,
+183,79,60,241,132,140,210,9,164,145,241,205,55,223,36,47,220,149,177,46,
+49,90,225,22,85,97,56,153,132,33,125,252,241,199,177,18,158,64,136,149,
+163,200,216,31,185,236,18,25,197,92,144,206,140,167,46,99,93,98,52,145,
+235,186,235,174,147,203,46,221,123,239,189,236,200,59,8,49,68,134,238,74,
+99,125,252,241,199,249,249,249,102,36,211,34,91,248,184,218,150,203,138,
+32,196,200,222,125,247,221,50,202,165,97,79,141,38,37,37,153,79,160,189,
+244,210,75,172,50,95,31,34,37,36,99,21,61,192,237,93,163,140,249,161,163,
+116,56,32,162,140,114,233,204,51,207,164,19,208,114,230,139,67,247,221,
+119,31,7,73,46,102,124,102,16,10,51,205,136,154,61,123,182,121,45,150,189,
+161,161,225,236,179,207,150,203,46,209,129,196,115,66,126,131,240,152,99,
+142,193,177,75,73,73,49,91,49,120,195,144,131,118,102,74,225,19,112,60,
+77,77,77,199,29,119,156,140,114,9,191,129,82,208,173,229,178,78,158,110,
+142,165,198,204,187,56,225,132,19,42,42,42,216,139,217,198,105,32,4,42,
+230,186,18,119,18,153,125,47,28,125,183,22,22,125,243,205,55,110,39,197,
+147,39,79,134,52,158,110,183,241,2,194,210,210,82,195,156,151,254,140,77,
+36,23,46,166,225,152,177,110,194,11,113,123,146,249,255,254,239,255,134,
+118,214,214,240,203,199,207,238,60,117,51,159,3,209,169,88,137,45,51,115,
+75,92,86,116,11,66,113,162,56,53,53,213,140,180,167,158,122,138,254,64,
+133,152,199,203,131,15,62,200,6,241,134,205,83,19,236,50,171,206,59,239,
+60,185,236,18,181,33,110,217,48,220,75,66,109,136,231,35,89,43,163,92,162,
+147,139,107,96,6,193,117,24,41,19,233,36,158,82,48,123,93,26,8,25,251,230,
+98,206,152,49,131,58,103,210,38,151,93,162,31,98,142,157,59,116,35,47,32,
+132,79,236,81,70,57,37,78,141,50,87,54,119,45,241,202,27,253,3,127,154,
+214,174,93,203,42,12,133,92,214,137,189,107,103,188,205,19,208,93,119,221,
+85,84,133,249,156,211,21,87,92,193,80,245,4,66,142,144,92,87,95,125,181,
+161,91,210,70,76,83,88,133,87,32,163,116,154,57,115,38,253,4,252,203,101,
+151,206,63,255,124,198,172,119,16,206,159,63,223,176,47,156,105,113,163,
+34,230,72,70,185,132,201,26,247,187,102,172,5,66,134,31,189,132,249,157,
+249,204,12,240,160,207,121,1,33,238,157,185,59,138,11,24,230,201,23,41,
+191,254,250,107,86,13,11,66,243,236,158,206,205,68,137,121,153,249,138,
+200,13,55,220,64,185,200,229,5,132,244,45,243,241,80,112,12,43,76,162,147,
+201,40,157,196,189,206,126,131,144,254,202,78,233,106,230,203,24,56,40,
+67,133,116,56,112,145,101,148,75,228,2,3,200,224,164,82,46,81,117,63,254,
+248,163,140,210,201,112,207,152,38,183,32,60,233,164,147,24,246,160,11,
+128,201,40,151,4,8,49,229,127,252,227,31,101,148,78,140,91,182,105,190,
+30,76,1,161,130,216,163,65,204,51,220,218,56,68,137,40,254,107,175,189,
+102,118,20,56,6,153,72,39,1,66,26,197,188,65,38,236,88,204,231,159,127,
+158,190,205,102,53,49,137,166,247,178,65,183,182,131,233,252,208,206,170,
+139,254,247,217,71,147,77,87,142,233,45,172,196,33,51,87,160,184,142,235,
+22,132,164,167,246,112,208,205,151,162,95,125,245,85,86,45,90,180,200,124,
+90,130,227,100,131,95,125,245,149,121,95,226,228,27,61,92,46,187,132,117,
+22,171,46,184,224,2,25,229,18,94,56,59,98,6,38,107,193,37,42,193,237,41,
+116,79,32,20,103,137,152,128,202,101,151,52,16,174,90,181,74,70,233,196,
+42,246,206,4,90,46,235,180,112,225,66,231,14,221,200,109,39,161,66,56,96,
+198,175,92,118,233,166,155,110,130,181,180,130,217,148,125,247,221,119,
+108,13,152,81,94,25,229,210,188,121,243,88,229,22,132,71,28,113,132,86,
+51,102,187,196,160,16,51,45,92,40,25,229,18,137,153,83,122,2,161,48,131,
+56,199,134,131,225,176,167,79,159,206,42,183,99,249,157,119,222,161,2,127,
+248,225,7,185,236,210,177,199,30,203,176,245,14,194,183,222,122,203,176,
+47,220,134,244,244,116,86,153,155,152,225,159,149,149,197,170,113,148,181,
+64,136,48,205,230,137,42,41,105,203,62,175,207,17,126,255,253,247,230,49,
+255,165,115,42,196,124,92,46,187,36,252,116,86,13,11,194,203,46,187,76,
+70,185,132,105,134,88,100,52,115,229,242,203,47,199,187,34,151,23,16,82,
+10,230,248,50,202,37,1,194,150,150,22,183,32,204,118,62,230,229,5,132,7,
+31,124,48,174,198,71,31,125,228,22,132,167,159,126,186,39,16,210,5,135,
+10,233,112,152,157,69,122,57,211,118,186,187,153,145,98,36,227,82,200,101,
+157,180,43,4,6,249,7,194,206,206,206,115,206,57,71,70,233,180,124,249,114,
+236,136,217,35,220,101,151,93,196,148,217,173,222,125,247,93,47,119,120,
+226,111,49,193,55,220,143,238,5,132,149,149,149,230,115,77,244,13,188,141,
+5,11,22,220,185,185,240,15,196,85,16,179,199,143,112,209,196,238,240,186,
+204,181,244,192,3,15,80,88,188,70,179,71,40,30,64,116,11,66,182,233,9,132,
+204,244,89,181,116,233,82,115,203,222,125,247,221,108,240,237,183,223,54,
+239,235,219,111,191,165,111,83,69,114,217,37,104,42,110,118,48,51,18,139,
+9,195,232,216,212,192,45,183,220,114,221,117,215,221,113,199,29,252,126,
+233,165,151,24,65,67,5,222,92,158,64,24,19,19,195,90,47,32,196,56,200,40,
+157,152,58,211,127,204,119,27,32,106,192,185,67,55,114,11,194,61,157,143,
+130,200,5,157,48,71,128,208,237,35,170,56,145,108,205,45,8,63,249,228,19,
+86,209,166,230,74,62,234,168,163,52,16,154,31,235,218,109,183,221,232,222,
+116,164,35,143,60,82,70,185,196,164,144,177,239,9,132,226,66,224,237,183,
+223,110,6,33,179,34,86,49,127,149,81,58,121,2,33,227,14,243,232,29,132,
+207,61,247,156,92,118,137,161,151,156,156,204,42,179,147,195,6,153,45,177,
+106,28,101,57,16,186,213,180,105,211,34,34,34,176,230,94,64,136,17,49,156,
+184,64,248,245,212,190,217,117,0,60,140,19,114,13,11,66,243,89,126,1,66,
+183,179,102,204,156,56,141,233,5,132,140,28,179,151,233,29,132,226,194,
+155,91,16,82,51,204,121,33,37,68,97,215,110,65,248,135,63,252,193,19,8,
+241,246,134,10,233,14,132,224,19,16,82,63,230,102,2,132,108,208,237,237,
+39,226,94,0,179,252,3,33,150,209,108,254,16,246,2,240,83,105,114,217,37,
+44,251,202,149,43,229,46,77,162,230,63,251,236,51,115,73,245,58,244,208,
+67,33,4,227,95,100,241,2,66,26,203,237,137,175,227,142,59,14,143,89,248,
+127,102,153,159,91,64,79,63,253,180,88,139,137,52,119,27,172,48,133,221,
+123,239,189,205,171,104,2,114,141,20,132,51,102,204,240,4,66,40,197,6,177,
+236,102,27,77,161,126,254,249,103,243,13,56,76,91,133,131,229,22,57,116,
+48,124,14,90,57,53,53,149,89,63,221,102,168,156,30,228,55,8,153,103,200,
+40,157,152,29,210,243,221,222,9,137,153,118,238,208,141,60,157,54,112,43,
+38,7,116,42,183,70,201,11,8,197,101,57,64,104,30,17,199,28,115,140,184,
+171,28,49,4,100,172,75,164,39,1,248,49,183,233,126,251,237,151,151,151,
+231,9,132,226,130,133,91,16,98,61,88,229,246,50,135,0,225,138,21,43,152,
+208,8,177,119,132,63,58,44,8,31,122,232,33,185,236,210,148,41,83,146,146,
+146,18,19,19,205,231,33,0,188,240,116,199,81,193,1,66,58,52,99,201,59,8,
+89,203,54,53,181,182,182,130,150,57,115,230,28,113,196,17,230,190,72,151,
+194,28,144,107,88,16,98,209,228,22,187,186,152,96,210,252,76,114,153,222,
+154,161,139,56,78,6,51,185,188,131,208,124,253,217,59,8,49,34,100,116,11,
+66,34,245,147,107,183,32,164,128,158,64,184,255,254,251,139,140,102,60,
+96,124,41,236,224,224,160,44,188,83,148,174,162,162,130,9,56,99,192,108,
+43,209,99,143,61,38,54,104,144,127,32,164,17,221,130,208,147,152,117,98,
+223,229,46,221,73,0,128,221,121,233,123,76,155,180,19,53,94,64,200,90,122,
+163,219,74,160,164,120,78,244,19,58,140,216,142,38,243,249,67,164,205,30,
+220,130,208,139,232,102,228,26,41,8,95,123,237,53,79,32,252,231,63,255,
+201,6,241,57,100,123,119,117,37,36,36,48,22,138,139,139,241,162,204,46,
+56,154,60,121,50,19,35,42,138,13,154,247,133,168,162,227,143,63,254,173,
+183,222,98,74,42,220,98,79,26,93,16,122,145,188,40,235,78,190,131,16,195,
+130,247,79,137,204,15,61,35,47,32,20,199,12,8,205,54,132,89,148,23,16,122,
+17,137,115,114,114,104,47,183,32,20,131,194,45,8,197,93,20,94,64,136,176,
+129,6,97,22,188,131,16,43,39,250,143,16,99,156,186,122,254,249,231,221,
+78,67,241,182,69,19,143,163,172,14,66,134,25,243,110,241,116,179,119,16,
+106,98,56,253,242,203,47,143,60,242,8,61,85,166,48,201,119,16,106,162,159,
+209,198,151,95,126,185,151,211,107,1,6,33,21,248,204,51,207,12,29,156,75,
+110,65,8,111,60,129,80,187,70,104,62,243,35,64,40,214,34,122,255,154,53,
+107,48,175,108,205,140,52,77,227,11,66,188,147,31,127,252,81,238,210,179,
+168,207,123,239,189,215,203,189,233,116,9,218,130,148,222,65,200,28,220,
+173,225,22,218,97,135,29,152,48,25,78,213,186,189,228,137,129,16,107,71,
+10,194,43,175,188,146,92,94,64,72,73,205,214,86,92,35,116,11,194,219,110,
+187,77,28,137,16,77,67,159,191,230,154,107,204,119,51,105,98,132,126,241,
+197,23,204,232,217,215,141,55,222,232,118,102,32,68,223,94,180,104,17,93,
+81,110,221,164,128,129,80,92,10,117,43,95,64,200,184,99,164,47,88,176,0,
+30,108,9,8,169,58,25,229,18,206,150,54,232,70,4,66,58,51,221,0,163,234,
+22,132,226,198,64,51,8,89,196,143,103,149,23,16,58,143,197,141,188,131,
+80,19,201,240,155,57,42,183,179,40,33,5,66,35,8,177,149,135,31,126,56,38,
+24,248,93,123,237,181,143,62,250,40,8,20,143,160,162,97,65,72,191,140,141,
+141,61,251,236,179,169,89,239,148,213,64,200,252,139,62,45,99,117,210,131,
+144,182,164,187,224,60,153,207,197,25,116,234,169,167,6,18,132,24,29,113,
+102,67,147,91,16,158,112,194,9,158,64,184,247,222,123,139,140,102,155,72,
+181,104,147,83,14,224,134,27,110,216,109,183,221,134,157,187,140,47,8,97,
+143,48,64,195,10,95,237,235,175,191,118,123,225,71,72,156,77,242,14,66,
+68,21,185,125,154,80,136,62,64,65,244,175,33,118,123,54,85,24,35,52,82,
+16,94,116,209,69,228,242,14,66,243,237,148,244,25,79,32,196,96,137,35,161,
+195,252,244,211,79,52,16,115,11,239,135,180,253,246,219,99,233,146,146,
+146,104,44,134,170,151,215,38,176,29,42,220,211,201,115,20,48,16,222,117,
+215,93,206,29,186,145,91,16,30,124,240,193,204,141,168,109,198,224,3,15,
+60,176,106,213,42,250,173,72,191,37,32,52,60,149,136,78,60,241,68,255,64,
+72,51,165,167,167,123,2,161,56,119,125,235,173,183,26,14,134,69,155,205,
+198,170,177,0,33,83,231,175,190,250,234,232,163,143,118,251,12,168,94,10,
+132,70,171,10,15,162,162,162,168,125,33,192,38,83,59,53,44,8,233,124,134,
+27,109,216,5,0,51,179,1,163,252,218,107,175,145,5,67,6,119,101,172,78,26,
+8,113,25,207,58,235,44,67,7,162,105,233,4,230,46,206,104,9,36,8,41,133,
+184,214,173,201,45,8,143,63,254,120,79,32,36,70,100,52,119,86,160,78,229,
+208,4,32,129,49,105,40,14,25,177,11,114,65,39,79,39,157,70,23,132,107,215,
+174,165,68,8,51,100,144,161,207,104,98,47,212,128,65,155,54,109,250,243,
+159,255,236,118,126,35,238,228,28,22,132,136,86,19,243,36,79,206,16,19,
+136,117,235,214,137,3,187,236,178,203,204,29,67,156,158,66,110,65,248,175,
+127,253,203,83,97,137,36,151,23,16,166,164,164,152,75,199,238,88,229,22,
+132,55,223,124,179,56,146,55,223,124,211,80,28,22,15,60,240,64,243,211,
+102,184,53,76,41,216,81,123,123,123,101,101,37,7,243,225,135,31,30,114,
+200,33,230,230,22,226,120,94,127,253,117,14,64,236,72,175,209,5,225,251,
+239,191,47,170,72,212,149,94,162,222,220,202,45,8,191,251,238,59,178,12,
+153,36,147,81,98,107,126,131,208,60,232,24,17,94,64,72,229,111,220,184,
+145,35,113,43,14,204,19,8,197,105,18,243,59,7,88,20,103,35,198,2,132,255,
+249,207,127,12,187,99,78,118,220,113,199,153,207,168,225,206,138,27,131,
+199,81,150,3,161,151,26,161,177,189,128,144,65,200,196,77,70,185,180,223,
+126,251,49,87,165,59,202,101,151,24,213,2,33,158,154,83,3,33,189,214,112,
+156,12,191,183,222,122,11,110,153,79,58,49,161,11,36,8,201,101,56,17,225,
+22,132,199,30,123,44,85,135,221,247,2,66,243,228,84,128,16,235,118,249,
+229,151,203,40,151,14,56,224,0,44,251,130,5,11,228,178,78,250,15,41,232,
+53,186,32,100,182,196,54,151,45,91,118,207,230,122,232,161,135,196,157,
+105,6,49,158,103,205,154,5,171,12,162,207,224,196,92,105,122,67,58,18,103,
+29,125,1,161,80,90,90,26,54,197,211,187,172,232,15,24,62,146,185,125,145,
+166,0,97,122,69,250,243,51,158,55,175,21,72,46,46,46,134,136,178,156,46,
+137,27,190,188,131,208,92,237,96,155,85,110,65,136,223,207,6,243,242,242,
+204,190,242,225,135,31,206,216,52,223,40,43,174,17,82,252,142,142,14,90,
+51,33,33,33,35,35,131,201,19,123,49,119,69,161,19,78,56,193,124,233,1,141,
+46,8,49,238,20,19,63,233,145,71,30,145,245,229,146,120,254,199,173,220,
+130,16,170,121,154,96,109,9,8,205,183,141,120,7,225,238,187,239,46,190,
+76,178,124,249,242,251,55,215,255,251,127,255,143,206,236,29,132,230,71,
+114,89,124,246,217,103,89,229,5,132,216,37,187,221,254,196,19,79,80,76,
+77,140,11,239,32,164,63,24,30,102,99,95,140,169,186,186,58,243,96,167,31,
+138,17,61,142,10,29,16,174,95,191,222,252,28,33,93,132,182,188,245,214,
+91,229,178,75,128,80,188,68,131,230,116,107,106,181,129,106,62,213,115,
+212,81,71,193,27,186,157,121,106,163,189,180,34,96,32,20,47,77,213,228,
+22,132,71,31,125,244,176,32,52,223,230,32,64,8,39,204,247,220,62,252,240,
+195,12,99,183,32,196,88,139,13,26,52,186,32,20,157,196,124,219,58,150,197,
+237,91,214,232,3,110,239,113,47,119,126,86,240,243,207,63,55,159,63,196,
+185,39,151,239,32,68,180,44,224,113,251,17,124,134,186,152,33,225,128,154,
+59,134,0,225,146,180,37,15,62,247,160,121,45,51,107,214,98,1,205,221,251,
+218,107,175,101,149,23,16,50,45,48,143,50,1,194,37,75,150,152,65,72,191,
+101,131,56,64,230,198,162,2,233,69,230,7,234,233,57,226,230,73,80,193,102,
+233,24,8,60,16,3,80,111,185,229,22,115,137,240,132,12,143,169,8,141,5,8,
+127,250,233,39,243,197,96,204,136,115,135,110,20,72,16,154,15,204,59,8,
+137,17,245,102,126,56,146,85,217,217,217,222,65,104,54,74,44,138,155,12,
+230,204,153,35,163,116,18,32,76,76,76,220,119,223,125,233,69,154,176,123,
+69,69,69,222,65,248,225,135,31,26,246,69,63,249,234,171,175,88,117,140,
+233,129,122,134,173,184,11,100,28,21,58,32,92,184,112,161,249,226,243,103,
+159,125,198,170,7,30,120,64,46,187,196,174,133,245,97,134,226,246,181,138,
+26,8,13,239,203,64,23,92,112,1,182,27,11,110,238,169,56,254,190,128,144,
+181,50,202,37,239,32,196,210,145,209,111,143,240,200,35,143,28,22,132,102,
+18,8,16,82,63,230,27,189,24,54,216,5,183,32,100,230,33,54,104,144,127,32,
+244,244,28,161,232,36,211,167,79,151,203,46,97,217,221,62,62,193,120,54,
+219,14,36,64,200,32,116,123,219,2,46,142,23,16,82,57,230,171,203,17,17,
+17,228,98,242,100,238,219,180,47,251,114,107,25,53,16,62,252,226,195,230,
+243,171,226,225,138,184,184,56,51,8,135,125,124,34,41,41,201,188,59,1,194,
+197,139,23,155,65,120,205,53,215,176,193,247,222,123,207,124,24,226,229,
+171,120,180,114,217,37,12,220,55,223,124,195,42,243,227,52,226,200,217,
+26,29,85,70,185,164,255,26,154,38,191,65,232,246,57,66,1,194,21,43,86,152,
+221,244,145,62,62,49,186,32,228,192,88,5,8,205,7,166,7,161,249,57,66,13,
+132,76,226,101,148,75,251,239,191,191,151,199,39,4,8,153,54,25,14,134,69,
+209,70,110,159,9,22,32,100,22,110,184,85,10,46,98,30,189,131,144,62,38,
+151,93,98,246,147,144,144,192,42,243,165,40,200,202,192,97,213,56,42,116,
+64,200,96,48,187,53,68,178,10,163,32,151,93,98,215,52,21,171,240,120,204,
+147,92,164,129,208,124,155,223,197,23,95,12,177,176,131,230,71,148,152,
+236,12,11,66,70,142,249,5,114,222,65,8,45,200,104,6,33,104,17,183,252,104,
+114,11,66,98,134,5,161,153,82,2,132,116,119,179,185,20,51,59,102,30,230,
+50,222,115,207,61,98,131,6,249,7,66,14,219,237,149,72,209,73,102,207,158,
+45,151,93,194,178,184,61,199,130,21,99,124,202,68,58,81,39,172,101,168,
+251,1,66,86,153,31,10,20,247,136,82,63,134,107,213,40,35,35,131,85,110,
+59,134,6,194,199,94,123,108,219,73,198,25,137,48,85,32,205,12,66,76,48,
+171,188,131,80,46,235,36,64,72,243,153,79,205,93,125,245,213,108,208,124,
+129,16,137,215,199,152,31,129,133,70,226,76,227,255,251,127,255,79,70,185,
+36,188,13,42,217,124,211,41,24,54,163,197,111,16,46,95,190,92,70,233,36,
+64,184,102,205,26,243,117,77,76,188,115,135,110,52,82,16,178,11,243,139,
+145,145,23,16,126,255,253,247,172,234,233,233,49,223,72,169,7,161,249,149,
+114,26,8,25,245,50,202,37,198,56,94,154,119,16,98,64,12,7,195,34,253,132,
+85,76,23,100,148,78,2,132,233,233,233,6,67,71,21,85,86,86,122,7,33,157,
+86,46,187,4,237,196,155,101,204,22,21,70,138,119,69,141,163,66,28,132,226,
+5,137,143,62,250,168,92,118,137,93,139,219,165,154,154,154,220,222,209,
+46,230,239,200,188,150,177,74,46,32,97,30,222,71,29,117,212,176,32,164,
+20,230,247,31,34,24,198,102,205,14,16,54,26,118,146,209,45,8,197,27,146,
+52,185,5,225,225,135,31,62,186,32,252,244,211,79,177,11,230,87,78,32,241,
+68,182,89,110,65,8,108,42,42,42,0,33,243,89,25,229,146,0,33,25,111,112,
+247,229,54,241,106,208,87,95,125,85,46,187,68,113,4,111,204,114,123,254,
+83,204,67,113,34,205,61,7,51,68,165,121,1,97,115,115,179,185,111,8,183,
+9,75,103,56,109,78,17,240,173,89,101,190,133,29,105,32,124,246,221,103,
+119,152,98,188,88,11,96,88,203,184,48,131,80,24,29,255,64,136,67,111,6,
+225,223,254,246,55,54,56,107,214,44,51,8,197,123,77,241,42,228,178,75,212,
+170,120,211,144,249,101,34,79,60,241,4,253,4,3,109,112,110,24,125,110,13,
+159,39,16,138,230,54,251,223,26,8,211,210,210,204,198,68,216,113,24,105,
+190,222,41,192,224,86,35,5,33,98,71,230,190,45,222,53,248,167,63,253,201,
+220,220,98,174,6,8,205,247,52,232,65,104,30,239,16,93,228,53,159,231,167,
+187,122,121,197,154,40,175,153,202,44,138,23,248,101,101,101,153,143,243,
+229,151,95,198,242,36,39,39,227,2,202,40,167,56,72,97,25,188,128,144,57,
+144,92,118,9,218,209,27,89,101,158,235,51,107,244,242,66,168,192,40,116,
+64,184,100,201,18,243,188,158,246,96,94,111,30,189,180,186,56,61,2,123,
+220,190,240,158,173,177,59,18,208,123,100,148,75,39,156,112,2,152,164,235,
+152,175,17,2,33,188,58,114,121,1,33,35,138,185,170,121,45,123,100,158,69,
+39,147,203,46,129,70,198,51,25,221,130,80,92,233,212,228,22,132,135,30,
+122,168,223,32,196,124,155,115,49,221,99,24,207,156,57,83,46,235,228,9,
+132,96,195,188,11,6,54,51,92,106,210,108,226,53,16,2,9,115,70,124,65,240,
+105,190,212,122,228,145,71,106,15,219,24,228,214,32,222,122,235,173,107,
+215,174,189,233,166,155,204,118,159,118,39,151,23,16,118,119,119,155,31,
+156,160,78,176,29,120,84,6,178,146,69,92,35,188,227,142,59,204,77,47,222,
+68,186,56,117,241,27,223,190,177,219,158,70,247,5,56,209,135,231,204,153,
+131,221,151,81,46,137,19,140,254,129,144,121,140,185,3,139,82,211,63,205,
+117,254,222,123,239,209,183,205,231,181,0,225,151,206,23,25,126,98,250,
+228,250,205,55,223,220,222,222,142,63,103,168,249,105,211,166,37,38,38,
+146,197,32,138,233,118,86,250,216,99,143,209,220,230,19,48,26,8,233,246,
+230,89,41,185,104,35,186,138,161,119,97,118,197,231,50,220,202,15,16,50,
+5,55,159,0,184,239,190,251,40,142,25,21,76,62,68,23,165,197,25,152,50,214,
+37,208,152,157,45,63,185,108,62,243,143,125,99,102,79,161,232,177,50,202,
+37,108,11,173,227,29,132,164,49,244,61,22,197,73,5,183,147,209,107,174,
+185,6,243,200,44,199,80,129,140,26,154,213,59,8,205,147,84,54,178,104,209,
+34,118,100,174,225,29,118,216,65,156,111,24,71,133,14,8,99,99,99,205,183,
+62,98,79,25,186,230,110,74,15,16,207,51,225,192,153,175,2,34,186,197,89,
+103,157,133,123,97,190,190,136,141,99,254,101,190,228,139,240,189,134,5,
+33,98,90,199,129,201,88,151,24,3,116,44,51,203,177,47,98,16,154,65,136,
+249,22,206,132,38,183,32,100,203,126,131,144,142,107,254,174,216,238,187,
+239,206,180,206,48,79,20,242,4,66,198,182,249,12,21,29,224,148,83,78,113,
+251,221,50,13,132,28,182,25,147,108,234,196,19,79,52,55,183,151,107,63,
+212,140,249,174,31,132,141,54,151,29,189,253,246,219,228,242,2,66,214,62,
+255,252,243,244,88,25,235,212,222,123,239,125,222,121,231,153,63,202,67,
+219,97,191,200,130,123,103,238,246,28,3,77,127,203,61,183,196,101,197,157,
+119,225,121,134,158,67,49,113,134,48,244,134,120,178,136,109,250,7,66,179,
+219,138,174,186,234,42,58,48,6,203,92,39,28,0,141,101,40,47,34,70,120,63,
+216,50,195,64,219,121,231,157,169,13,243,123,45,142,63,254,120,81,129,6,
+113,84,230,121,39,18,163,216,188,107,13,132,76,50,204,47,65,165,147,80,
+69,123,238,185,167,161,222,152,190,152,223,248,163,201,15,16,82,255,102,
+72,51,144,105,53,115,23,213,30,97,236,237,237,253,189,233,221,217,84,251,
+177,199,30,123,249,229,151,167,164,164,84,87,87,27,46,34,210,115,56,188,
+211,79,63,29,239,74,70,57,69,61,188,255,254,251,28,161,119,16,98,232,12,
+85,193,226,163,143,62,202,42,42,4,236,201,88,151,68,199,51,156,191,165,
+137,191,251,238,59,246,229,29,132,95,125,245,149,97,95,28,60,3,144,97,107,
+136,71,12,112,79,159,127,9,152,66,7,132,152,108,51,93,132,204,67,8,137,
+11,24,108,243,254,251,239,55,183,141,16,7,195,236,216,124,156,66,230,120,
+166,120,190,128,16,247,8,144,120,218,169,38,18,92,122,233,165,94,78,149,
+0,66,113,165,83,147,91,16,30,116,208,65,20,115,211,166,77,126,128,144,169,
+159,249,254,8,47,242,4,66,132,103,35,19,249,32,13,132,12,57,220,44,243,
+89,77,131,168,43,156,105,1,6,183,98,59,76,125,204,78,149,91,81,99,226,186,
+172,119,16,226,235,184,157,13,24,68,221,126,244,209,71,98,154,255,245,215,
+95,187,229,46,194,148,115,144,224,196,96,230,220,138,52,218,36,218,63,16,
+98,206,204,59,186,248,226,139,241,213,114,115,115,205,115,71,33,243,80,
+162,19,50,87,195,15,102,176,156,112,194,9,190,244,234,27,111,188,145,225,
+47,14,222,160,23,95,124,209,237,104,117,43,13,132,104,217,178,101,94,62,
+68,172,137,52,222,47,71,249,1,66,86,61,252,240,195,190,20,156,250,169,116,
+125,120,143,33,233,22,90,136,137,17,141,75,27,209,99,205,231,42,204,98,
+82,46,222,179,232,29,132,230,243,180,44,10,16,162,149,43,87,122,178,159,
+122,157,115,206,57,226,234,143,119,16,186,253,200,168,144,185,255,51,105,
+16,159,166,26,71,133,14,8,209,140,25,51,204,23,123,112,95,204,8,65,226,
+174,116,148,144,144,96,126,58,74,136,131,41,43,43,115,235,178,224,20,154,
+207,198,28,114,200,33,190,128,16,165,165,165,185,189,28,162,23,211,49,241,
+224,132,144,185,20,84,160,246,118,46,33,47,32,204,203,203,243,3,132,140,
+198,79,63,253,212,108,22,217,53,254,129,185,5,189,128,48,50,50,210,45,54,
+220,62,32,161,129,16,129,55,218,221,60,185,214,196,97,48,38,105,71,47,214,
+10,245,244,244,192,0,179,99,170,23,118,135,130,107,182,210,59,8,209,234,
+213,171,241,111,228,10,15,186,253,246,219,181,19,182,76,215,152,88,184,
+181,110,128,16,156,212,213,213,113,144,7,30,120,160,23,195,138,163,48,123,
+246,108,141,250,254,129,112,254,252,249,102,16,210,39,241,69,168,168,71,
+30,121,196,124,144,248,61,230,11,60,36,155,53,107,22,221,30,124,82,111,
+248,43,114,133,7,177,5,38,16,28,0,115,172,142,142,14,67,147,81,177,110,
+251,3,99,208,60,180,245,32,68,248,184,230,147,141,122,209,112,120,78,148,
+78,102,112,39,63,64,136,232,39,120,84,230,35,212,11,127,104,249,242,229,
+20,92,100,97,131,63,255,252,179,121,72,34,1,66,210,224,20,222,118,219,109,
+94,88,200,170,179,206,58,139,38,19,219,244,14,66,243,131,61,122,16,210,
+157,222,126,251,109,47,19,59,38,163,248,247,204,167,69,122,239,32,68,110,
+159,156,57,252,240,195,205,185,168,183,53,107,214,136,92,227,165,144,2,
+33,67,139,129,161,191,221,127,167,157,118,98,14,238,246,59,221,26,8,17,
+180,163,67,48,95,195,226,235,187,29,7,195,78,177,224,250,171,65,28,54,139,
+233,233,233,230,51,27,190,131,16,225,115,188,254,250,235,102,154,34,138,
+128,181,210,238,92,21,114,11,66,195,201,64,47,32,204,201,201,49,79,153,
+135,5,33,171,58,59,59,191,252,242,75,189,185,167,86,153,185,187,253,238,
+149,23,16,98,229,241,66,244,166,10,67,252,244,211,79,99,199,205,39,132,
+245,32,68,88,76,144,115,229,149,87,154,79,147,82,168,39,158,120,130,137,
+182,102,98,188,168,183,183,23,215,129,134,144,153,55,23,21,5,63,104,23,
+109,83,195,130,16,97,26,30,123,236,49,179,9,166,117,112,82,191,248,226,
+139,166,166,38,153,212,41,106,245,205,55,223,60,251,236,179,41,163,190,
+179,253,249,207,127,206,206,206,142,136,136,192,40,124,245,213,87,119,223,
+125,183,249,174,66,42,156,100,224,77,239,251,250,7,66,183,31,230,165,134,
+217,26,168,128,220,36,211,159,59,229,104,23,47,94,124,215,93,119,201,101,
+151,40,2,221,152,244,128,80,248,133,76,206,142,61,246,88,115,255,135,238,
+240,187,162,162,130,233,29,13,193,15,90,205,12,152,210,210,82,124,23,125,
+205,92,114,201,37,20,196,108,163,13,32,68,89,89,89,15,62,248,160,249,129,
+31,140,248,117,215,93,39,246,43,147,122,144,127,32,68,12,252,207,63,255,
+220,252,161,124,180,243,206,59,115,84,140,77,134,161,76,237,20,7,195,212,
+129,42,61,242,200,35,245,243,60,13,132,8,87,143,30,203,236,193,236,96,77,
+155,54,13,151,145,106,212,142,205,59,8,205,55,67,232,65,136,104,190,228,
+228,100,38,100,230,19,48,180,29,132,19,6,65,104,88,16,114,96,255,247,127,
+255,167,63,7,67,49,99,99,99,205,143,217,132,53,8,17,221,194,44,239,29,142,
+1,44,211,233,164,183,128,100,103,76,174,88,177,226,221,119,223,157,55,111,
+30,83,42,98,16,134,195,32,90,93,230,113,138,52,98,227,196,211,159,176,254,
+72,219,50,63,24,69,115,231,206,125,231,157,119,24,234,164,33,61,246,66,
+110,75,39,45,189,56,54,189,244,199,41,196,70,136,103,66,135,185,196,70,
+188,246,218,107,88,64,230,203,140,16,86,201,68,46,185,221,157,161,20,136,
+188,114,157,78,98,149,121,11,218,236,88,46,235,164,55,25,28,12,181,177,
+118,237,90,14,242,179,207,62,131,208,162,186,100,82,157,204,101,212,75,
+228,194,158,50,49,199,16,99,242,68,49,69,253,24,36,178,232,69,94,134,226,
+79,63,253,244,241,199,31,51,222,112,85,161,99,91,91,155,185,174,188,139,
+237,48,45,120,235,173,183,152,12,97,134,30,126,248,225,233,211,167,179,
+89,179,131,130,228,209,184,212,211,211,159,95,220,159,150,231,208,135,212,
+220,193,164,172,190,255,45,78,123,253,173,31,30,123,230,237,255,123,114,
+214,203,51,190,254,250,199,196,148,156,129,212,188,65,67,98,2,233,89,149,
+156,211,159,156,221,31,159,222,29,155,214,73,72,76,46,166,134,53,97,26,
+18,83,235,62,251,38,242,133,215,190,124,228,201,55,159,122,238,253,153,
+111,255,248,203,218,18,50,26,182,70,96,35,134,144,156,221,71,60,59,50,196,
+19,234,26,134,218,136,178,200,54,211,137,86,22,32,36,1,85,129,45,163,195,
+207,156,57,147,153,80,92,92,28,248,103,150,80,84,84,4,243,168,118,176,205,
+68,1,204,243,67,3,97,94,94,30,131,142,26,230,7,243,30,38,106,175,190,250,
+234,71,31,125,196,100,84,140,26,246,75,135,167,119,149,151,151,187,5,33,
+34,37,19,130,57,115,230,208,196,105,105,105,162,83,57,171,223,40,115,118,
+98,200,30,21,21,5,150,102,204,152,65,79,3,3,236,75,108,100,88,145,76,110,
+90,39,183,7,105,22,201,200,206,196,232,219,111,191,165,222,216,59,131,133,
+46,218,218,218,234,101,11,100,17,59,229,176,157,86,103,72,44,202,213,78,
+145,128,202,167,32,212,9,91,198,92,172,91,183,142,246,50,111,150,141,136,
+166,212,75,36,115,107,25,72,47,50,106,98,95,140,142,165,75,151,210,106,
+88,36,140,222,134,13,27,200,107,222,151,56,108,131,244,201,248,93,92,92,
+188,96,193,2,124,205,69,139,22,137,251,197,200,37,247,173,19,145,34,203,
+120,105,60,65,168,164,20,116,194,64,197,231,56,22,68,141,126,88,177,161,
+68,50,208,165,149,235,51,13,105,70,37,84,12,61,199,225,94,24,50,13,132,
+66,224,13,200,65,187,140,140,12,216,134,203,133,115,150,144,144,208,216,
+216,8,17,197,170,252,252,124,108,61,214,19,11,142,75,33,174,87,161,246,
+246,118,166,143,76,43,73,67,188,48,118,236,2,16,98,251,176,236,122,111,
+70,73,105,28,165,64,168,164,52,2,141,29,8,87,174,207,151,0,116,233,151,
+141,181,134,52,163,18,124,1,33,30,0,168,3,93,117,117,117,48,12,248,1,45,
+188,7,225,201,137,179,124,120,135,184,107,172,194,77,103,21,200,36,37,98,
+149,216,26,32,76,76,76,36,13,34,13,14,55,188,100,155,208,20,172,194,72,
+60,66,216,41,238,75,82,82,26,71,41,16,42,41,141,64,56,48,109,237,142,198,
+230,209,15,245,13,29,145,145,145,146,129,107,215,198,197,197,85,84,245,
+24,210,140,74,232,115,115,214,89,10,255,76,156,31,6,120,240,9,188,193,45,
+252,57,164,225,77,156,97,227,7,49,56,127,240,82,172,34,18,7,17,176,57,83,
+13,9,16,194,188,218,218,90,146,137,109,138,140,164,33,37,80,36,134,93,136,
+51,102,74,74,227,40,5,66,37,37,171,8,54,20,21,21,109,216,176,33,63,63,95,
+48,99,188,4,255,56,128,45,60,111,41,64,104,190,10,165,164,100,53,41,16,
+42,41,89,72,93,93,93,209,209,209,250,171,116,193,43,56,170,249,145,74,74,
+86,150,2,161,146,146,37,84,209,84,81,222,84,94,88,83,184,54,110,109,113,
+93,49,191,219,187,218,229,58,37,37,165,177,148,2,161,146,146,37,180,36,
+109,201,130,228,5,250,80,92,85,44,215,41,41,41,141,165,20,8,149,148,44,
+33,5,66,37,165,241,146,2,161,146,146,37,100,125,16,246,244,244,148,151,
+151,235,223,188,131,250,251,251,43,43,43,137,23,55,197,180,181,181,21,23,
+23,139,71,200,91,90,90,248,173,46,19,110,161,178,178,178,62,217,92,93,30,
+222,212,170,228,183,20,8,149,148,44,33,139,131,16,248,229,230,230,150,150,
+150,166,167,167,55,233,94,26,87,81,81,65,124,78,78,14,204,235,236,236,140,
+142,142,174,174,174,78,76,76,132,139,252,16,224,148,73,149,70,174,188,188,
+188,195,14,59,108,187,205,37,190,213,172,52,138,26,127,16,166,165,165,77,
+52,233,128,3,14,40,42,42,98,166,121,210,73,39,201,40,157,222,127,255,125,
+153,217,47,157,123,238,185,114,67,58,93,121,229,149,114,117,208,234,201,
+39,159,148,133,209,233,154,107,174,97,122,46,83,184,19,118,237,160,131,
+14,146,169,93,154,60,121,50,35,80,166,24,61,21,20,20,236,191,255,254,114,
+31,46,77,155,54,77,124,119,123,180,196,124,121,235,173,183,150,91,247,160,
+41,83,166,44,89,178,68,102,24,61,61,248,224,131,219,108,179,141,220,135,
+75,151,94,122,169,92,237,85,129,7,225,137,39,158,40,15,81,167,127,254,243,
+159,114,245,230,194,29,220,180,105,83,71,71,71,109,109,109,73,73,137,246,
+100,69,102,102,38,67,120,175,189,246,18,217,183,218,106,43,241,99,215,93,
+119,93,186,116,41,224,36,189,72,185,133,162,67,138,45,235,181,247,222,123,
+231,231,231,215,212,212,156,126,250,233,50,74,167,153,51,103,146,177,187,
+187,123,219,109,183,149,81,46,29,127,252,241,144,91,108,57,240,90,182,108,
+217,212,169,83,229,161,184,180,207,62,251,36,36,36,200,20,78,149,149,149,
+157,112,194,9,242,141,156,206,87,131,138,31,228,253,246,219,111,245,126,
+249,88,232,214,91,111,149,71,166,211,237,183,223,46,214,154,135,216,78,
+59,237,148,170,251,72,64,112,105,252,65,72,221,137,214,213,107,191,253,
+246,19,32,212,247,3,77,91,8,194,179,207,62,91,110,72,167,63,253,233,79,
+114,117,208,234,241,199,31,151,133,209,233,239,127,255,187,119,16,98,197,
+204,223,228,196,154,143,17,8,205,47,146,102,84,199,197,197,201,20,163,33,
+64,104,126,227,179,65,219,111,191,253,226,197,139,101,134,209,211,253,247,
+223,111,126,149,252,31,255,248,71,185,218,171,226,242,227,162,115,163,9,
+63,39,255,44,126,84,215,87,203,117,99,35,183,223,205,184,237,182,219,228,
+234,205,69,173,2,66,254,54,52,52,20,22,22,106,32,76,73,73,129,133,230,47,
+248,236,178,203,46,235,214,173,171,171,171,27,45,123,77,135,148,155,214,
+105,207,61,247,20,32,252,131,233,251,245,72,188,0,26,16,98,166,101,148,
+75,71,29,117,20,165,16,91,14,188,126,254,249,103,243,215,84,40,139,30,132,
+28,246,101,151,93,38,215,57,223,8,175,255,216,19,51,0,88,40,147,142,141,
+220,190,191,27,58,138,181,230,33,182,227,142,59,42,16,250,47,183,32,196,
+52,123,1,225,71,31,125,36,51,251,37,5,66,189,20,8,71,81,119,223,125,183,
+121,215,62,130,176,175,191,175,183,175,183,189,163,61,42,38,170,179,171,
+147,223,99,61,229,31,107,16,142,110,179,186,5,33,158,40,71,229,9,132,179,
+102,205,34,163,91,16,30,113,196,17,100,20,91,14,188,124,1,225,121,231,253,
+250,137,102,86,69,69,69,81,243,122,52,78,155,54,205,251,183,21,183,80,10,
+132,1,149,91,16,30,120,224,129,197,197,197,158,64,56,103,206,28,153,217,
+47,221,119,223,125,103,154,164,255,28,73,144,234,221,119,223,149,133,209,
+233,63,255,249,79,71,71,135,76,225,78,10,132,163,40,40,226,55,8,133,56,
+248,232,232,232,222,225,190,22,52,42,26,17,8,123,122,122,232,18,109,109,
+109,140,74,241,249,17,17,159,157,157,157,148,148,52,94,32,196,49,242,2,
+194,217,179,103,147,209,45,8,127,251,219,223,226,74,138,45,7,94,195,130,
+144,35,63,231,156,115,206,58,235,44,112,120,197,21,87,204,157,59,87,204,
+138,50,50,50,110,185,229,150,75,47,189,148,217,60,107,31,120,224,129,177,
+123,65,157,119,16,74,251,162,211,69,23,93,52,142,85,186,133,178,40,8,15,
+58,232,32,47,32,252,244,211,79,69,222,90,119,194,136,48,74,115,115,115,
+191,254,250,235,247,223,127,127,249,242,229,140,4,145,94,168,189,189,189,
+217,36,34,91,90,90,234,76,146,121,28,14,185,172,19,89,228,58,167,250,251,
+251,41,203,194,133,11,113,88,63,251,236,179,95,126,249,133,110,225,246,
+150,57,142,71,30,171,78,34,37,219,196,64,139,239,135,105,194,56,174,93,
+187,118,222,188,121,160,142,141,127,243,205,55,89,89,89,230,45,51,36,100,
+97,116,34,175,92,237,20,222,225,178,101,203,196,189,103,177,177,177,140,
+46,102,244,230,111,34,186,5,33,123,132,154,140,97,38,34,111,191,253,54,
+173,176,106,213,42,142,92,174,54,137,250,164,242,73,198,190,48,238,52,202,
+136,64,200,1,44,93,186,244,227,143,63,102,119,63,253,244,19,214,86,51,190,
+222,229,55,8,203,203,203,57,96,218,238,195,15,63,92,176,96,1,245,227,253,
+245,96,88,165,239,190,251,238,131,15,62,248,254,251,239,201,75,140,219,
+239,80,186,5,33,125,96,221,186,117,52,37,38,143,191,27,54,108,192,154,19,
+111,6,97,125,125,189,232,33,154,240,12,196,42,126,179,119,179,41,196,69,
+19,5,97,227,116,24,106,175,168,168,72,174,211,105,68,32,164,242,75,75,75,
+227,227,227,87,175,94,77,229,208,46,239,188,243,78,100,100,36,7,195,34,
+222,137,204,239,146,39,16,210,172,75,150,44,209,55,171,92,49,156,220,130,
+144,238,228,5,132,28,33,25,221,130,240,176,195,14,99,131,116,233,228,228,
+100,70,22,45,206,200,21,77,224,86,180,8,135,202,192,36,229,151,95,126,185,
+114,229,74,79,103,86,69,27,25,36,58,18,63,230,207,159,191,98,197,10,95,
+60,66,77,49,49,49,212,24,44,196,154,125,241,197,23,152,2,183,199,217,216,
+216,40,246,165,23,22,128,85,88,21,74,135,245,224,248,13,95,57,21,194,14,
+164,167,167,127,251,237,183,148,110,209,162,69,226,83,160,222,65,40,204,
+139,65,110,205,93,78,78,14,198,144,222,248,214,91,111,209,27,177,63,213,
+213,99,123,206,223,15,5,37,8,169,83,50,82,239,12,182,157,55,23,233,169,
+247,23,94,120,129,145,57,121,242,228,73,147,38,209,225,126,247,187,223,
+97,170,52,51,122,249,229,151,179,214,160,235,174,187,14,231,105,215,93,
+119,149,203,78,145,81,59,61,245,251,223,255,94,198,58,181,219,110,187,137,
+19,47,136,230,167,247,92,114,201,37,216,116,44,172,184,179,139,253,238,
+180,211,78,87,93,117,21,253,94,223,63,248,253,228,147,79,202,195,213,41,
+34,34,2,107,197,196,138,140,247,222,123,175,72,76,143,121,228,145,71,246,
+218,107,175,29,119,220,81,20,135,45,243,131,29,93,112,193,5,12,39,253,150,
+159,123,238,57,42,68,30,159,75,116,92,97,40,41,8,35,234,244,211,79,103,
+251,226,8,167,76,153,242,215,191,254,245,171,175,190,50,195,201,0,66,134,
+49,76,58,247,220,115,41,145,200,46,142,132,223,187,239,190,251,227,143,
+63,174,255,136,46,162,170,177,197,76,105,245,251,250,211,159,254,68,45,
+49,133,151,251,112,201,0,66,142,19,204,83,111,148,69,95,153,108,129,13,
+98,115,13,104,55,203,45,8,41,209,73,39,157,196,60,90,232,252,243,207,215,
+190,5,202,209,210,151,238,191,255,126,142,77,43,29,187,102,143,71,30,121,
+36,163,23,19,35,82,106,162,66,158,125,246,89,220,32,209,40,36,230,55,76,
+162,140,195,130,144,249,193,107,175,189,118,224,129,7,106,109,202,95,126,
+83,147,143,61,246,24,125,64,15,66,172,237,161,135,30,42,187,136,75,116,
+75,226,63,255,252,115,92,121,178,51,76,68,98,142,10,50,253,229,47,127,49,
+55,19,135,71,167,194,50,234,39,19,35,2,33,162,179,129,13,144,163,109,156,
+195,166,200,152,105,243,183,112,13,32,212,154,149,62,105,104,86,250,21,
+102,122,216,102,117,11,194,125,247,221,151,217,149,39,16,190,247,222,123,
+100,244,4,66,136,206,232,224,0,180,70,164,110,153,180,105,67,94,136,90,
+101,140,208,247,72,73,26,209,94,28,57,22,0,231,140,10,55,164,103,76,137,
+102,210,68,145,193,12,199,201,65,146,247,245,215,95,247,5,132,244,129,255,
+253,239,127,167,158,122,170,216,175,168,112,254,82,231,148,154,238,39,158,
+81,209,18,227,32,202,253,185,68,19,48,19,250,225,135,31,232,39,226,200,
+249,75,222,231,159,127,94,111,55,40,32,70,134,97,168,213,3,173,9,119,111,
+188,241,70,121,100,58,105,32,52,155,26,230,211,76,13,197,90,196,46,96,54,
+181,193,150,181,14,35,26,157,146,222,115,207,61,250,243,10,227,46,139,130,
+240,144,67,14,41,41,41,241,4,66,166,69,100,108,106,106,50,223,152,64,147,
+95,122,233,165,230,120,236,14,166,89,236,17,59,40,99,117,98,60,51,27,162,
+169,228,178,75,90,143,161,127,200,40,167,88,100,34,79,60,152,1,108,52,176,
+92,97,18,41,233,121,120,144,98,59,108,240,161,135,30,146,235,116,218,184,
+113,35,131,141,31,88,82,122,9,41,153,129,30,119,220,113,98,173,91,109,187,
+237,182,79,61,245,148,230,152,122,191,70,136,139,64,103,149,177,58,49,158,
+25,0,114,193,37,61,8,43,42,42,56,30,239,62,214,41,167,156,130,137,20,233,
+17,140,49,195,21,17,105,254,248,181,30,132,0,233,149,87,94,97,140,201,117,
+38,209,178,12,69,239,103,96,60,129,48,49,49,81,166,208,169,167,167,135,
+121,149,249,251,242,122,93,124,241,197,250,251,90,59,59,59,129,138,92,167,
+211,214,91,111,77,89,228,130,78,122,16,226,82,211,63,229,10,119,194,64,
+191,252,242,203,212,131,72,143,187,195,228,76,174,115,9,96,51,9,131,118,
+98,145,6,34,101,85,85,213,51,207,60,131,209,20,145,110,69,253,99,91,49,
+124,98,227,35,5,161,167,102,197,2,82,189,114,193,37,61,8,41,206,171,175,
+190,106,46,136,94,64,197,251,69,59,183,32,100,215,94,64,40,190,95,239,22,
+132,28,12,230,88,46,232,196,24,193,79,213,12,52,91,190,227,142,59,188,140,
+110,198,206,244,233,211,245,87,31,104,110,185,206,37,58,237,119,223,125,
+119,244,209,71,139,197,153,51,103,14,11,66,220,128,7,30,120,64,174,240,
+32,154,15,12,139,67,5,132,230,214,100,191,151,93,118,25,3,92,46,235,36,
+124,101,132,245,160,197,205,6,147,34,187,237,75,26,8,205,67,12,66,99,204,
+197,90,204,221,211,79,63,237,118,56,104,162,47,225,41,234,145,60,142,178,
+40,8,49,76,94,64,248,229,151,95,146,209,45,8,25,144,230,78,143,72,137,133,
+21,38,192,19,8,233,85,230,222,169,157,0,145,203,46,49,96,98,99,99,137,103,
+179,102,124,26,68,130,187,238,186,75,108,199,19,8,127,251,219,223,138,31,
+244,48,236,44,29,20,119,68,196,120,17,253,21,187,41,6,131,23,16,98,187,
+233,193,222,97,166,151,6,66,50,222,126,251,237,152,120,185,194,179,240,
+152,197,253,232,216,157,155,111,190,217,220,52,158,164,129,144,153,53,19,
+88,51,149,205,186,240,194,11,181,137,133,89,35,2,33,179,13,28,110,153,200,
+179,14,63,252,112,109,182,187,110,221,58,183,198,197,147,52,16,226,237,
+49,193,31,182,21,152,203,127,255,253,247,34,139,91,16,210,157,244,64,2,
+132,20,153,102,242,165,206,245,55,137,140,8,132,204,24,174,189,246,90,223,
+187,144,6,66,154,245,141,55,222,240,194,18,77,76,56,188,52,171,91,16,50,
+241,245,2,66,113,87,157,91,16,122,209,245,215,95,79,183,23,59,101,36,14,
+91,100,102,186,184,248,26,59,205,32,100,242,167,111,47,106,195,59,8,91,
+90,90,174,187,238,58,95,90,243,180,211,78,19,167,58,221,130,16,121,170,
+118,70,171,120,190,51,42,42,202,251,4,197,32,95,64,72,139,223,121,231,157,
+190,28,63,38,206,124,186,101,92,100,81,16,50,47,46,45,45,245,3,132,196,
+48,54,232,82,230,118,186,242,202,43,69,255,246,4,194,134,134,6,109,150,
+173,105,233,210,165,100,161,211,200,101,151,216,5,145,244,66,179,139,131,
+33,219,125,247,221,13,7,192,80,20,87,254,60,129,80,19,25,239,191,255,126,
+246,107,222,242,65,7,29,132,213,54,108,153,73,177,56,147,230,5,132,216,
+151,51,206,56,67,70,233,196,248,196,249,54,87,163,6,66,108,153,193,136,
+0,197,61,246,216,195,92,81,0,108,222,188,121,100,169,173,173,117,187,47,
+114,225,151,155,219,69,3,33,230,236,164,147,78,146,177,46,177,150,170,54,
+28,33,251,210,159,235,54,200,119,16,178,5,236,190,33,49,182,131,74,54,240,
+152,3,160,81,128,1,185,222,127,255,125,179,125,33,134,81,109,56,109,32,
+36,64,200,190,62,252,240,67,67,101,114,84,236,139,14,35,151,93,58,255,252,
+243,5,18,220,130,208,32,64,200,32,50,224,92,52,19,52,50,148,142,69,142,
+95,156,205,27,17,8,105,29,252,126,153,72,39,90,135,17,103,174,112,13,132,
+110,71,177,167,102,93,176,96,129,167,102,117,11,194,3,14,56,128,169,170,
+31,32,36,134,201,141,219,9,13,213,162,157,68,49,55,52,61,223,92,171,212,
+182,230,12,153,65,104,16,222,188,119,16,50,195,54,172,229,104,221,14,58,
+226,241,95,201,226,9,132,100,161,138,204,197,167,183,136,214,249,230,155,
+111,100,148,78,236,29,82,154,237,15,242,5,132,203,150,45,163,138,100,172,
+83,28,0,123,196,121,48,247,70,237,2,211,248,202,162,32,164,143,250,7,194,
+131,15,62,56,39,39,135,177,97,54,31,39,159,124,178,184,90,230,9,132,172,
+50,88,19,52,125,250,116,226,153,55,201,101,151,192,15,35,118,198,140,25,
+134,166,197,180,253,240,195,15,28,185,217,179,249,219,223,254,134,1,242,
+5,132,15,60,240,128,221,110,55,116,95,70,2,38,207,237,16,18,183,66,120,
+1,33,25,181,51,51,154,166,76,153,130,157,165,104,230,82,107,32,124,241,
+197,23,101,148,75,199,28,115,12,54,122,209,162,69,114,89,167,255,254,247,
+191,148,142,201,193,177,199,30,43,163,92,162,165,240,189,126,249,229,23,
+243,233,89,13,132,209,209,209,134,74,163,6,104,107,26,218,60,200,111,186,
+233,38,79,119,195,250,14,66,166,222,230,178,223,115,207,61,108,225,193,
+7,31,148,203,46,97,26,232,147,228,122,233,165,151,204,150,133,227,161,63,
+184,117,187,5,8,217,230,53,215,92,35,163,92,58,239,188,243,154,155,155,
+177,254,6,159,27,251,43,234,196,71,16,46,94,188,216,176,5,6,14,157,16,147,
+106,182,158,183,220,114,139,56,53,50,34,16,150,148,148,28,117,212,81,50,
+145,78,216,110,241,120,184,92,118,73,3,97,68,68,132,97,126,64,103,96,206,
+68,47,50,159,249,191,249,230,155,169,40,177,71,131,220,130,144,169,149,
+127,32,20,134,34,61,61,29,243,45,163,92,98,66,67,199,32,35,238,160,217,
+194,64,199,13,27,54,152,115,105,183,157,15,11,194,217,179,103,123,7,225,
+59,239,188,35,163,92,194,118,137,177,111,104,101,100,179,217,24,116,158,
+78,141,98,190,104,107,186,174,140,114,137,185,215,234,213,171,233,177,112,
+72,70,233,196,54,25,92,127,254,243,159,229,178,78,190,128,16,171,200,112,
+147,177,78,29,113,196,17,108,144,126,98,30,254,194,240,142,187,44,10,194,
+223,254,246,183,254,129,240,196,19,79,196,16,227,148,104,103,26,53,209,
+24,98,162,231,5,132,24,38,185,236,146,176,11,243,231,207,151,203,46,49,
+59,38,254,226,139,47,150,203,46,49,141,90,181,106,21,171,232,214,50,202,
+37,186,35,78,167,47,32,252,215,191,254,69,26,67,233,40,26,155,197,30,153,
+77,91,86,86,22,171,188,128,176,188,188,252,119,191,251,157,140,114,137,
+217,6,70,135,188,88,19,25,229,146,6,194,107,175,189,86,70,185,116,234,169,
+167,50,234,168,97,185,172,19,135,141,209,225,8,205,208,197,80,50,32,1,182,
+249,34,147,6,194,153,51,103,202,40,151,168,204,53,107,214,224,199,155,15,
+3,30,211,1,200,101,150,39,16,2,111,184,34,36,78,40,97,209,228,106,157,176,
+2,24,136,215,95,127,93,46,187,196,24,78,75,75,35,23,9,204,29,239,249,231,
+159,103,213,51,207,60,99,94,37,64,136,109,53,95,137,196,214,48,57,99,46,
+98,190,30,131,53,228,48,56,84,239,32,164,164,12,147,55,223,124,83,46,187,
+68,19,208,232,84,248,97,135,29,38,163,92,186,228,146,75,252,0,33,188,97,
+4,201,68,46,1,108,230,118,197,197,197,204,210,100,148,75,26,8,223,120,227,
+13,25,229,18,214,60,50,50,178,189,189,157,169,161,140,114,9,8,137,65,106,
+150,91,16,30,116,208,65,254,129,144,254,195,97,211,141,205,157,31,70,50,
+59,161,93,78,63,253,116,25,165,19,118,137,61,154,199,32,227,66,28,231,150,
+131,208,124,117,240,234,171,175,230,120,10,10,10,12,158,22,34,49,227,209,
+45,8,41,181,120,232,254,170,171,174,146,81,46,1,45,142,129,14,246,218,107,
+175,201,40,157,196,221,15,247,221,119,159,185,51,15,11,66,236,219,195,15,
+63,44,163,92,58,228,144,67,0,33,51,209,125,247,221,87,70,185,132,85,20,
+27,28,95,89,20,132,88,109,76,21,35,28,235,47,163,116,242,2,66,166,78,140,
+127,38,155,116,116,25,229,18,219,28,22,132,79,60,241,132,92,118,233,140,
+51,206,32,158,190,43,151,93,194,111,160,27,153,167,90,147,38,77,194,174,
+145,133,225,36,163,92,194,14,138,7,42,134,5,33,9,238,190,251,110,67,233,
+246,222,123,111,144,80,85,85,197,96,96,149,94,226,70,149,145,130,16,163,
+3,51,114,115,115,177,38,50,202,37,13,132,231,158,123,174,140,114,233,180,
+211,78,195,246,245,244,244,152,207,156,48,72,176,110,110,65,200,49,99,124,
+49,34,230,145,160,129,208,124,252,120,18,176,138,131,196,137,145,81,46,
+97,71,60,221,132,237,22,132,136,138,194,52,8,81,10,82,154,231,55,100,20,
+231,0,222,123,239,61,25,165,211,218,181,107,89,229,22,132,184,206,172,2,
+135,230,85,2,132,216,86,243,116,248,186,235,174,163,198,40,190,249,236,
+168,232,96,195,130,144,178,48,76,158,126,250,105,185,236,18,83,52,102,93,
+180,187,217,235,98,140,96,55,57,164,45,7,33,182,143,206,192,94,204,211,
+62,13,132,230,49,133,223,31,19,19,131,101,188,225,134,27,100,148,75,12,
+31,195,29,200,154,220,130,144,81,6,236,1,33,13,42,163,116,242,2,66,12,11,
+135,205,190,204,51,102,1,66,24,233,118,22,142,217,97,12,154,219,139,209,
+45,142,124,203,65,72,175,144,81,46,49,17,4,132,140,172,253,77,143,252,94,
+127,253,245,12,70,79,32,252,225,135,31,216,224,77,55,221,36,163,92,98,239,
+94,64,248,191,255,253,143,92,204,107,205,157,121,88,16,82,219,255,252,231,
+63,101,148,75,204,189,24,149,217,217,217,102,171,200,204,88,108,112,124,
+101,81,16,50,228,252,3,33,147,56,236,35,32,52,159,157,195,1,26,22,132,11,
+23,46,148,203,46,97,71,136,127,234,169,167,228,178,75,159,124,242,9,35,
+25,150,200,101,151,192,195,242,229,203,177,110,230,203,15,48,0,98,121,1,
+33,121,153,191,51,251,251,244,211,79,49,169,230,209,251,232,163,143,82,
+39,12,239,183,55,23,131,150,131,28,11,16,154,11,40,64,216,216,216,104,174,
+124,142,156,125,249,13,66,243,248,161,66,24,174,24,116,179,197,68,250,123,
+181,245,242,4,66,189,196,252,221,124,14,10,81,243,52,159,219,83,70,116,
+60,108,135,127,32,164,20,230,243,90,87,94,121,37,70,28,190,154,61,194,75,
+47,189,212,59,8,169,210,203,47,191,28,27,199,64,48,159,200,101,6,195,40,
+160,194,205,45,72,31,19,23,59,183,28,132,28,246,176,32,188,243,206,59,101,
+148,75,212,195,234,213,171,57,60,243,185,98,148,158,158,46,246,104,144,
+91,16,226,106,248,7,194,147,78,58,169,162,162,2,116,153,11,37,64,72,213,
+153,187,49,34,23,85,97,6,33,136,162,177,216,157,39,16,210,153,207,57,231,
+28,184,181,100,201,18,239,32,52,223,87,140,235,204,200,162,164,230,122,
+190,236,178,203,40,160,39,16,178,35,54,232,22,132,226,230,216,81,7,33,86,
+145,50,202,40,151,206,60,243,76,70,37,107,15,56,224,0,25,229,18,83,31,14,
+67,108,115,28,101,81,16,50,122,1,33,51,47,243,221,19,200,63,16,50,254,135,
+5,33,152,145,203,46,29,117,212,81,52,161,217,70,211,101,91,90,90,204,116,
+161,127,236,177,199,30,180,183,249,216,232,196,152,6,47,32,252,240,195,
+15,41,50,7,73,207,166,47,26,206,179,35,198,18,115,67,113,115,166,89,99,
+1,66,243,41,32,1,66,179,139,140,176,203,52,138,223,32,52,15,87,68,101,98,
+98,204,86,3,225,85,56,203,109,148,239,32,52,159,255,68,226,254,2,179,247,
+134,62,248,224,3,191,65,232,246,100,50,190,209,126,251,237,71,199,48,31,
+48,182,195,11,8,207,56,227,140,180,180,52,113,6,143,100,230,254,73,39,103,
+143,52,147,249,118,143,221,119,223,61,144,32,116,251,92,54,233,41,184,219,
+123,139,196,9,21,179,220,130,16,63,76,156,225,116,123,26,115,75,64,8,117,
+204,171,16,135,77,31,54,183,50,145,226,10,133,91,16,82,222,31,127,252,145,
+201,16,237,69,229,123,7,33,157,83,70,185,36,64,136,125,48,239,151,126,226,
+5,132,203,150,45,99,131,230,145,69,205,47,93,186,116,44,64,200,36,210,124,
+33,227,148,83,78,17,147,75,179,77,99,23,172,18,219,28,71,141,63,8,153,215,
+203,42,209,9,252,8,16,158,124,242,201,50,74,39,47,32,196,76,147,203,45,
+8,153,60,14,11,66,154,4,216,200,40,167,176,137,140,64,102,238,114,217,37,
+38,62,110,65,232,69,248,136,12,114,79,32,52,24,32,138,192,144,147,235,54,
+23,166,237,153,103,158,201,206,206,198,6,201,212,78,141,5,8,245,98,176,
+209,40,191,252,242,203,37,151,92,98,118,110,16,38,0,79,113,116,65,232,69,
+120,21,226,192,12,218,66,16,122,209,204,153,51,169,243,81,4,161,23,253,
+254,247,191,247,4,66,108,232,119,223,125,55,84,84,15,98,8,96,1,111,188,
+241,70,183,245,0,233,199,29,132,94,180,114,229,74,177,71,131,242,243,243,
+101,10,157,152,221,10,16,50,51,144,81,58,141,5,8,61,105,239,189,247,78,
+73,73,97,119,110,65,72,79,163,53,157,229,24,146,119,16,234,197,160,99,212,
+44,92,184,240,226,139,47,118,219,154,244,100,58,188,39,16,138,123,74,221,
+130,16,199,116,44,64,40,214,106,98,23,244,70,160,139,155,104,222,26,34,
+18,75,46,83,143,159,198,31,132,153,153,153,178,74,116,18,32,196,183,115,
+123,199,182,23,16,254,225,15,127,192,171,115,11,66,204,253,176,32,236,236,
+236,52,92,92,196,51,88,181,106,149,225,48,152,83,211,249,70,10,194,157,
+119,222,121,253,250,245,158,64,40,94,151,163,23,22,193,140,13,33,122,33,
+92,127,244,209,71,161,142,76,61,198,32,220,184,113,227,125,247,221,199,
+96,51,76,20,244,10,48,8,197,77,73,102,141,29,8,177,26,1,3,33,38,222,19,
+8,153,81,185,125,38,146,244,184,137,116,3,74,231,214,135,22,178,56,8,87,
+172,88,33,246,104,80,65,65,129,76,161,147,6,66,28,35,25,165,83,32,65,72,
+13,136,70,113,11,66,195,217,11,95,64,72,107,146,235,206,59,239,60,238,184,
+227,204,183,160,107,242,14,66,104,199,166,204,35,139,13,46,94,188,120,76,
+65,200,198,41,206,19,79,60,129,51,99,62,45,161,73,129,80,10,207,70,86,137,
+78,126,131,144,110,225,9,132,7,30,120,224,176,32,196,64,24,238,176,162,
+9,231,205,155,103,56,181,125,222,121,231,145,210,19,8,161,200,36,119,218,
+99,143,61,188,128,208,240,126,81,68,79,162,31,51,60,60,153,117,220,178,
+11,46,184,128,241,44,210,143,17,8,49,52,247,222,123,47,184,210,91,19,115,
+205,163,177,0,161,167,202,68,218,59,210,12,114,11,66,182,195,200,199,152,
+10,81,33,164,116,11,66,106,85,238,192,164,81,247,8,73,44,55,173,215,182,
+67,69,62,244,208,67,233,0,110,65,72,71,210,94,147,164,137,222,200,222,129,
+156,193,89,55,87,133,21,64,232,165,89,61,205,111,32,147,204,172,147,0,33,
+227,61,96,32,148,71,105,18,38,66,188,55,213,12,66,90,196,224,42,121,7,33,
+237,206,72,185,251,238,187,169,94,183,3,77,47,239,32,20,47,212,13,60,8,
+57,158,103,158,121,6,135,65,223,27,221,218,49,118,161,64,56,164,156,156,
+28,89,37,58,105,32,164,153,101,148,78,222,65,72,255,102,96,152,239,26,165,
+167,98,44,200,232,5,132,80,202,112,95,12,141,247,194,11,47,24,222,144,249,
+224,131,15,98,214,221,130,144,33,17,17,17,49,84,48,231,27,22,12,162,231,
+121,2,225,162,69,139,68,46,131,152,227,255,243,159,255,244,116,199,4,186,
+248,226,139,25,234,164,28,11,16,98,14,204,151,105,247,217,103,159,71,30,
+121,68,46,232,116,209,69,23,141,46,8,25,201,226,68,25,245,38,107,80,39,
+226,221,202,19,8,205,94,148,91,16,190,244,210,75,98,173,220,141,78,34,126,
+20,65,248,183,191,253,173,205,245,38,88,169,230,250,129,220,101,3,157,237,
+252,36,222,45,8,177,152,76,31,89,171,169,170,170,234,220,115,207,53,148,
+26,224,93,120,225,133,80,83,46,187,132,121,21,29,102,28,65,40,190,31,52,
+162,102,245,14,194,179,206,58,75,70,233,52,22,32,20,147,105,121,172,155,
+203,121,152,110,64,72,223,19,15,222,104,242,14,66,170,154,177,41,99,93,
+162,29,177,81,110,11,226,5,132,11,23,46,100,131,230,145,197,252,30,131,
+51,70,32,164,234,204,54,150,174,114,217,101,151,209,43,228,178,75,236,162,
+193,245,18,249,113,148,165,65,232,233,241,32,47,32,20,79,158,50,48,204,
+182,120,191,253,246,27,22,132,232,211,79,63,149,81,46,193,45,131,53,249,
+240,195,15,233,247,158,64,40,78,131,204,157,59,247,252,205,117,229,149,
+87,210,81,60,129,208,211,68,24,49,127,199,149,116,235,48,33,122,164,232,
+184,99,1,194,39,159,124,82,70,185,68,119,255,226,139,47,58,59,59,229,178,
+78,184,167,244,233,81,4,225,182,206,231,8,89,181,96,193,2,89,137,58,25,
+140,139,166,81,1,97,126,126,254,165,151,94,42,247,228,18,94,59,182,99,20,
+65,40,30,159,96,246,192,244,95,238,227,156,179,207,63,237,248,243,207,57,
+235,134,27,110,96,95,110,65,184,215,94,123,225,212,14,21,192,165,121,243,
+230,81,64,185,218,165,233,211,167,227,56,154,159,147,219,126,251,237,199,
+23,132,24,104,49,89,252,250,235,175,233,51,178,224,46,25,156,39,77,0,79,
+230,215,73,3,161,219,65,61,118,32,100,172,201,195,117,233,234,171,175,166,
+177,88,101,6,33,204,51,220,225,236,29,132,51,102,204,48,244,34,154,108,
+254,252,249,152,74,243,237,69,39,156,112,130,23,16,138,243,76,230,155,174,
+1,33,140,28,11,16,178,77,60,7,195,105,9,68,36,70,204,60,252,217,5,173,32,
+182,57,142,26,127,16,98,55,101,149,232,164,129,208,237,93,209,222,65,200,
+176,196,232,152,167,84,248,49,190,128,144,78,96,176,41,24,104,195,68,102,
+221,186,117,164,244,4,66,241,14,210,103,159,125,86,70,185,4,77,97,164,39,
+16,26,78,244,225,40,224,16,51,211,215,68,133,96,56,14,57,228,16,115,23,
+196,101,36,203,88,128,208,60,170,177,14,28,9,108,150,203,58,157,119,222,
+121,91,2,194,155,111,190,89,70,185,196,112,21,85,253,222,123,239,153,75,
+237,233,171,164,190,131,16,139,35,87,235,36,64,200,144,102,96,203,40,151,
+222,126,251,109,236,254,40,130,16,11,5,8,105,104,243,99,66,39,157,120,162,
+39,16,238,189,247,222,152,233,161,2,184,196,33,201,117,46,9,66,144,140,
+31,50,202,37,106,53,144,32,52,63,3,202,252,70,220,26,106,182,248,8,115,
+233,220,161,81,212,146,76,161,147,40,38,150,52,192,32,196,92,200,101,151,
+48,47,130,118,230,33,67,71,26,17,8,205,53,38,110,125,160,51,152,31,219,
+56,238,184,227,188,128,80,188,180,214,252,96,34,102,74,188,205,110,212,
+65,136,101,184,235,174,187,100,148,75,20,13,107,73,233,20,8,61,138,90,144,
+85,162,147,119,16,50,57,34,163,119,16,154,59,49,230,195,23,16,98,121,13,
+166,135,94,168,239,181,216,17,49,140,25,96,28,167,140,117,73,3,33,51,32,
+25,229,18,19,121,186,130,39,16,26,110,150,51,191,199,11,142,18,143,27,100,
+126,66,145,105,53,171,198,2,132,230,55,6,156,114,202,41,20,156,238,110,
+30,9,231,156,115,14,173,233,55,8,205,159,116,96,254,187,97,195,6,86,205,
+153,51,199,60,199,20,86,195,44,223,65,136,161,148,171,93,34,227,171,175,
+190,202,42,44,151,249,9,138,143,63,254,24,219,225,31,8,113,251,232,27,50,
+202,37,47,32,60,239,204,51,60,129,208,236,17,154,223,229,193,164,4,63,137,
+10,55,119,81,170,34,144,32,188,255,254,251,101,148,75,226,129,122,86,49,
+177,224,96,100,172,75,250,15,125,232,197,212,80,166,208,73,3,161,248,114,
+139,65,226,6,52,255,64,72,161,204,151,87,144,0,161,25,45,251,237,183,31,
+30,27,171,204,32,164,27,143,8,132,102,202,94,117,213,85,216,46,216,108,
+174,103,14,114,88,16,226,173,202,40,151,232,138,226,244,198,168,131,176,
+179,179,211,252,253,38,90,135,131,196,118,25,110,182,64,10,132,82,110,125,
+11,241,174,81,79,167,70,197,195,49,222,65,104,126,97,132,152,149,144,209,
+59,8,179,178,178,240,186,100,172,83,244,99,253,142,246,223,127,127,113,
+171,2,221,200,252,238,9,13,132,211,167,79,151,81,46,145,49,61,61,221,71,
+16,226,3,25,76,63,117,34,86,153,123,252,153,103,158,73,252,88,128,208,108,
+70,105,17,138,64,171,49,33,144,81,46,157,117,214,89,91,2,66,243,43,72,24,
+90,194,237,155,59,119,174,249,110,85,44,32,171,204,242,29,132,223,125,247,
+157,92,237,18,13,253,250,235,175,179,138,38,54,79,56,126,248,225,7,191,
+65,136,109,165,18,100,148,75,2,132,116,87,250,173,140,114,233,239,151,156,
+57,216,211,229,9,132,134,15,81,153,97,195,78,241,206,177,245,230,169,12,
+71,24,72,16,154,207,174,195,0,177,138,78,110,110,86,118,228,220,161,81,
+212,188,153,103,116,93,240,64,175,115,59,168,113,122,200,232,9,132,28,182,
+91,16,50,252,105,44,26,197,237,155,101,4,8,205,231,123,15,60,240,64,186,
+55,171,204,32,100,164,24,222,18,224,29,132,230,23,55,94,115,205,53,204,
+3,24,89,230,55,203,136,81,236,29,132,230,87,217,81,237,162,51,143,58,8,
+59,58,58,204,179,4,234,132,131,100,162,192,36,67,70,185,196,46,20,8,165,
+24,78,178,86,92,194,92,210,191,113,10,205,38,21,9,210,120,1,33,4,5,27,50,
+202,37,60,42,95,64,200,60,218,108,59,244,98,120,112,96,34,177,249,37,126,
+128,80,56,49,207,60,243,140,140,114,9,54,51,200,125,4,225,87,95,125,101,
+152,44,227,209,138,85,102,47,25,218,17,63,82,16,50,224,233,157,88,124,243,
+52,77,3,161,185,254,169,97,114,33,179,139,118,198,25,103,120,2,33,195,30,
+16,226,199,120,121,215,168,249,173,102,218,169,209,15,62,248,192,96,203,
+118,218,105,39,90,138,85,102,113,108,62,130,16,187,35,87,235,244,242,203,
+47,179,138,217,43,187,144,81,78,209,217,196,149,45,183,32,20,239,92,254,
+207,127,254,99,94,37,64,72,43,152,79,215,211,58,24,184,202,202,74,115,151,
+123,248,174,219,7,219,155,125,4,161,249,237,148,226,205,50,116,84,183,110,
+141,31,32,116,123,170,16,123,74,127,102,21,131,75,70,185,164,129,208,220,
+172,140,145,232,232,104,86,189,249,230,155,134,94,68,63,97,92,59,119,232,
+70,230,170,0,30,116,84,42,208,45,180,196,89,86,183,32,60,238,184,227,232,
+168,116,87,243,140,153,26,195,80,224,217,184,189,19,21,219,194,54,205,3,
+31,131,3,62,89,101,6,33,181,52,162,155,101,46,185,228,18,25,229,210,95,
+254,242,23,14,137,153,159,121,248,48,174,57,84,239,32,36,187,140,114,73,
+3,161,219,203,228,226,218,147,219,119,142,251,7,66,166,200,140,74,214,42,
+143,208,155,46,184,224,2,89,43,46,209,132,255,253,239,127,177,56,84,174,
+140,114,137,121,58,147,53,114,121,7,161,249,210,8,25,69,79,245,14,66,6,
+182,219,59,208,52,209,209,5,80,209,171,175,190,106,232,16,28,249,204,153,
+51,57,6,243,120,56,231,156,115,152,254,251,8,194,200,200,72,195,153,52,
+182,204,152,135,91,134,91,88,17,190,20,89,188,128,16,207,192,45,156,112,
+7,87,175,94,189,187,233,243,226,26,8,97,155,140,114,137,1,207,128,196,198,
+201,101,157,78,63,253,116,97,124,205,239,183,164,150,50,50,50,160,154,217,
+43,210,64,200,252,198,224,101,210,190,31,125,244,17,67,200,236,241,208,
+136,90,43,24,228,59,8,129,144,217,130,223,117,215,93,88,150,207,62,251,
+204,96,61,153,140,139,115,95,175,188,242,138,97,21,194,104,210,187,176,
+143,230,93,11,16,114,84,230,137,185,184,201,57,38,38,198,252,242,4,113,
+254,223,71,16,154,189,46,154,41,43,43,11,211,99,118,193,145,31,32,116,59,
+191,65,152,248,53,107,214,152,175,93,105,32,164,39,27,30,131,163,89,63,
+253,244,83,42,217,252,246,53,134,30,99,68,236,209,172,203,46,187,76,166,
+115,137,218,166,236,184,227,244,34,25,229,210,180,105,211,168,91,114,185,
+5,33,214,128,106,231,216,204,179,112,154,146,142,65,70,122,130,217,194,
+172,90,181,138,30,110,56,105,132,254,252,231,63,195,21,114,153,7,62,176,
+167,33,134,10,224,146,119,16,50,102,101,148,75,167,156,114,10,245,31,21,
+21,101,190,89,134,134,30,22,132,230,247,129,48,28,88,197,1,191,245,214,
+91,50,74,167,155,111,190,153,86,48,159,161,69,195,130,144,126,78,26,25,
+229,18,38,11,195,69,169,205,151,27,20,8,127,21,243,125,89,43,58,129,1,3,
+9,132,254,249,207,127,226,91,144,203,59,8,205,61,149,145,233,11,8,209,181,
+94,63,64,122,253,245,215,139,30,143,176,251,230,174,201,152,196,250,208,
+213,228,178,75,204,127,201,226,35,8,123,122,122,24,24,114,157,75,108,150,
+41,161,249,216,196,51,200,94,64,200,113,186,157,222,210,65,217,139,185,
+26,53,16,154,223,6,201,168,62,240,192,3,205,199,134,4,8,189,236,139,131,
+55,239,75,3,33,243,27,243,153,112,44,44,187,51,84,50,53,192,76,150,154,
+28,170,41,147,124,7,33,237,120,247,221,119,203,20,46,177,47,246,104,182,
+236,88,58,113,90,236,195,15,63,52,159,22,38,134,217,174,57,30,9,16,178,
+47,172,191,225,76,32,71,5,2,1,155,161,90,112,74,196,89,7,31,65,104,254,
+194,3,70,144,218,166,206,205,21,142,252,0,33,173,227,246,89,38,79,205,170,
+129,176,202,221,251,161,220,54,43,98,18,233,169,89,17,179,19,153,78,39,
+170,212,173,161,192,154,131,7,114,185,5,33,61,132,106,52,79,131,16,195,
+31,180,144,145,121,155,161,189,16,179,70,183,229,21,79,236,33,51,8,73,60,
+34,16,154,253,123,209,79,220,14,58,12,221,176,32,52,35,141,81,44,206,127,
+154,175,14,32,74,205,164,199,109,103,30,22,132,110,237,155,168,109,183,
+166,134,24,5,66,41,198,60,166,211,92,179,102,225,231,137,89,57,242,14,66,
+243,201,104,198,158,143,32,52,127,11,80,19,7,137,233,148,233,156,122,231,
+157,119,204,227,217,32,142,243,252,243,207,23,233,125,4,33,154,62,125,186,
+151,55,74,104,58,225,132,19,132,237,240,2,66,216,224,227,55,163,133,52,
+16,186,125,247,180,39,9,16,50,38,49,166,190,239,75,3,33,250,252,243,207,
+13,39,36,221,10,139,92,180,249,109,147,122,249,14,66,148,158,158,110,254,
+58,146,89,76,65,196,73,90,132,27,97,246,161,133,220,246,97,1,66,132,131,
+114,206,57,231,12,219,207,49,235,179,103,207,22,109,234,35,8,153,9,153,
+77,54,162,21,40,184,92,208,201,15,16,210,172,158,222,217,230,86,26,8,209,
+156,57,115,124,105,214,211,78,59,13,191,71,100,113,43,42,240,188,243,206,
+243,229,24,160,172,118,127,138,39,16,186,221,14,41,241,47,5,65,17,99,202,
+45,101,245,162,230,239,191,255,254,1,207,207,17,178,35,241,246,53,77,222,
+65,8,239,205,215,29,16,219,49,199,31,116,208,65,195,130,208,252,22,111,
+182,35,222,210,23,27,27,235,118,54,224,73,195,130,144,85,111,191,253,182,
+219,74,99,167,102,179,64,140,2,225,175,202,206,206,118,251,29,72,189,246,
+223,127,255,69,139,22,9,119,16,121,1,97,117,117,53,35,65,70,185,196,80,
+244,17,132,76,238,220,154,15,68,223,98,210,42,211,57,213,209,209,1,56,189,
+16,139,230,103,142,169,221,2,224,59,8,25,192,47,191,252,178,249,212,141,
+38,250,226,41,167,156,162,217,119,47,32,100,109,84,84,148,217,75,230,216,
+206,58,235,44,179,145,210,64,136,233,57,201,221,123,207,111,184,225,6,51,
+254,5,8,201,197,33,153,79,163,177,175,11,46,184,192,92,28,61,8,219,218,
+218,62,254,248,99,183,103,243,52,177,23,195,61,120,6,141,8,132,88,144,101,
+203,150,153,223,67,164,215,145,71,30,41,62,192,36,132,179,238,182,170,233,
+114,191,251,221,239,204,187,214,64,136,114,115,115,255,250,215,191,122,
+153,37,80,63,204,180,180,71,140,125,4,33,238,154,219,119,81,130,22,243,
+105,106,228,7,8,81,82,82,146,249,230,41,154,149,93,155,205,186,30,132,52,
+43,222,176,247,102,229,80,189,55,171,16,221,210,124,134,217,32,156,84,220,
+29,13,102,110,65,136,207,125,225,133,23,154,27,130,195,208,223,132,213,
+210,210,242,212,83,79,121,25,221,244,43,28,56,253,35,225,102,16,162,17,
+129,176,180,180,212,109,135,228,128,205,215,216,232,117,195,130,208,124,
+247,13,171,196,185,119,204,23,230,200,92,63,28,140,249,234,41,242,5,132,
+149,149,149,230,171,93,84,245,229,151,95,174,174,17,14,47,236,245,220,185,
+115,49,214,98,226,128,168,107,254,210,72,84,49,214,1,188,137,105,178,16,
+32,196,121,103,58,166,23,253,24,219,77,74,166,249,50,202,37,237,26,33,206,
+153,140,210,233,47,127,249,139,216,44,42,40,40,96,143,114,197,230,162,251,
+154,95,1,131,101,164,7,92,115,205,53,216,116,14,158,3,22,226,55,221,244,
+205,55,223,164,183,105,103,83,41,194,35,143,60,34,55,167,147,219,7,234,
+217,242,234,213,171,129,25,238,172,97,203,140,118,122,112,85,85,149,182,
+101,70,172,220,150,78,48,88,128,144,25,43,134,12,207,91,219,14,181,247,
+236,179,207,70,71,71,227,61,203,212,46,81,76,1,66,54,142,207,116,221,117,
+215,49,224,69,46,140,194,131,15,62,136,229,101,42,42,83,187,132,187,35,
+250,52,251,162,14,207,61,247,92,109,95,100,231,240,226,227,227,153,205,
+200,212,46,97,232,197,248,23,162,126,200,139,57,6,180,34,187,232,3,252,
+6,216,207,61,247,156,184,66,236,69,128,144,9,169,220,186,75,148,72,188,
+1,203,44,142,22,126,83,21,76,141,181,3,70,252,38,227,77,55,221,4,141,180,
+74,22,194,182,50,251,161,71,105,41,129,229,154,53,107,232,165,230,93,95,
+118,217,101,50,155,83,52,199,151,95,126,137,31,175,85,169,16,41,169,49,
+220,205,141,27,55,106,70,156,93,211,208,98,59,154,168,67,226,69,2,33,14,
+15,243,253,175,127,253,139,189,139,173,113,72,204,237,136,196,46,203,108,
+58,9,16,50,107,148,203,58,221,113,199,29,98,155,102,177,23,154,134,153,
+147,86,75,20,225,63,255,249,15,51,140,125,246,217,71,230,119,9,75,170,127,
+16,130,102,5,222,183,220,114,139,185,89,233,219,84,166,152,66,249,34,176,
+250,213,87,95,97,166,201,59,100,38,116,134,130,86,190,253,246,219,49,196,
+122,67,65,97,233,180,242,176,92,98,38,199,118,158,124,242,73,142,103,168,
+36,206,35,161,165,152,145,155,219,154,49,8,132,180,35,23,226,55,141,142,
+201,18,231,81,53,177,17,185,15,157,12,167,70,153,123,81,106,185,206,165,
+253,246,219,79,204,213,56,0,126,92,127,253,245,218,238,248,65,213,81,129,
+39,158,120,162,76,237,210,97,135,29,38,64,104,110,77,6,184,120,160,30,143,
+80,70,185,68,133,136,83,163,136,236,143,61,246,24,85,167,237,235,140,51,
+206,192,44,252,227,31,255,144,169,117,210,186,135,185,159,79,115,125,185,
+26,53,54,54,222,119,223,125,88,81,109,155,80,144,186,253,253,239,127,47,
+83,187,196,65,234,167,17,227,37,11,129,80,83,76,76,204,7,31,124,128,51,
+196,24,131,34,223,126,251,173,184,232,109,22,221,221,32,237,4,133,92,222,
+92,98,149,47,194,239,244,36,153,194,157,192,192,250,245,235,233,97,159,
+127,254,57,188,196,242,106,22,77,47,58,186,60,32,157,228,58,15,98,203,177,
+177,177,108,147,45,51,203,139,136,136,0,174,114,221,72,68,174,13,27,54,
+124,253,245,215,191,252,242,203,136,250,95,78,78,206,130,5,11,190,251,238,
+59,109,110,43,143,123,115,137,85,66,236,11,179,78,243,49,255,29,150,94,
+102,49,9,192,139,253,225,135,31,230,204,153,195,120,166,200,194,124,143,
+157,104,151,228,228,100,42,25,247,133,146,2,54,198,179,92,231,78,80,97,
+233,210,165,20,16,179,165,117,60,223,85,84,84,132,65,196,166,35,154,67,
+176,13,138,99,131,244,221,70,214,236,230,146,235,54,23,199,95,86,86,198,
+33,177,65,10,34,250,42,7,38,243,232,36,210,251,167,246,246,118,154,21,127,
+194,191,102,165,17,245,205,10,245,41,178,92,55,66,225,113,98,40,94,121,
+229,21,12,197,27,111,188,65,175,22,23,86,71,36,230,10,11,23,46,100,204,
+178,53,183,163,85,19,211,235,181,107,215,82,240,47,190,248,98,201,146,37,
+12,4,183,233,101,21,111,46,3,92,125,17,89,178,178,178,104,77,198,59,128,
+97,35,114,133,7,137,29,25,228,101,149,254,144,248,77,61,208,243,169,7,202,
+229,221,202,249,174,146,146,146,159,126,250,137,105,31,219,20,3,68,238,
+123,115,137,196,227,43,43,130,80,73,41,108,101,6,161,146,146,210,88,75,
+129,80,73,201,66,82,32,84,82,10,188,20,8,149,148,44,36,5,66,37,165,192,
+75,129,80,73,201,66,82,32,84,82,10,188,20,8,149,148,44,36,5,66,37,165,192,
+75,129,80,73,201,66,82,32,84,82,10,188,20,8,149,148,44,36,5,66,37,165,192,
+75,129,80,73,201,66,82,32,84,82,10,188,20,8,149,148,172,162,254,254,254,
+230,230,230,168,168,168,182,182,54,63,30,193,86,82,82,242,79,10,132,74,
+74,227,41,128,215,218,218,90,90,90,186,105,211,166,200,200,200,136,136,
+136,245,235,215,243,151,223,133,133,133,149,149,149,117,117,117,10,138,
+74,74,99,42,5,66,37,165,241,81,111,111,47,144,131,127,41,41,41,197,197,
+197,48,15,71,176,187,187,27,236,181,183,183,227,26,54,54,54,230,229,229,
+37,36,36,68,71,71,87,85,85,141,245,27,230,148,148,194,86,10,132,74,74,129,
+86,95,95,95,117,117,117,106,106,42,142,32,204,243,254,158,82,120,89,83,
+83,19,19,19,19,31,31,95,80,80,96,145,119,51,42,41,133,146,20,8,149,148,
+2,42,192,150,149,149,133,171,167,255,38,201,176,2,150,176,51,34,34,2,223,
+209,143,23,124,43,41,41,121,145,2,161,146,82,224,212,221,221,157,147,147,
+131,35,232,31,204,128,104,110,110,238,166,77,155,70,235,251,0,74,74,74,
+72,129,80,73,41,64,130,130,41,41,41,229,229,229,91,226,210,245,247,247,
+23,21,21,229,231,231,143,244,28,105,93,93,93,161,83,248,148,237,237,237,
+34,178,182,182,86,191,29,14,172,170,170,170,164,164,68,124,228,139,181,
+164,175,168,168,208,184,11,137,89,212,190,192,215,208,208,64,250,198,198,
+198,150,150,22,22,113,112,197,201,94,126,179,133,166,166,38,103,42,165,
+255,223,222,185,54,165,145,132,97,244,255,255,165,88,101,188,113,21,48,
+32,32,72,68,238,33,10,137,128,17,48,169,202,158,226,237,237,154,29,98,228,
+146,65,118,247,57,31,168,238,153,183,123,154,79,167,158,161,103,16,251,
+142,68,40,196,46,192,37,216,11,11,110,191,5,20,117,145,11,209,225,90,83,
+61,60,60,32,45,70,165,82,41,188,133,210,16,94,60,30,15,238,193,233,247,
+251,133,66,129,117,114,138,5,159,158,158,246,122,189,193,96,224,101,137,
+222,56,216,110,183,185,52,48,60,147,201,144,80,1,137,50,109,50,153,228,
+18,84,82,131,113,109,148,16,123,142,68,40,196,46,248,252,249,179,217,194,
+245,183,3,141,37,18,9,20,229,250,171,129,186,240,19,32,54,210,30,162,66,
+99,65,17,18,88,137,119,156,197,130,147,201,196,255,225,184,7,17,102,179,
+89,219,179,131,89,175,174,174,24,130,95,75,165,210,124,62,231,11,98,122,
+36,202,217,98,177,168,68,40,254,45,72,132,66,68,206,120,60,38,135,253,89,
+49,144,222,112,146,207,106,171,64,49,105,207,110,108,162,100,188,200,12,
+65,17,30,28,28,32,63,114,30,58,196,148,196,187,163,163,163,122,189,238,
+175,130,8,49,28,34,124,124,124,68,123,152,56,159,207,19,4,47,47,47,249,
+142,156,98,114,68,72,59,157,78,163,70,27,37,196,158,35,17,10,17,45,248,
+198,164,229,250,1,16,12,30,66,36,248,99,131,176,120,126,126,62,28,14,93,
+103,5,184,74,185,92,14,186,51,36,194,119,239,222,145,92,73,120,136,141,
+53,211,160,184,213,106,17,254,172,0,17,86,42,149,219,219,219,94,175,135,
+32,209,33,34,68,120,76,75,49,106,164,30,17,146,53,131,250,20,98,207,145,
+8,133,136,22,60,145,201,100,80,136,235,255,13,158,192,28,36,167,247,239,
+223,19,194,186,221,174,59,177,50,4,178,144,216,126,15,174,194,79,174,179,
+32,36,194,92,46,71,108,69,174,216,142,6,226,100,114,180,231,179,44,223,
+162,90,173,34,75,76,201,226,25,107,34,228,8,113,16,59,98,125,139,137,28,
+161,109,163,132,216,115,36,66,33,162,133,104,133,51,150,173,128,48,142,
+143,143,219,237,54,34,225,51,22,139,221,223,223,187,115,171,241,252,252,
+140,165,38,147,137,235,191,6,122,195,79,174,179,192,68,104,38,35,146,34,
+60,12,199,193,78,167,131,14,105,208,197,157,92,200,234,77,132,211,233,52,
+149,74,145,20,25,104,34,132,100,50,105,190,36,224,18,85,125,136,20,98,255,
+145,8,133,136,22,68,178,188,171,197,28,214,104,52,188,32,241,10,254,88,
+14,142,191,129,177,165,82,105,245,187,163,8,44,244,0,34,153,143,73,56,104,
+59,104,104,179,128,241,120,108,109,26,88,13,201,185,234,197,47,139,136,
+147,83,12,100,148,53,248,228,20,3,237,238,46,99,105,175,158,83,133,120,
+115,36,66,33,162,133,56,136,81,92,231,111,72,90,137,68,34,168,61,212,136,
+8,107,181,154,121,101,69,8,121,204,239,58,155,130,192,176,221,90,215,21,
+226,191,132,68,40,68,180,160,183,96,168,130,201,100,18,139,197,66,49,17,
+15,53,155,205,227,227,99,255,180,251,42,244,251,253,106,181,234,58,66,136,
+141,144,8,133,136,144,239,223,191,135,68,136,240,174,175,175,115,185,220,
+242,93,80,66,97,58,157,46,149,74,171,239,32,29,14,135,39,39,39,174,35,132,
+216,8,137,80,136,8,121,122,122,202,102,179,193,95,230,16,225,151,47,95,
+66,155,86,60,36,188,179,179,179,95,238,52,177,200,200,88,215,95,48,30,143,
+79,79,79,67,137,83,8,177,22,18,161,16,209,18,18,225,171,196,227,241,106,
+181,186,28,10,103,179,25,225,47,244,115,35,221,68,34,225,58,66,136,141,
+144,8,133,136,150,124,62,191,214,207,126,100,62,92,184,252,80,68,169,84,
+42,22,139,33,65,82,220,110,183,93,231,5,200,139,181,90,173,94,175,163,82,
+123,47,26,224,218,160,83,105,95,95,95,91,220,164,254,230,230,134,154,225,
+112,232,119,208,220,223,223,247,122,61,219,11,74,65,171,213,178,183,120,
+251,245,176,96,38,167,158,154,78,167,67,20,182,227,66,236,63,18,161,16,
+209,178,214,19,14,64,124,196,157,104,201,245,23,32,170,179,179,179,208,
+125,81,192,112,248,201,117,126,5,90,42,151,203,200,18,243,85,42,21,28,134,
+149,153,167,80,40,140,22,127,25,1,207,139,191,72,164,6,1,115,117,124,102,
+242,246,143,15,2,235,73,165,82,166,55,190,206,225,225,33,182,35,140,250,
+103,31,27,141,70,191,223,71,132,12,79,167,211,219,239,101,21,98,103,72,
+132,66,68,11,134,88,247,73,121,156,116,116,116,100,47,106,161,139,126,144,
+80,232,165,48,64,26,179,119,161,185,254,175,160,6,89,162,183,193,96,128,
+146,241,34,115,118,187,93,86,229,195,156,197,65,106,72,156,148,97,56,123,
+136,222,199,65,224,72,46,151,67,114,140,34,14,218,187,182,169,228,32,101,
+166,82,230,161,205,226,111,111,111,145,174,89,147,50,190,126,208,169,66,
+236,27,18,161,16,209,130,60,16,67,80,42,175,130,147,16,143,253,11,18,118,
+65,54,4,184,229,155,141,148,33,164,229,221,167,203,224,33,84,135,255,76,
+90,88,138,85,185,115,139,21,146,23,113,36,53,120,139,179,40,243,230,230,
+230,235,215,175,126,217,124,5,142,144,243,200,148,87,87,87,116,169,100,
+42,66,33,11,35,35,114,138,245,48,137,189,122,155,98,123,203,154,189,61,
+142,227,54,143,16,123,136,68,40,68,180,96,142,108,54,187,214,207,132,64,
+240,34,111,101,50,25,116,136,99,150,45,8,20,32,45,31,236,94,130,130,102,
+179,201,36,22,203,70,163,81,62,159,15,154,41,36,66,172,198,106,249,68,198,
+190,12,243,17,236,80,50,199,201,124,132,66,42,241,28,51,227,57,206,178,
+24,186,119,119,119,7,7,7,23,23,23,177,88,204,2,40,89,118,21,85,11,241,134,
+72,132,66,68,14,130,41,151,203,175,26,43,4,94,177,29,40,174,255,79,176,
+90,173,86,67,60,174,255,2,76,130,183,236,215,65,59,130,192,88,143,181,13,
+180,135,8,113,45,194,70,147,64,182,35,14,146,234,130,34,228,8,3,201,160,
+131,193,128,57,77,132,172,144,180,106,129,213,180,199,146,72,177,20,19,
+28,153,57,157,78,79,167,83,155,68,136,253,68,34,20,34,114,240,10,9,105,
+121,171,203,54,144,204,206,207,207,95,149,43,162,58,60,60,36,86,162,40,
+52,134,171,80,154,255,89,17,165,177,42,38,193,121,241,120,220,254,203,130,
+180,71,155,84,135,131,81,157,85,146,252,112,27,217,238,228,228,4,177,145,
+2,109,107,12,245,168,17,143,82,131,2,139,197,162,213,115,138,121,240,37,
+161,86,34,20,123,142,68,40,196,46,64,27,118,171,208,245,183,3,189,33,54,
+92,232,250,47,131,144,208,176,97,87,71,123,94,111,118,11,212,14,82,96,90,
+181,33,20,251,50,240,163,108,18,218,254,44,167,252,64,107,24,214,253,83,
+95,89,136,232,144,8,133,216,5,40,129,188,85,169,84,112,140,59,180,41,179,
+217,12,167,146,201,92,127,11,230,11,92,71,136,255,43,18,161,16,59,226,219,
+183,111,201,100,242,195,135,15,219,184,16,111,101,179,89,255,100,133,16,
+98,123,36,66,33,118,199,116,58,77,36,18,228,66,219,192,185,46,100,65,44,
+216,126,237,85,50,66,136,181,144,8,133,216,41,79,79,79,197,98,241,242,242,
+242,241,241,113,245,104,72,165,61,17,255,251,247,200,8,33,54,64,34,20,98,
+215,252,248,241,227,211,167,79,241,120,188,94,175,175,178,225,101,52,26,
+93,92,92,212,106,53,123,117,139,59,42,132,248,67,72,132,66,188,13,132,188,
+106,181,154,76,38,155,205,102,191,223,71,114,100,196,231,5,179,217,108,
+50,153,220,221,221,117,187,221,143,31,63,230,243,121,92,40,5,10,17,17,18,
+161,16,111,9,206,235,245,122,173,86,235,122,65,163,209,40,20,10,132,63,
+107,119,58,157,135,135,7,61,129,32,68,164,72,132,66,188,61,254,145,59,152,
+207,231,124,210,85,4,20,98,23,252,252,249,23,247,22,197,121,219,202,139,
+117,0,0,0,0,73,69,78,68,174,66,96,130};
+
+static size_t xml_res_size_1 = 242;
+static unsigned char xml_res_file_1[] = {
+60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101,
+110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101,
+115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58,
+47,47,119,119,119,46,119,120,119,105,100,103,101,116,115,46,111,114,103,
+47,119,120,120,114,99,34,62,10,32,32,60,33,45,45,32,72,97,110,100,108,101,
+114,32,71,101,110,101,114,97,116,105,111,110,32,105,115,32,79,78,32,45,
+45,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,
+120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,65,98,111,117,116,
+50,48,49,55,34,62,80,114,111,112,101,114,116,105,101,115,70,111,114,109,
+66,105,116,109,97,112,115,46,99,112,112,36,100,97,116,97,95,105,109,97,
+103,101,115,95,65,98,111,117,116,50,48,49,55,46,112,110,103,60,47,111,98,
+106,101,99,116,62,10,60,47,114,101,115,111,117,114,99,101,62,10};
+
+void wxCDAD0InitBitmapResources()
+{
+
+ // Check for memory FS. If not present, load the handler:
+ {
+ wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one"));
+ wxFileSystem fsys;
+ wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file"));
+ wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file"));
+ if (f) delete f;
+ else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase);
+ }
+
+ XRC_ADD_FILE(wxT("XRC_resource/PropertiesFormBitmaps.cpp$data_images_About2017.png"), xml_res_file_0, xml_res_size_0, wxT("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/PropertiesFormBitmaps.cpp$C__Users_NDSE-69_Documents_GitHub_PSP_Project_PropertiesFormBitmaps.xrc"), xml_res_file_1, xml_res_size_1, wxT("text/xml"));
+ wxXmlResource::Get()->Load(wxT("memory:XRC_resource/PropertiesFormBitmaps.cpp$C__Users_NDSE-69_Documents_GitHub_PSP_Project_PropertiesFormBitmaps.xrc"));
+}
diff --git a/Project/base/WorkspaceBase.cpp b/Project/base/WorkspaceBase.cpp
new file mode 100644
index 0000000..6fc2b79
--- /dev/null
+++ b/Project/base/WorkspaceBase.cpp
@@ -0,0 +1,84 @@
+//////////////////////////////////////////////////////////////////////
+// This file was auto-generated by codelite's wxCrafter Plugin
+// wxCrafter project file: Workspace.wxcp
+// Do not modify this file by hand!
+//////////////////////////////////////////////////////////////////////
+
+#include "WorkspaceBase.h"
+
+
+// Declare the bitmap loading function
+extern void wxC52C4InitBitmapResources();
+
+static bool bBitmapLoaded = false;
+
+
+WorkspaceBase::WorkspaceBase(wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style)
+ : wxPanel(parent, id, pos, size, style)
+{
+ if ( !bBitmapLoaded ) {
+ // We need to initialise the default bitmap handler
+ wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler);
+ wxC52C4InitBitmapResources();
+ bBitmapLoaded = true;
+ }
+
+ wxBoxSizer* boxSizer_lvl_1_1 = new wxBoxSizer(wxVERTICAL);
+ this->SetSizer(boxSizer_lvl_1_1);
+
+ int *m_glCanvasAttr = new int[ 5 ];
+ m_glCanvasAttr[0] = WX_GL_SAMPLE_BUFFERS;
+ m_glCanvasAttr[1] = 1;
+ m_glCanvasAttr[2] = WX_GL_SAMPLES;
+ m_glCanvasAttr[3] = 4;
+ m_glCanvasAttr[4] = 0;
+ m_glCanvas = new wxGLCanvas(this, wxID_ANY, m_glCanvasAttr, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0);
+ wxDELETEA( m_glCanvasAttr );
+
+ boxSizer_lvl_1_1->Add(m_glCanvas, 1, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_timer = new wxTimer;
+ m_timer->Start(1500, false);
+
+ SetName(wxT("WorkspaceBase"));
+ SetSize(500,300);
+ if (GetSizer()) {
+ GetSizer()->Fit(this);
+ }
+ // Connect events
+ m_glCanvas->Connect(wxEVT_PAINT, wxPaintEventHandler(WorkspaceBase::OnPaint), NULL, this);
+ m_glCanvas->Connect(wxEVT_LEFT_DOWN, wxMouseEventHandler(WorkspaceBase::OnLeftClickDown), NULL, this);
+ m_glCanvas->Connect(wxEVT_KEY_DOWN, wxKeyEventHandler(WorkspaceBase::OnKeyDown), NULL, this);
+ m_glCanvas->Connect(wxEVT_MOTION, wxMouseEventHandler(WorkspaceBase::OnMouseMotion), NULL, this);
+ m_glCanvas->Connect(wxEVT_MIDDLE_DOWN, wxMouseEventHandler(WorkspaceBase::OnMiddleDown), NULL, this);
+ m_glCanvas->Connect(wxEVT_MIDDLE_UP, wxMouseEventHandler(WorkspaceBase::OnMiddleUp), NULL, this);
+ m_glCanvas->Connect(wxEVT_LEFT_UP, wxMouseEventHandler(WorkspaceBase::OnLeftClickUp), NULL, this);
+ m_glCanvas->Connect(wxEVT_MOUSEWHEEL, wxMouseEventHandler(WorkspaceBase::OnScroll), NULL, this);
+ m_glCanvas->Connect(wxEVT_RIGHT_DOWN, wxMouseEventHandler(WorkspaceBase::OnRightClickDown), NULL, this);
+ m_glCanvas->Connect(wxEVT_LEFT_DCLICK, wxMouseEventHandler(WorkspaceBase::OnLeftDoubleClick), NULL, this);
+ m_glCanvas->Connect(wxEVT_IDLE, wxIdleEventHandler(WorkspaceBase::OnIdle), NULL, this);
+ m_glCanvas->Connect(wxEVT_MIDDLE_DCLICK, wxMouseEventHandler(WorkspaceBase::OnMiddleDoubleClick), NULL, this);
+ m_timer->Connect(wxEVT_TIMER, wxTimerEventHandler(WorkspaceBase::OnTimer), NULL, this);
+
+}
+
+WorkspaceBase::~WorkspaceBase()
+{
+ m_glCanvas->Disconnect(wxEVT_PAINT, wxPaintEventHandler(WorkspaceBase::OnPaint), NULL, this);
+ m_glCanvas->Disconnect(wxEVT_LEFT_DOWN, wxMouseEventHandler(WorkspaceBase::OnLeftClickDown), NULL, this);
+ m_glCanvas->Disconnect(wxEVT_KEY_DOWN, wxKeyEventHandler(WorkspaceBase::OnKeyDown), NULL, this);
+ m_glCanvas->Disconnect(wxEVT_MOTION, wxMouseEventHandler(WorkspaceBase::OnMouseMotion), NULL, this);
+ m_glCanvas->Disconnect(wxEVT_MIDDLE_DOWN, wxMouseEventHandler(WorkspaceBase::OnMiddleDown), NULL, this);
+ m_glCanvas->Disconnect(wxEVT_MIDDLE_UP, wxMouseEventHandler(WorkspaceBase::OnMiddleUp), NULL, this);
+ m_glCanvas->Disconnect(wxEVT_LEFT_UP, wxMouseEventHandler(WorkspaceBase::OnLeftClickUp), NULL, this);
+ m_glCanvas->Disconnect(wxEVT_MOUSEWHEEL, wxMouseEventHandler(WorkspaceBase::OnScroll), NULL, this);
+ m_glCanvas->Disconnect(wxEVT_RIGHT_DOWN, wxMouseEventHandler(WorkspaceBase::OnRightClickDown), NULL, this);
+ m_glCanvas->Disconnect(wxEVT_LEFT_DCLICK, wxMouseEventHandler(WorkspaceBase::OnLeftDoubleClick), NULL, this);
+ m_glCanvas->Disconnect(wxEVT_IDLE, wxIdleEventHandler(WorkspaceBase::OnIdle), NULL, this);
+ m_glCanvas->Disconnect(wxEVT_MIDDLE_DCLICK, wxMouseEventHandler(WorkspaceBase::OnMiddleDoubleClick), NULL, this);
+ m_timer->Disconnect(wxEVT_TIMER, wxTimerEventHandler(WorkspaceBase::OnTimer), NULL, this);
+
+ m_timer->Stop();
+ wxDELETE( m_timer );
+
+}
diff --git a/Project/base/WorkspaceBase.h b/Project/base/WorkspaceBase.h
new file mode 100644
index 0000000..2ceed20
--- /dev/null
+++ b/Project/base/WorkspaceBase.h
@@ -0,0 +1,63 @@
+//////////////////////////////////////////////////////////////////////
+// This file was auto-generated by codelite's wxCrafter Plugin
+// wxCrafter project file: Workspace.wxcp
+// Do not modify this file by hand!
+//////////////////////////////////////////////////////////////////////
+
+#ifndef _PSP_PROJECT_WORKSPACE_BASE_CLASSES_H
+#define _PSP_PROJECT_WORKSPACE_BASE_CLASSES_H
+
+#include <wx/settings.h>
+#include <wx/xrc/xmlres.h>
+#include <wx/xrc/xh_bmp.h>
+#include <wx/panel.h>
+#include <wx/artprov.h>
+#include <wx/sizer.h>
+#include <wx/glcanvas.h>
+#include <wx/timer.h>
+#if wxVERSION_NUMBER >= 2900
+#include <wx/persist.h>
+#include <wx/persist/toplevel.h>
+#include <wx/persist/bookctrl.h>
+#include <wx/persist/treebook.h>
+#endif
+
+#ifdef WXC_FROM_DIP
+#undef WXC_FROM_DIP
+#endif
+#if wxVERSION_NUMBER >= 3100
+#define WXC_FROM_DIP(x) wxWindow::FromDIP(x, NULL)
+#else
+#define WXC_FROM_DIP(x) x
+#endif
+
+
+class WorkspaceBase : public wxPanel
+{
+protected:
+ wxGLCanvas* m_glCanvas;
+ wxTimer* m_timer;
+
+protected:
+ virtual void OnPaint(wxPaintEvent& event) { event.Skip(); }
+ virtual void OnLeftClickDown(wxMouseEvent& event) { event.Skip(); }
+ virtual void OnKeyDown(wxKeyEvent& event) { event.Skip(); }
+ virtual void OnMouseMotion(wxMouseEvent& event) { event.Skip(); }
+ virtual void OnMiddleDown(wxMouseEvent& event) { event.Skip(); }
+ virtual void OnMiddleUp(wxMouseEvent& event) { event.Skip(); }
+ virtual void OnLeftClickUp(wxMouseEvent& event) { event.Skip(); }
+ virtual void OnScroll(wxMouseEvent& event) { event.Skip(); }
+ virtual void OnRightClickDown(wxMouseEvent& event) { event.Skip(); }
+ virtual void OnLeftDoubleClick(wxMouseEvent& event) { event.Skip(); }
+ virtual void OnIdle(wxIdleEvent& event) { event.Skip(); }
+ virtual void OnMiddleDoubleClick(wxMouseEvent& event) { event.Skip(); }
+ virtual void OnTimer(wxTimerEvent& event) { event.Skip(); }
+
+public:
+ wxGLCanvas* GetGlCanvas() { return m_glCanvas; }
+ wxTimer* GetTimer() { return m_timer; }
+ WorkspaceBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(500,300), long style = wxTAB_TRAVERSAL);
+ virtual ~WorkspaceBase();
+};
+
+#endif
diff --git a/Project/base/WorkspaceBitmaps.cpp b/Project/base/WorkspaceBitmaps.cpp
new file mode 100644
index 0000000..b370872
--- /dev/null
+++ b/Project/base/WorkspaceBitmaps.cpp
@@ -0,0 +1,49 @@
+//
+// This file was automatically generated by wxrc, do not edit by hand.
+//
+
+#include <wx/wxprec.h>
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#include <wx/filesys.h>
+#include <wx/fs_mem.h>
+#include <wx/xrc/xmlres.h>
+#include <wx/xrc/xh_all.h>
+
+#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805
+ #define XRC_ADD_FILE(name, data, size, mime) \
+ wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime)
+#else
+ #define XRC_ADD_FILE(name, data, size, mime) \
+ wxMemoryFSHandler::AddFile(name, data, size)
+#endif
+
+static size_t xml_res_size_0 = 137;
+static unsigned char xml_res_file_0[] = {
+60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101,
+110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101,
+115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58,
+47,47,119,119,119,46,119,120,119,105,100,103,101,116,115,46,111,114,103,
+47,119,120,120,114,99,34,62,10,32,32,60,33,45,45,32,72,97,110,100,108,101,
+114,32,71,101,110,101,114,97,116,105,111,110,32,105,115,32,79,78,32,45,
+45,62,10,60,47,114,101,115,111,117,114,99,101,62,10};
+
+void wxC52C4InitBitmapResources()
+{
+
+ // Check for memory FS. If not present, load the handler:
+ {
+ wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one"));
+ wxFileSystem fsys;
+ wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file"));
+ wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file"));
+ if (f) delete f;
+ else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase);
+ }
+
+ XRC_ADD_FILE(wxT("XRC_resource/WorkspaceBitmaps.cpp$C__Users_NDSE-69_Documents_GitHub_PSP_Project_WorkspaceBitmaps.xrc"), xml_res_file_0, xml_res_size_0, wxT("text/xml"));
+ wxXmlResource::Get()->Load(wxT("memory:XRC_resource/WorkspaceBitmaps.cpp$C__Users_NDSE-69_Documents_GitHub_PSP_Project_WorkspaceBitmaps.xrc"));
+}