added test for playing sound from memory
[wxWidgets.git] / samples / sound / sound.cpp
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: sound.cpp
3 // Purpose: Example of sound playing in wxWidgets
4 // Author: Vaclav Slavik
5 // Modified by:
6 // Created: 2004/01/29
7 // RCS-ID: $Id$
8 // Copyright: (c) 2004 Vaclav Salvik
9 // Licence: wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
11
12 #include "wx/wxprec.h"
13
14 #ifdef __BORLANDC__
15 #pragma hdrstop
16 #endif
17
18 // for all others, include the necessary headers (this file is usually all you
19 // need because it includes almost all "standard" wxWidgets headers)
20 #ifndef WX_PRECOMP
21 #include "wx/app.h"
22 #include "wx/frame.h"
23 #include "wx/menu.h"
24 #include "wx/msgdlg.h"
25 #include "wx/icon.h"
26 #include "wx/textctrl.h"
27 #include "wx/filedlg.h"
28 #endif
29
30 #include "wx/sound.h"
31 #include "wx/numdlg.h"
32 #include "wx/textdlg.h"
33
34 // ----------------------------------------------------------------------------
35 // resources
36 // ----------------------------------------------------------------------------
37
38 // the application icon (under Windows and OS/2 it is in resources)
39 #if defined(__WXGTK__) || defined(__WXMOTIF__) || defined(__WXMAC__) || defined(__WXMGL__) || defined(__WXX11__)
40 #include "../sample.xpm"
41 #endif
42
43 #define WAV_FILE _T("doggrowl.wav")
44
45 // ----------------------------------------------------------------------------
46 // private classes
47 // ----------------------------------------------------------------------------
48
49 class MyApp : public wxApp
50 {
51 public:
52 virtual bool OnInit();
53 };
54
55
56 class MyFrame : public wxFrame
57 {
58 public:
59 // ctor(s)
60 MyFrame(const wxString& title);
61 ~MyFrame() { delete m_sound; }
62
63 // event handlers (these functions should _not_ be virtual)
64 void OnSelectFile(wxCommandEvent& event);
65 #ifdef __WXMSW__
66 void OnSelectResource(wxCommandEvent& event);
67 #endif // __WXMSW__
68 void OnSelectMemory(wxCommandEvent& event);
69 void OnQuit(wxCommandEvent& event);
70
71 void OnPlaySync(wxCommandEvent& event);
72 void OnPlayAsync(wxCommandEvent& event);
73 void OnPlayAsyncOnStack(wxCommandEvent& event);
74 void OnPlayLoop(wxCommandEvent& event);
75 void OnStop(wxCommandEvent& event);
76
77 void OnAbout(wxCommandEvent& event);
78
79 void NotifyUsingFile(const wxString& name);
80
81
82 private:
83 bool CreateSound(wxSound& snd) const;
84
85 wxSound* m_sound;
86 wxString m_soundFile;
87 #ifdef __WXMSW__
88 wxString m_soundRes;
89 #endif // __WXMSW__
90 bool m_useMemory;
91
92 wxTextCtrl* m_tc;
93
94 // any class wishing to process wxWidgets events must use this macro
95 DECLARE_EVENT_TABLE()
96 };
97
98 // ----------------------------------------------------------------------------
99 // constants
100 // ----------------------------------------------------------------------------
101
102 // IDs for the controls and the menu commands
103 enum
104 {
105 // menu items
106 Sound_SelectFile = wxID_HIGHEST + 1,
107 #ifdef __WXMSW__
108 Sound_SelectResource,
109 #endif // __WXMSW__
110 Sound_SelectMemory,
111
112 Sound_PlaySync,
113 Sound_PlayAsync,
114 Sound_PlayAsyncOnStack,
115 Sound_PlayLoop,
116 Sound_Stop,
117
118 Sound_Quit = wxID_EXIT,
119 Sound_About = wxID_ABOUT
120 };
121
122 // ----------------------------------------------------------------------------
123 // event tables and other macros for wxWidgets
124 // ----------------------------------------------------------------------------
125
126 // the event tables connect the wxWidgets events with the functions (event
127 // handlers) which process them. It can be also done at run-time, but for the
128 // simple menu events like this the static method is much simpler.
129 BEGIN_EVENT_TABLE(MyFrame, wxFrame)
130 EVT_MENU(Sound_SelectFile, MyFrame::OnSelectFile)
131 #ifdef __WXMSW__
132 EVT_MENU(Sound_SelectResource, MyFrame::OnSelectResource)
133 #endif // __WXMSW__
134 EVT_MENU(Sound_SelectMemory, MyFrame::OnSelectMemory)
135 EVT_MENU(Sound_Quit, MyFrame::OnQuit)
136 EVT_MENU(Sound_About, MyFrame::OnAbout)
137 EVT_MENU(Sound_PlaySync, MyFrame::OnPlaySync)
138 EVT_MENU(Sound_PlayAsync, MyFrame::OnPlayAsync)
139 EVT_MENU(Sound_PlayAsyncOnStack, MyFrame::OnPlayAsyncOnStack)
140 EVT_MENU(Sound_PlayLoop, MyFrame::OnPlayLoop)
141 EVT_MENU(Sound_Stop, MyFrame::OnStop)
142 END_EVENT_TABLE()
143
144 // Create a new application object: this macro will allow wxWidgets to create
145 // the application object during program execution (it's better than using a
146 // static object for many reasons) and also implements the accessor function
147 // wxGetApp() which will return the reference of the right type (i.e. MyApp and
148 // not wxApp)
149 IMPLEMENT_APP(MyApp)
150
151 // ============================================================================
152 // implementation
153 // ============================================================================
154
155 // ----------------------------------------------------------------------------
156 // the application class
157 // ----------------------------------------------------------------------------
158
159 // 'Main program' equivalent: the program execution "starts" here
160 bool MyApp::OnInit()
161 {
162 // create the main application window
163 MyFrame *frame = new MyFrame(_T("wxWidgets Sound Sample"));
164
165 // and show it (the frames, unlike simple controls, are not shown when
166 // created initially)
167 frame->Show(true);
168
169 // success: wxApp::OnRun() will be called which will enter the main message
170 // loop and the application will run. If we returned false here, the
171 // application would exit immediately.
172 return true;
173 }
174
175 // ----------------------------------------------------------------------------
176 // main frame
177 // ----------------------------------------------------------------------------
178
179 // frame constructor
180 MyFrame::MyFrame(const wxString& title)
181 : wxFrame(NULL, wxID_ANY, title)
182 {
183 m_sound = NULL;
184 m_soundFile = WAV_FILE;
185 m_useMemory = false;
186
187 // set the frame icon
188 SetIcon(wxICON(sample));
189
190 wxMenu *menuFile = new wxMenu;
191 menuFile->Append(Sound_SelectFile, _T("Select WAV &file...\tCtrl-O"), _T("Select a new wav file to play"));
192 #ifdef __WXMSW__
193 menuFile->Append(Sound_SelectResource, _T("Select WAV &resource...\tCtrl-R"), _T("Select a new resource to play"));
194 #endif // __WXMSW__
195 menuFile->Append(Sound_SelectMemory, _T("Select WAV &data\tCtrl-M"), _T("Choose to play from memory buffer"));
196 menuFile->Append(Sound_Quit, _T("E&xit\tAlt-X"), _T("Quit this program"));
197
198 wxMenu *playMenu = new wxMenu;
199 playMenu->Append(Sound_PlaySync, _T("Play sound &synchronously\tCtrl-S"));
200 playMenu->Append(Sound_PlayAsync, _T("Play sound &asynchronously\tCtrl-A"));
201 playMenu->Append(Sound_PlayAsyncOnStack, _T("Play sound asynchronously (&object on stack)\tCtrl-K"));
202 playMenu->Append(Sound_PlayLoop, _T("&Loop sound\tCtrl-L"));
203 playMenu->AppendSeparator();
204 playMenu->Append(Sound_Stop, _T("&Stop playing\tCtrl-T"));
205
206 wxMenu *helpMenu = new wxMenu;
207 helpMenu->Append(Sound_About, _T("&About...\tF1"), _T("Show about dialog"));
208
209 // now append the freshly created menu to the menu bar...
210 wxMenuBar *menuBar = new wxMenuBar();
211 menuBar->Append(menuFile, _T("&File"));
212 menuBar->Append(playMenu, _T("&Play"));
213 menuBar->Append(helpMenu, _T("&Help"));
214
215 // ... and attach this menu bar to the frame
216 SetMenuBar(menuBar);
217
218 m_tc = new wxTextCtrl(this, wxID_ANY, wxEmptyString,
219 wxDefaultPosition, wxDefaultSize,
220 wxTE_MULTILINE|wxTE_READONLY);
221 NotifyUsingFile(m_soundFile);
222 }
223
224
225 bool MyFrame::CreateSound(wxSound& snd) const
226 {
227 if ( m_useMemory )
228 {
229 // this is the dump of cuckoo.wav
230 static const unsigned char data[] =
231 {
232 0x52, 0x49, 0x46, 0x46, 0x00, 0x1f, 0x00, 0x00, 0x57, 0x41, 0x56,
233 0x45, 0x66, 0x6d, 0x74, 0x20, 0x10, 0x00, 0x00, 0x00, 0x01, 0x00,
234 0x01, 0x00, 0x11, 0x2b, 0x00, 0x00, 0x11, 0x2b, 0x00, 0x00, 0x01,
235 0x00, 0x08, 0x00, 0x64, 0x61, 0x74, 0x61, 0xdc, 0x1e, 0x00, 0x00,
236 0x88, 0x84, 0x86, 0x87, 0x87, 0x83, 0x82, 0x82, 0x82, 0x81, 0x82,
237 0x83, 0x80, 0x83, 0x84, 0x85, 0x80, 0x84, 0x83, 0x87, 0x86, 0x89,
238 0x84, 0x85, 0x85, 0x84, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82,
239 0x81, 0x83, 0x87, 0x85, 0x84, 0x85, 0x87, 0x85, 0x84, 0x82, 0x81,
240 0x81, 0x82, 0x83, 0x84, 0x82, 0x80, 0x84, 0x84, 0x83, 0x85, 0x87,
241 0x84, 0x83, 0x82, 0x85, 0x84, 0x82, 0x83, 0x80, 0x7d, 0x7f, 0x81,
242 0x82, 0x82, 0x83, 0x82, 0x85, 0x87, 0x88, 0x85, 0x86, 0x87, 0x87,
243 0x84, 0x84, 0x7d, 0x7f, 0x7f, 0x83, 0x80, 0x80, 0x7f, 0x82, 0x80,
244 0x81, 0x83, 0x85, 0x87, 0x84, 0x87, 0x85, 0x85, 0x83, 0x85, 0x82,
245 0x80, 0x7e, 0x80, 0x7f, 0x7e, 0x7f, 0x81, 0x80, 0x81, 0x84, 0x85,
246 0x85, 0x86, 0x86, 0x83, 0x84, 0x87, 0x84, 0x85, 0x82, 0x81, 0x7f,
247 0x80, 0x82, 0x80, 0x7d, 0x7f, 0x7e, 0x82, 0x83, 0x85, 0x83, 0x86,
248 0x85, 0x88, 0x84, 0x83, 0x82, 0x84, 0x83, 0x81, 0x7f, 0x7f, 0x7e,
249 0x7e, 0x80, 0x84, 0x82, 0x82, 0x83, 0x84, 0x80, 0x84, 0x87, 0x86,
250 0x86, 0x85, 0x82, 0x80, 0x80, 0x7e, 0x7e, 0x7f, 0x7f, 0x80, 0x7f,
251 0x81, 0x84, 0x84, 0x83, 0x86, 0x82, 0x82, 0x83, 0x85, 0x81, 0x83,
252 0x7e, 0x81, 0x80, 0x83, 0x81, 0x82, 0x7d, 0x82, 0x84, 0x84, 0x84,
253 0x81, 0x84, 0x83, 0x82, 0x82, 0x84, 0x80, 0x80, 0x81, 0x80, 0x7e,
254 0x80, 0x83, 0x84, 0x84, 0x87, 0x85, 0x85, 0x82, 0x85, 0x82, 0x84,
255 0x86, 0x84, 0x7e, 0x81, 0x80, 0x7f, 0x82, 0x83, 0x84, 0x82, 0x83,
256 0x83, 0x84, 0x83, 0x85, 0x89, 0x87, 0x85, 0x84, 0x83, 0x82, 0x83,
257 0x81, 0x81, 0x7d, 0x7e, 0x83, 0x83, 0x7f, 0x80, 0x85, 0x84, 0x84,
258 0x86, 0x87, 0x85, 0x86, 0x86, 0x86, 0x84, 0x84, 0x84, 0x81, 0x7f,
259 0x7f, 0x7f, 0x7e, 0x81, 0x81, 0x80, 0x83, 0x85, 0x85, 0x86, 0x87,
260 0x88, 0x87, 0x87, 0x84, 0x81, 0x80, 0x81, 0x81, 0x82, 0x80, 0x7f,
261 0x80, 0x7f, 0x81, 0x82, 0x87, 0x84, 0x88, 0x89, 0x87, 0x84, 0x85,
262 0x87, 0x88, 0x82, 0x7f, 0x82, 0x7e, 0x7f, 0x80, 0x80, 0x7f, 0x83,
263 0x86, 0x84, 0x85, 0x85, 0x85, 0x85, 0x86, 0x85, 0x84, 0x84, 0x84,
264 0x83, 0x81, 0x81, 0x83, 0x83, 0x82, 0x82, 0x82, 0x83, 0x84, 0x85,
265 0x86, 0x85, 0x84, 0x86, 0x83, 0x82, 0x80, 0x83, 0x80, 0x84, 0x81,
266 0x84, 0x7f, 0x83, 0x84, 0x88, 0x83, 0x87, 0x88, 0x86, 0x85, 0x86,
267 0x87, 0x87, 0x8b, 0x8a, 0x88, 0x85, 0x87, 0x88, 0x87, 0x88, 0x89,
268 0x88, 0x8a, 0x8b, 0x88, 0x89, 0x88, 0x8b, 0x88, 0x88, 0x85, 0x86,
269 0x83, 0x83, 0x82, 0x84, 0x83, 0x84, 0x85, 0x85, 0x83, 0x85, 0x86,
270 0x87, 0x87, 0x88, 0x87, 0x86, 0x85, 0x86, 0x85, 0x7f, 0x82, 0x83,
271 0x80, 0x7e, 0x81, 0x80, 0x83, 0x85, 0x87, 0x87, 0x88, 0x87, 0x89,
272 0x86, 0x86, 0x88, 0x84, 0x84, 0x83, 0x80, 0x7f, 0x81, 0x83, 0x82,
273 0x81, 0x83, 0x84, 0x86, 0x86, 0x86, 0x88, 0x89, 0x8a, 0x8a, 0x86,
274 0x84, 0x82, 0x82, 0x81, 0x7f, 0x81, 0x81, 0x7f, 0x80, 0x84, 0x81,
275 0x84, 0x84, 0x89, 0x86, 0x84, 0x84, 0x86, 0x85, 0x86, 0x86, 0x83,
276 0x82, 0x84, 0x81, 0x7f, 0x80, 0x82, 0x82, 0x84, 0x84, 0x84, 0x84,
277 0x86, 0x85, 0x86, 0x84, 0x86, 0x85, 0x83, 0x80, 0x80, 0x84, 0x84,
278 0x83, 0x81, 0x82, 0x81, 0x82, 0x85, 0x85, 0x82, 0x84, 0x86, 0x86,
279 0x84, 0x84, 0x84, 0x82, 0x83, 0x86, 0x84, 0x80, 0x80, 0x83, 0x83,
280 0x81, 0x84, 0x85, 0x85, 0x87, 0x84, 0x84, 0x83, 0x83, 0x84, 0x85,
281 0x83, 0x84, 0x7f, 0x83, 0x7f, 0x84, 0x89, 0x6e, 0xa4, 0x81, 0x7d,
282 0x7d, 0x7f, 0x87, 0x87, 0x7c, 0x82, 0x99, 0x7a, 0x88, 0x7b, 0x79,
283 0x85, 0x87, 0x7c, 0x70, 0x88, 0x7c, 0x89, 0x8f, 0x7d, 0x91, 0x85,
284 0x83, 0x7c, 0x89, 0x83, 0x7d, 0x86, 0x82, 0x8f, 0x7b, 0x84, 0x68,
285 0xa3, 0x65, 0xa3, 0x73, 0x7e, 0xb5, 0x6f, 0x8d, 0x96, 0x84, 0x73,
286 0x9d, 0x88, 0x77, 0x6f, 0x7a, 0x90, 0x7b, 0x75, 0x6e, 0x8a, 0x84,
287 0x8d, 0x87, 0x78, 0x97, 0x93, 0x8b, 0x87, 0x89, 0x8d, 0x7d, 0x87,
288 0x6e, 0x84, 0x7b, 0x8a, 0x6a, 0x8e, 0x65, 0x8a, 0x7a, 0x7d, 0x99,
289 0x77, 0x8c, 0x9b, 0x80, 0x9f, 0x91, 0x70, 0x85, 0x8e, 0x6e, 0x73,
290 0x85, 0x7d, 0x77, 0x90, 0x8c, 0x83, 0x77, 0x80, 0x8c, 0x7e, 0x7e,
291 0x90, 0x8e, 0x96, 0x7e, 0x7f, 0x6c, 0x8f, 0x76, 0x77, 0x6b, 0x8c,
292 0x80, 0x8c, 0x83, 0x7d, 0x91, 0x87, 0x84, 0x92, 0x73, 0x98, 0x87,
293 0x7a, 0x8e, 0x7f, 0x7e, 0x8b, 0x7c, 0x7c, 0x7f, 0x7e, 0x72, 0x89,
294 0x97, 0x7f, 0x7b, 0x89, 0x89, 0x84, 0x7a, 0x94, 0x77, 0x7d, 0x7c,
295 0x91, 0x71, 0x7b, 0x81, 0x81, 0x87, 0x8a, 0x7f, 0x8a, 0x9c, 0x8c,
296 0x7e, 0x8b, 0x77, 0x8f, 0x76, 0x64, 0x8c, 0x78, 0x81, 0x8a, 0x71,
297 0x87, 0x8b, 0x7c, 0x85, 0x8d, 0x8f, 0x94, 0x99, 0x8e, 0x82, 0x94,
298 0x7b, 0x7f, 0x6e, 0x7e, 0x6b, 0x6e, 0x7c, 0x8c, 0x7a, 0x72, 0x87,
299 0x8c, 0x7e, 0x97, 0x93, 0x81, 0x89, 0x96, 0x84, 0x90, 0x82, 0x6e,
300 0x8e, 0x6f, 0x78, 0x7c, 0x6a, 0x8b, 0x8e, 0x70, 0x8b, 0x8b, 0x8a,
301 0x98, 0x7f, 0x84, 0x89, 0x93, 0x71, 0x8b, 0x7c, 0x7f, 0x7f, 0x78,
302 0x75, 0x7c, 0x88, 0x86, 0x84, 0x87, 0x8d, 0x95, 0x81, 0x81, 0x95,
303 0x7c, 0x7b, 0x9b, 0x93, 0x70, 0x95, 0x71, 0x77, 0x8a, 0x72, 0x80,
304 0x7c, 0x6f, 0x95, 0x8e, 0x84, 0x96, 0x75, 0x87, 0x8b, 0x8b, 0x76,
305 0x8f, 0x84, 0x85, 0x8e, 0x73, 0x7f, 0x8b, 0x83, 0x76, 0x7a, 0x7f,
306 0x7d, 0x89, 0x85, 0x7e, 0x91, 0x87, 0x84, 0x82, 0x80, 0x81, 0x93,
307 0x68, 0x81, 0x9b, 0x75, 0x86, 0x9b, 0x7a, 0x82, 0x82, 0x80, 0x98,
308 0x78, 0x8f, 0x85, 0x7c, 0x7f, 0x88, 0x75, 0x6d, 0x82, 0x74, 0x8d,
309 0x91, 0x78, 0x79, 0x8f, 0x85, 0x8d, 0x92, 0x7c, 0x8b, 0x90, 0x86,
310 0x74, 0x7a, 0x7f, 0x6d, 0x84, 0x62, 0x79, 0x87, 0x7b, 0x98, 0x8b,
311 0x79, 0x9c, 0x97, 0x74, 0xa2, 0x89, 0x83, 0x80, 0x7e, 0x88, 0x77,
312 0x7c, 0x7e, 0x7e, 0x66, 0x80, 0x8b, 0x7e, 0x91, 0x8d, 0x86, 0x92,
313 0x9f, 0x88, 0x98, 0x8b, 0x6e, 0x86, 0x89, 0x8c, 0x70, 0x87, 0x71,
314 0x8c, 0x8f, 0x70, 0x84, 0x8a, 0x83, 0xa5, 0x92, 0x83, 0xab, 0x86,
315 0x8c, 0x9e, 0x77, 0x88, 0x91, 0x83, 0x6b, 0x76, 0x87, 0x83, 0x7c,
316 0x7f, 0x8b, 0x7d, 0x79, 0x98, 0x8c, 0x84, 0x92, 0x95, 0x7b, 0x91,
317 0x7d, 0x81, 0x85, 0x86, 0x72, 0x78, 0x85, 0x6d, 0x84, 0x8a, 0x79,
318 0x80, 0x84, 0x88, 0x9b, 0x87, 0x7e, 0x89, 0x7e, 0x9e, 0x7f, 0x72,
319 0x7b, 0x83, 0x7a, 0x7b, 0x81, 0x82, 0x88, 0x96, 0x87, 0x82, 0x71,
320 0x92, 0x88, 0x78, 0x7c, 0x98, 0x7b, 0x7f, 0x86, 0x7a, 0x74, 0x81,
321 0x8a, 0x85, 0x96, 0x86, 0x7c, 0x92, 0x86, 0x7f, 0x8a, 0x85, 0x76,
322 0x7f, 0x6b, 0x86, 0x79, 0x7a, 0x8d, 0x7e, 0x80, 0x8c, 0x7f, 0x95,
323 0x93, 0x89, 0x75, 0x99, 0x8c, 0x8b, 0x74, 0x77, 0x7c, 0x80, 0x76,
324 0x82, 0x74, 0x74, 0x91, 0x86, 0x75, 0x81, 0x99, 0x88, 0x83, 0x98,
325 0x87, 0x96, 0x90, 0x89, 0x80, 0x85, 0x67, 0x7b, 0x71, 0x6e, 0x77,
326 0x74, 0x84, 0x95, 0x76, 0x8e, 0x86, 0x86, 0x89, 0x9d, 0x86, 0x97,
327 0x86, 0x76, 0x77, 0x7f, 0x6e, 0x78, 0x7c, 0x7e, 0x7d, 0x6c, 0x82,
328 0x8e, 0x86, 0x85, 0x88, 0x90, 0x80, 0x9d, 0x8a, 0x78, 0x89, 0x97,
329 0x79, 0x84, 0x75, 0x77, 0x81, 0x6e, 0x6e, 0x89, 0x73, 0x98, 0x85,
330 0x87, 0x8e, 0x8e, 0x81, 0x9e, 0x8e, 0x7b, 0x82, 0x81, 0x77, 0x85,
331 0x83, 0x78, 0x89, 0x7e, 0x7a, 0x86, 0x81, 0x8b, 0x7c, 0x8e, 0x8a,
332 0x8c, 0x7a, 0x80, 0x8c, 0x7c, 0x76, 0x96, 0x84, 0x81, 0x8e, 0x75,
333 0x71, 0x95, 0x7c, 0x94, 0x7e, 0x7d, 0x93, 0x86, 0x75, 0x85, 0x82,
334 0x80, 0x8d, 0x79, 0x77, 0x85, 0x83, 0x78, 0x92, 0x83, 0x7c, 0x92,
335 0x80, 0x87, 0x7d, 0x83, 0x7b, 0x8d, 0x8a, 0x83, 0x7f, 0x82, 0x7b,
336 0x84, 0x77, 0x8a, 0x87, 0x71, 0x83, 0x9a, 0x72, 0x8d, 0x8f, 0x7a,
337 0x91, 0x82, 0x7a, 0x88, 0x83, 0x85, 0x8d, 0x74, 0x7f, 0x87, 0x78,
338 0x6f, 0x81, 0x87, 0x85, 0x98, 0x7b, 0x89, 0x92, 0x8d, 0x81, 0x8f,
339 0x8a, 0x87, 0x89, 0x81, 0x78, 0x76, 0x76, 0x78, 0x87, 0x83, 0x80,
340 0x84, 0x7f, 0x95, 0x8a, 0x7e, 0xad, 0x8d, 0x82, 0x99, 0x85, 0x71,
341 0x84, 0x7c, 0x84, 0x7e, 0x76, 0x7b, 0x76, 0x77, 0x79, 0x8b, 0x7c,
342 0x94, 0x9f, 0x87, 0x86, 0x8b, 0x90, 0x8e, 0x83, 0x77, 0x7b, 0x86,
343 0x76, 0x73, 0x85, 0x7f, 0x83, 0x87, 0x78, 0x85, 0x84, 0x83, 0x99,
344 0x7f, 0x8b, 0x97, 0x81, 0x86, 0x90, 0x69, 0x75, 0x8e, 0x79, 0x81,
345 0x81, 0x83, 0x76, 0x85, 0x88, 0x8a, 0x84, 0x7a, 0x8e, 0x86, 0x84,
346 0x88, 0x84, 0x83, 0x88, 0x8c, 0x7e, 0x77, 0x80, 0x80, 0x85, 0x82,
347 0x7e, 0x90, 0x90, 0x7a, 0x82, 0x78, 0x8c, 0x8a, 0x7e, 0x87, 0x88,
348 0x74, 0x84, 0x7f, 0x6c, 0x90, 0x89, 0x80, 0x8b, 0x8b, 0x80, 0x85,
349 0x97, 0x7e, 0x78, 0x79, 0x83, 0x82, 0x7c, 0x84, 0x82, 0x73, 0x7f,
350 0x85, 0x87, 0x79, 0x83, 0x89, 0x90, 0x94, 0x95, 0x84, 0x8f, 0x7c,
351 0x89, 0x7f, 0x6b, 0x78, 0x7d, 0x78, 0x7b, 0x6f, 0x73, 0x96, 0x7f,
352 0x7b, 0x91, 0x85, 0x8b, 0x90, 0x8a, 0x7e, 0x95, 0x8b, 0x7f, 0x7f,
353 0x7b, 0x6e, 0x75, 0x77, 0x81, 0x72, 0x86, 0x92, 0x87, 0x78, 0x88,
354 0x8d, 0x92, 0x8d, 0x96, 0x82, 0x81, 0x84, 0x7d, 0x8c, 0x77, 0x6f,
355 0x7d, 0x79, 0x80, 0x90, 0x7d, 0x7f, 0x91, 0x7f, 0x96, 0x89, 0x7f,
356 0x8e, 0x9e, 0x80, 0x81, 0x86, 0x84, 0x7e, 0x7f, 0x69, 0x7a, 0x7e,
357 0x86, 0x7c, 0x82, 0x85, 0x8d, 0x7e, 0x92, 0x8d, 0x85, 0x80, 0x92,
358 0x8b, 0x72, 0x8e, 0x88, 0x7e, 0x84, 0x7a, 0x7f, 0x88, 0x78, 0x7c,
359 0x8b, 0x75, 0x95, 0x93, 0x88, 0x85, 0x7d, 0x74, 0x8d, 0x89, 0x88,
360 0x8b, 0x87, 0x79, 0x92, 0x90, 0x7c, 0x81, 0x8d, 0x89, 0x96, 0x85,
361 0x85, 0x8d, 0x90, 0x8d, 0x76, 0x7e, 0x81, 0x90, 0x7f, 0x7f, 0x99,
362 0x7d, 0x7a, 0x98, 0x88, 0x81, 0x95, 0x80, 0x91, 0x87, 0x80, 0x8f,
363 0x84, 0x71, 0x7d, 0x7a, 0x7d, 0x82, 0x7d, 0x79, 0x87, 0x87, 0x8a,
364 0x96, 0x88, 0x81, 0x90, 0x89, 0x87, 0x90, 0x81, 0x7e, 0x7e, 0x88,
365 0x7f, 0x81, 0x70, 0x6e, 0x87, 0x7e, 0x8a, 0x89, 0x84, 0x9b, 0x9d,
366 0x73, 0x90, 0x95, 0x82, 0x89, 0x86, 0x78, 0x82, 0x7b, 0x84, 0x81,
367 0x73, 0x73, 0x7f, 0x79, 0x84, 0x8a, 0x88, 0x8d, 0x90, 0x86, 0x8c,
368 0x92, 0x7f, 0x8b, 0x80, 0x81, 0x7e, 0x84, 0x7a, 0x70, 0x83, 0x77,
369 0x82, 0x89, 0x82, 0x86, 0x87, 0x7b, 0x96, 0x8d, 0x85, 0x8d, 0x7d,
370 0x7a, 0x94, 0x7c, 0x71, 0x7e, 0x87, 0x80, 0x79, 0x7a, 0x83, 0x82,
371 0x7e, 0x8a, 0x86, 0x87, 0x91, 0x95, 0x7e, 0x86, 0x7a, 0x7a, 0x86,
372 0x82, 0x7f, 0x7d, 0x8a, 0x75, 0x87, 0x8c, 0x7a, 0x7e, 0x8a, 0x74,
373 0x8c, 0x87, 0x89, 0x8b, 0x7e, 0x7f, 0x87, 0x72, 0x7c, 0x85, 0x7c,
374 0x86, 0x88, 0x84, 0x82, 0x8b, 0x7d, 0x7f, 0x81, 0x95, 0x86, 0x7b,
375 0x79, 0x88, 0x7c, 0x79, 0x85, 0x79, 0x83, 0x89, 0x86, 0x77, 0x82,
376 0x88, 0x89, 0x94, 0x8c, 0x7a, 0x8d, 0x84, 0x77, 0x87, 0x78, 0x78,
377 0x82, 0x7d, 0x81, 0x7e, 0x75, 0x87, 0x81, 0x86, 0x94, 0x92, 0x84,
378 0x90, 0x83, 0x85, 0x80, 0x85, 0x7f, 0x7d, 0x7c, 0x79, 0x7a, 0x75,
379 0x8d, 0x7f, 0x71, 0x80, 0x91, 0x84, 0x83, 0x93, 0x8e, 0x90, 0x93,
380 0x84, 0x79, 0x8a, 0x72, 0x83, 0x7c, 0x76, 0x79, 0x8a, 0x78, 0x81,
381 0x75, 0x89, 0x8b, 0x90, 0x84, 0x92, 0x7d, 0x89, 0x90, 0x84, 0x86,
382 0x86, 0x81, 0x79, 0x7d, 0x72, 0x79, 0x79, 0x7e, 0x88, 0x82, 0x85,
383 0x8b, 0x84, 0x81, 0x92, 0x8b, 0x7d, 0x89, 0x9a, 0x77, 0x7a, 0x82,
384 0x7e, 0x85, 0x81, 0x73, 0x85, 0x7a, 0x81, 0x83, 0x81, 0x81, 0x8c,
385 0x85, 0x8d, 0x80, 0x7b, 0x93, 0x8c, 0x80, 0x80, 0x82, 0x78, 0x82,
386 0x85, 0x7a, 0x83, 0x87, 0x8b, 0x8b, 0x86, 0x7f, 0x83, 0x7e, 0x88,
387 0x8b, 0x87, 0x78, 0x89, 0x7d, 0x73, 0x8f, 0x84, 0x72, 0x90, 0x89,
388 0x7d, 0x7e, 0x82, 0x8f, 0x94, 0x7e, 0x86, 0x8a, 0x7c, 0x80, 0x74,
389 0x79, 0x83, 0x82, 0x83, 0x8a, 0x80, 0x7c, 0x94, 0x8b, 0x82, 0x89,
390 0x8f, 0x87, 0x8b, 0x7d, 0x7b, 0x7e, 0x87, 0x7d, 0x7d, 0x73, 0x76,
391 0x86, 0x81, 0x7e, 0x93, 0x7a, 0x89, 0x9b, 0x84, 0x86, 0x93, 0x84,
392 0x81, 0x87, 0x80, 0x80, 0x70, 0x74, 0x88, 0x7b, 0x77, 0x81, 0x8a,
393 0x87, 0x87, 0x7d, 0x89, 0x95, 0x8f, 0x87, 0x92, 0x80, 0x7f, 0x85,
394 0x81, 0x77, 0x81, 0x81, 0x79, 0x77, 0x74, 0x72, 0x8b, 0x84, 0x8a,
395 0x8d, 0x80, 0x96, 0x93, 0x7b, 0x8b, 0x8d, 0x7d, 0x92, 0x89, 0x77,
396 0x79, 0x76, 0x7d, 0x81, 0x78, 0x82, 0x89, 0x77, 0x83, 0x95, 0x8a,
397 0x86, 0x91, 0x8a, 0x93, 0x86, 0x78, 0x7f, 0x89, 0x76, 0x75, 0x7e,
398 0x84, 0x7e, 0x85, 0x77, 0x7c, 0x8f, 0x87, 0x91, 0x88, 0x7e, 0x8c,
399 0x86, 0x83, 0x8e, 0x7d, 0x7d, 0x90, 0x74, 0x75, 0x82, 0x89, 0x82,
400 0x8c, 0x84, 0x82, 0x82, 0x88, 0x8d, 0x87, 0x7c, 0x88, 0x86, 0x7b,
401 0x7a, 0x80, 0x7d, 0x7f, 0x85, 0x8e, 0x8d, 0x88, 0x7b, 0x86, 0x93,
402 0x7f, 0x85, 0x89, 0x84, 0x84, 0x7a, 0x7b, 0x85, 0x80, 0x84, 0x83,
403 0x73, 0x8a, 0x8d, 0x81, 0x8b, 0x8e, 0x7f, 0x8c, 0x96, 0x82, 0x82,
404 0x82, 0x7c, 0x7c, 0x7b, 0x7e, 0x88, 0x80, 0x7d, 0x82, 0x7e, 0x81,
405 0x91, 0x8f, 0x83, 0x82, 0x8f, 0x8a, 0x93, 0x8b, 0x84, 0x8b, 0x7b,
406 0x77, 0x82, 0x7c, 0x7b, 0x7f, 0x7d, 0x92, 0x84, 0x7e, 0x8f, 0x8f,
407 0x8f, 0x9f, 0x91, 0x8b, 0x9d, 0x94, 0x7f, 0x88, 0x8a, 0x83, 0x85,
408 0x85, 0x79, 0x75, 0x80, 0x86, 0x86, 0x81, 0x8e, 0x8e, 0x8e, 0x8d,
409 0x96, 0x90, 0x88, 0x90, 0x84, 0x81, 0x87, 0x7f, 0x7f, 0x79, 0x6f,
410 0x86, 0x87, 0x85, 0x8c, 0x80, 0x87, 0x8b, 0x82, 0x8c, 0x96, 0x82,
411 0x85, 0x90, 0x85, 0x84, 0x8a, 0x7b, 0x7c, 0x8b, 0x85, 0x78, 0x85,
412 0x8f, 0x91, 0x8d, 0x8a, 0x85, 0x84, 0x8a, 0x8b, 0x85, 0x7c, 0x8a,
413 0x8e, 0x7f, 0x82, 0x85, 0x7b, 0x8a, 0x88, 0x84, 0x8e, 0x7d, 0x86,
414 0x8e, 0x80, 0x87, 0x93, 0x84, 0x85, 0x82, 0x7f, 0x8c, 0x8c, 0x79,
415 0x87, 0x8a, 0x80, 0x84, 0x92, 0x81, 0x82, 0x87, 0x83, 0x86, 0x8a,
416 0x85, 0x78, 0x7d, 0x82, 0x83, 0x79, 0x7c, 0x86, 0x87, 0x81, 0x8c,
417 0x7f, 0x7c, 0x98, 0x89, 0x86, 0x87, 0x85, 0x8f, 0x90, 0x7c, 0x83,
418 0x79, 0x72, 0x7c, 0x7d, 0x71, 0x81, 0x83, 0x86, 0x89, 0x88, 0x81,
419 0x90, 0x8a, 0x82, 0x93, 0x93, 0x82, 0x80, 0x80, 0x79, 0x78, 0x7e,
420 0x7a, 0x7a, 0x76, 0x78, 0x7f, 0x85, 0x8b, 0x97, 0x7e, 0x8f, 0x97,
421 0x86, 0x89, 0x8b, 0x76, 0x85, 0x83, 0x7b, 0x77, 0x73, 0x79, 0x89,
422 0x7b, 0x77, 0x85, 0x8a, 0x89, 0x8e, 0x8b, 0x82, 0x8f, 0x88, 0x89,
423 0x85, 0x79, 0x7a, 0x88, 0x80, 0x74, 0x81, 0x80, 0x74, 0x78, 0x82,
424 0x83, 0x8f, 0x87, 0x8f, 0x8c, 0x80, 0x88, 0x84, 0x79, 0x90, 0x7f,
425 0x7b, 0x87, 0x86, 0x78, 0x7b, 0x7a, 0x7f, 0x82, 0x81, 0x83, 0x80,
426 0x81, 0x89, 0x8f, 0x80, 0x80, 0x87, 0x87, 0x83, 0x7c, 0x79, 0x80,
427 0x8a, 0x80, 0x84, 0x82, 0x7c, 0x7f, 0x92, 0x7e, 0x79, 0x84, 0x83,
428 0x88, 0x81, 0x7a, 0x88, 0x79, 0x7a, 0x85, 0x7d, 0x7e, 0x86, 0x7d,
429 0x84, 0x8f, 0x86, 0x84, 0x8a, 0x8c, 0x7e, 0x7e, 0x82, 0x89, 0x7f,
430 0x79, 0x7d, 0x77, 0x77, 0x7d, 0x82, 0x7b, 0x88, 0x8f, 0x8f, 0x89,
431 0x87, 0x7f, 0x8e, 0x8d, 0x7b, 0x83, 0x84, 0x77, 0x83, 0x78, 0x70,
432 0x75, 0x79, 0x87, 0x87, 0x79, 0x87, 0x90, 0x89, 0x93, 0x8f, 0x88,
433 0x89, 0x89, 0x7c, 0x7d, 0x80, 0x79, 0x77, 0x7b, 0x83, 0x7c, 0x76,
434 0x7e, 0x88, 0x80, 0x83, 0x8d, 0x8d, 0x8a, 0x8e, 0x87, 0x83, 0x8b,
435 0x85, 0x7c, 0x84, 0x73, 0x75, 0x87, 0x78, 0x7c, 0x85, 0x84, 0x85,
436 0x83, 0x81, 0x8e, 0x8c, 0x92, 0x95, 0x87, 0x7d, 0x89, 0x85, 0x81,
437 0x7b, 0x7e, 0x7f, 0x84, 0x82, 0x7e, 0x75, 0x81, 0x86, 0x83, 0x86,
438 0x95, 0x8c, 0x80, 0x8a, 0x8f, 0x7f, 0x81, 0x8a, 0x81, 0x7f, 0x86,
439 0x71, 0x81, 0x89, 0x81, 0x86, 0x89, 0x7d, 0x89, 0x83, 0x83, 0x81,
440 0x84, 0x8d, 0x8b, 0x7e, 0x80, 0x85, 0x7b, 0x7e, 0x86, 0x81, 0x83,
441 0x89, 0x86, 0x7d, 0x85, 0x8a, 0x8f, 0x87, 0x80, 0x79, 0x7a, 0x7f,
442 0x8b, 0x81, 0x77, 0x8b, 0x88, 0x74, 0x88, 0x8c, 0x7e, 0x8a, 0x8f,
443 0x85, 0x8f, 0x82, 0x7c, 0x84, 0x7f, 0x7e, 0x7d, 0x7d, 0x7d, 0x7e,
444 0x77, 0x7b, 0x7a, 0x82, 0x91, 0x8e, 0x84, 0x8b, 0x8e, 0x85, 0x89,
445 0x88, 0x83, 0x81, 0x81, 0x7b, 0x79, 0x76, 0x7b, 0x7e, 0x7f, 0x7a,
446 0x8c, 0x83, 0x81, 0x8d, 0x7f, 0x81, 0xa0, 0x90, 0x82, 0x87, 0x7d,
447 0x81, 0x80, 0x7d, 0x7d, 0x79, 0x75, 0x7b, 0x81, 0x82, 0x8b, 0x87,
448 0x8a, 0x8d, 0x89, 0x87, 0x8f, 0x88, 0x8d, 0x91, 0x82, 0x77, 0x83,
449 0x80, 0x77, 0x74, 0x7a, 0x79, 0x85, 0x84, 0x81, 0x84, 0x80, 0x88,
450 0x97, 0x85, 0x8d, 0x94, 0x7d, 0x83, 0x85, 0x77, 0x82, 0x87, 0x80,
451 0x78, 0x7e, 0x81, 0x82, 0x7c, 0x7e, 0x85, 0x8a, 0x8a, 0x8a, 0x84,
452 0x81, 0x82, 0x85, 0x89, 0x8b, 0x7d, 0x7c, 0x7e, 0x7c, 0x7e, 0x8c,
453 0x84, 0x7e, 0x8e, 0x89, 0x83, 0x87, 0x88, 0x92, 0x91, 0x80, 0x89,
454 0x89, 0x81, 0x94, 0x8b, 0x80, 0x8c, 0x8b, 0x87, 0x8a, 0x89, 0x82,
455 0x89, 0x8e, 0x8d, 0x84, 0x86, 0x8a, 0x83, 0x7b, 0x7f, 0x88, 0x82,
456 0x83, 0x7f, 0x7f, 0x85, 0x8c, 0x89, 0x8c, 0x8f, 0x82, 0x89, 0x8d,
457 0x7d, 0x7b, 0x83, 0x7c, 0x83, 0x88, 0x83, 0x83, 0x76, 0x83, 0x8f,
458 0x84, 0x84, 0x8e, 0x87, 0x8c, 0x90, 0x89, 0x89, 0x95, 0x8e, 0x83,
459 0x78, 0x72, 0x71, 0x77, 0x7b, 0x7e, 0x7c, 0x80, 0x92, 0x8f, 0x88,
460 0x8a, 0x90, 0x85, 0x86, 0x84, 0x87, 0x91, 0x8b, 0x82, 0x88, 0x85,
461 0x74, 0x7d, 0x72, 0x6e, 0x73, 0x7e, 0x8d, 0x91, 0x8c, 0x98, 0x90,
462 0x86, 0x8e, 0x89, 0x79, 0x7d, 0x83, 0x84, 0x87, 0x87, 0x7d, 0x7f,
463 0x82, 0x7d, 0x74, 0x71, 0x78, 0x7f, 0x86, 0x8f, 0x97, 0x97, 0x94,
464 0x96, 0x82, 0x70, 0x73, 0x7a, 0x7b, 0x87, 0x80, 0x8a, 0x92, 0x82,
465 0x7f, 0x83, 0x7a, 0x78, 0x75, 0x7f, 0x8d, 0x8c, 0x94, 0x9d, 0x89,
466 0x7f, 0x84, 0x76, 0x6f, 0x78, 0x7c, 0x7c, 0x8d, 0x95, 0x91, 0x8e,
467 0x86, 0x80, 0x7d, 0x7d, 0x76, 0x79, 0x7e, 0x8f, 0x95, 0x8a, 0x86,
468 0x8b, 0x7b, 0x79, 0x7d, 0x72, 0x7c, 0x89, 0x91, 0x9c, 0x8e, 0x86,
469 0x8a, 0x7e, 0x72, 0x6c, 0x6c, 0x7c, 0x83, 0x80, 0x90, 0x96, 0x87,
470 0x84, 0x8c, 0x7b, 0x7b, 0x85, 0x7e, 0x81, 0x8d, 0x8f, 0x89, 0x89,
471 0x83, 0x76, 0x6e, 0x70, 0x72, 0x7a, 0x7e, 0x8b, 0x90, 0x91, 0x9d,
472 0x93, 0x7f, 0x83, 0x7f, 0x79, 0x7d, 0x79, 0x85, 0x8b, 0x89, 0x88,
473 0x84, 0x70, 0x75, 0x75, 0x77, 0x77, 0x7d, 0x89, 0x9d, 0x9d, 0x8b,
474 0x92, 0x8f, 0x7e, 0x77, 0x7d, 0x71, 0x79, 0x84, 0x7f, 0x80, 0x89,
475 0x85, 0x80, 0x7f, 0x7a, 0x7d, 0x79, 0x7f, 0x8d, 0x8d, 0x92, 0xa0,
476 0x8d, 0x8b, 0x87, 0x73, 0x6c, 0x70, 0x6f, 0x7d, 0x7e, 0x85, 0x92,
477 0x91, 0x85, 0x86, 0x82, 0x7a, 0x82, 0x7e, 0x81, 0x89, 0x8b, 0x90,
478 0x9a, 0x85, 0x72, 0x70, 0x78, 0x73, 0x76, 0x7d, 0x7e, 0x91, 0x8e,
479 0x95, 0x86, 0x87, 0x84, 0x79, 0x6d, 0x77, 0x7b, 0x74, 0x87, 0x90,
480 0x8a, 0xa0, 0x8e, 0x86, 0x89, 0x77, 0x7c, 0x78, 0x88, 0x85, 0x98,
481 0x81, 0x7b, 0x85, 0x79, 0x74, 0x74, 0x77, 0x7a, 0x81, 0x86, 0x8d,
482 0x99, 0x97, 0x90, 0x8f, 0x7e, 0x76, 0x7e, 0x80, 0x74, 0x7a, 0x87,
483 0x90, 0x91, 0x84, 0x80, 0x76, 0x75, 0x83, 0x79, 0x7a, 0x8b, 0x8f,
484 0x92, 0x96, 0x95, 0x88, 0x83, 0x7b, 0x74, 0x6e, 0x73, 0x7a, 0x80,
485 0x88, 0x89, 0x8f, 0x86, 0x83, 0x81, 0x7c, 0x78, 0x81, 0x89, 0x93,
486 0x9b, 0x90, 0x8e, 0x8c, 0x77, 0x79, 0x7a, 0x70, 0x6e, 0x76, 0x79,
487 0x81, 0x84, 0x90, 0x9a, 0x85, 0x83, 0x83, 0x7c, 0x84, 0x8b, 0x84,
488 0x88, 0x97, 0x92, 0x86, 0x7c, 0x71, 0x6d, 0x71, 0x72, 0x7a, 0x80,
489 0x8b, 0x91, 0x97, 0x93, 0x91, 0x8a, 0x7d, 0x7b, 0x7d, 0x75, 0x7c,
490 0x82, 0x85, 0x8f, 0x83, 0x78, 0x7d, 0x7b, 0x74, 0x7c, 0x7d, 0x87,
491 0x8d, 0x92, 0x9f, 0x91, 0x83, 0x8a, 0x84, 0x73, 0x78, 0x7a, 0x79,
492 0x7b, 0x82, 0x86, 0x8d, 0x91, 0x89, 0x77, 0x71, 0x76, 0x7e, 0x83,
493 0x89, 0x8d, 0x8b, 0x8e, 0x90, 0x80, 0x74, 0x7e, 0x76, 0x7d, 0x87,
494 0x80, 0x81, 0x8b, 0x85, 0x8b, 0x8d, 0x7d, 0x7c, 0x7a, 0x7d, 0x77,
495 0x78, 0x81, 0x8e, 0x84, 0x8b, 0x8a, 0x7d, 0x78, 0x83, 0x84, 0x7c,
496 0x7f, 0x88, 0x8b, 0x8d, 0x8a, 0x87, 0x81, 0x80, 0x7a, 0x75, 0x75,
497 0x7e, 0x7e, 0x78, 0x84, 0x8e, 0x8d, 0x92, 0x8e, 0x7a, 0x7e, 0x89,
498 0x83, 0x8b, 0x87, 0x7e, 0x86, 0x80, 0x7c, 0x7f, 0x79, 0x7a, 0x7a,
499 0x7e, 0x83, 0x81, 0x81, 0x93, 0x9f, 0x96, 0x93, 0x94, 0x88, 0x82,
500 0x85, 0x81, 0x7d, 0x80, 0x8a, 0x89, 0x86, 0x7e, 0x83, 0x88, 0x8a,
501 0x8f, 0x8a, 0x86, 0x99, 0x93, 0x88, 0x98, 0x8f, 0x85, 0x87, 0x7e,
502 0x79, 0x80, 0x7b, 0x7a, 0x7d, 0x7e, 0x86, 0x8c, 0x89, 0x85, 0x85,
503 0x88, 0x8e, 0x8c, 0x8c, 0x8c, 0x83, 0x7b, 0x89, 0x89, 0x7f, 0x7d,
504 0x84, 0x7d, 0x7c, 0x7b, 0x7d, 0x84, 0x85, 0x89, 0x8c, 0x83, 0x7f,
505 0x8e, 0x88, 0x89, 0x8f, 0x7d, 0x82, 0x8a, 0x7c, 0x74, 0x81, 0x84,
506 0x8b, 0x88, 0x85, 0x83, 0x81, 0x80, 0x80, 0x82, 0x88, 0x87, 0x88,
507 0x84, 0x85, 0x83, 0x89, 0x85, 0x7d, 0x7a, 0x85, 0x82, 0x7e, 0x8b,
508 0x8b, 0x86, 0x8a, 0x8f, 0x8b, 0x84, 0x77, 0x7c, 0x7e, 0x77, 0x83,
509 0x86, 0x7e, 0x88, 0x8c, 0x7e, 0x87, 0x87, 0x83, 0x88, 0x8c, 0x82,
510 0x80, 0x87, 0x8e, 0x8a, 0x82, 0x7c, 0x7e, 0x7b, 0x78, 0x77, 0x7b,
511 0x87, 0x8b, 0x8b, 0x8c, 0x8e, 0x86, 0x8c, 0x8b, 0x81, 0x80, 0x88,
512 0x79, 0x77, 0x7d, 0x7d, 0x83, 0x83, 0x81, 0x87, 0x7f, 0x7b, 0x8a,
513 0x87, 0x85, 0x8e, 0x8e, 0x8b, 0x91, 0x8a, 0x7f, 0x7c, 0x7e, 0x77,
514 0x77, 0x7a, 0x7a, 0x7b, 0x81, 0x89, 0x84, 0x84, 0x86, 0x8f, 0x89,
515 0x86, 0x7f, 0x82, 0x8b, 0x8c, 0x82, 0x85, 0x84, 0x78, 0x81, 0x7c,
516 0x72, 0x7b, 0x80, 0x7b, 0x82, 0x82, 0x8d, 0x90, 0x8a, 0x8d, 0x91,
517 0x82, 0x83, 0x83, 0x7f, 0x7c, 0x82, 0x80, 0x7f, 0x7e, 0x7b, 0x7c,
518 0x7d, 0x83, 0x82, 0x82, 0x83, 0x87, 0x86, 0x87, 0x8b, 0x87, 0x86,
519 0x89, 0x88, 0x7d, 0x7e, 0x75, 0x7a, 0x84, 0x7e, 0x79, 0x86, 0x85,
520 0x88, 0x8a, 0x81, 0x7f, 0x83, 0x84, 0x85, 0x7c, 0x7b, 0x87, 0x83,
521 0x7d, 0x85, 0x88, 0x80, 0x82, 0x84, 0x7f, 0x80, 0x83, 0x86, 0x86,
522 0x88, 0x85, 0x84, 0x81, 0x82, 0x7d, 0x7b, 0x78, 0x7f, 0x7b, 0x7e,
523 0x8a, 0x88, 0x8a, 0x92, 0x87, 0x87, 0x87, 0x7f, 0x82, 0x81, 0x76,
524 0x7a, 0x82, 0x86, 0x84, 0x7b, 0x7f, 0x82, 0x83, 0x85, 0x86, 0x7b,
525 0x80, 0x90, 0x8f, 0x85, 0x8c, 0x8d, 0x83, 0x81, 0x7e, 0x76, 0x73,
526 0x75, 0x78, 0x7e, 0x7f, 0x83, 0x89, 0x87, 0x8a, 0x8a, 0x82, 0x89,
527 0x8b, 0x82, 0x89, 0x88, 0x82, 0x85, 0x81, 0x7d, 0x7d, 0x77, 0x77,
528 0x7a, 0x79, 0x7c, 0x7e, 0x84, 0x88, 0x89, 0x83, 0x92, 0x93, 0x87,
529 0x83, 0x84, 0x77, 0x7f, 0x87, 0x7c, 0x73, 0x7f, 0x81, 0x81, 0x81,
530 0x80, 0x81, 0x87, 0x85, 0x8b, 0x88, 0x83, 0x89, 0x85, 0x83, 0x89,
531 0x82, 0x82, 0x87, 0x81, 0x7a, 0x7c, 0x79, 0x81, 0x82, 0x84, 0x85,
532 0x8a, 0x86, 0x8d, 0x8c, 0x88, 0x85, 0x82, 0x80, 0x84, 0x7e, 0x76,
533 0x84, 0x86, 0x7d, 0x81, 0x8b, 0x82, 0x82, 0x87, 0x7f, 0x80, 0x89,
534 0x89, 0x86, 0x7c, 0x80, 0x8c, 0x8a, 0x87, 0x86, 0x7a, 0x7e, 0x82,
535 0x7d, 0x83, 0x86, 0x84, 0x87, 0x8b, 0x86, 0x83, 0x7f, 0x81, 0x84,
536 0x7f, 0x7b, 0x80, 0x81, 0x7e, 0x83, 0x81, 0x82, 0x88, 0x8a, 0x88,
537 0x91, 0x85, 0x81, 0x8c, 0x90, 0x7f, 0x84, 0x81, 0x7a, 0x78, 0x78,
538 0x7a, 0x7e, 0x81, 0x8a, 0x88, 0x81, 0x8c, 0x8a, 0x84, 0x82, 0x83,
539 0x86, 0x8f, 0x8b, 0x86, 0x86, 0x86, 0x86, 0x81, 0x7a, 0x74, 0x75,
540 0x72, 0x7d, 0x87, 0x89, 0x8a, 0x92, 0x8f, 0x8b, 0x89, 0x87, 0x85,
541 0x8a, 0x7e, 0x7b, 0x83, 0x7a, 0x7a, 0x86, 0x84, 0x7d, 0x7f, 0x83,
542 0x89, 0x81, 0x83, 0x89, 0x88, 0x8e, 0x94, 0x89, 0x82, 0x84, 0x7c,
543 0x79, 0x7b, 0x7e, 0x82, 0x85, 0x7e, 0x7e, 0x82, 0x86, 0x86, 0x85,
544 0x80, 0x8a, 0x8a, 0x85, 0x82, 0x86, 0x80, 0x83, 0x87, 0x80, 0x7e,
545 0x7a, 0x74, 0x7c, 0x81, 0x7a, 0x83, 0x89, 0x88, 0x85, 0x88, 0x8e,
546 0x8a, 0x86, 0x8c, 0x85, 0x76, 0x80, 0x85, 0x87, 0x8d, 0x8e, 0x83,
547 0x86, 0x8a, 0x8a, 0x88, 0x88, 0x8a, 0x8f, 0x8f, 0x8a, 0x88, 0x89,
548 0x86, 0x85, 0x82, 0x7f, 0x86, 0x84, 0x7a, 0x7f, 0x83, 0x88, 0x8f,
549 0x8a, 0x88, 0x8c, 0x81, 0x81, 0x83, 0x81, 0x7d, 0x82, 0x86, 0x87,
550 0x7d, 0x7d, 0x84, 0x82, 0x81, 0x8b, 0x8b, 0x84, 0x8a, 0x8c, 0x86,
551 0x88, 0x8a, 0x86, 0x86, 0x83, 0x7b, 0x77, 0x77, 0x7f, 0x83, 0x80,
552 0x7b, 0x7f, 0x82, 0x87, 0x8d, 0x88, 0x8a, 0x90, 0x84, 0x84, 0x83,
553 0x81, 0x85, 0x85, 0x7e, 0x82, 0x82, 0x7f, 0x7b, 0x7b, 0x81, 0x83,
554 0x85, 0x8d, 0x8e, 0x86, 0x89, 0x91, 0x8c, 0x85, 0x8a, 0x85, 0x7d,
555 0x7c, 0x7c, 0x74, 0x78, 0x7f, 0x81, 0x85, 0x83, 0x83, 0x84, 0x84,
556 0x8a, 0x8f, 0x88, 0x8f, 0x8e, 0x88, 0x87, 0x7d, 0x75, 0x80, 0x82,
557 0x7b, 0x7c, 0x78, 0x7a, 0x81, 0x84, 0x83, 0x89, 0x8c, 0x8b, 0x88,
558 0x87, 0x8a, 0x89, 0x82, 0x84, 0x82, 0x78, 0x79, 0x82, 0x7b, 0x7a,
559 0x84, 0x85, 0x80, 0x82, 0x82, 0x82, 0x86, 0x85, 0x8c, 0x85, 0x83,
560 0x89, 0x83, 0x7e, 0x84, 0x7c, 0x7d, 0x86, 0x83, 0x82, 0x84, 0x80,
561 0x83, 0x8d, 0x8d, 0x86, 0x82, 0x83, 0x82, 0x83, 0x7d, 0x7e, 0x81,
562 0x88, 0x88, 0x82, 0x7d, 0x83, 0x81, 0x7e, 0x87, 0x89, 0x82, 0x84,
563 0x89, 0x81, 0x83, 0x85, 0x87, 0x84, 0x7d, 0x7e, 0x81, 0x79, 0x7f,
564 0x86, 0x7f, 0x85, 0x8b, 0x85, 0x86, 0x8b, 0x85, 0x88, 0x89, 0x83,
565 0x7c, 0x7f, 0x7d, 0x7f, 0x82, 0x80, 0x7c, 0x7d, 0x83, 0x83, 0x80,
566 0x7d, 0x84, 0x8a, 0x90, 0x8e, 0x87, 0x82, 0x89, 0x82, 0x7b, 0x7e,
567 0x7b, 0x78, 0x7a, 0x7b, 0x7d, 0x7d, 0x80, 0x8d, 0x8b, 0x84, 0x8b,
568 0x8b, 0x83, 0x89, 0x8a, 0x87, 0x87, 0x86, 0x7d, 0x7b, 0x78, 0x75,
569 0x74, 0x7a, 0x7e, 0x7e, 0x83, 0x88, 0x87, 0x89, 0x8a, 0x8b, 0x8a,
570 0x8b, 0x84, 0x80, 0x7d, 0x84, 0x82, 0x80, 0x7d, 0x75, 0x7e, 0x87,
571 0x7f, 0x7e, 0x81, 0x87, 0x8a, 0x87, 0x86, 0x8b, 0x81, 0x84, 0x8b,
572 0x83, 0x7c, 0x83, 0x82, 0x7d, 0x7f, 0x80, 0x80, 0x85, 0x86, 0x82,
573 0x83, 0x86, 0x84, 0x87, 0x89, 0x89, 0x83, 0x81, 0x80, 0x80, 0x7d,
574 0x81, 0x81, 0x80, 0x84, 0x83, 0x7e, 0x87, 0x85, 0x81, 0x88, 0x85,
575 0x83, 0x8c, 0x86, 0x81, 0x7c, 0x7f, 0x88, 0x84, 0x78, 0x7d, 0x81,
576 0x7d, 0x81, 0x86, 0x83, 0x82, 0x8a, 0x8c, 0x87, 0x86, 0x85, 0x84,
577 0x83, 0x82, 0x7d, 0x80, 0x81, 0x81, 0x7e, 0x7e, 0x83, 0x82, 0x82,
578 0x89, 0x84, 0x86, 0x8b, 0x88, 0x8a, 0x8e, 0x81, 0x7d, 0x7e, 0x7a,
579 0x78, 0x7c, 0x7c, 0x7c, 0x7e, 0x83, 0x86, 0x86, 0x8b, 0x92, 0x8a,
580 0x81, 0x89, 0x8f, 0x88, 0x83, 0x84, 0x82, 0x81, 0x81, 0x7e, 0x76,
581 0x77, 0x7b, 0x81, 0x82, 0x84, 0x89, 0x89, 0x8f, 0x91, 0x86, 0x87,
582 0x8a, 0x81, 0x81, 0x82, 0x7c, 0x82, 0x83, 0x7e, 0x80, 0x80, 0x7d,
583 0x80, 0x84, 0x86, 0x83, 0x84, 0x89, 0x8c, 0x8a, 0x8b, 0x89, 0x81,
584 0x7e, 0x87, 0x80, 0x77, 0x7f, 0x82, 0x7d, 0x7f, 0x87, 0x8a, 0x8c,
585 0x86, 0x82, 0x85, 0x87, 0x8d, 0x8c, 0x85, 0x87, 0x86, 0x80, 0x85,
586 0x7e, 0x7b, 0x80, 0x81, 0x7e, 0x82, 0x7f, 0x84, 0x8a, 0x8b, 0x87,
587 0x88, 0x89, 0x89, 0x84, 0x81, 0x81, 0x7d, 0x7a, 0x80, 0x7f, 0x77,
588 0x7b, 0x82, 0x7f, 0x80, 0x8b, 0x83, 0x81, 0x8c, 0x8f, 0x8b, 0x87,
589 0x82, 0x85, 0x82, 0x7a, 0x7f, 0x7d, 0x7e, 0x82, 0x7c, 0x80, 0x88,
590 0x88, 0x84, 0x86, 0x82, 0x87, 0x8a, 0x88, 0x83, 0x7f, 0x7c, 0x7e,
591 0x7f, 0x7e, 0x7d, 0x7d, 0x7f, 0x81, 0x7d, 0x7c, 0x85, 0x88, 0x88,
592 0x8c, 0x8c, 0x81, 0x8a, 0x8a, 0x83, 0x81, 0x85, 0x7f, 0x81, 0x80,
593 0x84, 0x81, 0x7f, 0x89, 0x91, 0x8d, 0x8c, 0x8d, 0x8a, 0x8d, 0x8e,
594 0x8a, 0x89, 0x88, 0x85, 0x84, 0x83, 0x83, 0x84, 0x81, 0x7e, 0x7e,
595 0x80, 0x83, 0x87, 0x85, 0x85, 0x8a, 0x8b, 0x8a, 0x8e, 0x83, 0x7e,
596 0x85, 0x82, 0x7b, 0x81, 0x7f, 0x78, 0x7f, 0x7f, 0x7d, 0x7f, 0x87,
597 0x8b, 0x88, 0x81, 0x86, 0x80, 0x81, 0x89, 0x8e, 0x84, 0x82, 0x7f,
598 0x7e, 0x7d, 0x7a, 0x7a, 0x81, 0x83, 0x86, 0x86, 0x84, 0x89, 0x8c,
599 0x8b, 0x8a, 0x8a, 0x85, 0x83, 0x84, 0x7c, 0x7f, 0x86, 0x81, 0x81,
600 0x83, 0x7c, 0x80, 0x87, 0x83, 0x82, 0x86, 0x89, 0x88, 0x89, 0x8a,
601 0x84, 0x81, 0x83, 0x86, 0x7d, 0x7c, 0x84, 0x81, 0x82, 0x89, 0x87,
602 0x85, 0x89, 0x85, 0x89, 0x84, 0x7e, 0x81, 0x88, 0x88, 0x84, 0x80,
603 0x7b, 0x7f, 0x80, 0x7e, 0x82, 0x86, 0x83, 0x89, 0x87, 0x81, 0x86,
604 0x8a, 0x87, 0x89, 0x87, 0x7f, 0x81, 0x7e, 0x7d, 0x7b, 0x82, 0x87,
605 0x82, 0x7f, 0x85, 0x82, 0x82, 0x8a, 0x8c, 0x86, 0x88, 0x8b, 0x87,
606 0x84, 0x83, 0x82, 0x81, 0x82, 0x7f, 0x80, 0x7d, 0x7a, 0x7f, 0x86,
607 0x83, 0x83, 0x84, 0x86, 0x8f, 0x8b, 0x84, 0x89, 0x88, 0x87, 0x8a,
608 0x7f, 0x7b, 0x7e, 0x7f, 0x7e, 0x81, 0x81, 0x81, 0x80, 0x85, 0x84,
609 0x83, 0x8a, 0x91, 0x88, 0x84, 0x88, 0x82, 0x7c, 0x81, 0x85, 0x80,
610 0x82, 0x81, 0x7c, 0x79, 0x7d, 0x7f, 0x89, 0x86, 0x86, 0x8c, 0x8a,
611 0x86, 0x89, 0x84, 0x83, 0x85, 0x7f, 0x83, 0x83, 0x7a, 0x7a, 0x81,
612 0x84, 0x86, 0x82, 0x7f, 0x81, 0x85, 0x85, 0x84, 0x84, 0x88, 0x8a,
613 0x86, 0x86, 0x82, 0x7b, 0x7d, 0x85, 0x7d, 0x7c, 0x85, 0x88, 0x81,
614 0x86, 0x87, 0x84, 0x86, 0x84, 0x82, 0x7f, 0x7d, 0x83, 0x86, 0x82,
615 0x86, 0x84, 0x7f, 0x7f, 0x7b, 0x7c, 0x87, 0x86, 0x85, 0x89, 0x87,
616 0x84, 0x85, 0x87, 0x86, 0x82, 0x7f, 0x7e, 0x80, 0x80, 0x7d, 0x79,
617 0x80, 0x87, 0x8a, 0x82, 0x85, 0x85, 0x7f, 0x84, 0x8d, 0x84, 0x83,
618 0x8b, 0x85, 0x80, 0x7e, 0x7c, 0x80, 0x7d, 0x7d, 0x80, 0x7e, 0x7f,
619 0x87, 0x84, 0x85, 0x89, 0x88, 0x89, 0x89, 0x81, 0x81, 0x84, 0x80,
620 0x7e, 0x81, 0x81, 0x7d, 0x7e, 0x7e, 0x80, 0x83, 0x83, 0x84, 0x85,
621 0x86, 0x86, 0x88, 0x8a, 0x91, 0x89, 0x7d, 0x7f, 0x83, 0x7a, 0x7d,
622 0x7d, 0x7e, 0x7e, 0x86, 0x86, 0x84, 0x7d, 0x88, 0x89, 0x85, 0x89,
623 0x8c, 0x88, 0x88, 0x88, 0x81, 0x7f, 0x81, 0x82, 0x81, 0x7e, 0x7a,
624 0x7b, 0x83, 0x83, 0x83, 0x85, 0x88, 0x86, 0x86, 0x87, 0x87, 0x84,
625 0x84, 0x86, 0x84, 0x84, 0x84, 0x7c, 0x7d, 0x83, 0x7f, 0x7f, 0x86,
626 0x88, 0x84, 0x83, 0x84, 0x8b, 0x87, 0x84, 0x85, 0x7e, 0x7d, 0x87,
627 0x86, 0x7f, 0x7f, 0x81, 0x7f, 0x81, 0x83, 0x81, 0x84, 0x88, 0x88,
628 0x87, 0x87, 0x82, 0x85, 0x84, 0x81, 0x7d, 0x81, 0x82, 0x85, 0x7f,
629 0x80, 0x83, 0x80, 0x87, 0x8a, 0x85, 0x88, 0x87, 0x82, 0x86, 0x8a,
630 0x86, 0x83, 0x80, 0x85, 0x81, 0x7d, 0x7e, 0x85, 0x7c, 0x82, 0x85,
631 0x87, 0x85, 0x8b, 0x86, 0x83, 0x86, 0x8b, 0x86, 0x84, 0x7f, 0x7e,
632 0x82, 0x83, 0x7f, 0x7e, 0x7d, 0x7e, 0x82, 0x85, 0x85, 0x83, 0x84,
633 0x8b, 0x86, 0x84, 0x8a, 0x89, 0x85, 0x87, 0x7e, 0x7b, 0x7f, 0x7d,
634 0x7d, 0x7e, 0x7f, 0x7f, 0x82, 0x82, 0x8b, 0x87, 0x81, 0x85, 0x8b,
635 0x86, 0x88, 0x89, 0x85, 0x80, 0x83, 0x7e, 0x7b, 0x7d, 0x7d, 0x7b,
636 0x7b, 0x7d, 0x84, 0x87, 0x86, 0x86, 0x87, 0x8b, 0x8b, 0x83, 0x82,
637 0x81, 0x7e, 0x83, 0x85, 0x7c, 0x7a, 0x7f, 0x7f, 0x80, 0x81, 0x7f,
638 0x82, 0x85, 0x87, 0x86, 0x88, 0x87, 0x89, 0x85, 0x82, 0x84, 0x80,
639 0x7d, 0x85, 0x8a, 0x82, 0x81, 0x86, 0x85, 0x89, 0x8d, 0x8c, 0x8a,
640 0x8a, 0x8c, 0x8c, 0x86, 0x89, 0x8a, 0x86, 0x87, 0x84, 0x83, 0x88,
641 0x85, 0x7f, 0x84, 0x87, 0x85, 0x8b, 0x88, 0x86, 0x86, 0x8a, 0x89,
642 0x85, 0x83, 0x83, 0x85, 0x84, 0x84, 0x7e, 0x7f, 0x83, 0x88, 0x83,
643 0x81, 0x86, 0x85, 0x7f, 0x88, 0x89, 0x82, 0x83, 0x87, 0x85, 0x83,
644 0x7e, 0x82, 0x80, 0x81, 0x83, 0x7f, 0x7b, 0x81, 0x85, 0x87, 0x8c,
645 0x86, 0x86, 0x88, 0x85, 0x81, 0x85, 0x84, 0x82, 0x7f, 0x7e, 0x7a,
646 0x7d, 0x7f, 0x7f, 0x81, 0x80, 0x87, 0x88, 0x85, 0x86, 0x88, 0x86,
647 0x8c, 0x8d, 0x81, 0x80, 0x86, 0x7f, 0x79, 0x7b, 0x7c, 0x7e, 0x7d,
648 0x83, 0x87, 0x81, 0x81, 0x89, 0x87, 0x8b, 0x8a, 0x87, 0x86, 0x87,
649 0x82, 0x81, 0x7f, 0x7f, 0x7f, 0x82, 0x7e, 0x7b, 0x7d, 0x82, 0x85,
650 0x85, 0x86, 0x87, 0x86, 0x86, 0x88, 0x84, 0x84, 0x87, 0x83, 0x7b,
651 0x80, 0x7e, 0x7c, 0x83, 0x85, 0x7f, 0x81, 0x86, 0x82, 0x7f, 0x80,
652 0x8b, 0x8a, 0x83, 0x84, 0x84, 0x81, 0x81, 0x82, 0x81, 0x80, 0x7d,
653 0x7e, 0x80, 0x81, 0x7d, 0x7f, 0x81, 0x86, 0x88, 0x88, 0x86, 0x82,
654 0x83, 0x85, 0x85, 0x81, 0x83, 0x85, 0x80, 0x7e, 0x80, 0x7b, 0x7e,
655 0x86, 0x82, 0x80, 0x87, 0x83, 0x83, 0x85, 0x86, 0x84, 0x83, 0x85,
656 0x85, 0x7a, 0x7c, 0x84, 0x82, 0x7f, 0x81, 0x84, 0x84, 0x83, 0x84,
657 0x86, 0x8a, 0x8a, 0x88, 0x85, 0x80, 0x7e, 0x80, 0x81, 0x81, 0x7e,
658 0x7d, 0x7c, 0x81, 0x7f, 0x85, 0x84, 0x84, 0x8a, 0x8f, 0x85, 0x87,
659 0x86, 0x82, 0x84, 0x87, 0x81, 0x7e, 0x80, 0x7f, 0x7b, 0x7a, 0x82,
660 0x83, 0x85, 0x8b, 0x8a, 0x84, 0x84, 0x8b, 0x88, 0x87, 0x83, 0x89,
661 0x83, 0x80, 0x7b, 0x80, 0x7e, 0x7f, 0x7e, 0x82, 0x83, 0x84, 0x85,
662 0x84, 0x88, 0x88, 0x89, 0x8c, 0x87, 0x82, 0x84, 0x81, 0x7f, 0x87,
663 0x83, 0x7e, 0x7e, 0x81, 0x82, 0x83, 0x81, 0x84, 0x80, 0x84, 0x86,
664 0x82, 0x82, 0x8a, 0x89, 0x87, 0x89, 0x88, 0x80, 0x81, 0x80, 0x78,
665 0x78, 0x7b, 0x7e, 0x82, 0x80, 0x7b, 0x85, 0x88, 0x8b, 0x8e, 0x8b,
666 0x85, 0x83, 0x7b, 0x78, 0x7c, 0x7c, 0x7f, 0x83, 0x82, 0x84, 0x88,
667 0x85, 0x81, 0x81, 0x7f, 0x7b, 0x7c, 0x7f, 0x7e, 0x7d, 0x84, 0x89,
668 0x8d, 0x91, 0x8e, 0x7f, 0x79, 0x7b, 0x75, 0x71, 0x75, 0x7b, 0x80,
669 0x8b, 0x91, 0x97, 0x9a, 0x97, 0x8f, 0x85, 0x71, 0x66, 0x67, 0x69,
670 0x70, 0x7a, 0x83, 0x96, 0xa1, 0xa2, 0xa0, 0x98, 0x83, 0x73, 0x68,
671 0x60, 0x62, 0x6a, 0x76, 0x82, 0x99, 0xab, 0xb3, 0xaa, 0x9b, 0x7c,
672 0x61, 0x53, 0x53, 0x57, 0x69, 0x7d, 0x8d, 0xa7, 0xc2, 0xca, 0xbe,
673 0xa8, 0x84, 0x5a, 0x3d, 0x33, 0x3b, 0x52, 0x70, 0x91, 0xb5, 0xcf,
674 0xdf, 0xd9, 0xb8, 0x83, 0x50, 0x30, 0x29, 0x30, 0x45, 0x6a, 0x91,
675 0xc0, 0xe2, 0xee, 0xdf, 0xb9, 0x80, 0x48, 0x21, 0x14, 0x1c, 0x3c,
676 0x69, 0x9e, 0xd4, 0xf1, 0xfe, 0xf2, 0xbf, 0x86, 0x47, 0x17, 0x10,
677 0x11, 0x26, 0x5b, 0x91, 0xcf, 0xf9, 0xff, 0xf8, 0xd8, 0x97, 0x57,
678 0x24, 0x11, 0x10, 0x21, 0x55, 0x83, 0xb7, 0xe9, 0xff, 0xff, 0xdc,
679 0x9d, 0x5c, 0x26, 0x10, 0x10, 0x16, 0x4a, 0x80, 0xb9, 0xef, 0xff,
680 0xff, 0xeb, 0xaf, 0x66, 0x2b, 0x10, 0x0f, 0x11, 0x3a, 0x6f, 0xab,
681 0xe7, 0xff, 0xff, 0xf7, 0xc3, 0x7c, 0x36, 0x13, 0x10, 0x10, 0x26,
682 0x64, 0x97, 0xd1, 0xff, 0xff, 0xff, 0xd7, 0x8d, 0x4a, 0x16, 0x10,
683 0x10, 0x20, 0x4e, 0x82, 0xbe, 0xf6, 0xff, 0xff, 0xe3, 0xa9, 0x5d,
684 0x20, 0x10, 0x0f, 0x11, 0x46, 0x7d, 0xb8, 0xf0, 0xff, 0xff, 0xf0,
685 0xb9, 0x6c, 0x2a, 0x10, 0x0f, 0x10, 0x2c, 0x6a, 0xa3, 0xdf, 0xff,
686 0xff, 0xfe, 0xd5, 0x93, 0x4b, 0x18, 0x10, 0x10, 0x24, 0x5a, 0x90,
687 0xcc, 0xfe, 0xff, 0xff, 0xdc, 0xa0, 0x58, 0x1f, 0x10, 0x10, 0x12,
688 0x4f, 0x91, 0xc8, 0xfb, 0xff, 0xff, 0xf5, 0xbd, 0x71, 0x2b, 0x11,
689 0x0f, 0x10, 0x34, 0x6b, 0xa9, 0xe6, 0xff, 0xff, 0xf8, 0xcc, 0x86,
690 0x3a, 0x11, 0x0f, 0x0f, 0x10, 0x43, 0x80, 0xc0, 0xef, 0xff, 0xff,
691 0xe5, 0x97, 0x53, 0x1c, 0x10, 0x10, 0x1b, 0x5a, 0x91, 0xc8, 0xff,
692 0xff, 0xff, 0xe5, 0xae, 0x61, 0x1e, 0x0f, 0x0f, 0x10, 0x31, 0x6d,
693 0xa7, 0xec, 0xff, 0xff, 0xf8, 0xb7, 0x74, 0x2b, 0x10, 0x0f, 0x0f,
694 0x17, 0x59, 0x99, 0xdd, 0xff, 0xff, 0xff, 0xd5, 0x91, 0x43, 0x14,
695 0x0f, 0x0f, 0x19, 0x57, 0x8c, 0xcd, 0xfe, 0xff, 0xff, 0xdb, 0x9c,
696 0x4f, 0x13, 0x0f, 0x0f, 0x10, 0x43, 0x86, 0xc8, 0xff, 0xff, 0xff,
697 0xf4, 0xae, 0x5a, 0x15, 0x0f, 0x0f, 0x0f, 0x26, 0x66, 0xae, 0xf3,
698 0xff, 0xff, 0xff, 0xca, 0x7b, 0x32, 0x10, 0x0f, 0x0f, 0x1e, 0x5e,
699 0x97, 0xe1, 0xff, 0xff, 0xff, 0xdd, 0x90, 0x46, 0x12, 0x0f, 0x0f,
700 0x14, 0x49, 0x8a, 0xce, 0xff, 0xff, 0xff, 0xdf, 0x97, 0x4b, 0x11,
701 0x0f, 0x0f, 0x10, 0x39, 0x7d, 0xc1, 0xff, 0xff, 0xff, 0xfd, 0xb5,
702 0x60, 0x1f, 0x0f, 0x0f, 0x0f, 0x23, 0x63, 0xa4, 0xe4, 0xff, 0xff,
703 0xff, 0xd3, 0x7f, 0x35, 0x10, 0x0f, 0x0f, 0x14, 0x53, 0x92, 0xd8,
704 0xff, 0xff, 0xff, 0xda, 0x8f, 0x47, 0x11, 0x0f, 0x0f, 0x10, 0x3f,
705 0x82, 0xc9, 0xff, 0xff, 0xff, 0xf7, 0xb4, 0x5f, 0x19, 0x0f, 0x0f,
706 0x0f, 0x2c, 0x6b, 0xb2, 0xf9, 0xff, 0xff, 0xff, 0xd1, 0x7f, 0x2c,
707 0x10, 0x0f, 0x0f, 0x16, 0x5a, 0x95, 0xdd, 0xff, 0xff, 0xff, 0xde,
708 0x97, 0x4c, 0x11, 0x0f, 0x0f, 0x10, 0x40, 0x83, 0xcb, 0xff, 0xff,
709 0xff, 0xed, 0xa9, 0x56, 0x12, 0x0f, 0x0f, 0x0f, 0x2f, 0x6a, 0xab,
710 0xf3, 0xff, 0xff, 0xff, 0xcc, 0x7b, 0x32, 0x10, 0x0f, 0x0f, 0x16,
711 0x5b, 0x9a, 0xda, 0xff, 0xff, 0xff, 0xe2, 0x97, 0x49, 0x12, 0x0f,
712 0x0f, 0x10, 0x3b, 0x7e, 0xbf, 0xf8, 0xff, 0xff, 0xeb, 0xad, 0x5e,
713 0x1c, 0x0f, 0x0f, 0x0f, 0x2a, 0x6a, 0xa7, 0xed, 0xff, 0xff, 0xff,
714 0xce, 0x7b, 0x32, 0x10, 0x0f, 0x0f, 0x12, 0x4f, 0x8e, 0xce, 0xff,
715 0xff, 0xff, 0xe8, 0xaa, 0x59, 0x15, 0x0f, 0x0f, 0x10, 0x34, 0x73,
716 0xb4, 0xf2, 0xff, 0xff, 0xf0, 0xb7, 0x6f, 0x2c, 0x10, 0x0f, 0x0f,
717 0x1f, 0x62, 0xa0, 0xe1, 0xff, 0xff, 0xff, 0xda, 0x95, 0x40, 0x11,
718 0x0f, 0x0f, 0x10, 0x42, 0x80, 0xc2, 0xfa, 0xff, 0xff, 0xef, 0xb6,
719 0x64, 0x1b, 0x0f, 0x0f, 0x0f, 0x29, 0x6b, 0xa9, 0xe2, 0xff, 0xff,
720 0xfc, 0xc6, 0x7c, 0x37, 0x10, 0x0f, 0x0f, 0x12, 0x4f, 0x92, 0xd3,
721 0xff, 0xff, 0xff, 0xe1, 0x9e, 0x4d, 0x12, 0x0f, 0x0f, 0x10, 0x34,
722 0x76, 0xb6, 0xf6, 0xff, 0xff, 0xff, 0xcc, 0x7f, 0x36, 0x10, 0x0f,
723 0x0f, 0x23, 0x67, 0xa8, 0xe7, 0xff, 0xff, 0xff, 0xe4, 0x9f, 0x51,
724 0x15, 0x0f, 0x0f, 0x10, 0x39, 0x7b, 0xc4, 0xfa, 0xff, 0xff, 0xe6,
725 0xad, 0x62, 0x19, 0x0f, 0x0f, 0x0f, 0x1b, 0x5d, 0x9d, 0xdf, 0xff,
726 0xff, 0xf8, 0xc6, 0x81, 0x30, 0x0f, 0x0f, 0x0f, 0x10, 0x45, 0x87,
727 0xc9, 0xff, 0xff, 0xff, 0xea, 0xb0, 0x5c, 0x16, 0x0f, 0x0f, 0x0f,
728 0x21, 0x66, 0xab, 0xe9, 0xff, 0xff, 0xf9, 0xc0, 0x78, 0x35, 0x10,
729 0x0f, 0x0f, 0x1a, 0x5b, 0x98, 0xd6, 0xff, 0xff, 0xff, 0xeb, 0xab,
730 0x5b, 0x20, 0x10, 0x0f, 0x13, 0x50, 0x95, 0xd2, 0xff, 0xff, 0xff,
731 0xff, 0xd2, 0x81, 0x35, 0x10, 0x0f, 0x0f, 0x1c, 0x5e, 0x97, 0xd4,
732 0xff, 0xff, 0xff, 0xd3, 0x8c, 0x46, 0x11, 0x0f, 0x0f, 0x10, 0x3e,
733 0x7f, 0xbb, 0xf5, 0xff, 0xff, 0xe6, 0xaf, 0x5d, 0x19, 0x0f, 0x0f,
734 0x0f, 0x26, 0x66, 0xa8, 0xe2, 0xff, 0xff, 0xfb, 0xcc, 0x8e, 0x3c,
735 0x10, 0x0f, 0x0f, 0x11, 0x4f, 0x8d, 0xcb, 0xff, 0xff, 0xff, 0xea,
736 0xac, 0x63, 0x1f, 0x10, 0x0f, 0x10, 0x32, 0x75, 0xb4, 0xef, 0xff,
737 0xff, 0xff, 0xd1, 0x88, 0x41, 0x12, 0x0f, 0x10, 0x21, 0x60, 0xa0,
738 0xd8, 0xff, 0xff, 0xff, 0xe1, 0xa4, 0x5a, 0x1b, 0x0f, 0x0f, 0x11,
739 0x40, 0x84, 0xbb, 0xf2, 0xff, 0xff, 0xf5, 0xc0, 0x74, 0x2d, 0x10,
740 0x0f, 0x0f, 0x16, 0x5a, 0x9b, 0xd7, 0xff, 0xff, 0xff, 0xd3, 0x93,
741 0x4a, 0x12, 0x0f, 0x0f, 0x10, 0x3c, 0x7b, 0xb7, 0xef, 0xff, 0xff,
742 0xe4, 0xae, 0x64, 0x20, 0x0f, 0x0f, 0x0f, 0x1c, 0x62, 0xa2, 0xdc,
743 0xff, 0xff, 0xfc, 0xd0, 0x8a, 0x3b, 0x10, 0x0f, 0x0f, 0x10, 0x3c,
744 0x82, 0xbe, 0xf4, 0xff, 0xff, 0xe2, 0xb0, 0x64, 0x20, 0x0f, 0x0f,
745 0x0f, 0x2a, 0x67, 0xa6, 0xdb, 0xff, 0xff, 0xf4, 0xc4, 0x7c, 0x37,
746 0x10, 0x0f, 0x0f, 0x13, 0x50, 0x8d, 0xc9, 0xfb, 0xff, 0xff, 0xdd,
747 0xa4, 0x59, 0x14, 0x0f, 0x0f, 0x0f, 0x2f, 0x73, 0xaf, 0xe7, 0xff,
748 0xff, 0xf6, 0xc2, 0x7f, 0x3a, 0x10, 0x0f, 0x0f, 0x13, 0x52, 0x94,
749 0xcb, 0xf9, 0xff, 0xff, 0xdb, 0xa4, 0x5e, 0x24, 0x10, 0x0f, 0x10,
750 0x30, 0x6e, 0xb0, 0xe8, 0xff, 0xff, 0xf2, 0xc6, 0x87, 0x3f, 0x11,
751 0x0f, 0x0f, 0x17, 0x57, 0x92, 0xca, 0xfb, 0xff, 0xff, 0xdf, 0xa7,
752 0x61, 0x21, 0x0f, 0x0f, 0x0f, 0x2b, 0x6e, 0xaf, 0xe0, 0xff, 0xff,
753 0xf5, 0xcb, 0x90, 0x47, 0x13, 0x0f, 0x0f, 0x11, 0x41, 0x83, 0xbd,
754 0xec, 0xff, 0xff, 0xe2, 0xb0, 0x6c, 0x2f, 0x10, 0x0f, 0x10, 0x2a,
755 0x5f, 0x9a, 0xd2, 0xff, 0xff, 0xf4, 0xcb, 0x8e, 0x4b, 0x15, 0x0f,
756 0x0f, 0x10, 0x33, 0x75, 0xaf, 0xe2, 0xff, 0xff, 0xe9, 0xc4, 0x82,
757 0x3c, 0x11, 0x0f, 0x0f, 0x12, 0x43, 0x7f, 0xb8, 0xed, 0xff, 0xfa,
758 0xdf, 0xaf, 0x6a, 0x25, 0x0f, 0x0f, 0x0f, 0x1b, 0x5a, 0x95, 0xd4,
759 0xf8, 0xff, 0xf0, 0xc5, 0x86, 0x48, 0x16, 0x0f, 0x0f, 0x10, 0x2f,
760 0x6c, 0xa7, 0xd4, 0xed, 0xed, 0xd1, 0xa7, 0x6b, 0x3b, 0x1a, 0x12,
761 0x15, 0x39, 0x5e, 0x8c, 0xb9, 0xda, 0xe1, 0xd6, 0xba, 0x94, 0x66,
762 0x47, 0x2b, 0x23, 0x2f, 0x50, 0x6c, 0x90, 0xaa, 0xbc, 0xc2, 0xb5,
763 0x98, 0x7e, 0x66, 0x50, 0x45, 0x48, 0x55, 0x67, 0x83, 0x9c, 0xab,
764 0xae, 0xa6, 0x95, 0x7c, 0x60, 0x53, 0x4c, 0x4b, 0x57, 0x68, 0x76,
765 0x90, 0xa2, 0xaa, 0xab, 0xa1, 0x92, 0x7e, 0x6c, 0x5f, 0x57, 0x57,
766 0x62, 0x72, 0x83, 0x92, 0x9b, 0x9e, 0x9c, 0x94, 0x84, 0x74, 0x69,
767 0x60, 0x5d, 0x61, 0x65, 0x75, 0x87, 0x8e, 0x92, 0x95, 0x8e, 0x86,
768 0x7d, 0x74, 0x70, 0x6c, 0x70, 0x79, 0x7f, 0x84, 0x92, 0x95, 0x94,
769 0x94, 0x89, 0x7f, 0x76, 0x6d, 0x68, 0x68, 0x70, 0x7c, 0x83, 0x8b,
770 0x90, 0x93, 0x91, 0x91, 0x8c, 0x83, 0x7a, 0x76, 0x70, 0x74, 0x77,
771 0x7c, 0x83, 0x8f, 0x8f, 0x91, 0x8c, 0x84, 0x82, 0x82, 0x7c, 0x79,
772 0x79, 0x7f, 0x82, 0x82, 0x86, 0x8b, 0x87, 0x89, 0x86, 0x7e, 0x79,
773 0x78, 0x76, 0x76, 0x79, 0x7d, 0x80, 0x83, 0x88, 0x88, 0x86, 0x86,
774 0x83, 0x7d, 0x79, 0x78, 0x76, 0x75, 0x79, 0x7b, 0x7d, 0x83, 0x84,
775 0x80, 0x7d, 0x7b, 0x78, 0x7b, 0x79, 0x79, 0x79, 0x78, 0x7a, 0x81,
776 0x81, 0x83, 0x81, 0x80, 0x84, 0x7c, 0x76, 0x78, 0x7b, 0x7c, 0x82,
777 0x83, 0x81, 0x81, 0x85, 0x82, 0x7f, 0x7d, 0x7e, 0x7c, 0x79, 0x7a,
778 0x79, 0x7b, 0x80, 0x87, 0x88, 0x8a, 0x8c, 0x8b, 0x88, 0x86, 0x86,
779 0x82, 0x85, 0x83, 0x88, 0x87, 0x8b, 0x8c, 0x8f, 0x8c, 0x8f, 0x8c,
780 0x8c, 0x8c, 0x86, 0x88, 0x8a, 0x8a, 0x8f, 0x94, 0x8f, 0x8a, 0x8d,
781 0x8e, 0x87, 0x87, 0x82, 0x81, 0x7f, 0x83, 0x82, 0x83, 0x87, 0x8e,
782 0x90, 0x8e, 0x89, 0x85, 0x81, 0x80, 0x82, 0x7d, 0x7e, 0x7f, 0x7e,
783 0x7f, 0x82, 0x85, 0x88, 0x89, 0x88, 0x86, 0x82, 0x82, 0x81, 0x82,
784 0x82, 0x85, 0x85, 0x87, 0x8b, 0x86, 0x87, 0x85, 0x7f, 0x7b, 0x7f,
785 0x77, 0x7b, 0x79, 0x7d, 0x7f, 0x7e, 0x83, 0x8b, 0x8a, 0x88, 0x87,
786 0x7d, 0x82, 0x81, 0x7c, 0x77, 0x7a, 0x7e, 0x7f, 0x86, 0x85, 0x81,
787 0x88, 0x89, 0x86, 0x81, 0x7d, 0x7d, 0x7f, 0x7e, 0x82, 0x82, 0x83,
788 0x81, 0x86, 0x86, 0x86, 0x85, 0x83, 0x82, 0x7e, 0x78, 0x7b, 0x7f,
789 0x7f, 0x83, 0x88, 0x87, 0x84, 0x87, 0x87, 0x82, 0x7e, 0x80, 0x7f,
790 0x7d, 0x7d, 0x80, 0x80, 0x85, 0x87, 0x86, 0x87, 0x8c, 0x89, 0x85,
791 0x80, 0x7b, 0x7b, 0x7c, 0x7f, 0x7e, 0x7f, 0x81, 0x87, 0x88, 0x87,
792 0x85, 0x86, 0x86, 0x86, 0x82, 0x80, 0x81, 0x80, 0x83, 0x86, 0x86,
793 0x85, 0x87, 0x86, 0x82, 0x81, 0x81, 0x80, 0x7b, 0x7d, 0x80, 0x7f,
794 0x81, 0x88, 0x8c, 0x88, 0x86, 0x85, 0x82, 0x82, 0x80, 0x7d, 0x7d,
795 0x7d, 0x7e, 0x7d, 0x80, 0x86, 0x89, 0x89, 0x8b, 0x87, 0x86, 0x88,
796 0x85, 0x80, 0x7c, 0x7c, 0x7d, 0x82, 0x83, 0x7f, 0x81, 0x84, 0x83,
797 0x82, 0x84, 0x80, 0x81, 0x7f, 0x82, 0x81, 0x80, 0x83, 0x86, 0x84,
798 0x87, 0x88, 0x83, 0x80, 0x81, 0x7d, 0x7b, 0x7c, 0x7e, 0x7f, 0x80,
799 0x82, 0x81, 0x85, 0x88, 0x85, 0x81, 0x80, 0x81, 0x82, 0x7f, 0x7d,
800 0x7f, 0x7d, 0x7e, 0x81, 0x81, 0x82, 0x85, 0x84, 0x81, 0x7d, 0x7b,
801 0x7d, 0x81, 0x7e, 0x7e, 0x7e, 0x81, 0x83, 0x83, 0x83, 0x81, 0x7c,
802 0x81, 0x83, 0x7c, 0x7d, 0x80, 0x80, 0x80, 0x83, 0x83, 0x82, 0x82,
803 0x83, 0x80, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x81, 0x7c, 0x81, 0x85,
804 0x86, 0x81, 0x85, 0x81, 0x84, 0x83, 0x80, 0x80, 0x7f, 0x81, 0x7d,
805 0x80, 0x7d, 0x81, 0x80, 0x83, 0x82, 0x83, 0x7d, 0x84, 0x80, 0x7e,
806 0x82, 0x83, 0x83, 0x87, 0x85, 0x7c, 0x7c, 0x82, 0x7e, 0x7e, 0x7d,
807 0x80, 0x80, 0x82, 0x83, 0x84, 0x83, 0x83, 0x87, 0x83, 0x84, 0x84,
808 0x80, 0x80, 0x80, 0x7f, 0x78, 0x7f, 0x7c, 0x82, 0x80, 0x7f, 0x80,
809 0x85, 0x84, 0x84, 0x80, 0x7e, 0x81, 0x82, 0x81, 0x81, 0x7f, 0x7f,
810 0x83, 0x82, 0x7f, 0x80, 0x81, 0x7b, 0x7c, 0x7a, 0x79, 0x7f, 0x83,
811 0x83, 0x81, 0x84, 0x88, 0x88, 0x83, 0x82, 0x80, 0x7f, 0x80, 0x82,
812 0x7d, 0x7d, 0x7d, 0x7c, 0x7e, 0x80, 0x7f, 0x7f, 0x81, 0x83, 0x83,
813 0x83, 0x80, 0x84, 0x84, 0x84, 0x81, 0x82, 0x82, 0x81, 0x7f, 0x7f,
814 0x7f, 0x7f, 0x83, 0x83, 0x83, 0x81, 0x87, 0x87, 0x86, 0x87, 0x87,
815 0x86, 0x84, 0x83, 0x82, 0x7c, 0x7d, 0x81, 0x7f, 0x7d, 0x81, 0x82,
816 0x82, 0x84, 0x83, 0x82, 0x85, 0x85, 0x81, 0x80, 0x7f, 0x7f, 0x82,
817 0x82, 0x83, 0x80, 0x7f, 0x80, 0x84, 0x87, 0x87, 0x83, 0x84, 0x86,
818 0x84, 0x81, 0x82, 0x83, 0x83, 0x85, 0x83, 0x7d, 0x7b, 0x7e, 0x7e,
819 0x7e, 0x7e, 0x81, 0x83, 0x82, 0x84, 0x86, 0x83, 0x85, 0x88, 0x84,
820 0x81, 0x81, 0x7f, 0x7d, 0x7d, 0x7d, 0x7e, 0x82, 0x82, 0x82, 0x82,
821 0x84, 0x86, 0x87, 0x87, 0x88, 0x87, 0x85, 0x85, 0x83, 0x83, 0x82,
822 0x81, 0x83, 0x85, 0x7f, 0x7a, 0x7e, 0x7f, 0x80, 0x82, 0x82, 0x80,
823 0x83, 0x86, 0x88, 0x88, 0x87, 0x8a, 0x88, 0x81, 0x80, 0x80, 0x7b,
824 0x7e, 0x81, 0x80, 0x7d, 0x81, 0x82, 0x83, 0x83, 0x88, 0x89, 0x8b,
825 0x8b, 0x8a, 0x87, 0x89, 0x87, 0x86, 0x87, 0x88, 0x84, 0x85, 0x85,
826 0x83, 0x85, 0x87, 0x86, 0x88, 0x8d, 0x8a, 0x87, 0x8b, 0x8b, 0x89,
827 0x89, 0x88, 0x88, 0x87, 0x84, 0x82, 0x7f, 0x80, 0x86, 0x88, 0x85,
828 0x84, 0x86, 0x85, 0x86, 0x89, 0x89, 0x84, 0x87, 0x85, 0x81, 0x82,
829 0x85, 0x83, 0x85, 0x85, 0x82, 0x83, 0x84, 0x85, 0x84, 0x86, 0x85,
830 0x86, 0x84, 0x83, 0x80, 0x83, 0x83, 0x84, 0x83, 0x85, 0x81, 0x81,
831 0x82, 0x83, 0x83, 0x83, 0x86, 0x89, 0x86, 0x85, 0x87, 0x85, 0x85,
832 0x88, 0x83, 0x81, 0x81, 0x84, 0x81, 0x80, 0x7e, 0x81, 0x83, 0x88,
833 0x87, 0x85, 0x82, 0x84, 0x84, 0x87, 0x87, 0x86, 0x82, 0x83, 0x7f,
834 0x7d, 0x7f, 0x81, 0x7f, 0x80, 0x7e, 0x7f, 0x81, 0x81, 0x84, 0x84,
835 0x85, 0x88, 0x84, 0x86, 0x87, 0x84, 0x80, 0x83, 0x81, 0x7c, 0x7b,
836 0x7b, 0x7a, 0x7d, 0x7f, 0x80, 0x81, 0x83, 0x85, 0x85, 0x84, 0x88,
837 0x89, 0x87, 0x85, 0x84, 0x7d, 0x80, 0x81, 0x7e, 0x7c, 0x7d, 0x7d,
838 0x82, 0x82, 0x80, 0x82, 0x81, 0x86, 0x89, 0x88, 0x87, 0x88, 0x84,
839 0x84, 0x82, 0x82, 0x84, 0x85, 0x80, 0x7e, 0x7f, 0x7d, 0x7e, 0x82,
840 0x84, 0x82, 0x83, 0x86, 0x85, 0x84, 0x84, 0x85, 0x82, 0x85, 0x83,
841 0x81, 0x7f, 0x81, 0x82, 0x82, 0x82, 0x83, 0x81, 0x84, 0x82, 0x82,
842 0x82, 0x83, 0x85, 0x84, 0x81, 0x81, 0x82, 0x83, 0x85, 0x84, 0x80,
843 0x80, 0x81, 0x82, 0x81, 0x81, 0x7f, 0x83, 0x86, 0x81, 0x83, 0x84,
844 0x81, 0x80, 0x81, 0x82, 0x81, 0x7f, 0x80, 0x80, 0x7b, 0x7e, 0x80,
845 0x83, 0x85, 0x87, 0x83, 0x82, 0x84, 0x83, 0x82, 0x81, 0x80, 0x7f,
846 0x7f, 0x7d, 0x7c, 0x7d, 0x80, 0x81, 0x82, 0x82, 0x84, 0x86, 0x86,
847 0x85, 0x85, 0x84, 0x85, 0x86, 0x83, 0x80, 0x7f, 0x7f, 0x81, 0x80,
848 0x7b, 0x7b, 0x7f, 0x81, 0x82, 0x82, 0x86, 0x85, 0x86, 0x89, 0x88,
849 0x85, 0x86, 0x85, 0x82, 0x82, 0x7f, 0x7d, 0x7b, 0x7e, 0x7e, 0x7f,
850 0x7f, 0x83, 0x88, 0x87, 0x85, 0x86, 0x86, 0x88, 0x88, 0x87, 0x84,
851 0x83, 0x82, 0x7f, 0x81, 0x7f, 0x80, 0x82, 0x81, 0x7e, 0x81, 0x7f,
852 0x81, 0x83, 0x82, 0x82, 0x84, 0x88, 0x87, 0x83, 0x82, 0x85, 0x82,
853 0x81, 0x81, 0x7e, 0x7b, 0x7f, 0x81, 0x7f, 0x80, 0x80, 0x82, 0x83,
854 0x86, 0x87, 0x85, 0x83, 0x84, 0x85, 0x81, 0x80, 0x80, 0x82, 0x82,
855 0x81, 0x7d, 0x82, 0x82, 0x81, 0x85, 0x82, 0x82, 0x83, 0x87, 0x83,
856 0x83, 0x80, 0x84, 0x83, 0x84, 0x83, 0x85, 0x83, 0x84, 0x83, 0x80,
857 0x80, 0x87, 0x84, 0x83, 0x85, 0x85, 0x83, 0x85, 0x84, 0x81, 0x81,
858 0x83, 0x80, 0x82, 0x7f, 0x7f, 0x81, 0x85, 0x82, 0x88, 0x83, 0x86,
859 0x87, 0x88, 0x87, 0x85, 0x7f, 0x82, 0x80, 0x80, 0x7e, 0x7f, 0x7e,
860 0x80, 0x81, 0x81, 0x82, 0x84, 0x87, 0x87, 0x85, 0x87, 0x87, 0x83,
861 0x86, 0x84, 0x7f, 0x82, 0x83, 0x80, 0x7e, 0x7c, 0x7f, 0x7e, 0x7d,
862 0x80, 0x81, 0x83, 0x86, 0x86, 0x85, 0x84, 0x85, 0x88, 0x86, 0x85,
863 0x81, 0x80, 0x80, 0x7e, 0x7e, 0x7d, 0x7d, 0x7f, 0x82, 0x83, 0x82,
864 0x82, 0x85, 0x88, 0x88, 0x86, 0x86, 0x83, 0x84, 0x86, 0x83, 0x81,
865 0x83, 0x81, 0x7f, 0x80, 0x80, 0x81, 0x82, 0x86, 0x84, 0x83, 0x85,
866 0x88, 0x88, 0x86, 0x86, 0x88, 0x85, 0x84, 0x83, 0x7f, 0x7f, 0x81,
867 0x7f, 0x7e, 0x83, 0x7f, 0x82, 0x82, 0x83, 0x82, 0x87, 0x84, 0x89,
868 0x86, 0x83, 0x81, 0x80, 0x82, 0x83, 0x81, 0x82, 0x82, 0x82, 0x82,
869 0x82, 0x7f, 0x81, 0x86, 0x85, 0x83, 0x82, 0x83, 0x7e, 0x82, 0x83,
870 0x83, 0x7f, 0x81, 0x81, 0x82, 0x7e, 0x83, 0x85, 0x83, 0x82, 0x83,
871 0x80, 0x83, 0x85, 0x83, 0x82, 0x82, 0x82, 0x82, 0x83, 0x82, 0x83,
872 0x85, 0x86, 0x88, 0x89, 0x8a, 0x8a, 0x8c, 0x8d, 0x8d, 0x8c, 0x8d,
873 0x8d, 0x8a, 0x87, 0x87, 0x84, 0x85, 0x88, 0x87, 0x83, 0x83, 0x85,
874 0x87, 0x86, 0x88, 0x8a, 0x8a, 0x8c, 0x8c, 0x87, 0x83, 0x86, 0x85,
875 0x86, 0x85, 0x82, 0x80, 0x80, 0x7f, 0x80, 0x81, 0x85, 0x88, 0x86,
876 0x86, 0x86, 0x87, 0x8a, 0x89, 0x87, 0x86, 0x85, 0x82, 0x80, 0x83,
877 0x7f, 0x7f, 0x81, 0x81, 0x80, 0x81, 0x84, 0x82, 0x87, 0x87, 0x89,
878 0x84, 0x8a, 0x88, 0x88, 0x81, 0x83, 0x85, 0x81, 0x82, 0x81, 0x7d,
879 0x7d, 0x81, 0x83, 0x82, 0x84, 0x83, 0x85, 0x87, 0x86, 0x83, 0x84,
880 0x87, 0x88, 0x86, 0x83, 0x81, 0x81, 0x81, 0x81, 0x80, 0x83, 0x85,
881 0x82, 0x80, 0x81, 0x81, 0x83, 0x88, 0x89, 0x86, 0x85, 0x83, 0x84,
882 0x83, 0x84, 0x84, 0x82, 0x82, 0x85, 0x82, 0x81, 0x86, 0x86, 0x86,
883 0x83, 0x86, 0x84, 0x85, 0x85, 0x84, 0x81, 0x82, 0x83, 0x85, 0x83,
884 0x80, 0x81, 0x82, 0x86, 0x86, 0x86, 0x85, 0x87, 0x86, 0x86, 0x84,
885 0x82, 0x83, 0x85, 0x80, 0x7f, 0x81, 0x7f, 0x7f, 0x82, 0x82, 0x83,
886 0x83, 0x83, 0x84, 0x82, 0x84, 0x87, 0x88, 0x86, 0x87, 0x82, 0x7e,
887 0x7e, 0x82, 0x7f, 0x81, 0x81, 0x80, 0x7f, 0x81, 0x82, 0x84, 0x87,
888 0x88, 0x87, 0x85, 0x85, 0x83, 0x84, 0x83, 0x7f, 0x7e, 0x81, 0x7f,
889 0x80, 0x7c, 0x7e, 0x7e, 0x82, 0x85, 0x83, 0x84, 0x85, 0x87, 0x87,
890 0x86, 0x88, 0x87, 0x85, 0x87, 0x83, 0x80, 0x7e, 0x80, 0x7e, 0x7e,
891 0x81, 0x7f, 0x80, 0x82, 0x85, 0x84, 0x85, 0x88, 0x8a, 0x86, 0x85,
892 0x85, 0x82, 0x84, 0x85, 0x81, 0x81, 0x7e, 0x7c, 0x7d, 0x7f, 0x80,
893 0x84, 0x83, 0x85, 0x82, 0x82, 0x84, 0x87, 0x88, 0x87, 0x85, 0x83,
894 0x84, 0x84, 0x7f, 0x7e, 0x81, 0x7f, 0x82, 0x81, 0x82, 0x7f, 0x82,
895 0x84, 0x84, 0x82, 0x85, 0x85, 0x82, 0x82, 0x80, 0x82, 0x7d, 0x82,
896 0x82, 0x80, 0x80, 0x82, 0x81, 0x84, 0x84, 0x83, 0x84, 0x85, 0x83,
897 0x82, 0x81, 0x7f, 0x80, 0x81, 0x82, 0x80, 0x80, 0x81, 0x82, 0x82,
898 0x84, 0x84, 0x84, 0x85, 0x83, 0x7f, 0x82, 0x85, 0x85, 0x83, 0x81,
899 0x7f, 0x80, 0x7f, 0x82, 0x82, 0x80, 0x84, 0x85, 0x84, 0x83, 0x87,
900 0x85, 0x85, 0x88, 0x87, 0x85, 0x84, 0x82, 0x80, 0x80, 0x7f, 0x7f,
901 0x80, 0x81, 0x80, 0x81, 0x82, 0x84, 0x85, 0x86, 0x87, 0x88, 0x87,
902 0x87, 0x86, 0x84, 0x83, 0x82, 0x81, 0x82, 0x80, 0x7c, 0x7d, 0x80,
903 0x7f, 0x7e, 0x81, 0x84, 0x85, 0x85, 0x87, 0x87, 0x87, 0x89, 0x89,
904 0x83, 0x82, 0x82, 0x82, 0x7e, 0x80, 0x7c, 0x7c, 0x7d, 0x7f, 0x80,
905 0x84, 0x81, 0x85, 0x89, 0x87, 0x87, 0x84, 0x84, 0x84, 0x84, 0x82,
906 0x82, 0x80, 0x7f, 0x80, 0x80, 0x7e, 0x81, 0x82, 0x82, 0x86, 0x83,
907 0x83, 0x84, 0x86, 0x84, 0x83, 0x83, 0x86, 0x83, 0x81, 0x80, 0x7e,
908 0x7f, 0x81, 0x83, 0x7f, 0x82, 0x84, 0x84, 0x83, 0x84, 0x84, 0x85,
909 0x84, 0x84, 0x82, 0x82, 0x82, 0x83, 0x82, 0x81, 0x81, 0x81, 0x82,
910 0x84, 0x83, 0x82, 0x83, 0x82, 0x81, 0x82, 0x81, 0x80, 0x84, 0x82,
911 0x81, 0x81, 0x81, 0x80, 0x81, 0x83, 0x83, 0x81, 0x84, 0x86, 0x84,
912 0x82, 0x83, 0x85, 0x84, 0x87, 0x85, 0x81, 0x83, 0x83, 0x81, 0x80,
913 0x7f, 0x80, 0x85, 0x81, 0x83, 0x85, 0x84, 0x87, 0x87, 0x87, 0x87,
914 0x87, 0x86, 0x85, 0x81, 0x7e, 0x81, 0x7f, 0x7f, 0x7d, 0x80, 0x7d,
915 0x81, 0x84, 0x85, 0x84, 0x83, 0x88, 0x86, 0x88, 0x88, 0x88, 0x84,
916 0x83, 0x82, 0x80, 0x7b, 0x80, 0x7e, 0x7e, 0x80, 0x7f, 0x80, 0x83,
917 0x85, 0x83, 0x86, 0x89, 0x88, 0x88, 0x86, 0x82, 0x83, 0x82, 0x83,
918 0x80, 0x80, 0x81, 0x81, 0x80, 0x83, 0x85, 0x85, 0x88, 0x8a, 0x8b,
919 0x8b, 0x8c, 0x8c, 0x8a, 0x88, 0x8a, 0x87, 0x86, 0x89, 0x86, 0x82,
920 0x83, 0x84, 0x83, 0x87, 0x87, 0x85, 0x83, 0x87, 0x88, 0x89, 0x87,
921 0x87, 0x85, 0x86, 0x85, 0x84, 0x83, 0x84, 0x84, 0x83, 0x7f, 0x7f,
922 0x80, 0x82, 0x85, 0x84, 0x83, 0x85, 0x83, 0x84, 0x82, 0x84, 0x82,
923 0x84, 0x85, 0x83, 0x81, 0x82, 0x81, 0x82, 0x82, 0x84, 0x83, 0x84,
924 0x84, 0x85, 0x80, 0x85, 0x87, 0x84, 0x82, 0x84, 0x82, 0x81, 0x82,
925 0x81, 0x7f, 0x7f, 0x83, 0x86, 0x86, 0x85, 0x83, 0x83, 0x85, 0x87,
926 0x86, 0x83, 0x82, 0x81, 0x81, 0x7f, 0x7f, 0x80, 0x82, 0x81, 0x7f,
927 0x80, 0x84, 0x86, 0x86, 0x89, 0x87, 0x86, 0x86, 0x87, 0x83, 0x84,
928 0x84, 0x82, 0x80, 0x80, 0x7d, 0x7b, 0x7f, 0x81, 0x82, 0x83, 0x84,
929 0x85, 0x86, 0x84, 0x87, 0x85, 0x86, 0x87, 0x84, 0x80, 0x7f, 0x7e,
930 0x80, 0x81, 0x7f, 0x80, 0x7f, 0x83, 0x83, 0x85, 0x82, 0x85, 0x86,
931 0x8b, 0x87, 0x87, 0x83, 0x84, 0x81, 0x80, 0x82, 0x81, 0x80, 0x80,
932 0x7e, 0x7c, 0x7e, 0x81, 0x83, 0x83, 0x85, 0x83, 0x85, 0x84, 0x8a,
933 0x86, 0x87, 0x86, 0x87, 0x7e, 0x82, 0x80, 0x81, 0x7f, 0x83, 0x81,
934 0x80, 0x7f, 0x81, 0x84, 0x83, 0x85, 0x87, 0x86, 0x86, 0x82, 0x82,
935 0x81, 0x83, 0x84, 0x84, 0x80, 0x7e, 0x7f, 0x83, 0x81, 0x80, 0x82,
936 0x84, 0x82, 0x86, 0x83, 0x82, 0x82, 0x84, 0x82, 0x83, 0x81, 0x83,
937 0x80, 0x7f, 0x80, 0x81, 0x81, 0x83, 0x87, 0x84, 0x82, 0x84, 0x81,
938 0x83, 0x84, 0x82, 0x81, 0x81, 0x7f, 0x7e, 0x7f, 0x80, 0x81, 0x83,
939 0x82, 0x83, 0x83, 0x84, 0x86, 0x87, 0x85, 0x86, 0x83, 0x83, 0x81,
940 0x7f, 0x7e, 0x80, 0x81, 0x82, 0x80, 0x7e, 0x7e, 0x83, 0x85, 0x85,
941 0x84, 0x86, 0x87, 0x84, 0x83, 0x85, 0x83, 0x80, 0x82, 0x83, 0x7e,
942 0x7d, 0x7e, 0x7e, 0x7e, 0x7f, 0x82, 0x83, 0x86, 0x83, 0x86, 0x84,
943 0x86, 0x86, 0x87, 0x85, 0x83, 0x7e, 0x7f, 0x7e, 0x7b, 0x7d, 0x7f,
944 0x7f, 0x7f, 0x7f, 0x7e, 0x80, 0x83, 0x86, 0x87, 0x85, 0x86, 0x86,
945 0x85, 0x83, 0x82, 0x80, 0x83, 0x80, 0x7c, 0x7a, 0x7b, 0x7c, 0x7e,
946 0x81, 0x80, 0x80, 0x81, 0x84, 0x84, 0x84, 0x85, 0x86, 0x84, 0x83,
947 0x82, 0x7f, 0x7e, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7f, 0x81, 0x80,
948 0x80, 0x82, 0x84, 0x85, 0x84, 0x83, 0x80, 0x80, 0x82, 0x82, 0x80,
949 0x80, 0x82, 0x81, 0x7f, 0x7f, 0x81, 0x81, 0x84, 0x88, 0x81, 0x81,
950 0x84, 0x82, 0x81, 0x82, 0x81, 0x83, 0x82, 0x80, 0x81, 0x7e, 0x80,
951 0x83, 0x84, 0x83, 0x83, 0x81, 0x83, 0x84, 0x82, 0x81, 0x83, 0x80,
952 0x81, 0x81, 0x81, 0x7f, 0x81, 0x82, 0x80, 0x81, 0x83, 0x82, 0x82,
953 0x83, 0x81, 0x84, 0x83, 0x85, 0x84, 0x81, 0x81, 0x80, 0x80, 0x80,
954 0x81, 0x7d
955 };
956
957 return snd.Create(sizeof(data), data);
958 }
959
960 #ifdef __WXMSW__
961 if ( !m_soundRes.empty() )
962 {
963 return snd.Create(m_soundRes, true);
964 }
965 #endif // __WXMSW__
966
967 return snd.Create(m_soundFile);
968 }
969
970
971 void MyFrame::NotifyUsingFile(const wxString& name)
972 {
973 wxString msg;
974 msg << _T("Using sound file: ") << name << _T("\n");
975 m_tc->AppendText(msg);
976 }
977
978
979 // event handlers
980
981
982 void MyFrame::OnSelectFile(wxCommandEvent& WXUNUSED(event))
983 {
984 wxFileDialog dlg(this, _T("Choose a sound file"),
985 wxEmptyString, wxEmptyString,
986 _T("WAV files (*.wav)|*.wav"), wxOPEN|wxCHANGE_DIR);
987 if ( dlg.ShowModal() == wxID_OK )
988 {
989 m_soundFile = dlg.GetPath();
990 #ifdef __WXMSW__
991 m_soundRes.clear();
992 #endif // __WXMSW__
993 m_useMemory = false;
994
995 delete m_sound;
996 m_sound = NULL;
997 NotifyUsingFile(m_soundFile);
998 }
999 }
1000
1001 #ifdef __WXMSW__
1002
1003 void MyFrame::OnSelectResource(wxCommandEvent& WXUNUSED(event))
1004 {
1005 m_soundRes = wxGetTextFromUser
1006 (
1007 _T("Enter resource name:"),
1008 _T("wxWidgets Sound Sample"),
1009 _T("FromResource"),
1010 this
1011 );
1012 if ( m_soundRes.empty() )
1013 return;
1014
1015 m_soundFile.clear();
1016 m_useMemory = false;
1017
1018 delete m_sound;
1019 m_sound = NULL;
1020
1021 NotifyUsingFile(_T("Windows WAV resource"));
1022 }
1023
1024 #endif // __WXMSW__
1025
1026 void MyFrame::OnSelectMemory(wxCommandEvent& WXUNUSED(event))
1027 {
1028 m_useMemory = true;
1029
1030 NotifyUsingFile(_T("embedded sound fragment"));
1031 }
1032
1033 void MyFrame::OnQuit(wxCommandEvent& WXUNUSED(event))
1034 {
1035 // true is to force the frame to close
1036 Close(true);
1037 }
1038
1039 void MyFrame::OnPlaySync(wxCommandEvent& WXUNUSED(event))
1040 {
1041 wxBusyCursor busy;
1042 if ( !m_sound )
1043 {
1044 m_sound = new wxSound;
1045 CreateSound(*m_sound);
1046 }
1047
1048 if (m_sound->IsOk())
1049 m_sound->Play(wxSOUND_SYNC);
1050 }
1051
1052 void MyFrame::OnPlayAsync(wxCommandEvent& WXUNUSED(event))
1053 {
1054 wxBusyCursor busy;
1055 if ( !m_sound )
1056 {
1057 m_sound = new wxSound;
1058 CreateSound(*m_sound);
1059 }
1060
1061 if (m_sound->IsOk())
1062 m_sound->Play(wxSOUND_ASYNC);
1063 }
1064
1065 void MyFrame::OnPlayAsyncOnStack(wxCommandEvent& WXUNUSED(event))
1066 {
1067 wxBusyCursor busy;
1068 wxSound snd;
1069 CreateSound(snd);
1070 if (snd.IsOk())
1071 snd.Play(wxSOUND_ASYNC);
1072 }
1073
1074 void MyFrame::OnPlayLoop(wxCommandEvent& WXUNUSED(event))
1075 {
1076 wxBusyCursor busy;
1077 if ( !m_sound )
1078 {
1079 m_sound = new wxSound;
1080 CreateSound(*m_sound);
1081 }
1082
1083 if (m_sound->IsOk())
1084 m_sound->Play(wxSOUND_ASYNC | wxSOUND_LOOP);
1085 }
1086
1087 void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event))
1088 {
1089 wxString msg;
1090 msg.Printf( _T("This is the About dialog of the sound sample.\n")
1091 _T("Welcome to %s"), wxVERSION_STRING);
1092
1093 wxMessageBox(msg, _T("About"), wxOK | wxICON_INFORMATION, this);
1094 }
1095
1096 void MyFrame::OnStop(wxCommandEvent& WXUNUSED(event))
1097 {
1098 wxSound::Stop();
1099 }