diff options
-rw-r--r-- | client/application.cpp | 233 | ||||
-rw-r--r-- | client/application.h | 33 | ||||
-rw-r--r-- | client/red_window.h | 3 | ||||
-rw-r--r-- | client/screen.cpp | 25 | ||||
-rw-r--r-- | client/screen.h | 4 | ||||
-rw-r--r-- | client/windows/red_window.cpp | 95 | ||||
-rw-r--r-- | client/windows/redc.rc | 1 | ||||
-rw-r--r-- | client/windows/redc.vcproj | 4 | ||||
-rw-r--r-- | client/windows/resource.h | 39 | ||||
-rw-r--r-- | client/windows/sticky_alt.bmp | bin | 0 -> 17550 bytes | |||
-rw-r--r-- | client/x11/images/alt_image.c | 735 | ||||
-rw-r--r-- | client/x11/red_window.cpp | 121 | ||||
-rw-r--r-- | client/x11/red_window_p.h | 5 | ||||
-rw-r--r-- | client/x11/res.cpp | 9 | ||||
-rw-r--r-- | client/x11/resource.h | 1 |
15 files changed, 1223 insertions, 85 deletions
diff --git a/client/application.cpp b/client/application.cpp index 617934cf..e53ad890 100644 --- a/client/application.cpp +++ b/client/application.cpp @@ -40,11 +40,15 @@ #include "quic.h" #include "mutex.h" #include "cmd_line_parser.h" +#include "rect.h" #include <log4cpp/BasicConfigurator.hh> #include <log4cpp/FileAppender.hh> #include <log4cpp/RollingFileAppender.hh> +#define STICKY_KEY_PIXMAP ALT_IMAGE_RES_ID +#define STICKY_KEY_TIMEOUT 750 + #ifdef CAIRO_CANVAS_CACH_IS_SHARED mutex_t cairo_surface_user_data_mutex; #endif @@ -94,6 +98,7 @@ public: void set_splash_mode(); void set_info_mode(); + void set_sticky(bool is_on); virtual void on_size_changed(); private: @@ -103,22 +108,29 @@ private: private: ImageFromRes _splash_pixmap; AlphaImageFromRes _info_pixmap; + AlphaImageFromRes _sticky_pixmap; Point _splash_pos; Point _info_pos; + Point _sticky_pos; + Rect _sticky_rect; bool _splash_mode; - Mutex _update_lock; + bool _sticky_on; + RecurciveMutex _update_lock; }; GUILayer::GUILayer() : ScreenLayer(SCREEN_LAYER_GUI, false) , _splash_pixmap (SPLASH_IMAGE_RES_ID) , _info_pixmap (INFO_IMAGE_RES_ID) + , _sticky_pixmap (STICKY_KEY_PIXMAP) , _splash_mode (false) + , _sticky_on (false) { } void GUILayer::draw_splash(const QRegion& dest_region, RedDrawable& dest) { + ASSERT(!_sticky_on); for (int i = 0; i < (int)dest_region.num_rects; i++) { Rect* r = &dest_region.rects[i]; dest.copy_pixels(_splash_pixmap, r->left - _splash_pos.x, r->top - _splash_pos.y, *r); @@ -129,13 +141,18 @@ void GUILayer::draw_info(const QRegion& dest_region, RedDrawable& dest) { for (int i = 0; i < (int)dest_region.num_rects; i++) { Rect* r = &dest_region.rects[i]; - dest.blend_pixels(_info_pixmap, r->left - _info_pos.x, r->top - _info_pos.y, *r); + /* is rect inside sticky region or info region? */ + if (_sticky_on && rect_intersects(*r, _sticky_rect)) { + dest.blend_pixels(_sticky_pixmap, r->left - _sticky_pos.x, r->top - _sticky_pos.y, *r); + } else { + dest.blend_pixels(_info_pixmap, r->left - _info_pos.x, r->top - _info_pos.y, *r); + } } } void GUILayer::copy_pixels(const QRegion& dest_region, RedDrawable& dest_dc) { - Lock lock(_update_lock); + RecurciveLock lock(_update_lock); if (_splash_mode) { draw_splash(dest_region, dest_dc); } else { @@ -145,7 +162,7 @@ void GUILayer::copy_pixels(const QRegion& dest_region, RedDrawable& dest_dc) void GUILayer::set_splash_mode() { - Lock lock(_update_lock); + RecurciveLock lock(_update_lock); Point size = _splash_pixmap.get_size(); Point screen_size = screen()->get_size(); Rect r; @@ -157,11 +174,12 @@ void GUILayer::set_splash_mode() _splash_mode = true; lock.unlock(); set_rect_area(r); + ASSERT(!_sticky_on); } void GUILayer::set_info_mode() { - Lock lock(_update_lock); + RecurciveLock lock(_update_lock); Point size = _info_pixmap.get_size(); Point screen_size = screen()->get_size(); Rect r; @@ -174,6 +192,33 @@ void GUILayer::set_info_mode() _splash_mode = false; lock.unlock(); set_rect_area(r); + + set_sticky(_sticky_on); +} + +void GUILayer::set_sticky(bool is_on) +{ + RecurciveLock lock(_update_lock); + if (!_sticky_on && !is_on) { + return; + } + + Point size = _sticky_pixmap.get_size(); + Point screen_size = screen()->get_size(); + + _sticky_on = is_on; + if (_sticky_on) { + _sticky_pos.x = (screen_size.x - size.x) / 2; + _sticky_pos.y = screen_size.y * 2 / 3; + _sticky_rect.left = _sticky_pos.x; + _sticky_rect.top = _sticky_pos.y; + _sticky_rect.right = _sticky_rect.left + size.x; + _sticky_rect.bottom = _sticky_rect.top + size.y; + add_rect_area(_sticky_rect); + invalidate(); + } else { + remove_rect_area(_sticky_rect); + } } void GUILayer::on_size_changed() @@ -181,6 +226,20 @@ void GUILayer::on_size_changed() set_info_mode(); } +void StickyKeyTimer::response(AbstractProcessLoop& events_loop) +{ + Application* app = (Application*)events_loop.get_owner(); + StickyInfo* sticky_info = &app->_sticky_info; + ASSERT(app->is_sticky_trace_key(sticky_info->key)); + ASSERT(app->_key_table[sticky_info->key ].press); + ASSERT(sticky_info->key_first_down); + ASSERT(sticky_info->key_down); + sticky_info->sticky_mode = true; + DBG(0, "ON sticky"); + app->_gui_layer->set_sticky(true); + app->deactivate_interval_timer(this); +} + static InputsHandler default_inputs_handler; enum AppCommands { @@ -211,6 +270,8 @@ Application::Application() , _inputs_handler (&default_inputs_handler) , _monitors (NULL) , _title (L"SPICEc:%d") + , _splash_mode (true) + , _sys_key_intercept_mode (false) { DBG(0, ""); Platform::set_process_loop(*this); @@ -247,6 +308,13 @@ Application::Application() #endif , _commands_map)); _hot_keys = parser->get(); + + _sticky_info.trace_is_on = false; + _sticky_info.sticky_mode = false; + _sticky_info.key_first_down = false; + _sticky_info.key_down = false; + _sticky_info.key = REDKEY_INVALID; + _sticky_info.timer.reset(new StickyKeyTimer()); } Application::~Application() @@ -472,6 +540,7 @@ void Application::init_pause_scan_code() void Application::init_key_table() { memset(_key_table, 0, sizeof(_key_table)); + _num_keys_pressed = 0; init_scan_code(REDKEY_ESCAPE); init_scan_code(REDKEY_1); init_scan_code(REDKEY_2); @@ -607,12 +676,13 @@ inline uint32_t Application::get_break_scan_code(RedKey key) void Application::unpress_all() { + reset_sticky(); for (int i = 0; i < REDKEY_NUM_KEYS; i++) { if (_key_table[i].press) { uint32_t scan_code = get_break_scan_code((RedKey)i); ASSERT(scan_code); _inputs_handler->on_key_up(scan_code); - _key_table[i].press = false; + unpress_key((RedKey)i); } } } @@ -791,6 +861,57 @@ static void show_red_key(RedKey key) #endif +bool Application::press_key(RedKey key) +{ + if (_key_table[key].press) { + return true; + } else { + _key_table[key].press = true; + _num_keys_pressed++; + return false; + } +} + +bool Application::unpress_key(RedKey key) +{ + ASSERT(!_sticky_info.key_down || !is_sticky_trace_key(key)); + + if (_key_table[key].press) { + _key_table[key].press = false; + _num_keys_pressed--; + ASSERT(_num_keys_pressed >= 0); + return true; + } else { + return false; + } +} + +inline bool Application::is_sticky_trace_key(RedKey key) +{ + return ((key == REDKEY_L_ALT) || (key == REDKEY_R_ALT)); +} + +void Application::reset_sticky() +{ + _sticky_info.trace_is_on = !_splash_mode && _sys_key_intercept_mode; + _sticky_info.key_first_down = false; + deactivate_interval_timer(*_sticky_info.timer); + if (_sticky_info.sticky_mode) { + ASSERT(_key_table[_sticky_info.key].press); + // if it is physically down, we shouldn't unpress it + if (!_sticky_info.key_down) { + do_on_key_up(_sticky_info.key); + } + _sticky_info.sticky_mode = false; + DBG(0, "OFF sticky"); + _gui_layer->set_sticky(false); + } + _sticky_info.key_down = false; + + _sticky_info.key = REDKEY_INVALID; + +} + void Application::on_key_down(RedKey key) { if (key <= 0 || key >= REDKEY_NUM_KEYS) { @@ -802,7 +923,30 @@ void Application::on_key_down(RedKey key) LOG_WARN("no make code for %d", key); return; } - _key_table[key].press = true; + + bool was_pressed = press_key(key); + if (_sticky_info.trace_is_on) { + if (key == _sticky_info.key) { + _sticky_info.key_down = true; + } + + if (!_sticky_info.sticky_mode) { + // during tracing (traced key was pressed and no keyboard event has occured till now) + if (_sticky_info.key_first_down) { + ASSERT(_sticky_info.key != REDKEY_INVALID); + if (key != _sticky_info.key) { + reset_sticky(); + } + } else if (is_sticky_trace_key(key) && (_num_keys_pressed == 1) && !was_pressed) { + ASSERT(_sticky_info.key == REDKEY_INVALID); + // start tracing + _sticky_info.key = key; + _sticky_info.key_first_down = true; + _sticky_info.key_down = true; + activate_interval_timer(*_sticky_info.timer, STICKY_KEY_TIMEOUT); + } + } + } int command = get_hotkeys_commnad(); if (command != APP_CMD_INVALID) { @@ -814,17 +958,18 @@ void Application::on_key_down(RedKey key) if (!_active_screen->intercepts_sys_key() && (key == REDKEY_LEFT_CMD || key == REDKEY_RIGHT_CMD || key == REDKEY_MENU || _key_table[REDKEY_L_ALT].press)) { - _key_table[key].press = false; + unpress_key(key); return; } - if ((_key_table[REDKEY_L_CTRL].press || _key_table[REDKEY_R_CTRL].press) && - (_key_table[REDKEY_L_ALT].press || _key_table[REDKEY_R_ALT].press)) { + if (!_sticky_info.sticky_mode && + ((_key_table[REDKEY_L_CTRL].press || _key_table[REDKEY_R_CTRL].press) && + (_key_table[REDKEY_L_ALT].press || _key_table[REDKEY_R_ALT].press))) { if (key == REDKEY_END || key == REDKEY_PAD_1) { - _key_table[key].press = false; + unpress_key(key); _inputs_handler->on_key_down(get_make_scan_code(REDKEY_DELETE)); _inputs_handler->on_key_up(get_break_scan_code(REDKEY_DELETE)); } else if (key == REDKEY_DELETE || key == REDKEY_PAD_POINT) { - _key_table[key].press = false; + unpress_key(key); return; } } @@ -833,12 +978,9 @@ void Application::on_key_down(RedKey key) _inputs_handler->on_key_down(scan_code); } -void Application::on_key_up(RedKey key) +void Application::do_on_key_up(RedKey key) { - if (key < 0 || key >= REDKEY_NUM_KEYS || !_key_table[key].press) { - return; - } - _key_table[key].press = false; + unpress_key(key); uint32_t scan_code = get_break_scan_code(key); if (!scan_code) { LOG_WARN("no break code for %d", key); @@ -847,9 +989,43 @@ void Application::on_key_up(RedKey key) _inputs_handler->on_key_up(scan_code); } +void Application::on_key_up(RedKey key) +{ + if(key < 0 || key >= REDKEY_NUM_KEYS || !_key_table[key].press) { + return; + } + + if (_sticky_info.trace_is_on) { + ASSERT(_sticky_info.sticky_mode || (key == _sticky_info.key) || + (_sticky_info.key == REDKEY_INVALID)); + if (key == _sticky_info.key) { + _sticky_info.key_down = false; + if (_sticky_info.key_first_down) { + _sticky_info.key_first_down = false; + if (!_sticky_info.sticky_mode) { + reset_sticky(); + } else { + return; // ignore the sticky-key first release + } + } + } + + if (_sticky_info.sticky_mode) { + RedKey old_sticky_key = _sticky_info.key; + reset_sticky(); + if (key == old_sticky_key) { + return; // no need to send key_up twice + } + } + } + + do_on_key_up(key); + } + void Application::on_deactivate_screen(RedScreen* screen) { if (_active_screen == screen) { + _sys_key_intercept_mode = false; release_capture(); _active_screen = NULL; } @@ -857,9 +1033,26 @@ void Application::on_deactivate_screen(RedScreen* screen) void Application::on_activate_screen(RedScreen* screen) { + ASSERT(!_active_screen || (_active_screen == screen)); _active_screen = screen; } +void Application::on_start_screen_key_interception(RedScreen* screen) +{ + ASSERT(screen == _active_screen); + + _sys_key_intercept_mode = true; + reset_sticky(); +} + +void Application::on_stop_screen_key_interception(RedScreen* screen) +{ + ASSERT(screen == _active_screen); + + _sys_key_intercept_mode = false; + reset_sticky(); +} + void Application::on_app_activated() { _active = true; @@ -996,6 +1189,7 @@ void Application::show_full_screen() void Application::enter_full_screen() { + LOG_INFO(""); _changing_screens = true; release_capture(); assign_monitors(); @@ -1014,6 +1208,7 @@ void Application::exit_full_screen() if (!_full_screen) { return; } + LOG_INFO(""); release_capture(); for (int i = 0; i < (int)_screens.size(); i++) { if (_screens[i]) { @@ -1087,7 +1282,9 @@ void Application::show_splash(int screen_id) if (screen_id != 0) { return; } + _splash_mode = true; release_capture(); + ASSERT(!_sticky_info.trace_is_on); (*_gui_layer).set_splash_mode(); } @@ -1096,7 +1293,9 @@ void Application::hide_splash(int screen_id) if (screen_id != 0) { return; } + _splash_mode = false; (*_gui_layer).set_info_mode(); + reset_sticky(); } uint32_t Application::get_mouse_mode() diff --git a/client/application.h b/client/application.h index 91afb54e..c576dba6 100644 --- a/client/application.h +++ b/client/application.h @@ -90,6 +90,25 @@ enum CanvasOption { #endif }; +class StickyKeyTimer: public Timer { +public: + virtual void response(AbstractProcessLoop& events_loop); +}; + +typedef struct StickyInfo { + bool trace_is_on; + bool sticky_mode; + bool key_first_down; // True when (1) a potential sticky key is pressed, + // and none of the other keys are pressed and (2) in the moment + // of pressing, _sticky_mode is false. When the key is up + // for the first time, it is set to false. + bool key_down; // The physical state of the sticky key. Valid only till + // stickiness is removed. + RedKey key; // the key that is currently being traced, or, + // if _sticky mode is on, the sticky key + AutoRef<StickyKeyTimer> timer; +} StickyInfo; + class Application : public ProcessLoop, public Platform::EventListener, public Platform::DisplayModeListner, @@ -114,6 +133,8 @@ public: void on_key_up(RedKey key); void on_deactivate_screen(RedScreen* screen); void on_activate_screen(RedScreen* screen); + void on_start_screen_key_interception(RedScreen* screen); + void on_stop_screen_key_interception(RedScreen* screen); virtual void on_app_activated(); virtual void on_app_deactivated(); virtual void on_monitors_change(); @@ -180,6 +201,13 @@ private: int get_hotkeys_commnad(); bool is_key_set_pressed(const HotkeySet& key_set); bool is_cad_pressed(); + void do_on_key_up(RedKey key); + + // returns the press value before operation (i.e., if it was already pressed) + bool press_key(RedKey key); + bool unpress_key(RedKey key); + void reset_sticky(); + static bool is_sticky_trace_key(RedKey key); static void init_logger(); static void init_globals(); @@ -188,6 +216,7 @@ private: friend class ConnectionErrorEvent; friend class MonitorsQuery; friend class AutoAbort; + friend class StickyKeyTimer; private: RedClient _client; @@ -201,12 +230,16 @@ private: int _exit_code; RedScreen* _active_screen; KeyInfo _key_table[REDKEY_NUM_KEYS]; + int _num_keys_pressed; HotKeys _hot_keys; CommandsMap _commands_map; std::auto_ptr<GUILayer> _gui_layer; InputsHandler* _inputs_handler; const MonitorsList* _monitors; std::wstring _title; + bool _splash_mode; + bool _sys_key_intercept_mode; + StickyInfo _sticky_info; std::vector<int> _canvas_types; AutoRef<Menu> _app_menu; }; diff --git a/client/red_window.h b/client/red_window.h index e3565765..0d3e781a 100644 --- a/client/red_window.h +++ b/client/red_window.h @@ -106,7 +106,8 @@ private: bool _cursor_visible; bool _focused; bool _pointer_in_window; - bool _key_interception; + bool _trace_key_interception; + bool _key_interception_on; Menu* _menu; friend class RedWindow_p; diff --git a/client/screen.cpp b/client/screen.cpp index 8b7ee289..bbc76e75 100644 --- a/client/screen.cpp +++ b/client/screen.cpp @@ -93,11 +93,13 @@ RedScreen::RedScreen(Application& owner, int id, const std::wstring& name, int w _window.set_menu(*menu); AutoRef<Icon> icon(Platform::load_icon(RED_ICON_RES_ID)); _window.set_icon(*icon); + _window.start_key_interception(); } RedScreen::~RedScreen() { bool captured = is_captured(); + _window.stop_key_interception(); relase_inputs(); destroy_composit_area(); _owner.deactivate_interval_timer(*_update_timer); @@ -435,9 +437,6 @@ void RedScreen::capture_inputs() reset_mouse_pos(); _window.cupture_mouse(); } -#ifndef NO_KEY_GRAB - _window.start_key_interception(); -#endif _captured = true; } @@ -446,9 +445,6 @@ void RedScreen::relase_inputs() if (!_captured) { return; } -#ifndef NO_KEY_GRAB - _window.stop_key_interception(); -#endif _captured = false; _window.release_mouse(); if (_owner.get_mouse_mode() == RED_MOUSE_MODE_SERVER) { @@ -576,6 +572,11 @@ void RedScreen::on_pointer_enter() if (!_frame_area) { _pointer_location = POINTER_IN_ACTIVE_AREA; update_active_cursor(); + if (_full_screen) { + /* allowing enterance to key interception mode without + requiring the user to press the window */ + activate(); + } } } @@ -584,6 +585,18 @@ void RedScreen::on_pointer_leave() _pointer_location = POINTER_OUTSIDE_WINDOW; } +void RedScreen::on_start_key_interception() +{ + _key_interception = true; + _owner.on_start_screen_key_interception(this); +} + +void RedScreen::on_stop_key_interception() +{ + _key_interception = false; + _owner.on_stop_screen_key_interception(this); +} + void RedScreen::enter_modal_loop() { _forec_update_timer++; diff --git a/client/screen.h b/client/screen.h index 957cece1..b191d099 100644 --- a/client/screen.h +++ b/client/screen.h @@ -136,8 +136,8 @@ private: virtual void on_activate(); virtual void on_pointer_enter(); virtual void on_pointer_leave(); - virtual void on_start_key_interception() { _key_interception = true;} - virtual void on_stop_key_interception() { _key_interception = false;} + virtual void on_start_key_interception(); + virtual void on_stop_key_interception(); virtual void enter_modal_loop(); virtual void exit_modal_loop(); diff --git a/client/windows/red_window.cpp b/client/windows/red_window.cpp index 01d82e59..ab1aa159 100644 --- a/client/windows/red_window.cpp +++ b/client/windows/red_window.cpp @@ -25,6 +25,8 @@ #include "win_platform.h" #include "platform_utils.h" +#include <list> + #define NATIVE_CAPTION_STYLE (WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX) extern HINSTANCE instance; @@ -33,7 +35,11 @@ static ATOM class_atom = 0; static const LPCWSTR win_class_name = L"redc_wclass"; static HWND focus_window = NULL; static HHOOK low_keyboard_hook = NULL; +static HHOOK msg_filter_hook = NULL; +typedef std::list<RedKey> KeysList; +static KeysList filtered_up_keys; +static LRESULT CALLBACK MessageFilterProc(int nCode, WPARAM wParam, LPARAM lParam); static inline int to_red_mouse_state(WPARAM wParam) { @@ -78,6 +84,16 @@ static int menu_cmd_to_app(WPARAM wparam) return 0; } +static inline void send_filtered_keys(RedWindow* window) +{ + KeysList::iterator iter; + + for (iter = filtered_up_keys.begin(); iter != filtered_up_keys.end(); iter++) { + window->get_listener().on_key_release(*iter); + } + filtered_up_keys.clear(); +} + LRESULT CALLBACK RedWindow_p::WindowProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { RedWindow* window = (RedWindow*)GetWindowLong(hWnd, GWL_USERDATA); @@ -153,7 +169,7 @@ LRESULT CALLBACK RedWindow_p::WindowProc(HWND hWnd, UINT message, WPARAM wParam, RedKey key = translate_key(wParam, HIWORD(lParam) & 0xff, (lParam & (1 << 24)) != 0); window->get_listener().on_key_press(key); // Allow Windows to translate Alt-F4 to WM_CLOSE message. - if (!window->_key_interception) { + if (!window->_key_interception_on) { return DefWindowProc(hWnd, message, wParam, lParam); } break; @@ -164,13 +180,6 @@ LRESULT CALLBACK RedWindow_p::WindowProc(HWND hWnd, UINT message, WPARAM wParam, window->get_listener().on_key_release(key); break; } - case WM_ACTIVATE: - if (LOWORD(wParam) == WA_INACTIVE) { - window->get_listener().on_deactivate(); - } else { - window->get_listener().on_activate(); - } - break; case WM_DESTROY: PostQuitMessage(0); break; @@ -190,13 +199,25 @@ LRESULT CALLBACK RedWindow_p::WindowProc(HWND hWnd, UINT message, WPARAM wParam, return DefWindowProc(hWnd, message, wParam, lParam); case WM_ENTERSIZEMOVE: case WM_ENTERMENULOOP: + ASSERT(filtered_up_keys.empty()); + DBG(0, "enter modal"); window->get_listener().enter_modal_loop(); WinPlatform::enter_modal_loop(); + if (msg_filter_hook) { + LOG_WARN("entering modal loop while filter hook is active"); + UnhookWindowsHookEx(msg_filter_hook); + } + msg_filter_hook = SetWindowsHookEx(WH_MSGFILTER, MessageFilterProc, + GetModuleHandle(NULL), GetCurrentThreadId()); return DefWindowProc(hWnd, message, wParam, lParam); case WM_EXITSIZEMOVE: case WM_EXITMENULOOP: + DBG(0, "exit modal"); window->get_listener().exit_modal_loop(); WinPlatform::exit_modal_loop(); + UnhookWindowsHookEx(msg_filter_hook); + msg_filter_hook = NULL; + send_filtered_keys(window); return DefWindowProc(hWnd, message, wParam, lParam); case WM_SETCURSOR: if (!window->_pointer_in_window) { @@ -324,7 +345,8 @@ RedWindow::RedWindow(RedWindow::Listener& listener, int screen_id) , _cursor_visible (true) , _focused (false) , _pointer_in_window (false) - , _key_interception (false) + , _trace_key_interception (false) + , _key_interception_on (false) , _menu (NULL) { RECT win_rect; @@ -486,6 +508,7 @@ void RedWindow::resize(int width, int height) void RedWindow::activate() { SetActiveWindow(_win); + SetFocus(_win); } void RedWindow::minimize() @@ -667,32 +690,32 @@ static LRESULT CALLBACK LowLevelKeyboardProc(int nCode, WPARAM wParam, LPARAM lP void RedWindow::do_start_key_interception() { + _key_interception_on = true; + _listener.on_start_key_interception(); if (low_keyboard_hook) { return; } low_keyboard_hook = SetWindowsHookEx(WH_KEYBOARD_LL, LowLevelKeyboardProc, GetModuleHandle(NULL), 0); - _listener.on_start_key_interception(); } void RedWindow::do_stop_key_interception() { + _key_interception_on = false; + _listener.on_stop_key_interception(); if (!low_keyboard_hook) { return; } - UnhookWindowsHookEx(low_keyboard_hook); low_keyboard_hook = NULL; - _listener.on_stop_key_interception(); } void RedWindow::start_key_interception() { - if (_key_interception) { + if (_trace_key_interception) { return; } - _key_interception = true; - focus_window = _win; + _trace_key_interception = true; if (_focused && _pointer_in_window) { do_start_key_interception(); } @@ -700,11 +723,11 @@ void RedWindow::start_key_interception() void RedWindow::stop_key_interception() { - if (!_key_interception) { + if (!_trace_key_interception) { return; } - _key_interception = false; - if (_focused && _pointer_in_window) { + _trace_key_interception = false; + if (_key_interception_on) { do_stop_key_interception(); } } @@ -743,7 +766,9 @@ void RedWindow::unset_type_gl() void RedWindow::on_focus_in() { _focused = true; - if (_pointer_in_window && _key_interception) { + focus_window = _win; + get_listener().on_activate(); + if (_pointer_in_window && _trace_key_interception) { do_start_key_interception(); } } @@ -753,8 +778,13 @@ void RedWindow::on_focus_out() if (!_focused) { return; } + _focused = false; - do_stop_key_interception(); + + if (_key_interception_on) { + do_stop_key_interception(); + } + get_listener().on_deactivate(); } void RedWindow::on_pointer_enter() @@ -762,6 +792,7 @@ void RedWindow::on_pointer_enter() if (_pointer_in_window) { return; } + if (_cursor_visible) { if (_local_cursor) { _local_cursor->set(_win); @@ -780,7 +811,7 @@ void RedWindow::on_pointer_enter() if (!TrackMouseEvent(&tme)) { THROW("track mouse event failed"); } - if (_focused && _key_interception) { + if (_focused && _trace_key_interception) { do_start_key_interception(); } } @@ -795,7 +826,7 @@ void RedWindow::on_pointer_leave() } _pointer_in_window = false; _listener.on_pointer_leave(); - if (_focused && _key_interception) { + if (_key_interception_on) { do_stop_key_interception(); } } @@ -933,3 +964,23 @@ void RedWindow::set_menu(Menu* menu) insert_menu(_menu, _sys_menu, _commands_map); } +static LRESULT CALLBACK MessageFilterProc(int nCode, WPARAM wParam, LPARAM lParam) +{ + if (nCode >= 0) + { + MSG* msg = (MSG*)lParam; + + switch (msg->message) { + case WM_SYSKEYUP: + case WM_KEYUP: { + RedKey key = translate_key(msg->wParam, HIWORD(msg->lParam) & 0xff, + (msg->lParam & (1 << 24)) != 0); + filtered_up_keys.push_back(key); + break; + } + default: + break; + } + } + return CallNextHookEx(NULL, nCode, wParam, lParam); +} diff --git a/client/windows/redc.rc b/client/windows/redc.rc index cf0ef178..2af4ac92 100644 --- a/client/windows/redc.rc +++ b/client/windows/redc.rc @@ -54,6 +54,7 @@ END SPLASH_IMAGE_RES_ID BITMAP "splash.bmp"
INFO_IMAGE_RES_ID BITMAP "static_title.bmp"
+ALT_IMAGE_RES_ID BITMAP "sticky_alt.bmp"
/////////////////////////////////////////////////////////////////////////////
//
diff --git a/client/windows/redc.vcproj b/client/windows/redc.vcproj index dac0fffd..ed221ba7 100644 --- a/client/windows/redc.vcproj +++ b/client/windows/redc.vcproj @@ -598,6 +598,10 @@ RelativePath=".\static_title.bmp"
>
</File>
+ <File
+ RelativePath=".\sticky_alt.bmp"
+ >
+ </File>
</Filter>
</Files>
<Globals>
diff --git a/client/windows/resource.h b/client/windows/resource.h index 51ff7f28..c6a1a616 100644 --- a/client/windows/resource.h +++ b/client/windows/resource.h @@ -1,19 +1,20 @@ -//{{NO_DEPENDENCIES}}
-// Microsoft Visual C++ generated include file.
-// Used by redc.rc
-//
-#define RED_ICON_RES_ID 5
-#define SPLASH_IMAGE_RES_ID 101
-#define INFO_IMAGE_RES_ID 102
-#define IDI_ICON_APPLICATION 103
-
-// Next default values for new objects
-//
-#ifdef APSTUDIO_INVOKED
-#ifndef APSTUDIO_READONLY_SYMBOLS
-#define _APS_NEXT_RESOURCE_VALUE 106
-#define _APS_NEXT_COMMAND_VALUE 40001
-#define _APS_NEXT_CONTROL_VALUE 1001
-#define _APS_NEXT_SYMED_VALUE 101
-#endif
-#endif
+//{{NO_DEPENDENCIES}} +// Microsoft Visual C++ generated include file. +// Used by redc.rc +// +#define RED_ICON_RES_ID 5 +#define SPLASH_IMAGE_RES_ID 101 +#define INFO_IMAGE_RES_ID 102 +#define IDI_ICON_APPLICATION 103 +#define ALT_IMAGE_RES_ID 104 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NEXT_RESOURCE_VALUE 106 +#define _APS_NEXT_COMMAND_VALUE 40001 +#define _APS_NEXT_CONTROL_VALUE 1001 +#define _APS_NEXT_SYMED_VALUE 101 +#endif +#endif diff --git a/client/windows/sticky_alt.bmp b/client/windows/sticky_alt.bmp Binary files differnew file mode 100644 index 00000000..4013472b --- /dev/null +++ b/client/windows/sticky_alt.bmp diff --git a/client/x11/images/alt_image.c b/client/x11/images/alt_image.c new file mode 100644 index 00000000..79683395 --- /dev/null +++ b/client/x11/images/alt_image.c @@ -0,0 +1,735 @@ +static const struct { + uint32_t width; + uint32_t height; + uint8_t pixel_data[17496]; +} _alt_image = { 81, 54, { + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x16,0x16,0x16,0x2d,0x39,0x39,0x39,0x70,0x48,0x48,0x48,0x8e,0x58,0x58,0x58,0xae,0x68,0x68,0x68,0xcd, + 0x78,0x78,0x78,0xec,0x82,0x82,0x82,0xff,0x81,0x81,0x81,0xfe,0x80,0x80,0x80,0xfd,0x80,0x80,0x80,0xfc,0x7f,0x7f,0x7f,0xfb, + 0x7f,0x7f,0x7f,0xfa,0x7e,0x7e,0x7e,0xf9,0x7e,0x7e,0x7e,0xf8,0x7e,0x7e,0x7e,0xf8,0x7d,0x7d,0x7d,0xf7,0x7d,0x7d,0x7d,0xf6, + 0x7c,0x7c,0x7c,0xf5,0x7c,0x7c,0x7c,0xf4,0x7b,0x7b,0x7b,0xf3,0x7b,0x7b,0x7b,0xf2,0x7a,0x7a,0x7a,0xf1,0x7a,0x7a,0x7a,0xf0, + 0x79,0x79,0x79,0xef,0x79,0x79,0x79,0xee,0x78,0x78,0x78,0xed,0x78,0x78,0x78,0xec,0x77,0x77,0x77,0xeb,0x77,0x77,0x77,0xea, + 0x76,0x76,0x76,0xe9,0x76,0x76,0x76,0xe8,0x75,0x75,0x75,0xe7,0x75,0x75,0x75,0xe6,0x74,0x74,0x74,0xe5,0x74,0x74,0x74,0xe4, + 0x74,0x74,0x74,0xe4,0x73,0x73,0x73,0xe3,0x73,0x73,0x73,0xe2,0x72,0x72,0x72,0xe1,0x72,0x72,0x72,0xe0,0x71,0x71,0x71,0xdf, + 0x71,0x71,0x71,0xde,0x70,0x70,0x70,0xdd,0x70,0x70,0x70,0xdc,0x6f,0x6f,0x6f,0xdb,0x6f,0x6f,0x6f,0xda,0x6e,0x6e,0x6e,0xd9, + 0x6e,0x6e,0x6e,0xd8,0x6d,0x6d,0x6d,0xd7,0x6d,0x6d,0x6d,0xd6,0x6c,0x6c,0x6c,0xd5,0x6c,0x6c,0x6c,0xd4,0x6b,0x6b,0x6b,0xd3, + 0x6b,0x6b,0x6b,0xd2,0x6a,0x6a,0x6a,0xd1,0x6a,0x6a,0x6a,0xd1,0x69,0x69,0x69,0xcf,0x61,0x61,0x61,0xc0,0x60,0x60,0x60,0xca, + 0x64,0x64,0x64,0xe2,0x5b,0x5b,0x5b,0xd3,0x52,0x52,0x52,0xc2,0x47,0x47,0x47,0xad,0x33,0x33,0x33,0x87,0x19,0x19,0x19,0x55, + 0x0b,0x0b,0x0b,0x25,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x11,0x11,0x23,0x53,0x53,0x53,0xa4,0x80,0x80,0x80,0xfd,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x79,0x79,0x79,0xff,0x64,0x64,0x64,0xff,0x3f,0x3f,0x3f,0xc4,0x1c,0x1c,0x1c,0x5d, + 0x02,0x02,0x02,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x0a,0x0a,0x15,0x4c,0x4c,0x4c,0x96,0x7f,0x7f,0x7f,0xfa, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x81,0x81,0x81,0xff,0x70,0x70,0x70,0xff,0x4d,0x4d,0x4d,0xf1,0x2c,0x2c,0x2c,0x95,0x03,0x03,0x03,0x0a, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x02, + 0x62,0x62,0x62,0xc2,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x7b,0x7b,0x7b,0xff,0x54,0x54,0x54,0xff,0x3b,0x3b,0x3b,0xc5,0x04,0x04,0x04,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3e,0x3e,0x3e,0x7b,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x83,0x7f,0x80,0xee,0x88,0x7d,0x7e,0xce,0x88,0x7c,0x7c,0xc2,0x8a,0x7a,0x7c,0xb7, + 0x8c,0x7a,0x7b,0xac,0x8d,0x79,0x7a,0xa5,0x8c,0x79,0x7a,0xa5,0x8d,0x79,0x7b,0xa6,0x8c,0x79,0x7b,0xa6,0x8c,0x79,0x7b,0xa6, + 0x8c,0x79,0x7b,0xa7,0x8c,0x79,0x7b,0xa7,0x8c,0x79,0x7a,0xa7,0x8c,0x79,0x7a,0xa7,0x8c,0x79,0x7b,0xa8,0x8c,0x79,0x7b,0xa8, + 0x8d,0x79,0x7b,0xa9,0x8c,0x79,0x7b,0xa9,0x8c,0x79,0x7b,0xa9,0x8c,0x7a,0x7b,0xaa,0x8c,0x79,0x7b,0xaa,0x8c,0x79,0x7b,0xaa, + 0x8c,0x7a,0x7b,0xab,0x8c,0x79,0x7b,0xab,0x8c,0x79,0x7b,0xab,0x8c,0x7a,0x7b,0xac,0x8c,0x79,0x7b,0xac,0x8b,0x79,0x7b,0xac, + 0x8c,0x7a,0x7b,0xad,0x8b,0x79,0x7b,0xad,0x8b,0x79,0x7b,0xad,0x8b,0x7a,0x7b,0xae,0x8b,0x79,0x7b,0xae,0x8c,0x7a,0x7c,0xaf, + 0x8c,0x7a,0x7b,0xaf,0x8c,0x7a,0x7b,0xaf,0x8b,0x7a,0x7b,0xaf,0x8c,0x7a,0x7c,0xb0,0x8b,0x7a,0x7b,0xb0,0x8b,0x7a,0x7b,0xb0, + 0x8c,0x7a,0x7c,0xb1,0x8b,0x7a,0x7b,0xb1,0x8b,0x7a,0x7b,0xb1,0x8b,0x7a,0x7c,0xb2,0x8b,0x7a,0x7c,0xb2,0x8a,0x7a,0x7b,0xb2, + 0x8b,0x7a,0x7c,0xb3,0x8a,0x7a,0x7c,0xb3,0x8a,0x7a,0x7b,0xb3,0x8b,0x7a,0x7c,0xb4,0x8b,0x7a,0x7c,0xb4,0x8b,0x7a,0x7c,0xb5, + 0x8b,0x7a,0x7c,0xb5,0x8b,0x7a,0x7c,0xb5,0x8b,0x7a,0x7c,0xb6,0x8a,0x7a,0x7c,0xb6,0x8a,0x7b,0x7c,0xbc,0x8c,0x7e,0x80,0xcc, + 0x8d,0x80,0x82,0xd8,0x8c,0x82,0x83,0xe0,0x8c,0x83,0x84,0xe7,0x89,0x83,0x84,0xf1,0x82,0x82,0x82,0xfe,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x7b,0x7b,0x7b,0xff,0x4f,0x4f,0x4f,0xff, + 0x3a,0x3a,0x3a,0xc3,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0x1b,0x1b,0x36,0x7f,0x7f,0x7f,0xfb, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x83,0x80,0x80,0xf3,0x89,0x7c,0x7d,0xc5,0x8c,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8c,0x79,0x7b,0xac,0x87,0x7d,0x7e,0xcd,0x83,0x81,0x81,0xf2,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x69,0x69,0x69,0xff,0x4d,0x4d,0x4d,0xff,0x1c,0x1c,0x1c,0x5f,0x00,0x00,0x00,0x00, + 0x02,0x02,0x02,0x04,0x6f,0x6f,0x6f,0xdb,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x83,0x81,0x81,0xf7, + 0x8c,0x7a,0x7b,0xad,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8c,0x79,0x7b,0xa7,0x86,0x7f,0x7f,0xe1,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x81,0x81,0x81,0xff, + 0x50,0x50,0x50,0xff,0x44,0x44,0x44,0xe4,0x00,0x00,0x00,0x00,0x18,0x18,0x18,0x30,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x81,0x81,0x81,0xfe,0x89,0x7b,0x7c,0xbc,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8c,0x79,0x7b,0xa9,0x83,0x81,0x81,0xf6, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x5c,0x5c,0x5c,0xff,0x4d,0x4d,0x4d,0xff,0x0b,0x0b,0x0b,0x26, + 0x33,0x33,0x33,0x65,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x85,0x7f,0x7f,0xe2,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x86,0x7e,0x7f,0xda,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x68,0x68,0x68,0xff,0x4d,0x4d,0x4d,0xff,0x1d,0x1d,0x1d,0x61,0x4f,0x4f,0x4f,0x9b,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x87,0x7d,0x7e,0xce,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x7a,0x69,0x6b,0xb0,0x4c,0x40,0x42,0xcf,0x4c,0x40,0x42,0xcf,0x4c,0x40,0x42,0xcf, + 0x4c,0x40,0x42,0xcf,0x4c,0x40,0x42,0xcf,0x4c,0x40,0x42,0xcf,0x82,0x6f,0x71,0xac,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x88,0x7b,0x7d,0xc4, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x75,0x75,0x75,0xff,0x4d,0x4d,0x4d,0xff,0x2f,0x2f,0x2f,0x9d, + 0x6a,0x6a,0x6a,0xd0,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x8a,0x7b,0x7d,0xbc,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x75,0x64,0x67,0xb4,0x6f,0x5f,0x60,0xb8,0x6f,0x5f,0x60,0xb8,0x6f,0x5f,0x60,0xb8, + 0x6f,0x5f,0x60,0xb8,0x6f,0x5f,0x60,0xb8,0x6f,0x5f,0x60,0xb8,0x6f,0x5f,0x60,0xb8,0x7c,0x6a,0x6c,0xb0,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x73,0x63,0x64,0xb6, + 0x2e,0x28,0x28,0xe2,0x95,0x92,0x95,0xf4,0x95,0x92,0x95,0xf4,0x95,0x92,0x95,0xf4,0x95,0x92,0x95,0xf4,0x95,0x92,0x95,0xf4, + 0xb2,0xab,0xad,0xe1,0x9f,0x90,0x92,0xbd,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8c,0x7a,0x7b,0xaf,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x80,0x80,0x80,0xff,0x4e,0x4e,0x4e,0xff,0x41,0x41,0x41,0xd9,0x7f,0x7f,0x7f,0xfb,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x8c,0x7a,0x7b,0xaa,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x89,0x75,0x77,0xa7,0x32,0x2a,0x2b,0xdf, + 0x51,0x4c,0x4e,0xe8,0x6b,0x68,0x69,0xed,0x6b,0x68,0x69,0xed,0x6b,0x68,0x69,0xed,0x6b,0x68,0x69,0xed,0x6b,0x68,0x69,0xed, + 0x6b,0x68,0x69,0xed,0x78,0x73,0x74,0xe4,0xa3,0x96,0x98,0xc3,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x73,0x63,0x64,0xb6,0x2e,0x28,0x28,0xe2,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0xb6,0xb0,0xb2,0xe5,0xa0,0x92,0x94,0xbe,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x80,0x6e,0x70,0xac,0x80,0x6e,0x70,0xac, + 0x80,0x6e,0x70,0xac,0x80,0x6e,0x70,0xac,0x80,0x6e,0x70,0xac,0x80,0x6e,0x70,0xac,0x87,0x74,0x76,0xa8,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x83,0x80,0x80,0xf5,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x53,0x53,0x53,0xff,0x4d,0x4d,0x4d,0xff, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x6f,0x60,0x61,0xb7,0x2e,0x27,0x28,0xe1,0x87,0x83,0x86,0xf2,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0xb7,0xb1,0xb3,0xe3, + 0x93,0x80,0x82,0xac,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x73,0x63,0x64,0xb6, + 0x2e,0x28,0x28,0xe2,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0xb6,0xb0,0xb2,0xe5,0xa0,0x92,0x94,0xbe,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8b,0x78,0x7a,0xa6,0x2e,0x27,0x28,0xe1,0x4d,0x48,0x48,0xe7,0x57,0x53,0x54,0xe9,0x57,0x53,0x54,0xe9,0x57,0x53,0x54,0xe9, + 0x57,0x53,0x54,0xe9,0x81,0x76,0x78,0xcf,0x99,0x88,0x8a,0xb5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x83,0x80,0x80,0xf1,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x54,0x54,0x54,0xff,0x4d,0x4d,0x4d,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x53,0x48,0x48,0xca,0x3b,0x35,0x36,0xe4, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0xae,0xa9,0xab,0xe9,0xa0,0x91,0x94,0xbe,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x73,0x63,0x64,0xb6,0x2e,0x28,0x28,0xe2,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0xb6,0xb0,0xb2,0xe5,0xa0,0x92,0x94,0xbe,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8b,0x78,0x7a,0xa6,0x2e,0x27,0x28,0xe1,0x80,0x7d,0x7f,0xf0, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0xad,0xa8,0xaa,0xea,0xac,0xa1,0xa3,0xce, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x83,0x80,0x80,0xf1,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x54,0x54,0x54,0xff,0x4d,0x4d,0x4d,0xff, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8c,0x78,0x7a,0xa5,0x37,0x2f,0x30,0xdc,0x5d,0x58,0x59,0xea,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0xa4,0xa1,0xa4,0xef, + 0xae,0xa4,0xa6,0xd1,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x73,0x63,0x64,0xb6, + 0x2e,0x28,0x28,0xe2,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0xb6,0xb0,0xb2,0xe5,0xa0,0x92,0x94,0xbe,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8b,0x78,0x7a,0xa6,0x2e,0x27,0x28,0xe1,0x80,0x7d,0x7f,0xf0,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0xad,0xa8,0xaa,0xea,0xac,0xa1,0xa3,0xce,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x83,0x80,0x80,0xf1,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x54,0x54,0x54,0xff,0x4d,0x4d,0x4d,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x78,0x67,0x69,0xb2,0x2e,0x27,0x28,0xe1,0x7e,0x7a,0x7d,0xf0, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x9a,0x9b,0xf4,0xb9,0xb2,0xb4,0xe1,0x8e,0x7b,0x7e,0xa8,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x73,0x63,0x64,0xb6,0x2e,0x28,0x28,0xe2,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0xb6,0xb0,0xb2,0xe5,0xa0,0x92,0x94,0xbe,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8b,0x78,0x7a,0xa6,0x2e,0x27,0x28,0xe1,0x80,0x7d,0x7f,0xf0, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0xad,0xa8,0xaa,0xea,0xac,0xa1,0xa3,0xce, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x83,0x81,0x81,0xf2,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x54,0x54,0x54,0xff,0x4d,0x4d,0x4d,0xff, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x5b,0x4e,0x4f,0xc4,0x33,0x2d,0x2e,0xe2,0x98,0x96,0x98,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0xb0,0xab,0xad,0xe7,0x9b,0x8c,0x8e,0xb9,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x73,0x63,0x64,0xb6, + 0x2e,0x28,0x28,0xe2,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0xb6,0xb0,0xb2,0xe5,0xa0,0x92,0x94,0xbe,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8b,0x78,0x7a,0xa6,0x2e,0x27,0x28,0xe1,0x80,0x7d,0x7f,0xf0,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0xad,0xa8,0xaa,0xea,0xac,0xa1,0xa3,0xce,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x83,0x81,0x81,0xf2,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x54,0x54,0x54,0xff,0x4c,0x4c,0x4c,0xfe,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x3e,0x35,0x36,0xd7,0x52,0x4e,0x4f,0xe8,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0xa7,0xa3,0xa6,0xee,0xaa,0x9f,0xa0,0xcc,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x73,0x63,0x64,0xb6,0x2e,0x28,0x28,0xe2,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0xb6,0xb0,0xb2,0xe5,0xa0,0x92,0x94,0xbe,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8b,0x78,0x7a,0xa6,0x2e,0x27,0x28,0xe1,0x80,0x7d,0x7f,0xf0, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0xad,0xa8,0xaa,0xea,0xac,0xa1,0xa3,0xce, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x83,0x81,0x81,0xf2,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x54,0x54,0x54,0xff,0x4c,0x4c,0x4c,0xfe, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x80,0x6d,0x6f,0xad, + 0x2e,0x27,0x28,0xe1,0x75,0x71,0x72,0xee,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9f,0x9d,0x9f,0xf3,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9e,0x9b,0x9d,0xf3,0xb6,0xaf,0xb2,0xdd,0x8d,0x79,0x7b,0xa6,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x73,0x63,0x64,0xb6, + 0x2e,0x28,0x28,0xe2,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0xb6,0xb0,0xb2,0xe5,0xa0,0x92,0x94,0xbe,0x8d,0x79,0x7a,0xa5,0x89,0x75,0x77,0xa7,0x7a,0x69,0x6b,0xb0,0x7a,0x69,0x6b,0xb0, + 0x7a,0x68,0x6a,0xb1,0x2e,0x27,0x28,0xe1,0x80,0x7d,0x7f,0xf0,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0xaa,0xa5,0xa8,0xec,0xa2,0x98,0x9b,0xd5,0x7a,0x69,0x6b,0xb0,0x7a,0x69,0x6b,0xb0,0x7a,0x69,0x6b,0xb0, + 0x7a,0x69,0x6b,0xb0,0x7a,0x69,0x6b,0xb0,0x8b,0x78,0x7a,0xa6,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x83,0x81,0x81,0xf2,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x54,0x54,0x54,0xff,0x4c,0x4c,0x4c,0xfe,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x63,0x55,0x56,0xbf,0x2f,0x29,0x29,0xe2,0x94,0x91,0x94,0xf4,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0xaf,0xab,0xac,0xe8,0x80,0x7d,0x7f,0xf0,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0xb3,0xae,0xaf,0xe6,0x98,0x87,0x8a,0xb4, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x73,0x63,0x64,0xb6,0x2e,0x28,0x28,0xe2,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0xb6,0xb0,0xb2,0xe5,0xa0,0x92,0x94,0xbe,0x8d,0x79,0x7a,0xa5, + 0x7a,0x68,0x6a,0xb1,0x2e,0x27,0x28,0xe1,0x5b,0x56,0x56,0xe9,0x5e,0x59,0x59,0xea,0x5e,0x59,0x59,0xea,0x8d,0x8a,0x8c,0xf3, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x88,0x84,0x87,0xf2, + 0x5e,0x59,0x59,0xea,0x5e,0x59,0x59,0xea,0x5e,0x59,0x59,0xea,0x5e,0x59,0x59,0xea,0x5e,0x59,0x59,0xea,0x9c,0x8f,0x90,0xc3, + 0x94,0x82,0x83,0xae,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x83,0x81,0x81,0xf2,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x54,0x54,0x54,0xff,0x4c,0x4c,0x4c,0xfe, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x46,0x3c,0x3d,0xd2, + 0x4a,0x45,0x45,0xe6,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0xa2,0x9e,0xa1,0xf1, + 0xba,0xb3,0xb6,0xe2,0x4f,0x4a,0x4a,0xe4,0x93,0x90,0x92,0xf4,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0xaa,0xa5,0xa8,0xec,0xa7,0x9a,0x9c,0xc7,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x73,0x63,0x64,0xb6, + 0x2e,0x28,0x28,0xe2,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0xb6,0xb0,0xb2,0xe5,0xa0,0x92,0x94,0xbe,0x8d,0x79,0x7a,0xa5,0x7a,0x68,0x6a,0xb1,0x2e,0x27,0x28,0xe1,0x95,0x92,0x95,0xf4, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0xb8,0xb2,0xb4,0xe3,0x9c,0x8d,0x8e,0xb9,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x83,0x81,0x81,0xf2,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x54,0x54,0x54,0xff,0x4c,0x4c,0x4c,0xfd,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x87,0x73,0x75,0xa9,0x30,0x29,0x2a,0xe0,0x6a,0x67,0x69,0xed,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0xaa,0xa6,0xa8,0xeb,0xb8,0xb0,0xb4,0xdf,0x4d,0x42,0x43,0xd0,0x75,0x71,0x72,0xee, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0xa0,0x9d,0x9f,0xf2,0xb4,0xab,0xae,0xd9, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x73,0x63,0x64,0xb6,0x2e,0x28,0x28,0xe2,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0xb6,0xb0,0xb2,0xe5,0xa0,0x92,0x94,0xbe,0x8d,0x79,0x7a,0xa5, + 0x7a,0x68,0x6a,0xb1,0x2e,0x27,0x28,0xe1,0x95,0x92,0x95,0xf4,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0xb8,0xb2,0xb4,0xe3, + 0x9c,0x8d,0x8e,0xb9,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x83,0x81,0x81,0xf2,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x54,0x54,0x54,0xff,0x4c,0x4c,0x4c,0xfd, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x6b,0x5c,0x5e,0xba,0x2e,0x27,0x28,0xe1, + 0x8d,0x8a,0x8c,0xf3,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0xb4,0xae,0xb0,0xe6, + 0xac,0xa2,0xa3,0xcf,0x66,0x57,0x59,0xbe,0x55,0x51,0x52,0xe9,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0xb5,0xb0,0xb2,0xe4,0x93,0x82,0x84,0xaf,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x73,0x63,0x64,0xb6, + 0x2e,0x28,0x28,0xe2,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0xb6,0xb0,0xb2,0xe5,0xa0,0x92,0x94,0xbe,0x8d,0x79,0x7a,0xa5,0x7a,0x68,0x6a,0xb1,0x2e,0x27,0x28,0xe1,0x95,0x92,0x95,0xf4, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0xb8,0xb2,0xb4,0xe3,0x9c,0x8d,0x8e,0xb9,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x83,0x81,0x81,0xf2,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x54,0x54,0x54,0xff,0x4c,0x4c,0x4c,0xfd,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x4e,0x43,0x44,0xcd,0x40,0x3a,0x3c,0xe5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0x9d,0x9b,0x9d,0xf4,0xba,0xb4,0xb6,0xe1,0x9e,0x8f,0x93,0xbd,0x80,0x6e,0x70,0xad,0x38,0x31,0x31,0xe3, + 0x9a,0x97,0x9a,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0xac,0xa7,0xaa,0xea, + 0xa2,0x95,0x98,0xc2,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x73,0x63,0x64,0xb6,0x2e,0x28,0x28,0xe2,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0xb6,0xb0,0xb2,0xe5,0xa0,0x92,0x94,0xbe,0x8d,0x79,0x7a,0xa5, + 0x7a,0x68,0x6a,0xb1,0x2e,0x27,0x28,0xe1,0x95,0x92,0x95,0xf4,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0xb8,0xb2,0xb4,0xe3, + 0x9c,0x8d,0x8e,0xb9,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x82,0x80,0x81,0xf2,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x54,0x54,0x54,0xff,0x4c,0x4c,0x4c,0xfd, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8b,0x77,0x79,0xa6,0x33,0x2c,0x2c,0xde,0x61,0x5d,0x5f,0xeb, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0xa6,0xa2,0xa4,0xee,0xba,0xb4,0xb6,0xe1, + 0x92,0x7f,0x81,0xac,0x8d,0x79,0x7a,0xa5,0x3c,0x33,0x34,0xd9,0x85,0x82,0x84,0xf1,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0xa2,0xa0,0xa1,0xf0,0xb0,0xa7,0xa9,0xd4,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x73,0x63,0x64,0xb6, + 0x2e,0x28,0x28,0xe2,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0xb6,0xb0,0xb2,0xe5,0xa0,0x92,0x94,0xbe,0x8d,0x79,0x7a,0xa5,0x86,0x73,0x74,0xaa,0x66,0x57,0x59,0xbe,0xa9,0xa3,0xa6,0xe7, + 0xad,0xa9,0xaa,0xe9,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0xa6,0xa2,0xa4,0xee,0xad,0xa9,0xaa,0xe9,0xad,0xa9,0xaa,0xe9,0xad,0xa9,0xaa,0xe9,0xad,0xa9,0xaa,0xe9, + 0xad,0xa9,0xaa,0xe9,0xad,0xa9,0xaa,0xe9,0xb9,0xb3,0xb5,0xe2,0x9c,0x8d,0x8e,0xb9,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x82,0x80,0x81,0xf2,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x54,0x54,0x54,0xff,0x4c,0x4c,0x4c,0xfc,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x73,0x63,0x64,0xb5,0x2e,0x27,0x28,0xe1,0x83,0x7f,0x82,0xf1,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0xae,0xaa,0xac,0xe8,0xb2,0xa9,0xac,0xd8,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x57,0x4a,0x4b,0xc7, + 0x66,0x62,0x64,0xec,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9c,0x99,0x9c,0xf5, + 0xb8,0xb2,0xb4,0xe2,0x91,0x7e,0x80,0xaa,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x73,0x63,0x64,0xb6,0x2e,0x28,0x28,0xe2,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0xb6,0xb0,0xb2,0xe5,0xa0,0x92,0x94,0xbe,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x93,0x80,0x83,0xae,0x92,0x81,0x83,0xaf,0x3f,0x39,0x3a,0xe5,0x84,0x81,0x83,0xf1, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0xad,0xa8,0xaa,0xea,0xae,0xa4,0xa6,0xd1, + 0x94,0x82,0x84,0xaf,0x94,0x82,0x84,0xaf,0x94,0x82,0x84,0xaf,0x94,0x82,0x84,0xaf,0x94,0x82,0x84,0xaf,0x94,0x82,0x84,0xaf, + 0x8e,0x7b,0x7d,0xa8,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x82,0x80,0x81,0xf2,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x54,0x54,0x54,0xff,0x4c,0x4c,0x4c,0xfc, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x56,0x49,0x4b,0xc8,0x38,0x32,0x32,0xe3,0x9a,0x97,0x9a,0xf5, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0xb7,0xb1,0xb3,0xe3,0xa7,0x9a,0x9b,0xc7, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x72,0x62,0x63,0xb6,0x48,0x42,0x44,0xe6,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0xae,0xaa,0xac,0xe8,0x9e,0x8f,0x91,0xbc,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x73,0x63,0x64,0xb6, + 0x2e,0x28,0x28,0xe2,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0xb6,0xb0,0xb2,0xe5,0xa0,0x92,0x94,0xbe,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8b,0x78,0x7a,0xa6,0x2e,0x27,0x28,0xe1,0x80,0x7d,0x7f,0xf0,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0xad,0xa8,0xaa,0xea,0xac,0xa1,0xa3,0xce,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x82,0x80,0x81,0xf2,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x54,0x54,0x54,0xff,0x4c,0x4c,0x4c,0xfc,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x3a,0x31,0x32,0xda,0x59,0x54,0x55,0xe9,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0xa1,0x9e,0xa0,0xf1,0xba,0xb4,0xb6,0xe1,0x99,0x88,0x8a,0xb5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x89,0x75,0x77,0xa7, + 0x32,0x2b,0x2c,0xe0,0x95,0x92,0x95,0xf4,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0xa6,0xa2,0xa4,0xee,0xac,0xa1,0xa4,0xcf,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x73,0x63,0x64,0xb6,0x2e,0x28,0x28,0xe2,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0xb6,0xb0,0xb2,0xe5,0xa0,0x92,0x94,0xbe,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8b,0x78,0x7a,0xa6,0x2e,0x27,0x28,0xe1,0x80,0x7d,0x7f,0xf0, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0xad,0xa8,0xaa,0xea,0xac,0xa1,0xa3,0xce, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x83,0x80,0x81,0xf3,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x54,0x54,0x54,0xff,0x4c,0x4c,0x4c,0xfc, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x7a,0x69,0x6b,0xb0,0x2e,0x27,0x28,0xe1,0x7a,0x77,0x78,0xef,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0xaa,0xa6,0xa8,0xec,0xb8,0xb1,0xb4,0xdf,0x8e,0x7b,0x7c,0xa7, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x48,0x3e,0x3f,0xd0,0x78,0x75,0x76,0xef,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9c,0x9b,0x9c,0xf4,0xb8,0xb1,0xb4,0xe0,0x8e,0x7b,0x7d,0xa7, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x73,0x63,0x64,0xb6, + 0x2e,0x28,0x28,0xe2,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0xb6,0xb0,0xb2,0xe5,0xa0,0x92,0x94,0xbe,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8b,0x78,0x7a,0xa6,0x2e,0x27,0x28,0xe1,0x80,0x7d,0x7f,0xf0,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0xad,0xa8,0xaa,0xea,0xac,0xa1,0xa3,0xce,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x83,0x80,0x81,0xf3,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x54,0x54,0x54,0xff,0x4b,0x4b,0x4b,0xfb,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x5e,0x51,0x52,0xc3, + 0x32,0x2c,0x2c,0xe2,0x97,0x95,0x97,0xf4,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0xb3,0xae,0xaf,0xe6,0xac,0xa2,0xa4,0xcf,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x63,0x55,0x56,0xbf,0x58,0x53,0x54,0xe9,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0xb2,0xad,0xaf,0xe7,0x9a,0x89,0x8c,0xb7,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x73,0x63,0x64,0xb6,0x2e,0x28,0x28,0xe2,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0xb6,0xb0,0xb2,0xe5,0xa0,0x92,0x94,0xbe,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8b,0x78,0x7a,0xa6,0x2e,0x27,0x28,0xe1,0x80,0x7d,0x7f,0xf0, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0xad,0xa8,0xaa,0xea,0xac,0xa1,0xa3,0xce, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x83,0x80,0x81,0xf3,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x54,0x54,0x54,0xff,0x4b,0x4b,0x4b,0xfb, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x41,0x38,0x39,0xd5,0x4f,0x4a,0x4c,0xe7,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9d,0x9b,0x9d,0xf4,0xba,0xb3,0xb6,0xe2,0x9f,0x91,0x93,0xbe,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x7e,0x6c,0x6e,0xaf,0x39,0x33,0x34,0xe3,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0xa8,0xa4,0xa6,0xed,0xa8,0x9c,0x9f,0xca, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x73,0x63,0x64,0xb6, + 0x2e,0x28,0x28,0xe2,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0xb6,0xb0,0xb2,0xe5,0xa0,0x92,0x94,0xbe,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8b,0x78,0x7a,0xa6,0x2e,0x27,0x28,0xe1,0x80,0x7d,0x7f,0xf0,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0xad,0xa8,0xaa,0xea,0xac,0xa1,0xa3,0xce,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x83,0x80,0x81,0xf3,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x54,0x54,0x54,0xff,0x4b,0x4b,0x4b,0xfb,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x83,0x70,0x72,0xab,0x2e,0x28,0x28,0xe1, + 0x71,0x6d,0x6e,0xed,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9c,0x9b,0x9c,0xf4, + 0xa3,0xa0,0xa2,0xf0,0x54,0x4b,0x4c,0xd4,0x48,0x3e,0x3f,0xd0,0x48,0x3e,0x3f,0xd0,0x48,0x3e,0x3f,0xd0,0x48,0x3e,0x3f,0xd0, + 0x48,0x3e,0x3f,0xd0,0x2e,0x28,0x28,0xe1,0x88,0x85,0x86,0xf2,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0x9f,0x9c,0x9e,0xf3,0xb6,0xae,0xb0,0xdc,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x73,0x63,0x64,0xb6,0x2e,0x28,0x28,0xe2,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0xb6,0xb0,0xb2,0xe5,0xa0,0x92,0x94,0xbe,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8b,0x78,0x7a,0xa6,0x2e,0x27,0x28,0xe1,0x80,0x7d,0x7f,0xf0, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0xad,0xa8,0xaa,0xea,0xac,0xa1,0xa3,0xce, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x83,0x80,0x80,0xf3,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x54,0x54,0x54,0xff,0x4b,0x4b,0x4b,0xfb, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x67,0x58,0x59,0xbd,0x2f,0x28,0x29,0xe1,0x90,0x8d,0x90,0xf3,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x97,0x95,0x97,0xf5,0x97,0x95,0x97,0xf5, + 0x97,0x95,0x97,0xf5,0x97,0x95,0x97,0xf5,0x97,0x95,0x97,0xf5,0x97,0x95,0x97,0xf5,0x97,0x95,0x97,0xf5,0x9a,0x97,0x9a,0xf5, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0xb4,0xae,0xb0,0xe5, + 0x96,0x85,0x88,0xb2,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x73,0x63,0x64,0xb6, + 0x2e,0x28,0x28,0xe2,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0xb6,0xb0,0xb2,0xe5,0xa0,0x92,0x94,0xbe,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8b,0x78,0x7a,0xa6,0x2e,0x27,0x28,0xe1,0x80,0x7d,0x7f,0xf0,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0xad,0xa8,0xaa,0xea,0xac,0xa1,0xa3,0xce,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x83,0x80,0x80,0xf3,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x54,0x54,0x54,0xff,0x4b,0x4b,0x4b,0xfa,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x49,0x3e,0x40,0xd0,0x47,0x40,0x42,0xe6, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0xaa,0xa6,0xa8,0xeb,0xa5,0x98,0x99,0xc5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x73,0x63,0x64,0xb6,0x2e,0x28,0x28,0xe2,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0xb6,0xb0,0xb2,0xe5,0xa0,0x92,0x94,0xbe,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8b,0x78,0x7a,0xa6,0x2e,0x27,0x28,0xe1,0x80,0x7d,0x7f,0xf0, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0xad,0xa8,0xaa,0xea,0xac,0xa1,0xa3,0xce, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x83,0x80,0x80,0xf3,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x54,0x54,0x54,0xff,0x4b,0x4b,0x4b,0xfa, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x88,0x75,0x77,0xa7,0x31,0x2a,0x2b,0xe0,0x67,0x63,0x64,0xec,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0xa1,0x9e,0xa0,0xf1, + 0xb3,0xaa,0xac,0xd7,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x73,0x63,0x64,0xb6, + 0x2e,0x28,0x28,0xe2,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0xb6,0xb0,0xb2,0xe5,0xa0,0x92,0x94,0xbe,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8c,0x78,0x7a,0xa5,0x2e,0x27,0x28,0xe1,0x80,0x7d,0x7f,0xf0,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0xad,0xa8,0xaa,0xea,0xac,0xa1,0xa3,0xce,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x83,0x80,0x80,0xf3,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x54,0x54,0x54,0xff,0x4b,0x4b,0x4b,0xfa,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x6e,0x5e,0x5f,0xb8,0x2e,0x27,0x28,0xe1,0x89,0x86,0x88,0xf2, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0xb6,0xb0,0xb2,0xe3,0x93,0x80,0x82,0xad,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x73,0x63,0x64,0xb6,0x2e,0x28,0x28,0xe2,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0xb6,0xb0,0xb2,0xe5,0xa0,0x92,0x94,0xbe,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x34,0x2d,0x2d,0xdd,0x7f,0x7c,0x7d,0xf0, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0xa7,0xa3,0xa5,0xed,0xad,0xa3,0xa5,0xd0, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x83,0x80,0x80,0xf3,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x54,0x54,0x54,0xff,0x4b,0x4b,0x4b,0xfa, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x51,0x46,0x47,0xcb,0x3c,0x37,0x37,0xe4,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0xad,0xa9,0xaa,0xe9,0xa1,0x92,0x94,0xbf,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x73,0x63,0x64,0xb6, + 0x2e,0x28,0x28,0xe2,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0xb6,0xb0,0xb2,0xe5,0xa0,0x92,0x94,0xbe,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x3d,0x35,0x35,0xd7,0x74,0x70,0x73,0xee,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0x9f,0x9c,0x9f,0xf2,0xb6,0xaf,0xb1,0xdd,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x83,0x80,0x80,0xf3,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x54,0x54,0x54,0xff,0x4b,0x4b,0x4b,0xfa,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8c,0x78,0x7a,0xa5,0x35,0x2d,0x2e,0xdd,0x5e,0x59,0x5b,0xea,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9e,0x9b,0x9d,0xf3,0xb0,0xab,0xad,0xe8,0xb0,0xab,0xad,0xe8, + 0xb0,0xab,0xad,0xe8,0xb0,0xab,0xad,0xe8,0xb0,0xab,0xad,0xe8,0xb0,0xab,0xad,0xe8,0xb0,0xab,0xad,0xe8,0xb0,0xab,0xad,0xe8, + 0xb0,0xab,0xad,0xe8,0xb0,0xab,0xad,0xe8,0xaf,0xa9,0xac,0xe9,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0xa4,0xa0,0xa3,0xef,0xb0,0xa5,0xa8,0xd2,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x73,0x63,0x64,0xb6,0x2e,0x28,0x28,0xe2,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0xb6,0xb0,0xb2,0xe5,0xa0,0x92,0x94,0xbe,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x48,0x3d,0x3e,0xd1,0x6a,0x65,0x67,0xec, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0xa1,0x9e,0xa0,0xf1, + 0x6d,0x61,0x64,0xce,0x6b,0x5c,0x5e,0xba,0x6c,0x5d,0x5e,0xba,0x6c,0x5d,0x5e,0xba,0x7c,0x6a,0x6d,0xb0,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x83,0x80,0x80,0xf3,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x54,0x54,0x54,0xff,0x4b,0x4b,0x4b,0xf9, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x76,0x65,0x67,0xb3, + 0x2e,0x27,0x28,0xe1,0x80,0x7d,0x7f,0xf0,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0xa6,0xa2,0xa5,0xee,0xba,0xb4,0xb6,0xe1,0x93,0x81,0x83,0xae,0x8f,0x7c,0x7e,0xa9,0x8f,0x7c,0x7e,0xa9,0x8f,0x7c,0x7e,0xa9, + 0x8f,0x7c,0x7e,0xa9,0x8f,0x7c,0x7e,0xa9,0x8f,0x7c,0x7e,0xa9,0x8f,0x7c,0x7e,0xa9,0x8f,0x7c,0x7e,0xa9,0x8f,0x7c,0x7e,0xa9, + 0x42,0x3a,0x3a,0xda,0x85,0x82,0x85,0xf2,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9c,0x99,0x9c,0xf5,0xb8,0xb1,0xb4,0xe1,0x8f,0x7c,0x7e,0xa9,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x73,0x63,0x64,0xb6, + 0x2e,0x28,0x28,0xe2,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0xb6,0xb0,0xb2,0xe5,0xa0,0x92,0x94,0xbe,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x53,0x47,0x48,0xca,0x5e,0x59,0x5c,0xea,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x8b,0x88,0x8a,0xf2,0x71,0x6e,0x70,0xee, + 0x6f,0x6b,0x6b,0xed,0x8b,0x84,0x84,0xdc,0xa2,0x94,0x96,0xc1,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x83,0x80,0x80,0xf3,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x54,0x54,0x54,0xff,0x4b,0x4b,0x4b,0xf9,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x5a,0x4c,0x4e,0xc6,0x35,0x2f,0x2f,0xe3,0x99,0x97,0x99,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0xae,0xaa,0xac,0xe8,0xb1,0xa9,0xac,0xd7,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x57,0x4a,0x4b,0xc7,0x66,0x62,0x64,0xec,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0xb0,0xab,0xad,0xe8,0x9d,0x8e,0x91,0xbb, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x73,0x63,0x64,0xb6,0x2e,0x28,0x28,0xe2,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0xb6,0xb0,0xb2,0xe5,0xa0,0x92,0x94,0xbe,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x75,0x64,0x66,0xb4,0x4d,0x48,0x4a,0xe7, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0xaa,0xa6,0xa8,0xec,0xb0,0xa7,0xa9,0xd4, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x83,0x81,0x81,0xf4,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x54,0x54,0x54,0xff,0x4b,0x4b,0x4b,0xf9, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x3c,0x34,0x35,0xd8, + 0x55,0x50,0x51,0xe8,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0xb8,0xb2,0xb4,0xe3,0xa4,0x98,0x9a,0xc5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x72,0x62,0x63,0xb6,0x47,0x41,0x43,0xe6,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0xa6,0xa2,0xa5,0xee,0xac,0xa0,0xa3,0xcd,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x73,0x63,0x64,0xb6, + 0x2e,0x28,0x28,0xe2,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0xb6,0xb0,0xb2,0xe5,0xa0,0x92,0x94,0xbe,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x41,0x38,0x39,0xd6,0x8d,0x8b,0x8d,0xf3,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0xaa,0xa6,0xa8,0xec,0xb0,0xa7,0xa9,0xd4,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x83,0x81,0x81,0xf4,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x54,0x54,0x54,0xff,0x4b,0x4b,0x4b,0xf9,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x7e,0x6c,0x6e,0xae,0x2e,0x27,0x28,0xe1,0x76,0x72,0x75,0xee,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0xa2,0x9e,0xa1,0xf1,0xba,0xb4,0xb6,0xe1,0x98,0x87,0x8a,0xb4,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8a,0x76,0x78,0xa7,0x32,0x2b,0x2b,0xe0,0x94,0x91,0x94,0xf4, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9d,0x9b,0x9d,0xf4,0xb8,0xb0,0xb2,0xde, + 0x8e,0x7a,0x7c,0xa6,0x8d,0x79,0x7a,0xa5,0x73,0x63,0x64,0xb6,0x2e,0x28,0x28,0xe2,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0xb6,0xb0,0xb2,0xe5,0xa0,0x92,0x94,0xbe,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x77,0x66,0x68,0xb3, + 0x64,0x5e,0x60,0xe5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0xaa,0xa6,0xa8,0xec,0xb0,0xa7,0xa9,0xd4, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x83,0x81,0x81,0xf4,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x54,0x54,0x54,0xff,0x4a,0x4a,0x4a,0xf8, + 0x7e,0x7e,0x7e,0xf9,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x8c,0x7a,0x7b,0xaa,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x62,0x54,0x55,0xc1,0x30,0x2a,0x2b,0xe2, + 0x96,0x93,0x95,0xf4,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0xaa,0xa6,0xa8,0xeb, + 0xb8,0xb0,0xb3,0xde,0x8e,0x7a,0x7c,0xa6,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x49,0x3e,0x40,0xd0,0x76,0x73,0x75,0xef,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0xb2,0xad,0xaf,0xe6,0x99,0x88,0x8a,0xb5,0x8d,0x79,0x7a,0xa5,0x73,0x63,0x64,0xb6, + 0x2e,0x28,0x28,0xe2,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0xb6,0xb0,0xb2,0xe5,0xa0,0x92,0x94,0xbe,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x87,0x74,0x76,0xaa,0x7f,0x77,0x7b,0xdc,0x9e,0x9b,0x9d,0xf3, + 0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5,0x9b,0x98,0x9b,0xf5, + 0x9b,0x98,0x9b,0xf5,0xaa,0xa6,0xa8,0xec,0xb0,0xa7,0xa9,0xd4,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x83,0x81,0x81,0xf6,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x53,0x53,0x53,0xff,0x4a,0x4a,0x4a,0xf8,0x66,0x66,0x66,0xc9,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x89,0x7b,0x7c,0xbb,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x7e,0x6c,0x6e,0xaf,0x85,0x78,0x7a,0xc2,0xb2,0xad,0xaf,0xe6,0xb2,0xad,0xaf,0xe6,0xb2,0xad,0xaf,0xe6, + 0xb2,0xad,0xaf,0xe6,0xb2,0xad,0xaf,0xe6,0xb8,0xb2,0xb4,0xe3,0xac,0xa1,0xa3,0xce,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x80,0x6d,0x6f,0xad,0x8d,0x80,0x82,0xc7, + 0xb2,0xad,0xaf,0xe6,0xb2,0xad,0xaf,0xe6,0xb2,0xad,0xaf,0xe6,0xb2,0xad,0xaf,0xe6,0xb2,0xad,0xaf,0xe6,0xb6,0xb0,0xb2,0xe3, + 0xa6,0x99,0x9d,0xc8,0x8d,0x79,0x7a,0xa5,0x87,0x73,0x75,0xa9,0x75,0x64,0x66,0xb5,0xb2,0xad,0xaf,0xe6,0xb2,0xad,0xaf,0xe6, + 0xb2,0xad,0xaf,0xe6,0xb2,0xad,0xaf,0xe6,0xb2,0xad,0xaf,0xe6,0xb9,0xb3,0xb5,0xe2,0xa0,0x92,0x94,0xbe,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x97,0x86,0x88,0xb2,0xa6,0x9a,0x9d,0xcb,0xa6,0x9d,0xa1,0xd7,0xac,0xa5,0xa7,0xe1, + 0xb1,0xac,0xae,0xe6,0xb2,0xad,0xaf,0xe6,0xb2,0xad,0xaf,0xe6,0xb2,0xad,0xaf,0xe6,0xb6,0xb1,0xb2,0xe4,0xb0,0xa7,0xa9,0xd4, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8c,0x79,0x7b,0xa9, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x81,0x81,0x81,0xff,0x4e,0x4e,0x4e,0xff,0x4a,0x4a,0x4a,0xf8, + 0x4b,0x4b,0x4b,0x94,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x8a,0x7f,0x80,0xd8,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8a,0x7a,0x7c,0xb7,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x79,0x79,0x79,0xff,0x4d,0x4d,0x4d,0xff,0x4a,0x4a,0x4a,0xf8,0x48,0x48,0x48,0xae,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x83,0x82,0x82,0xfb,0x8c,0x79,0x7b,0xab,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x86,0x7f,0x7f,0xde, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x71,0x71,0x71,0xff,0x4d,0x4d,0x4d,0xff,0x46,0x46,0x46,0xe8, + 0x25,0x25,0x25,0x6a,0x80,0x80,0x80,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x84,0x7f,0x7f,0xe7, + 0x8b,0x7a,0x7b,0xb0,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5,0x8d,0x79,0x7a,0xa5, + 0x8b,0x7a,0x7b,0xaf,0x85,0x7e,0x7f,0xdb,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x68,0x68,0x68,0xff,0x4d,0x4d,0x4d,0xff,0x39,0x39,0x39,0xc0,0x0a,0x0a,0x0a,0x23,0x66,0x66,0x66,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x81,0x80,0x81,0xfb,0x85,0x7f,0x80,0xe5,0x86,0x7d,0x7e,0xd7, + 0x88,0x7c,0x7d,0xca,0x89,0x7c,0x7d,0xc7,0x89,0x7c,0x7d,0xc7,0x89,0x7c,0x7d,0xc7,0x89,0x7c,0x7d,0xc7,0x89,0x7c,0x7d,0xc7, + 0x89,0x7c,0x7d,0xc7,0x89,0x7c,0x7d,0xc7,0x89,0x7c,0x7d,0xc7,0x89,0x7c,0x7d,0xc7,0x89,0x7c,0x7d,0xc7,0x89,0x7c,0x7d,0xc7, + 0x89,0x7c,0x7d,0xc7,0x89,0x7c,0x7d,0xc7,0x89,0x7c,0x7d,0xc7,0x89,0x7c,0x7d,0xc7,0x89,0x7c,0x7d,0xc7,0x89,0x7c,0x7d,0xc7, + 0x89,0x7c,0x7d,0xc7,0x89,0x7c,0x7d,0xc7,0x89,0x7c,0x7d,0xc7,0x89,0x7c,0x7d,0xc7,0x89,0x7c,0x7d,0xc7,0x89,0x7c,0x7d,0xc7, + 0x89,0x7c,0x7d,0xc7,0x89,0x7c,0x7d,0xc7,0x89,0x7c,0x7d,0xc7,0x89,0x7c,0x7d,0xc7,0x89,0x7c,0x7d,0xc7,0x89,0x7c,0x7d,0xc7, + 0x89,0x7c,0x7d,0xc7,0x89,0x7c,0x7d,0xc7,0x89,0x7c,0x7d,0xc7,0x89,0x7c,0x7d,0xc7,0x89,0x7c,0x7d,0xc7,0x89,0x7c,0x7d,0xc7, + 0x89,0x7c,0x7d,0xc7,0x89,0x7c,0x7d,0xc7,0x89,0x7c,0x7d,0xc7,0x89,0x7c,0x7d,0xc7,0x89,0x7c,0x7d,0xc7,0x89,0x7c,0x7d,0xc7, + 0x89,0x7c,0x7d,0xc7,0x89,0x7c,0x7d,0xc7,0x89,0x7c,0x7d,0xc7,0x89,0x7c,0x7d,0xc7,0x89,0x7c,0x7d,0xc7,0x89,0x7c,0x7d,0xc7, + 0x89,0x7c,0x7d,0xc7,0x89,0x7c,0x7d,0xc7,0x89,0x7c,0x7d,0xc7,0x89,0x7c,0x7d,0xc7,0x89,0x7c,0x7d,0xc7,0x89,0x7c,0x7d,0xc7, + 0x89,0x7c,0x7d,0xc7,0x89,0x7c,0x7d,0xc7,0x89,0x7c,0x7d,0xc7,0x89,0x7c,0x7d,0xc7,0x88,0x7c,0x7d,0xc6,0x88,0x7c,0x7d,0xc8, + 0x87,0x7d,0x7e,0xce,0x86,0x7d,0x7e,0xd4,0x85,0x7f,0x80,0xe6,0x81,0x81,0x81,0xfe,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x7b,0x7b,0x7b,0xff,0x51,0x51,0x51,0xff,0x4d,0x4d,0x4d,0xff,0x2d,0x2d,0x2d,0x98, + 0x00,0x00,0x00,0x00,0x46,0x46,0x46,0xe7,0x79,0x79,0x79,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x7d,0x7d,0x7d,0xff,0x54,0x54,0x54,0xff, + 0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x21,0x21,0x21,0x70,0x00,0x00,0x00,0x00,0x1c,0x1c,0x1c,0x5e,0x55,0x55,0x55,0xff, + 0x75,0x75,0x75,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x7f,0x7f,0x7f,0xff,0x57,0x57,0x57,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x48,0x48,0x48,0xf1,0x0c,0x0c,0x0c,0x28, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x39,0x39,0x39,0xbd,0x4d,0x4d,0x4d,0xff,0x60,0x60,0x60,0xff,0x7d,0x7d,0x7d,0xff, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff,0x82,0x82,0x82,0xff, + 0x82,0x82,0x82,0xff,0x76,0x76,0x76,0xff,0x62,0x62,0x62,0xff,0x50,0x50,0x50,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff, + 0x4a,0x4a,0x4a,0xf8,0x13,0x13,0x13,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0x0b,0x0b,0x27, + 0x45,0x45,0x45,0xe6,0x4d,0x4d,0x4d,0xff,0x4e,0x4e,0x4e,0xff,0x57,0x57,0x57,0xff,0x5e,0x5e,0x5e,0xff,0x66,0x66,0x66,0xff, + 0x6d,0x6d,0x6d,0xff,0x6e,0x6e,0x6e,0xff,0x6e,0x6e,0x6e,0xff,0x6e,0x6e,0x6e,0xff,0x6e,0x6e,0x6e,0xff,0x6e,0x6e,0x6e,0xff, + 0x6e,0x6e,0x6e,0xff,0x6e,0x6e,0x6e,0xff,0x6e,0x6e,0x6e,0xff,0x6e,0x6e,0x6e,0xff,0x6e,0x6e,0x6e,0xff,0x6e,0x6e,0x6e,0xff, + 0x6e,0x6e,0x6e,0xff,0x6e,0x6e,0x6e,0xff,0x6e,0x6e,0x6e,0xff,0x6e,0x6e,0x6e,0xff,0x6e,0x6e,0x6e,0xff,0x6e,0x6e,0x6e,0xff, + 0x6e,0x6e,0x6e,0xff,0x6e,0x6e,0x6e,0xff,0x6e,0x6e,0x6e,0xff,0x6e,0x6e,0x6e,0xff,0x6e,0x6e,0x6e,0xff,0x6e,0x6e,0x6e,0xff, + 0x6e,0x6e,0x6e,0xff,0x6e,0x6e,0x6e,0xff,0x6e,0x6e,0x6e,0xff,0x6e,0x6e,0x6e,0xff,0x6e,0x6e,0x6e,0xff,0x6e,0x6e,0x6e,0xff, + 0x6e,0x6e,0x6e,0xff,0x6e,0x6e,0x6e,0xff,0x6e,0x6e,0x6e,0xff,0x6e,0x6e,0x6e,0xff,0x6e,0x6e,0x6e,0xff,0x6e,0x6e,0x6e,0xff, + 0x6e,0x6e,0x6e,0xff,0x6e,0x6e,0x6e,0xff,0x6e,0x6e,0x6e,0xff,0x6e,0x6e,0x6e,0xff,0x6e,0x6e,0x6e,0xff,0x6e,0x6e,0x6e,0xff, + 0x6e,0x6e,0x6e,0xff,0x6e,0x6e,0x6e,0xff,0x6e,0x6e,0x6e,0xff,0x6e,0x6e,0x6e,0xff,0x6e,0x6e,0x6e,0xff,0x6e,0x6e,0x6e,0xff, + 0x6e,0x6e,0x6e,0xff,0x6e,0x6e,0x6e,0xff,0x6e,0x6e,0x6e,0xff,0x6e,0x6e,0x6e,0xff,0x6e,0x6e,0x6e,0xff,0x6e,0x6e,0x6e,0xff, + 0x6e,0x6e,0x6e,0xff,0x6e,0x6e,0x6e,0xff,0x6e,0x6e,0x6e,0xff,0x6e,0x6e,0x6e,0xff,0x6e,0x6e,0x6e,0xff,0x6c,0x6c,0x6c,0xff, + 0x68,0x68,0x68,0xff,0x65,0x65,0x65,0xff,0x61,0x61,0x61,0xff,0x54,0x54,0x54,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff, + 0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4c,0x4c,0x4c,0xfc,0x18,0x18,0x18,0x51,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x03,0x03,0x0c,0x29,0x29,0x29,0x89,0x4b,0x4b,0x4b,0xf9, + 0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff, + 0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff, + 0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff, + 0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff, + 0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff, + 0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff, + 0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff, + 0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff, + 0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff, + 0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff, + 0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff, + 0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4c,0x4c,0x4c,0xfc,0x36,0x36,0x36,0xb4,0x15,0x15,0x15,0x46, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0x0b,0x0b,0x25,0x25,0x25,0x25,0x7b,0x30,0x30,0x30,0xa1,0x3c,0x3c,0x3c,0xc8, + 0x47,0x47,0x47,0xee,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff, + 0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff, + 0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff, + 0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff, + 0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff, + 0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff, + 0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff, + 0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff, + 0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff, + 0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff,0x4d,0x4d,0x4d,0xff, + 0x4c,0x4c,0x4c,0xfd,0x47,0x47,0x47,0xec,0x42,0x42,0x42,0xdd,0x3e,0x3e,0x3e,0xce,0x38,0x38,0x38,0xbc,0x23,0x23,0x23,0x75, + 0x07,0x07,0x07,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00} +}; diff --git a/client/x11/red_window.cpp b/client/x11/red_window.cpp index 5601232a..2b4228a2 100644 --- a/client/x11/red_window.cpp +++ b/client/x11/red_window.cpp @@ -67,6 +67,9 @@ static Atom wm_state_fullscreen; static Atom wm_user_time; +static RedWindow* focus_window; +static unsigned long focus_serial = 0; + #define USE_X11_KEYCODE #ifdef USE_X11_KEYCODE @@ -734,6 +737,15 @@ void RedWindow_p::win_proc(XEvent& event) break; case KeyRelease: { RedKey key = to_red_key_code(event.xkey.keycode); + XEvent next_event; + if (XCheckWindowEvent(x_display, red_window->_win, ~long(0), &next_event)) { + XPutBackEvent(x_display, &next_event); + if ((next_event.type == KeyPress) && + (event.xkey.keycode == next_event.xkey.keycode) && + (event.xkey.time == next_event.xkey.time)) { + break; + } + } if (key != REDKEY_KOREAN_HANGUL && key != REDKEY_KOREAN_HANGUL_HANJA) { red_window->get_listener().on_key_release(key); } @@ -772,17 +784,42 @@ void RedWindow_p::win_proc(XEvent& event) break; } case FocusIn: + if (event.xany.serial < focus_serial) { + DBG(0, "Ignored FocusIn win=%p (serial=%d, Last foucs serial=%d)", + red_window, event.xany.serial, focus_serial); + break; + } + if (!red_window->_ignore_foucs) { + RedWindow* prev_focus_window = focus_window; + focus_window = red_window; + focus_serial = event.xany.serial; + if (prev_focus_window && (red_window != prev_focus_window)) { + prev_focus_window->on_focus_out(); + } red_window->on_focus_in(); } else { red_window->_shadow_foucs_state = true; + memcpy(&red_window->_shadow_focus_event, &event, sizeof(XEvent)); } break; case FocusOut: - if (! red_window->_ignore_foucs) { + if (event.xany.serial <= focus_serial) { + DBG(0, "Ignored FocusOut win=%p (serial=%d, Last foucs serial=%d)", + red_window, event.xany.serial, focus_serial); + break; + } + + if (!red_window->_ignore_foucs) { + focus_serial = event.xany.serial; + if (red_window != focus_window) { + break; + } + focus_window = NULL; red_window->on_focus_out(); } else { red_window->_shadow_foucs_state = false; + memcpy(&red_window->_shadow_focus_event, &event, sizeof(XEvent)); } break; case ConfigureNotify: @@ -805,10 +842,20 @@ void RedWindow_p::win_proc(XEvent& event) red_window->set_visibale(false); break; case EnterNotify: - red_window->on_pointer_enter(); + if (!red_window->_ignore_pointer) { + red_window->on_pointer_enter(); + } else { + red_window->_shadow_pointer_state = true; + memcpy(&red_window->_shadow_pointer_event, &event, sizeof(XEvent)); + } break; case LeaveNotify: - red_window->on_pointer_leave(); + if (!red_window->_ignore_pointer) { + red_window->on_pointer_leave(); + } else { + red_window->_shadow_pointer_state = false; + memcpy(&red_window->_shadow_pointer_event, &event, sizeof(XEvent)); + } break; } } @@ -931,6 +978,7 @@ RedWindow_p::RedWindow_p() , _glcont_copy (NULL) , _icon (NULL) , _ignore_foucs (false) + , _ignore_pointer (false) { } @@ -1101,7 +1149,8 @@ RedWindow::RedWindow(RedWindow::Listener& listener, int screen) , _cursor_visible (true) , _focused (false) , _pointer_in_window (false) - , _key_interception (false) + , _trace_key_interception (false) + , _key_interception_on (false) , _menu (NULL) { ASSERT(x_display); @@ -1501,33 +1550,67 @@ void RedWindow::do_start_key_interception() { // Working with KDE: XGrabKeyboard generate focusout and focusin events // while we have the focus. This behavior trigger infinite recursive. for - // that reason we temporary disable focus event handling. + // that reason we temporary disable focus event handling. Same happens + // LeaveNotify and EnterNotify. ASSERT(_focused); _ignore_foucs = true; + _ignore_pointer = true; _shadow_foucs_state = true; + _shadow_pointer_state = true; + _shadow_focus_event.xany.serial = 0; XGrabKeyboard(x_display, _win, True, GrabModeAsync, GrabModeAsync, CurrentTime); sync(); _listener.on_start_key_interception(); _ignore_foucs = false; + _ignore_pointer = false; + _key_interception_on = true; if (!_shadow_foucs_state) { - on_focus_out(); + DBG(0, "put back shadowed focus out"); + XPutBackEvent(x_display, &_shadow_focus_event); + } else if (_shadow_focus_event.xany.serial > 0) { + ASSERT(focus_window == this); + focus_serial = _shadow_focus_event.xany.serial; + } + + if (!_shadow_pointer_state) { + DBG(0, "put back shadowed pointer leave"); + XPutBackEvent(x_display, &_shadow_pointer_event); } } void RedWindow::do_stop_key_interception() { + _ignore_foucs = true; + _ignore_pointer = true; + _shadow_foucs_state = _focused; + _shadow_pointer_state = _pointer_in_window; + _shadow_focus_event.xany.serial = 0; XUngrabKeyboard(x_display, CurrentTime); sync(); + _key_interception_on = false; _listener.on_stop_key_interception(); + _ignore_foucs = false; + _ignore_pointer = false; + if (_shadow_foucs_state != _focused) { + DBG(0, "put back shadowed focus event"); + XPutBackEvent(x_display, &_shadow_focus_event); + } else if (_shadow_focus_event.xany.serial > 0) { + focus_serial = _shadow_focus_event.xany.serial; + } + + if (_shadow_pointer_state != _pointer_in_window) { + DBG(0, "put back shadowed pointer event"); + XPutBackEvent(x_display, &_shadow_pointer_event); + } } void RedWindow::start_key_interception() { - if (_key_interception) { + if (_trace_key_interception) { return; } - _key_interception = true; + _trace_key_interception = true; if (_pointer_in_window && _focused) { do_start_key_interception(); } @@ -1535,11 +1618,11 @@ void RedWindow::start_key_interception() void RedWindow::stop_key_interception() { - if (!_key_interception) { + if (!_trace_key_interception) { return; } - _key_interception = false; - if (_focused && _pointer_in_window) { + _trace_key_interception = false; + if (_key_interception_on) { do_stop_key_interception(); } } @@ -1840,11 +1923,11 @@ void RedWindow::on_focus_in() return; } _focused = true; - if (_key_interception && _pointer_in_window) { - do_start_key_interception(); - } XPlatform::on_focus_in(); get_listener().on_activate(); + if (_trace_key_interception && _pointer_in_window) { + do_start_key_interception(); + } } void RedWindow::on_focus_out() @@ -1853,9 +1936,11 @@ void RedWindow::on_focus_out() return; } _focused = false; - do_stop_key_interception(); - XPlatform::on_focus_out(); + if (_key_interception_on) { + do_stop_key_interception(); + } get_listener().on_deactivate(); + XPlatform::on_focus_out(); } void RedWindow::on_pointer_enter() @@ -1865,7 +1950,7 @@ void RedWindow::on_pointer_enter() } _pointer_in_window = true; _listener.on_pointer_enter(); - if (_focused && _key_interception) { + if (_focused && _trace_key_interception) { do_start_key_interception(); } } @@ -1877,7 +1962,7 @@ void RedWindow::on_pointer_leave() } _pointer_in_window = false; _listener.on_pointer_leave(); - if (_focused && _key_interception) { + if (_key_interception_on) { do_stop_key_interception(); } } diff --git a/client/x11/red_window_p.h b/client/x11/red_window_p.h index a9ae795b..8b98b4a6 100644 --- a/client/x11/red_window_p.h +++ b/client/x11/red_window_p.h @@ -19,6 +19,7 @@ #define _H_RED_WINDOW_P #include <GL/glx.h> +#include <X11/Xlib.h> typedef Window Win; typedef GLXContext RedGlContext; @@ -61,6 +62,10 @@ protected: Icon* _icon; bool _ignore_foucs; bool _shadow_foucs_state; + XEvent _shadow_focus_event; + bool _ignore_pointer; + bool _shadow_pointer_state; + XEvent _shadow_pointer_event; Colormap _colormap; }; diff --git a/client/x11/res.cpp b/client/x11/res.cpp index 8f3a5487..b4615f82 100644 --- a/client/x11/res.cpp +++ b/client/x11/res.cpp @@ -36,6 +36,14 @@ static const PixmapHeader info_image = { _info_image.width * 4, }; +#include "images/alt_image.c" + +static const PixmapHeader alt_image = { + (uint8_t *)_alt_image.pixel_data, + _alt_image.width, + _alt_image.height, + _alt_image.width * 4, +}; typedef struct ResImage { int id; @@ -45,6 +53,7 @@ typedef struct ResImage { static const ResImage res_image_map[] = { { SPLASH_IMAGE_RES_ID, &splash_image}, { INFO_IMAGE_RES_ID, &info_image}, + { ALT_IMAGE_RES_ID, &alt_image}, {0, NULL}, }; diff --git a/client/x11/resource.h b/client/x11/resource.h index 276c2339..df953466 100644 --- a/client/x11/resource.h +++ b/client/x11/resource.h @@ -21,6 +21,7 @@ #define SPLASH_IMAGE_RES_ID 1 #define INFO_IMAGE_RES_ID 2 #define RED_ICON_RES_ID 3 +#define ALT_IMAGE_RES_ID 4 #endif |