Subversion Repositories gelsvn

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
688 khor 1
/* ----------------------------------------------------------------------- *
2
 * This file is part of GEL, http://www.imm.dtu.dk/GEL
3
 * Copyright (C) the authors and DTU Informatics
4
 * For license and list of authors, see ../../doc/intro.pdf
5
 * ----------------------------------------------------------------------- */
6
 
7
/**
8
 * @file   Console.cpp
9
 * @author Anders Wang Kristensen <awk@imm.dtu.dk>
10
 * @date   Fri Oct 22 18:36:58 2011
11
 */
12
 
13
#include "../GLGraphics/Console.h"
14
#include "../GL/glew.h"
15
#include <cstdarg>
16
#include <set>
17
#include <iostream> //cerr
18
#include <iterator> //back_inserter
19
#include <fstream>
20
#include <utility> //min
21
 
22
//#define NOMINMAX
23
//#include <windows.h>
24
#include <algorithm>
25
 
26
#include "../GLGraphics/stb_image.h"
27
#include "../GLGraphics/stb_image_write.h"
28
 
29
static const char* history_filename = "history.txt";
30
 
31
static const int line_spacing = 13;
32
static const int char_spacing = 7;
33
 
34
using namespace GLGraphics;
35
 
36
//----------------------------------------------------------------------------
37
 
38
Console::Console() : m_history_index(0), m_caret(0),
39
                     m_id_counter(0), m_is_executing(false),
40
                     m_font(0)
41
{
42
    load_history();
43
 
44
    //register builtin commands
45
    void (Console::*help0)() = &Console::help;
46
    reg_cmd0("help",
47
             std::bind(help0, this), "Print list of commands.");
48
 
49
    void (Console::*help1)(const std::string&) = &Console::help;
50
    reg_cmd1<std::string>("help", std::bind(help1, this, std::placeholders::_1),
51
                          "Show help for specified command.");
52
 
53
    reg_cmd0("clear", std::bind(&Console::clear, this), "Clear console.");
54
 
55
    reg_cmd0("history", std::bind(&Console::history, this),
56
             "Show history of commands.");
57
    reg_cmd0("clear_history", std::bind(&Console::history, this),
58
             "Clear history of commands.");
59
    reg_cmd0("load_history", std::bind(&Console::load_history, this),
60
             "Load history of commands from file.");
61
    reg_cmd0("save_history", std::bind(&Console::save_history, this),
62
             "Save history of commands to file.");
63
}
64
 
65
Console::~Console() throw()
66
{
67
    save_history();
68
}
69
 
70
//----------------------------------------------------------------------------
71
 
72
void Console::load_history()
73
{
74
    std::ifstream ifs(history_filename);
75
 
76
    while (ifs.good())
77
    {
78
        std::string line;
79
        getline(ifs, line);
80
        if (!line.empty())
81
            m_history.push_back(std::move(line));
82
    }
83
 
84
    m_history_index = m_history.size();
85
}
86
 
87
void Console::save_history() const
88
{
89
    std::ofstream ofs(history_filename);
90
    if (!ofs)
91
        std::cerr << "Console: Unable to save history.";
92
    else
93
        for (auto it=m_history.begin(); it!=m_history.end(); ++it)
94
            ofs << *it << '\n';
95
}
96
 
97
void Console::clear_history()
98
{
99
    m_history.clear();
100
    m_history_index = 0;
101
}
102
 
103
//----------------------------------------------------------------------------
104
 
105
void Console::display(int scaling)
106
{
107
    if (m_font == 0)
108
    {
109
        glGenTextures(1, &m_font);
110
        glBindTexture(GL_TEXTURE_2D, m_font);
111
        int width, height, components=1;
112
        unsigned char* data = stbi_load_from_memory(g_png_data,
113
            int(g_png_size), &width, &height, &components, 1);
114
        assert(data);
115
        unsigned char* p = data;
116
        unsigned char* q = data + width*(height-1);
117
        for (int h=0; h<height/2; ++h, q-=2*width)
118
            for (int w=0; w<width; ++w)
119
                std::swap(*p++, *q++);
120
        glTexImage2D(GL_TEXTURE_2D, 0, GL_ALPHA8, width, height, 0,
121
            GL_ALPHA, GL_UNSIGNED_BYTE, data);
122
        stbi_image_free(data);
123
        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
124
        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
125
        glBindTexture(GL_TEXTURE_2D, 0);
126
    }
127
 
128
    //setup matrices
129
    int vp[4];
130
    glGetIntegerv(GL_VIEWPORT, vp);
131
    int width = vp[2];
132
    int height = vp[3];
133
 
134
    glMatrixMode(GL_PROJECTION);
135
    glPushMatrix();
136
    glLoadIdentity();
137
    gluOrtho2D(0, width, 0, height);
138
    glMatrixMode(GL_MODELVIEW);
139
    glPushMatrix();
140
    glLoadIdentity();
141
 
142
    //gray background + separator
143
    glPushAttrib(GL_COLOR_BUFFER_BIT);
144
    glPushAttrib(GL_ENABLE_BIT);
145
    glEnable(GL_BLEND);
146
    glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
147
    glDisable(GL_LIGHTING);
148
    glDisable(GL_DEPTH_TEST);
149
 
150
    glColor4f(0.15f, 0.15f, 0.15f, 0.75f);
151
    glRecti(0, 0, width, height);
152
 
153
    int current = 3;
154
 
155
    //draw caret
156
    if (!m_is_executing)
157
    {
158
        glColor4f(1,1,0, 0.75f);
159
        const int cx = int(m_caret*char_spacing*scaling) + char_spacing*scaling + 1;
160
        glRecti(cx, current, cx+char_spacing*scaling, current+2);
161
    }
162
    glPopAttrib();
163
    glPopAttrib();
164
 
165
    //restore matrices
166
    glMatrixMode(GL_PROJECTION);
167
    glPopMatrix();
168
    glMatrixMode(GL_MODELVIEW);
169
    glPopMatrix();
170
 
171
    //draw command line
172
    if (!m_is_executing)
173
    {
174
        draw_textf(scaling, 1, current,
175
                   0.9f, 0.9f, 0.9f,
176
                   ">%s", m_current_command.c_str());
177
        current += line_spacing*scaling;
178
    }
179
 
180
    //draw rest
181
    std::vector<std::string>::const_reverse_iterator it;
182
    for (it=m_buffer.rbegin(); it!=m_buffer.rend(); ++it)
183
    {
184
        draw_text(scaling, 1, current,
185
                  0.75f, 0.75f, 0.75f,
186
                  it->c_str());
187
        current += scaling * line_spacing;
188
 
189
        if (current > height)
190
            break;
191
    }
192
}
193
 
194
//----------------------------------------------------------------------------
195
 
196
void Console::draw_text(int scaling, int cx, int cy,
197
                        float r, float g, float b,
198
                        const char* buffer)
199
{
200
    //save OpenGL state
201
    glPushAttrib(GL_ENABLE_BIT);
202
    glPushAttrib(GL_COLOR_BUFFER_BIT);
203
    glPushAttrib(GL_DEPTH_BUFFER_BIT);
204
 
205
    //setup texture mapping + blending
206
    glDisable(GL_DEPTH_TEST);
207
    glDisable(GL_LIGHTING);
208
    glEnable(GL_TEXTURE_2D);
209
    glEnable(GL_BLEND);
210
    glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
211
 
212
    //setup matrices
213
    int vp[4];
214
    glGetIntegerv(GL_VIEWPORT, vp);
215
    int width = vp[2];
216
    int height = vp[3];
217
 
218
    assert(width>0 && height>0);
219
    glMatrixMode(GL_PROJECTION);
220
    glPushMatrix();
221
    glLoadIdentity();
222
    gluOrtho2D(0, width, 0, height);
223
    glMatrixMode(GL_MODELVIEW);
224
    glPushMatrix();
225
    glLoadIdentity();
226
 
227
    //color + texture
228
    glColor3f(r,g,b);
229
    glBindTexture(GL_TEXTURE_2D, m_font);
230
 
231
    glBegin(GL_QUADS);
232
    while (*buffer)
233
    {
234
        char c = *buffer++;
235
 
236
        if (c < 32)
237
            continue;
238
 
239
        int fx = (c & 0x0F) << 4;
240
        float txl = (fx +  4.f) / 256.f;
241
        float txr = (fx + 11.f) / 256.f;
242
 
243
        int fy = 15*16 - (c & 0xF0);
244
        float tyl = (fy +  0.f) / 256.f;
245
        float tyu = (fy + 15.f) / 256.f;
246
 
247
        glTexCoord2f(txl, tyl);
248
        glVertex2i(cx +  0, cy +  1);
249
        glTexCoord2f(txr, tyl);
250
        glVertex2i(cx + 7 * scaling, cy +  1);
251
        glTexCoord2f(txr, tyu);
252
        glVertex2i(cx + 7 * scaling, cy +  16 * scaling);
253
        glTexCoord2f(txl, tyu);
254
        glVertex2i(cx +  0, cy +  16 * scaling);
255
 
256
        cx += char_spacing * scaling;
257
    }
258
    glEnd();
259
 
260
    glBindTexture(GL_TEXTURE_2D, 0);
261
 
262
    //restore matrices
263
    glMatrixMode(GL_PROJECTION);
264
    glPopMatrix();
265
    glMatrixMode(GL_MODELVIEW);
266
    glPopMatrix();
267
 
268
    //and attributes
269
    glPopAttrib();
270
    glPopAttrib();
271
    glPopAttrib();
272
}
273
 
274
void Console::draw_textf(int scaling, int x, int y,
275
                         float r, float g, float b,
276
                         const char* fmt, ...)
277
{
278
    //format text
279
    char buffer[1024];
280
    va_list arguments;
281
    va_start(arguments, fmt);
282
    vsnprintf(buffer, 1024, fmt, arguments);
283
    va_end(arguments);
284
 
285
    draw_text(scaling, x, y, r, g, b, buffer);
286
}
287
 
288
//----------------------------------------------------------------------------
289
 
290
void Console::tab_completion()
291
{
292
    if (m_current_command.empty())
293
        return;
294
 
295
    //search through command list..
296
    std::set<std::string> matches;
297
    command_map_t::const_iterator it1;
298
    for (it1=m_commands.begin(); it1!= m_commands.end(); ++it1)
299
    {
300
        std::string cmd = it1->first;
301
        if (cmd.find(m_current_command) != 0)
302
            continue;
303
 
304
        matches.insert(cmd);
305
    }
306
 
307
    if (matches.empty())
308
        return;
309
 
310
    if (matches.size() == 1)
311
    {
312
        m_current_command = *matches.begin() + " ";
313
        return;
314
    }
315
 
316
    //show possible matches
317
    std::stringstream ss;
318
    std::set<std::string>::const_iterator it2;
319
    for (it2=matches.begin(); it2!=matches.end(); ++it2)
320
        ss << *it2 << " ";
321
    print(ss.str().c_str());
322
 
323
    //find longest common prefix and set as current command
324
    it2 = matches.begin();
325
    std::string current = *it2++;
326
    for (; it2!=matches.end(); ++it2)
327
    {
328
        std::string::size_type n = 0;
329
        for (; n<(std::min)(current.size(), it2->size()); ++n)
330
             if (current.at(n) != it2->at(n))
331
                 break;
332
 
333
        current.resize(n);
334
    }
335
 
336
    m_current_command = current;
337
}
338
 
339
//----------------------------------------------------------------------------
340
 
341
void Console::keyboard(unsigned char key)
342
{
343
    switch (key)
344
    {
345
#ifdef __APPLE__
346
    case 0x7f: //apple's glut sends 127 (del) when backspace is pressed
347
#else
348
    case '\b': //backspace
349
#endif
350
        if (m_caret > 0)
351
        {
352
            //delete character before caret..
353
            m_current_command.erase(m_caret-1, 1);
354
            m_caret--;
355
        }
356
        break;
357
 
358
    case '\t': //tab
359
        tab_completion();
360
        m_caret = m_current_command.size();
361
        break;
362
 
363
    case '\r': //enter
364
        if (!m_current_command.empty())
365
        {
366
            std::string tmp = m_current_command;
367
            m_current_command.clear();
368
            m_caret = 0;
369
            printf(">%s", tmp.c_str());
370
 
371
            //add command to history..
372
            m_history.push_back(tmp);
373
            m_history_index = m_history.size();
374
 
375
            execute(tmp.c_str());
376
        }
377
        break;
378
 
379
    default:
380
        if (key>=' ' && key<0x7f) //127 == delete
381
        {
382
            m_current_command.insert(m_caret, 1, key);
383
            m_caret++;
384
        }
385
        break;
386
    }
387
}
388
 
389
void Console::key_left() {
390
    if (m_caret > 0)
391
        m_caret -= 1;
392
}
393
 
394
void Console::key_right(){
395
    if (m_caret < m_current_command.size())
396
        m_caret += 1;
397
}
398
 
399
void Console::key_home() {
400
    m_caret = 0;
401
}
402
 
403
void Console::key_end() {
404
    m_caret = m_current_command.size();
405
}
406
 
407
void Console::key_up() {
408
    if (!m_history.empty())
409
    {
410
        if (m_history_index > 0)
411
            m_history_index--;
412
 
413
        m_current_command = m_history[m_history_index];
414
        m_caret = m_current_command.size();
415
    }
416
}
417
 
418
void Console::key_down() {
419
    if (m_history_index < m_history.size())
420
    {
421
        if (m_history_index < m_history.size()-1)
422
            m_history_index++;
423
 
424
        assert(m_history_index < m_history.size());
425
        m_current_command = m_history[m_history_index];
426
        m_caret = m_current_command.size();
427
    }
428
}
429
 
430
 
431
//----------------------------------------------------------------------------
432
 
433
void Console::execute(const char* buffer)
434
{
435
    //split into command arg0 arg1 ..
436
    std::vector<std::string> tmp;
437
 
438
    try {
439
        tmp = parse_cmdline(buffer);
440
    }
441
    catch (std::exception& e)
442
    {
443
        printf("Error: %s", e.what());
444
        return;
445
    }
446
 
447
    if (tmp.empty())
448
        return;
449
 
450
    const std::string command_name = std::move(tmp[0]);
451
    std::vector<std::string> args;
452
    std::move(tmp.begin()+1, tmp.end(), std::back_inserter(args));
453
 
454
    //find commands with matching names
455
    std::pair<command_map_t::const_iterator,command_map_t::const_iterator> rng;
456
    rng = m_commands.equal_range(command_name);
457
 
458
     //find command with right number of arguments and execute
459
    command_map_t::const_iterator it;
460
     for (it=rng.first; it!=rng.second; ++it)
461
     {
462
         size_t arity = it->second->arity();
463
         if (arity!=any_arity && arity!=args.size())
464
             continue;
465
 
466
         m_is_executing = true;
467
 
468
         try {
469
             it->second->execute(args);
470
         }
471
         catch (std::exception& e)
472
         {
473
             printf("Error: %s", e.what());
474
         }
475
         catch (...)
476
         {
477
             printf("Unknown exception.");
478
         }
479
 
480
         m_is_executing = false;
481
 
482
         return;
483
     }
484
 
485
    //didn't find a matching command: error!
486
     if (rng.first == rng.second)
487
         printf("Syntax error: Command '%s' not found.", command_name.c_str());
488
     else
489
        printf("Syntax error: Command '%s' with %u arguments not found.",
490
            command_name.c_str(), args.size());
491
}
492
 
493
void Console::executef(const char* format, ...)
494
{
495
    //format text
496
    char buffer[1024];
497
    va_list arguments;
498
    va_start(arguments, format);
499
    vsprintf(buffer, format, arguments);
500
    va_end(arguments);
501
 
502
    execute(buffer);
503
}
504
 
505
//----------------------------------------------------------------------------
506
 
507
std::vector<std::string> Console::parse_cmdline(const char* buffer) const
508
{
509
    std::string str(buffer);
510
    std::vector<std::string> tmp;
511
    size_t curr = 0;
512
    while (true)
513
    {
514
        //eat whitespace, nom nom nom
515
        size_t start = str.find_first_not_of(' ', curr);
516
        if (start == std::string::npos)
517
            break;
518
 
519
        //grouping delimiters, note: doesn't have nesting
520
        const char delim[] = { '[' ,']', '(', ')', '{', '}', '"', '"'};
521
        const size_t n = sizeof(delim) / sizeof(delim[0]);
522
 
523
        char c = ' ';
524
        for (size_t i=0; i<n; i+=2)
525
        {
526
            if (str[start] != delim[i])
527
                continue;
528
 
529
            c = delim[i+1];
530
 
531
            if (c == '"')
532
                start++;
533
            break;
534
        }
535
 
536
        //find closing character
537
        size_t end = str.find_first_of(c, start+1);
538
 
539
        //done?
540
        if (end == std::string::npos)
541
        {
542
            if (c != ' ')
543
            {
544
                std::stringstream ss;
545
                ss << "Missing closing '" << c << "' in expression.";
546
                throw std::invalid_argument(ss.str());
547
            }
548
 
549
            tmp.push_back(str.substr(start, end));
550
            break;
551
        }
552
 
553
        //don't include '"' or trailing ' '
554
        if (c=='"' || c==' ')
555
            end--;
556
 
557
        size_t len = end - start + 1;
558
        tmp.push_back(str.substr(start, len));
559
 
560
        if (c=='"' || c==' ')
561
            end++;
562
 
563
        curr = end+1;
564
    }
565
 
566
    return tmp;
567
}
568
 
569
//----------------------------------------------------------------------------
570
 
571
void Console::print(const char* buffer)
572
{
573
    std::string tmp(buffer);
574
 
575
    //parse into multiple lines
576
    size_t curr = 0;
577
    while (curr < tmp.length())
578
    {
579
        //TODO: handle '\t'
580
        size_t end = tmp.find('\n', curr);
581
 
582
        if (end == std::string::npos)
583
        {
584
            m_buffer.push_back(tmp.substr(curr, end));
585
            break;
586
        }
587
 
588
        size_t len = end-curr;
589
        m_buffer.push_back(tmp.substr(curr, len));
590
        curr = end + 1;
591
    }
592
}
593
 
594
void Console::printf(const char* format, ...)
595
{
596
    //format text
597
    char buffer[1024];
598
    va_list args;
599
    va_start(args, format);
600
    vsprintf(buffer, format, args);
601
    va_end(args);
602
 
603
    print(buffer);
604
}
605
 
606
void Console::newline()
607
{
608
    m_buffer.push_back("");
609
}
610
 
611
//----------------------------------------------------------------------------
612
 
613
Console::cmd_token Console::add_command(const std::string& name,
614
                                        std::unique_ptr<command_base>&& ptr)
615
{
616
    auto it = m_commands.insert(std::make_pair(name, std::move(ptr)));
617
    return it->second->get_id();
618
}
619
 
620
void Console::remove_command(cmd_token id)
621
{
622
    for (auto it=m_commands.begin(); it!=m_commands.end(); ++it)
623
    {
624
        if (it->second->get_id() != id)
625
            continue;
626
 
627
        m_commands.erase(it);
628
        return;
629
    }
630
 
631
    assert(false);
632
}
633
 
634
//----------------------------------------------------------------------------
635
 
636
const char* Console::get_name(cmd_token id) const
637
{
638
    for (auto it=m_commands.begin(); it!=m_commands.end(); ++it)
639
    {
640
        if (it->second->get_id() != id)
641
            continue;
642
 
643
        return it->first.c_str();
644
    }
645
 
646
    assert(false);
647
    return NULL;
648
}
649
 
650
const char* Console::get_help(cmd_token id) const
651
{
652
    for (auto it=m_commands.begin(); it!=m_commands.end(); ++it)
653
    {
654
        if (it->second->get_id() != id)
655
            continue;
656
 
657
        return it->second->get_help();
658
    }
659
 
660
    assert(false);
661
    return NULL;
662
}
663
 
664
//----------------------------------------------------------------------------
665
 
666
void Console::clear()
667
{
668
    m_buffer.clear();
669
}
670
 
671
void Console::history()
672
{
673
    printf("Printing history:");
674
    std::vector<std::string>::const_iterator it;
675
    for (it=m_history.begin(); it!=m_history.end(); ++it)
676
        printf("  %s", it->c_str());
677
}
678
 
679
void Console::help()
680
{
681
    printf("Printing list of commands:");
682
 
683
    command_map_t::const_iterator it = m_commands.begin();
684
    while (it != m_commands.end())
685
    {
686
        int n = 0;
687
        std::string prev = it->first;
688
        do
689
        {
690
            ++n;
691
            ++it;
692
        }
693
        while (it!=m_commands.end() && it->first==prev);
694
 
695
        printf("  %s(%i)", prev.c_str(), n);
696
    }
697
}
698
 
699
void Console::help(const std::string& cmd)
700
{
701
    std::pair<command_map_t::const_iterator,command_map_t::const_iterator> rng;
702
    rng = m_commands.equal_range(cmd);
703
 
704
    if (rng.first == rng.second)
705
    {
706
        printf("Command '%s' not found.", cmd.c_str());
707
        return;
708
    }
709
 
710
    printf("Printing help for command(s) '%s':", cmd.c_str());
711
 
712
    for (command_map_t::const_iterator it=rng.first; it!=rng.second; ++it)
713
    {
714
        std::stringstream ss;
715
        if (it->second->arity() != any_arity)
716
            for (size_t i=0; i<it->second->arity(); ++i)
717
                ss << "arg" << i << " ";
718
        else
719
            ss << "arg0, arg1, .., argN";
720
 
721
        printf("  %s %s: %s",
722
            it->first.c_str(), ss.str().c_str(),
723
            it->second->get_help());
724
    }
725
}
726
 
727
//----------------------------------------------------------------------------
728
 
729
const unsigned char Console::g_png_data[] = {
730
 
731
    0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, 0x00, 0x0D,
732
    0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00,
733
    0x08, 0x03, 0x00, 0x00, 0x00, 0x6B, 0xAC, 0x58, 0x54, 0x00, 0x00, 0x00,
734
    0x01, 0x73, 0x52, 0x47, 0x42, 0x00, 0xAE, 0xCE, 0x1C, 0xE9, 0x00, 0x00,
735
    0x00, 0x04, 0x67, 0x41, 0x4D, 0x41, 0x00, 0x00, 0xB1, 0x8F, 0x0B, 0xFC,
736
    0x61, 0x05, 0x00, 0x00, 0x03, 0x00, 0x50, 0x4C, 0x54, 0x45, 0x00, 0x00,
737
    0x00, 0x3A, 0x3A, 0x3A, 0x66, 0x66, 0x66, 0x90, 0x90, 0x90, 0xB6, 0xB6,
738
    0xB6, 0xDB, 0xDB, 0xDB, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00,
739
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
740
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
741
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
742
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
743
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
744
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
745
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
746
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
747
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
748
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
749
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
750
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
751
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
752
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
753
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
754
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
755
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
756
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
757
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
758
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
759
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
760
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
761
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
762
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
763
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
764
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
765
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
766
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
767
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
768
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
769
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
770
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
771
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
772
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
773
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
774
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
775
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
776
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
777
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
778
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
779
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
780
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
781
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
782
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
783
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
784
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
785
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
786
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
787
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
788
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
789
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
790
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
791
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
792
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
793
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
794
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
795
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
796
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
797
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
798
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
799
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
800
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC5, 0x75,
801
    0x62, 0x5B, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00,
802
    0x0E, 0xC3, 0x00, 0x00, 0x0E, 0xC3, 0x01, 0xC7, 0x6F, 0xA8, 0x64, 0x00,
803
    0x00, 0x00, 0x19, 0x74, 0x45, 0x58, 0x74, 0x53, 0x6F, 0x66, 0x74, 0x77,
804
    0x61, 0x72, 0x65, 0x00, 0x50, 0x61, 0x69, 0x6E, 0x74, 0x2E, 0x4E, 0x45,
805
    0x54, 0x20, 0x76, 0x33, 0x2E, 0x35, 0x2E, 0x38, 0x37, 0x3B, 0x80, 0x5D,
806
    0x00, 0x00, 0x13, 0x3D, 0x49, 0x44, 0x41, 0x54, 0x78, 0x5E, 0xED, 0x5D,
807
    0xD9, 0x72, 0xDB, 0x30, 0x0C, 0xB4, 0x75, 0xFD, 0xFF, 0x27, 0x77, 0x41,
808
    0x77, 0x6A, 0xEC, 0x42, 0x25, 0x82, 0x52, 0x8E, 0x93, 0x94, 0x99, 0xC9,
809
    0x03, 0x2D, 0x89, 0xC7, 0x12, 0x24, 0x71, 0xF3, 0x76, 0x9B, 0x7F, 0x13,
810
    0x81, 0x89, 0xC0, 0x44, 0x60, 0x22, 0xA0, 0x08, 0x1C, 0xC7, 0x4E, 0x3F,
811
    0x7D, 0x76, 0x39, 0x9B, 0x91, 0xAC, 0x3F, 0xD5, 0xF1, 0x84, 0xF6, 0xB6,
812
    0xDB, 0x4A, 0xBF, 0x7D, 0x76, 0x39, 0x03, 0x20, 0xEB, 0x8F, 0x7E, 0x5F,
813
    0x7D, 0xFF, 0x96, 0x7D, 0xF0, 0xEA, 0xE7, 0x13, 0x80, 0x04, 0x81, 0x6C,
814
    0x02, 0x26, 0x05, 0x08, 0x02, 0x55, 0xC0, 0xE6, 0x12, 0xC8, 0x10, 0x7B,
815
    0xF5, 0xF3, 0xB9, 0x07, 0xBC, 0x7B, 0x0F, 0xC8, 0xCE, 0xD9, 0x57, 0x3F,
816
    0xCF, 0x28, 0x20, 0x6B, 0x7F, 0x98, 0x0F, 0xC8, 0x3A, 0x30, 0x9F, 0x4F,
817
    0x04, 0x26, 0x02, 0x13, 0x81, 0x89, 0xC0, 0x44, 0xE0, 0x07, 0x21, 0x90,
818
    0x9D, 0xAB, 0x5F, 0xFD, 0xF9, 0xF0, 0x54, 0xBC, 0x9A, 0xB5, 0x7D, 0x75,
819
    0xFD, 0x13, 0x80, 0x51, 0x04, 0x5E, 0x3D, 0x43, 0xAF, 0xAE, 0x7F, 0x74,
820
    0xFC, 0x6F, 0x17, 0x7F, 0x47, 0x01, 0x9A, 0x00, 0x8C, 0x22, 0x30, 0x3A,
821
    0x03, 0xEF, 0xFE, 0x7E, 0x74, 0xFC, 0x73, 0x09, 0x7C, 0xF5, 0x73, 0x3E,
822
    0xEB, 0xDF, 0x30, 0x05, 0xCC, 0x0A, 0x26, 0x02, 0x13, 0x81, 0x89, 0xC0,
823
    0x44, 0x60, 0x22, 0xF0, 0x44, 0x60, 0x65, 0xEB, 0xF8, 0xBE, 0x2D, 0xC7,
824
    0xBD, 0x8B, 0xCF, 0xE6, 0x1F, 0xAF, 0x66, 0x5C, 0xDF, 0x9C, 0x7D, 0x79,
825
    0x3D, 0x8E, 0x85, 0x3E, 0x5F, 0x8F, 0xA0, 0xB8, 0xF6, 0x3F, 0xAC, 0x6C,
826
    0x9B, 0xBE, 0xDD, 0xEE, 0xFA, 0xC3, 0xF0, 0x64, 0xAD, 0x5B, 0xB7, 0x0A,
827
    0x01, 0x60, 0xDB, 0xEE, 0x04, 0xC0, 0x7D, 0xBB, 0xED, 0x7E, 0x44, 0xDB,
828
    0x41, 0x23, 0x3C, 0x6E, 0xDB, 0xB2, 0xB8, 0x06, 0xEE, 0xC7, 0x6D, 0x61,
829
    0x44, 0x17, 0x05, 0x80, 0xAA, 0xBB, 0xDD, 0x18, 0xAF, 0xFB, 0xB1, 0xAC,
830
    0xFB, 0xC5, 0x10, 0xEC, 0xFD, 0x09, 0xF5, 0xDD, 0x07, 0x52, 0xDB, 0x8A,
831
    0x31, 0xB8, 0x3F, 0x3C, 0xF6, 0x15, 0x00, 0x2E, 0x7A, 0x6C, 0x00, 0xF8,
832
    0x1F, 0xEE, 0xFB, 0x8D, 0xBF, 0x57, 0x3C, 0x6E, 0x3A, 0x1F, 0x82, 0xD7,
833
    0x6D, 0x17, 0x02, 0x94, 0xFE, 0xD5, 0xE9, 0x41, 0x1B, 0xD0, 0x1A, 0xFA,
834
    0x0D, 0xEC, 0x98, 0xF0, 0xE3, 0x78, 0x4E, 0xC9, 0xBA, 0x61, 0x88, 0xEE,
835
    0x6F, 0x3B, 0x76, 0xBF, 0x00, 0x6C, 0x42, 0xB7, 0x3E, 0xC5, 0x85, 0x05,
836
    0x46, 0x14, 0x11, 0x29, 0x60, 0x18, 0x80, 0x8D, 0x97, 0x64, 0x40, 0x30,
837
    0x69, 0x00, 0x6B, 0x94, 0xA7, 0xFC, 0x90, 0xF1, 0x09, 0xC0, 0xAB, 0x3E,
838
    0x97, 0x06, 0xE3, 0x7C, 0x08, 0x49, 0xE8, 0x1E, 0x30, 0x0A, 0x00, 0x4F,
839
    0xD8, 0x09, 0x01, 0x25, 0x0D, 0x6C, 0x8B, 0xD4, 0xB0, 0xC8, 0x2E, 0x77,
840
    0x60, 0xDB, 0x7B, 0x2E, 0xB2, 0x75, 0xDF, 0x0E, 0x46, 0x4C, 0x01, 0x08,
841
    0xF4, 0xD1, 0x25, 0xD1, 0x07, 0x05, 0x76, 0x16, 0xB1, 0xED, 0x49, 0xDD,
842
    0x35, 0xCE, 0x04, 0x5A, 0x5D, 0x41, 0xF7, 0xD6, 0x3E, 0xB5, 0xB0, 0x2E,
843
    0xB4, 0xE8, 0xD7, 0x75, 0xBF, 0xBB, 0x9D, 0x1C, 0xAF, 0xEE, 0x3B, 0xEF,
844
    0x82, 0xDC, 0x66, 0xC4, 0x3B, 0x59, 0xA3, 0xA3, 0x14, 0x10, 0x0E, 0x21,
845
    0xC5, 0x40, 0x4E, 0x01, 0x7D, 0xBC, 0xDF, 0x75, 0x97, 0xC4, 0x36, 0xFD,
846
    0x7C, 0x09, 0xE4, 0x41, 0x00, 0xD8, 0x82, 0x76, 0x5B, 0x46, 0x04, 0x3C,
847
    0x5D, 0x02, 0xD9, 0x1E, 0x05, 0x0A, 0xEB, 0x9F, 0xD2, 0xFC, 0x3C, 0x1C,
848
    0xB3, 0xE1, 0xE3, 0x04, 0x80, 0xE3, 0x46, 0x55, 0x18, 0xC5, 0xF9, 0x16,
849
    0x30, 0xE3, 0x58, 0x02, 0x0E, 0x10, 0xDB, 0x32, 0xBB, 0x08, 0xF4, 0x37,
850
    0xC1, 0x13, 0xC4, 0x64, 0xCD, 0xAC, 0xC2, 0x67, 0x84, 0x19, 0x63, 0x00,
851
    0x12, 0xA6, 0xA6, 0xBA, 0x24, 0xF0, 0x7E, 0x8F, 0xBE, 0x3F, 0x52, 0x5D,
852
    0x76, 0x0C, 0x66, 0x75, 0x04, 0xBE, 0xA2, 0xCF, 0xE5, 0xF4, 0x8F, 0xA4,
853
    0xAC, 0xB1, 0xB3, 0xE7, 0xA3, 0x00, 0x30, 0x5F, 0xA5, 0x8C, 0x50, 0xDA,
854
    0x23, 0x65, 0x13, 0xD2, 0x0F, 0xBE, 0xE0, 0x0B, 0x44, 0xA3, 0xD9, 0x29,
855
    0xFD, 0x05, 0xFB, 0x3F, 0xBB, 0x34, 0x11, 0x98, 0x08, 0x4C, 0x04, 0xBE,
856
    0x0F, 0x02, 0xE0, 0xDC, 0xB9, 0xB3, 0x60, 0x5B, 0xE8, 0x20, 0x03, 0xB3,
857
    0x4B, 0x2F, 0xE8, 0x73, 0x30, 0x36, 0x72, 0xF0, 0xED, 0x24, 0xFE, 0x1A,
858
    0x63, 0x44, 0xE2, 0x16, 0x58, 0x25, 0x27, 0xCF, 0x37, 0xC6, 0xC9, 0x7F,
859
    0x20, 0xFA, 0x84, 0x1B, 0xCA, 0xD7, 0x1F, 0xD5, 0x32, 0x22, 0x5F, 0x34,
860
    0x36, 0xC2, 0xB3, 0x22, 0xCB, 0xCE, 0xE2, 0x3B, 0xF4, 0x1F, 0x37, 0x55,
861
    0x48, 0x70, 0x79, 0x23, 0x5E, 0x54, 0x84, 0xFF, 0xF8, 0x31, 0x1A, 0xF7,
862
    0xDC, 0xAF, 0xF1, 0xD5, 0xBE, 0x6C, 0x7D, 0xA9, 0x8A, 0x2B, 0xA2, 0x51,
863
    0xE1, 0x09, 0x3E, 0xD1, 0x7E, 0x50, 0xFF, 0xAD, 0x31, 0x9A, 0x42, 0xD5,
864
    0x5F, 0xA0, 0x3A, 0x15, 0xE8, 0xA9, 0x41, 0x41, 0x4C, 0x01, 0x38, 0x93,
865
    0x6C, 0xFC, 0xF7, 0xA6, 0x6E, 0xF2, 0x03, 0x36, 0x36, 0x80, 0xBF, 0x51,
866
    0x5E, 0x3F, 0xF0, 0xFE, 0x5D, 0x46, 0xFB, 0x4C, 0x12, 0xA1, 0xFE, 0xA3,
867
    0x00, 0x5E, 0xDD, 0xCB, 0x8F, 0x61, 0x0E, 0x99, 0x55, 0xC3, 0x1A, 0x22,
868
    0x0D, 0xD5, 0x71, 0xA7, 0x0F, 0x4C, 0x5C, 0xF4, 0x4B, 0x04, 0xC2, 0xA1,
869
    0x8A, 0xA7, 0x82, 0x09, 0xAF, 0x18, 0x03, 0x9B, 0xA5, 0xC7, 0x04, 0x00,
870
    0xD1, 0x58, 0x62, 0xC5, 0xF2, 0x12, 0x43, 0x75, 0xBC, 0xA4, 0x76, 0x5E,
871
    0xC2, 0xFB, 0x82, 0x15, 0xDB, 0x07, 0x20, 0x68, 0x74, 0xFC, 0x0F, 0x98,
872
    0xB1, 0x48, 0xF5, 0xAE, 0x45, 0x03, 0x57, 0x46, 0xAC, 0x1A, 0x1F, 0x96,
873
    0x16, 0x81, 0x57, 0x22, 0x8E, 0x75, 0x16, 0xF4, 0xF9, 0x5E, 0xBC, 0xB1,
874
    0xCE, 0x8A, 0x15, 0x42, 0x1B, 0x3A, 0x28, 0xAB, 0x5E, 0x76, 0x49, 0x01,
875
    0x90, 0xD7, 0xF0, 0x6F, 0xFD, 0x00, 0x6B, 0x2D, 0xFD, 0x00, 0x9A, 0xE8,
876
    0x48, 0x35, 0xF2, 0xF0, 0x6C, 0xCD, 0xAB, 0x38, 0x93, 0x68, 0x6D, 0x79,
877
    0x94, 0x36, 0x81, 0xEE, 0x2F, 0xA7, 0x00, 0x01, 0xC9, 0x66, 0x87, 0xA7,
878
    0x58, 0x26, 0x34, 0x8E, 0x5F, 0x37, 0xA9, 0x40, 0x01, 0x7E, 0x8D, 0xD8,
879
    0x43, 0x1E, 0xB2, 0x74, 0x18, 0xED, 0xCB, 0x8C, 0xB3, 0x16, 0x1A, 0xC7,
880
    0x02, 0x77, 0xD9, 0xA6, 0x8C, 0xFE, 0x8A, 0x7B, 0x80, 0x6E, 0xE9, 0x72,
881
    0xCC, 0x61, 0x89, 0xD3, 0x1A, 0x52, 0x44, 0xED, 0xB9, 0x68, 0xA9, 0xC3,
882
    0x1E, 0x40, 0xCF, 0xAD, 0x02, 0x9A, 0xA2, 0x70, 0x88, 0xD2, 0x73, 0x23,
883
    0x29, 0x1D, 0xB0, 0x9E, 0xDB, 0xAA, 0xD4, 0xAC, 0x9D, 0x02, 0x57, 0x2B,
884
    0xD9, 0x3F, 0x9D, 0x05, 0x12, 0x02, 0xF9, 0xF4, 0xF6, 0xDF, 0xDD, 0xE0,
885
    0x4F, 0x90, 0xFF, 0xDF, 0x8D, 0xE1, 0x6C, 0x7F, 0x22, 0x30, 0x11, 0x98,
886
    0x08, 0x38, 0x04, 0x02, 0xAF, 0xFE, 0x9F, 0xA1, 0x03, 0xBE, 0x80, 0x59,
887
    0x39, 0xE6, 0xB4, 0x1A, 0x63, 0xC4, 0x8C, 0x17, 0x49, 0x3B, 0x26, 0xCE,
888
    0x93, 0xB0, 0x61, 0xEF, 0xFB, 0x1F, 0xB4, 0xDC, 0x98, 0xE7, 0x67, 0x85,
889
    0x26, 0x09, 0xFA, 0xF6, 0x5B, 0x7B, 0xFA, 0xBD, 0x63, 0xFD, 0x4C, 0x7C,
890
    0x26, 0x17, 0x0B, 0x11, 0x77, 0x8D, 0xEF, 0xF7, 0xCF, 0x03, 0xAB, 0xAF,
891
    0x8C, 0x59, 0xB3, 0x73, 0xAD, 0x9E, 0xB7, 0xDA, 0xC9, 0xF2, 0x63, 0xCF,
892
    0x3D, 0xAB, 0x0C, 0x73, 0x35, 0xC1, 0xD1, 0xC4, 0x69, 0xEA, 0xB0, 0x10,
893
    0x90, 0xF0, 0x75, 0x67, 0xDF, 0x07, 0x07, 0x04, 0xAD, 0x82, 0x01, 0x60,
894
    0xD1, 0x41, 0x00, 0xD8, 0x51, 0xDE, 0xDC, 0x6F, 0x9B, 0x4C, 0x70, 0xD3,
895
    0x7F, 0x78, 0x66, 0x74, 0xBF, 0x63, 0x0E, 0x17, 0xC7, 0xBC, 0x2E, 0x2B,
896
    0x59, 0x7F, 0x1B, 0x00, 0xDE, 0xE3, 0x45, 0xD4, 0x35, 0x8F, 0x19, 0x74,
897
    0x3D, 0x54, 0x4B, 0x9D, 0x32, 0xB6, 0xA7, 0xDF, 0xFB, 0x11, 0x47, 0xE3,
898
    0xA7, 0xAF, 0x1E, 0x4F, 0x59, 0x16, 0x50, 0x00, 0xD0, 0x7F, 0xA8, 0x28,
899
    0xFE, 0x54, 0xB8, 0x61, 0xB4, 0x1E, 0xE0, 0xC6, 0x36, 0xFB, 0x1A, 0x76,
900
    0xBC, 0xBD, 0x7B, 0x00, 0xE0, 0xF1, 0xE3, 0xEB, 0x34, 0x92, 0x24, 0xC0,
901
    0x44, 0x10, 0x68, 0xE0, 0x10, 0x00, 0x22, 0x2C, 0x18, 0x49, 0xBB, 0x6F,
902
    0xD0, 0x01, 0x6C, 0x3A, 0x6E, 0x09, 0x04, 0xF9, 0x3D, 0x03, 0x40, 0x2C,
903
    0x27, 0x0A, 0x80, 0xD1, 0x2B, 0x01, 0xB0, 0x2E, 0x1E, 0x80, 0xD6, 0x55,
904
    0x27, 0x3C, 0xDC, 0xB7, 0x75, 0x5D, 0x36, 0x07, 0x40, 0x93, 0xDE, 0x3C,
905
    0x41, 0xD8, 0x9A, 0x73, 0x08, 0xA8, 0x28, 0x11, 0x01, 0xE8, 0x2F, 0x01,
906
    0x6B, 0xDB, 0x77, 0x48, 0xF7, 0x00, 0x08, 0xC7, 0x41, 0x25, 0x48, 0x14,
907
    0xA0, 0xEA, 0x15, 0x01, 0x00, 0xB6, 0x5B, 0x01, 0x00, 0x70, 0x38, 0xC0,
908
    0x15, 0x80, 0x65, 0xC5, 0xE8, 0x57, 0x07, 0x40, 0x93, 0xFE, 0xDC, 0x80,
909
    0xAD, 0x3B, 0x7E, 0x4D, 0xA8, 0x76, 0x24, 0x0C, 0x20, 0x5B, 0x02, 0xB2,
910
    0xE9, 0x95, 0x01, 0x10, 0x9F, 0x2D, 0x22, 0x57, 0x23, 0x46, 0xC3, 0xDF,
911
    0x11, 0x09, 0xEA, 0xDF, 0xFC, 0xA6, 0xA8, 0x4B, 0xC0, 0x00, 0xD8, 0xF0,
912
    0xFF, 0x67, 0xDA, 0xDA, 0x0B, 0x0E, 0xD5, 0xB6, 0xEB, 0x92, 0xD7, 0x57,
913
    0xDC, 0x04, 0x79, 0xD7, 0xEE, 0x53, 0x80, 0x69, 0xB0, 0x2A, 0x14, 0x70,
914
    0x5F, 0x58, 0x5F, 0x82, 0xFE, 0x74, 0x37, 0xC1, 0x13, 0x00, 0xEE, 0x5E,
915
    0xE7, 0x69, 0xD4, 0x4C, 0xFE, 0x0C, 0xF0, 0xE9, 0x82, 0x5F, 0xD3, 0x9F,
916
    0x4E, 0x3F, 0xFA, 0xE6, 0xA6, 0x59, 0xF7, 0x00, 0x34, 0x1F, 0x8E, 0x41,
917
    0xD6, 0x11, 0xEA, 0x31, 0x26, 0x80, 0xE8, 0xF7, 0xD9, 0x31, 0x88, 0x3D,
918
    0xDA, 0x2B, 0x40, 0x1E, 0xC7, 0xA0, 0xFB, 0xA5, 0xF9, 0xCC, 0x68, 0xFF,
919
    0x9F, 0x93, 0x64, 0x14, 0x46, 0x2A, 0x15, 0xD4, 0x47, 0x1A, 0x89, 0xD4,
920
    0x61, 0xE4, 0xA7, 0xB3, 0x45, 0x0D, 0xA1, 0x9F, 0x3E, 0xC8, 0xEE, 0xF8,
921
    0x40, 0x42, 0xFF, 0x37, 0x00, 0xFF, 0xF5, 0xEC, 0xCF, 0xC1, 0x4F, 0x04,
922
    0x26, 0x02, 0xDF, 0x0E, 0x01, 0x31, 0x1C, 0x04, 0xAB, 0x0C, 0x5B, 0xE3,
923
    0xF3, 0xE1, 0x05, 0x79, 0x5F, 0xE4, 0xE5, 0xC0, 0x08, 0xD9, 0x73, 0xC7,
924
    0x0C, 0xAA, 0xEF, 0xAE, 0xB0, 0xB6, 0xBF, 0x19, 0xAB, 0x27, 0xAB, 0xA4,
925
    0x9C, 0x9A, 0x89, 0xD2, 0x4E, 0x44, 0x7E, 0x08, 0x96, 0x4E, 0xE0, 0x08,
926
    0xA6, 0x2E, 0xF5, 0x75, 0x8E, 0x5E, 0x65, 0xE2, 0x0B, 0xCA, 0x96, 0xC1,
927
    0x80, 0x48, 0xE3, 0xAC, 0x3C, 0xEF, 0x2F, 0xF2, 0xB2, 0x99, 0xCE, 0xBC,
928
    0x00, 0x14, 0x0D, 0x97, 0x2C, 0xBC, 0x28, 0x6F, 0xAF, 0xBC, 0x77, 0x1B,
929
    0xA0, 0xEF, 0x34, 0xD0, 0xD4, 0xFA, 0xB5, 0x0D, 0x1A, 0xA3, 0x02, 0x10,
930
    0x9D, 0xBF, 0x19, 0x00, 0x13, 0xF7, 0x7A, 0x74, 0xD0, 0x84, 0x1D, 0xC7,
931
    0x0E, 0xB6, 0xCE, 0x38, 0x56, 0xD3, 0x00, 0xF0, 0xB2, 0x40, 0x15, 0x80,
932
    0x66, 0xFC, 0xF4, 0xD2, 0xA4, 0x02, 0xB0, 0x88, 0x31, 0xD8, 0xEC, 0xF5,
933
    0x6C, 0xFC, 0x63, 0x84, 0xC3, 0x80, 0x83, 0x07, 0x04, 0x0F, 0x18, 0x8F,
934
    0xBB, 0xDC, 0x6E, 0x53, 0x78, 0xB8, 0x0E, 0x36, 0xF2, 0x76, 0xF2, 0xB2,
935
    0x75, 0x9E, 0x94, 0x40, 0xBB, 0x9A, 0x06, 0xFB, 0x14, 0x60, 0xE0, 0x7A,
936
    0x85, 0x4A, 0xF3, 0xB5, 0xA6, 0x28, 0x23, 0x31, 0xF5, 0x00, 0x10, 0x61,
937
    0xCC, 0xB8, 0xFF, 0x01, 0x80, 0x20, 0x3E, 0x13, 0x00, 0x56, 0x59, 0xD7,
938
    0xDC, 0xAE, 0x6B, 0x3C, 0x00, 0x10, 0x8D, 0xA1, 0x02, 0x41, 0x1F, 0x00,
939
    0x03, 0xD3, 0xCF, 0x28, 0x84, 0x4F, 0x8E, 0xB9, 0x81, 0x7E, 0x44, 0x0D,
940
    0xF6, 0x4C, 0xB1, 0xB2, 0xC8, 0x23, 0xC9, 0xAB, 0xB5, 0x38, 0xF7, 0x07,
941
    0xF7, 0x0D, 0x28, 0x7E, 0x27, 0x4B, 0x80, 0x1D, 0x48, 0xF0, 0x31, 0xCB,
942
    0xA3, 0x09, 0x00, 0x90, 0xB5, 0xBD, 0xF4, 0x05, 0x00, 0x16, 0xAF, 0xB2,
943
    0xC2, 0xF4, 0x48, 0x18, 0x99, 0xF4, 0xC8, 0x9C, 0x94, 0xFC, 0x5F, 0xB6,
944
    0xE6, 0x59, 0x9F, 0xF3, 0x81, 0x53, 0x40, 0xEA, 0xB7, 0xDE, 0xF8, 0x25,
945
    0xD1, 0x36, 0x41, 0x7D, 0x87, 0xE4, 0x49, 0xEE, 0x70, 0x93, 0xB7, 0xFD,
946
    0xFB, 0xF7, 0x83, 0x7C, 0x9E, 0x36, 0xD3, 0x50, 0xF8, 0xF8, 0x02, 0x8B,
947
    0xA8, 0xA0, 0x5D, 0x4A, 0x00, 0xD0, 0x25, 0x7E, 0x12, 0xF1, 0x22, 0x6B,
948
    0x7C, 0x8C, 0x02, 0xCC, 0x4D, 0xCD, 0x8F, 0xCF, 0x00, 0xF0, 0x6E, 0x38,
949
    0x1A, 0x1F, 0x10, 0x54, 0x58, 0x38, 0x17, 0xD9, 0x03, 0x80, 0x5D, 0xB0,
950
    0x8C, 0x9C, 0xFC, 0x2F, 0xB6, 0xA3, 0xB0, 0x93, 0x87, 0x00, 0xAA, 0x3A,
951
    0xC3, 0x13, 0x00, 0xC4, 0xAB, 0xAC, 0x06, 0x40, 0xA4, 0x91, 0x2C, 0xAA,
952
    0x2C, 0xA7, 0xAA, 0x97, 0xBE, 0x71, 0x02, 0x80, 0x30, 0x43, 0xA3, 0x00,
953
    0x7C, 0x82, 0xAB, 0xE2, 0x08, 0x42, 0x69, 0xD0, 0x17, 0x47, 0xB4, 0x8C,
954
    0x34, 0xF5, 0x35, 0xBF, 0x8D, 0x3E, 0x34, 0x72, 0x68, 0x04, 0x17, 0x1E,
955
    0xDA, 0xF3, 0xDB, 0x8A, 0x52, 0x5F, 0xD7, 0xAF, 0x39, 0xD2, 0xD9, 0xAB,
956
    0x89, 0xC0, 0x44, 0xE0, 0x53, 0x10, 0x48, 0x36, 0x84, 0x8F, 0xC4, 0x69,
957
    0xF6, 0x3D, 0x3B, 0x6D, 0xD7, 0xFA, 0x7B, 0x2C, 0x6B, 0xAC, 0x3F, 0xE4,
958
    0x17, 0xA0, 0x1F, 0xA2, 0x57, 0xA6, 0xFA, 0x15, 0x96, 0x51, 0xEB, 0x07,
959
    0x77, 0x8F, 0x03, 0xD0, 0x77, 0x7E, 0x1F, 0x06, 0xE0, 0xC4, 0xBB, 0xBD,
960
    0x0C, 0x41, 0x26, 0x2E, 0x67, 0x15, 0xF6, 0x29, 0xA0, 0xEB, 0xC7, 0x79,
961
    0x62, 0x0A, 0xED, 0xB7, 0x16, 0x7D, 0xD9, 0xE3, 0x2F, 0x59, 0x7F, 0xFB,
962
    0xCF, 0xC5, 0x23, 0x04, 0xC2, 0x9B, 0x50, 0xB0, 0x98, 0xBE, 0x4C, 0x65,
963
    0xE3, 0x79, 0x7F, 0xD1, 0x28, 0x35, 0x8D, 0x91, 0x7F, 0xDE, 0x78, 0xE9,
964
    0xE7, 0x92, 0x08, 0xF5, 0x93, 0xFF, 0x88, 0xE9, 0x2A, 0xF8, 0x07, 0x1B,
965
    0x6E, 0x2F, 0xBE, 0x01, 0xA2, 0x15, 0x85, 0xEE, 0x2E, 0x9B, 0xB8, 0x00,
966
    0xA9, 0x87, 0xC8, 0x19, 0x1A, 0x14, 0x41, 0x02, 0x61, 0x95, 0xE4, 0x69,
967
    0x11, 0x5E, 0x43, 0xC4, 0x89, 0x28, 0x40, 0x48, 0xB9, 0x60, 0x92, 0xA4,
968
    0x39, 0x67, 0x7B, 0xF3, 0x3B, 0xEA, 0xEB, 0x3A, 0x6B, 0xB3, 0xBE, 0xC6,
969
    0x08, 0x5E, 0x14, 0x12, 0x4C, 0x01, 0x2D, 0xE5, 0x89, 0x37, 0xEE, 0x4A,
970
    0xFD, 0x6A, 0x1C, 0x8D, 0xE3, 0x17, 0xA7, 0x1F, 0xD5, 0x18, 0xA9, 0xA4,
971
    0x60, 0x83, 0x21, 0x8D, 0x51, 0x60, 0xB4, 0x78, 0x09, 0x04, 0x00, 0xC4,
972
    0xFA, 0x2C, 0xE3, 0xB5, 0xFE, 0xA9, 0x33, 0xB6, 0xF8, 0x4A, 0x0B, 0x00,
973
    0x10, 0xB6, 0x7B, 0xD6, 0xED, 0x87, 0x8A, 0xAE, 0xB3, 0x08, 0x54, 0x05,
974
    0x56, 0x05, 0x20, 0x6E, 0x79, 0x9A, 0x23, 0x45, 0xA4, 0xCD, 0x32, 0x00,
975
    0x1A, 0x5D, 0x70, 0x31, 0x00, 0x46, 0x22, 0x7E, 0xCD, 0x66, 0x4E, 0x52,
976
    0xCD, 0x05, 0xC7, 0xAD, 0xF1, 0x18, 0xCB, 0xCD, 0x00, 0xA8, 0xA8, 0xA6,
977
    0xFE, 0x07, 0x39, 0x05, 0xB0, 0x93, 0x98, 0xBE, 0xBF, 0x27, 0x14, 0x90,
978
    0x2F, 0x01, 0x53, 0x81, 0xD1, 0x80, 0x62, 0x58, 0x1D, 0x6D, 0x6A, 0xD8,
979
    0x63, 0xE8, 0x28, 0xB3, 0x4D, 0x86, 0x14, 0x1C, 0x91, 0x02, 0x14, 0x60,
980
    0x76, 0xC0, 0x90, 0x5D, 0x2F, 0xEE, 0x01, 0x10, 0x57, 0x9F, 0x9B, 0xE8,
981
    0x23, 0x64, 0xE5, 0x49, 0xD2, 0x19, 0x00, 0xAA, 0xEF, 0x18, 0x3B, 0x31,
982
    0xFE, 0xE1, 0xEB, 0xB6, 0xE1, 0xD5, 0x92, 0x18, 0x5C, 0x7D, 0xCE, 0xFD,
983
    0x43, 0xAF, 0x2F, 0xFC, 0xC4, 0x00, 0xA8, 0xA5, 0x3C, 0x08, 0x51, 0x7B,
984
    0x17, 0xF6, 0xE6, 0x0D, 0x55, 0x35, 0x92, 0xED, 0x67, 0x72, 0xA2, 0x5E,
985
    0x7D, 0xE4, 0xD8, 0x7E, 0xC3, 0x30, 0x66, 0x93, 0x13, 0x81, 0x89, 0xC0,
986
    0x97, 0x41, 0xE0, 0x23, 0xF2, 0xEA, 0x97, 0xE9, 0xEC, 0x25, 0x1D, 0x91,
987
    0xF0, 0x7C, 0x35, 0xA4, 0x24, 0x69, 0x85, 0x2E, 0xE9, 0x82, 0xAF, 0xE4,
988
    0xD3, 0x4F, 0xE9, 0x90, 0x77, 0x48, 0xEC, 0x56, 0x89, 0x5D, 0x03, 0xC7,
989
    0x50, 0xE1, 0x10, 0xFA, 0x00, 0x5C, 0x9F, 0x0E, 0x80, 0x4A, 0x1B, 0x61,
990
    0x09, 0xF4, 0x7D, 0x3F, 0xEF, 0xCB, 0x42, 0x00, 0x9C, 0xCA, 0xCB, 0x1E,
991
    0x53, 0x13, 0xAF, 0x55, 0xDE, 0x57, 0x4F, 0x55, 0x71, 0xAE, 0xF6, 0x73,
992
    0x24, 0xC6, 0xD6, 0xE0, 0x31, 0x62, 0x6E, 0xAC, 0xDE, 0xF4, 0x66, 0xEF,
993
    0xFB, 0xF8, 0x83, 0xC6, 0x37, 0xD0, 0x1C, 0x5F, 0x0D, 0x80, 0xC8, 0xFB,
994
    0x2A, 0xDF, 0x37, 0xE9, 0xDB, 0x63, 0xAA, 0xF8, 0x0A, 0x05, 0xA8, 0x70,
995
    0xD3, 0x6C, 0x8B, 0x6E, 0x00, 0x87, 0xF9, 0x07, 0x78, 0xF1, 0x00, 0xAC,
996
    0x21, 0xB9, 0xC3, 0xAB, 0x71, 0x15, 0x44, 0xC8, 0xB6, 0x46, 0xF5, 0x89,
997
    0x89, 0x14, 0xC0, 0xD9, 0x10, 0xCC, 0xDA, 0xEB, 0x24, 0xE8, 0x48, 0x01,
998
    0xD1, 0x7F, 0x9F, 0x56, 0x99, 0x0E, 0x58, 0xCD, 0xF9, 0x09, 0x00, 0x36,
999
    0x3A, 0x3F, 0x5E, 0x44, 0xA8, 0x90, 0xBC, 0x6E, 0xFA, 0x1D, 0x12, 0xF0,
1000
    0xED, 0x7D, 0x5E, 0xA4, 0x6C, 0x8B, 0x0E, 0x7B, 0x5C, 0x3C, 0x05, 0x7C,
1001
    0x02, 0x06, 0x33, 0xC6, 0x53, 0x85, 0xC3, 0x00, 0x98, 0xF3, 0xB5, 0xEF,
1002
    0x71, 0x06, 0xC0, 0xCA, 0x21, 0x38, 0xE6, 0x9D, 0x2F, 0xFE, 0xEE, 0x2A,
1003
    0x2F, 0xCB, 0x88, 0x74, 0xC6, 0x55, 0xC7, 0xD8, 0xA7, 0x00, 0x80, 0xC9,
1004
    0x39, 0x2D, 0xCF, 0x00, 0xF0, 0x2A, 0x29, 0x95, 0xEF, 0xCF, 0xB4, 0x27,
1005
    0xBC, 0x0F, 0xF3, 0xA6, 0x0A, 0xBC, 0x49, 0x3F, 0x80, 0x68, 0x0B, 0x71,
1006
    0x59, 0x59, 0x8D, 0x06, 0x9E, 0x7F, 0x96, 0xB4, 0x95, 0x66, 0x1C, 0x4A,
1007
    0x2D, 0xBF, 0xF7, 0xFA, 0x70, 0x9E, 0xF6, 0xFB, 0xE8, 0x1E, 0x20, 0xA7,
1008
    0x40, 0x70, 0x83, 0x53, 0xF9, 0x3E, 0x44, 0x7D, 0x89, 0xD6, 0xD2, 0xD2,
1009
    0x07, 0x52, 0x50, 0x11, 0xEB, 0x13, 0xC4, 0x5B, 0xBF, 0x6D, 0x78, 0xDE,
1010
    0xE1, 0xE2, 0x11, 0xE6, 0xE6, 0x11, 0xE0, 0x84, 0x09, 0x6D, 0x13, 0xA4,
1011
    0x45, 0x30, 0x08, 0x80, 0x1E, 0x6C, 0x67, 0x7C, 0x54, 0x29, 0x85, 0xC5,
1012
    0x07, 0x4E, 0xCA, 0xDA, 0x2B, 0x59, 0x12, 0x9D, 0x9F, 0x0E, 0x40, 0xAA,
1013
    0x2C, 0x18, 0x64, 0x84, 0xBE, 0x3A, 0x05, 0x7C, 0x80, 0x4F, 0x93, 0x63,
1014
    0xE3, 0xDD, 0xAC, 0x70, 0x8D, 0xBE, 0xE7, 0xDB, 0x13, 0x81, 0x2A, 0x02,
1015
    0x1B, 0x52, 0x3D, 0x55, 0xBF, 0xF1, 0xEF, 0x8F, 0x7E, 0x3F, 0xD2, 0xF6,
1016
    0x35, 0xDF, 0x66, 0x79, 0x83, 0xB3, 0x56, 0x46, 0xBF, 0x8F, 0xF5, 0x53,
1017
    0xEA, 0xEC, 0xAC, 0xF9, 0x18, 0x0A, 0xAB, 0x07, 0x2F, 0xFB, 0x03, 0x04,
1018
    0x57, 0xE4, 0xBC, 0x81, 0xD1, 0x37, 0x8C, 0xF3, 0x29, 0xD5, 0x51, 0x94,
1019
    0xA7, 0x75, 0xC0, 0xCA, 0xE9, 0x12, 0x89, 0xDB, 0xED, 0x05, 0xDC, 0x19,
1020
    0x89, 0x4F, 0x08, 0x3D, 0x0D, 0xE6, 0xE7, 0xF8, 0x79, 0xDF, 0x85, 0xC2,
1021
    0xD8, 0xB2, 0xAE, 0x43, 0x7D, 0x38, 0x38, 0xA5, 0x87, 0x7D, 0xF0, 0x34,
1022
    0x21, 0x42, 0x48, 0x90, 0x20, 0x9F, 0x37, 0x0A, 0x70, 0x3A, 0x8D, 0x13,
1023
    0x4F, 0x6F, 0x62, 0x95, 0xC1, 0xC6, 0x67, 0x9C, 0x13, 0x09, 0x83, 0xA1,
1024
    0xB7, 0x41, 0xDC, 0x4E, 0x89, 0xA1, 0xAA, 0x83, 0x4B, 0x28, 0x20, 0xB6,
1025
    0xB7, 0x7B, 0xF9, 0xFF, 0x24, 0x3E, 0x81, 0x23, 0x5F, 0x39, 0x1D, 0xE1,
1026
    0x59, 0xEF, 0xFB, 0x1D, 0xAE, 0x26, 0xA6, 0xD2, 0xE8, 0xF2, 0x14, 0xAF,
1027
    0xE0, 0x03, 0x92, 0xF5, 0x47, 0x56, 0x98, 0x6E, 0x0A, 0x72, 0xE1, 0x87,
1028
    0x49, 0xFB, 0x5D, 0xD7, 0xC8, 0xBE, 0x31, 0x1C, 0x4F, 0x55, 0xE1, 0x92,
1029
    0x8E, 0x28, 0xA5, 0x38, 0xA9, 0xA1, 0x44, 0x01, 0xA7, 0x09, 0x28, 0xC9,
1030
    0xD8, 0xCA, 0x09, 0x14, 0x35, 0x1E, 0xE3, 0xA4, 0xF7, 0x59, 0xAA, 0xEA,
1031
    0xBE, 0x0B, 0xCF, 0x49, 0x85, 0xD5, 0x0F, 0x18, 0x80, 0x6C, 0x0F, 0xC0,
1032
    0x2D, 0x35, 0x41, 0x6D, 0x29, 0xF1, 0x09, 0xB5, 0x25, 0xA0, 0xF1, 0x06,
1033
    0x61, 0x44, 0x69, 0xFA, 0x46, 0x3D, 0x47, 0x85, 0x44, 0xB1, 0x60, 0xBD,
1034
    0x7C, 0x0F, 0xE9, 0x1F, 0x23, 0xE8, 0xE9, 0x5D, 0xFB, 0x4B, 0x60, 0x87,
1035
    0x2D, 0x74, 0x11, 0x1D, 0x80, 0xDE, 0x7B, 0x43, 0x97, 0xDC, 0x64, 0x9B,
1036
    0x60, 0x72, 0xA5, 0x0C, 0xF0, 0xD0, 0x80, 0x7A, 0x85, 0x48, 0xF2, 0xF7,
1037
    0xAB, 0x16, 0x18, 0xA3, 0xF7, 0x33, 0x34, 0x0A, 0x80, 0x52, 0x40, 0x8C,
1038
    0x4F, 0x08, 0xC7, 0x46, 0x77, 0x11, 0x9F, 0x64, 0x98, 0x4C, 0x17, 0xB9,
1039
    0xAE, 0x61, 0xE6, 0x44, 0x43, 0x4C, 0x1B, 0x52, 0x3A, 0x94, 0x0E, 0xC6,
1040
    0x6A, 0xFB, 0xEF, 0x7E, 0x9F, 0x83, 0xBA, 0xB0, 0x3E, 0x99, 0x6B, 0x82,
1041
    0xB6, 0xE6, 0x7A, 0x5E, 0xF3, 0xDD, 0x63, 0x9E, 0xED, 0x4F, 0x04, 0x26,
1042
    0x02, 0x13, 0x81, 0x1F, 0x8B, 0xC0, 0x8E, 0xCC, 0x5A, 0x89, 0x79, 0x98,
1043
    0x2D, 0x3F, 0xBA, 0xC9, 0xC3, 0x49, 0x8F, 0xE2, 0xFC, 0x84, 0x11, 0x2A,
1044
    0x03, 0xB7, 0x1D, 0x6B, 0xF7, 0x46, 0xC1, 0x51, 0x8D, 0x4E, 0xFD, 0x7B,
1045
    0x8D, 0xB7, 0xE7, 0xB0, 0x46, 0x49, 0xCE, 0xD6, 0xC2, 0x4C, 0x87, 0x74,
1046
    0x56, 0x50, 0x00, 0xB8, 0x93, 0xD5, 0x2E, 0x2E, 0x83, 0x3B, 0xF4, 0xDF,
1047
    0x0D, 0x25, 0x65, 0x80, 0x79, 0x02, 0x43, 0x7E, 0x82, 0x33, 0x5E, 0x5F,
1048
    0xD8, 0x1A, 0x1E, 0x1E, 0xC6, 0xCB, 0x2A, 0x1C, 0x08, 0xE4, 0x57, 0x32,
1049
    0x42, 0xB8, 0xB9, 0x6C, 0xC3, 0xA4, 0x75, 0xC6, 0x39, 0xA4, 0x21, 0x6C,
1050
    0x9E, 0xEF, 0x09, 0xF7, 0x2F, 0xB9, 0xBB, 0x25, 0xBA, 0x1D, 0x66, 0x2C,
1051
    0xCA, 0x89, 0x18, 0x19, 0xA1, 0x44, 0x38, 0x4D, 0xA6, 0x10, 0x89, 0xDD,
1052
    0x40, 0x72, 0x3E, 0x81, 0xA1, 0xFA, 0x15, 0x72, 0xF7, 0x1B, 0xC9, 0x74,
1053
    0x38, 0xD1, 0xE0, 0x5F, 0x10, 0xF3, 0x13, 0xD4, 0x89, 0xAA, 0xFB, 0x45,
1054
    0x7A, 0xDD, 0x5D, 0xB1, 0xBD, 0x38, 0xE1, 0x14, 0x6B, 0x8D, 0x9B, 0xDD,
1055
    0xEC, 0x92, 0xCB, 0x6E, 0xA5, 0x62, 0x5F, 0x7F, 0xB1, 0xE5, 0x4F, 0x00,
1056
    0x10, 0x61, 0xE4, 0x91, 0xBB, 0xBD, 0x12, 0xB9, 0xA9, 0xFE, 0x08, 0x72,
1057
    0xFF, 0x02, 0xAE, 0x34, 0x55, 0xEF, 0x6C, 0x05, 0x43, 0xE8, 0xE3, 0xE5,
1058
    0x9C, 0xFB, 0xD8, 0x12, 0x38, 0xD3, 0x68, 0xC4, 0x84, 0xFC, 0x7F, 0xDE,
1059
    0x82, 0x6C, 0x9A, 0xED, 0x40, 0xA9, 0x47, 0x49, 0x91, 0x24, 0xDF, 0xF0,
1060
    0xBA, 0xF8, 0x23, 0x50, 0x0F, 0x0E, 0x2C, 0x81, 0xEE, 0xB1, 0x1E, 0xFC,
1061
    0x0B, 0xAA, 0x3A, 0xCD, 0x37, 0x0C, 0xD8, 0x37, 0xA9, 0x41, 0x53, 0x51,
1062
    0x5B, 0x01, 0xB5, 0x7A, 0x47, 0xAF, 0x1F, 0xFD, 0x0B, 0xBE, 0x19, 0x00,
1063
    0x6F, 0xC6, 0x7F, 0x36, 0x3F, 0x11, 0x98, 0x08, 0x4C, 0x04, 0x26, 0x02,
1064
    0x83, 0x08, 0x7C, 0xFF, 0x63, 0x27, 0xB5, 0xAD, 0xF4, 0x11, 0x12, 0x00,
1065
    0xFA, 0xE9, 0x04, 0x06, 0xC1, 0x3E, 0xF9, 0x5C, 0xAF, 0x0B, 0xFC, 0x87,
1066
    0x16, 0x64, 0x04, 0x60, 0xBD, 0x9D, 0xEC, 0x11, 0xD2, 0xE7, 0x69, 0xB6,
1067
    0x79, 0x35, 0x8E, 0xAA, 0xA8, 0xBB, 0x23, 0x57, 0x36, 0x99, 0x7A, 0xC4,
1068
    0x11, 0x53, 0x9C, 0xD5, 0xAB, 0xFD, 0xB7, 0xCE, 0xD3, 0x00, 0x4C, 0x74,
1069
    0x28, 0x55, 0x62, 0x33, 0xE6, 0xFD, 0x07, 0x30, 0x62, 0x4F, 0x12, 0x8D,
1070
    0xD3, 0xF2, 0xCF, 0xC5, 0x39, 0x3A, 0x66, 0x9A, 0xEA, 0x3B, 0x23, 0x98,
1071
    0xDB, 0xAE, 0xE6, 0x90, 0xA8, 0x75, 0x98, 0x47, 0xB7, 0x21, 0xB1, 0x76,
1072
    0x9E, 0x7A, 0x88, 0xBE, 0x61, 0x79, 0x1B, 0xD3, 0xC3, 0xD2, 0x84, 0xCE,
1073
    0xA0, 0xE6, 0x02, 0x5B, 0x76, 0x11, 0x37, 0x83, 0x1F, 0x5F, 0x77, 0x3C,
1074
    0x07, 0x14, 0x44, 0x3E, 0xD7, 0xB9, 0x79, 0xE2, 0xD2, 0x07, 0x10, 0x7F,
1075
    0x2A, 0x31, 0x1A, 0x1B, 0x12, 0x2A, 0x66, 0xE2, 0x92, 0x10, 0x44, 0xB8,
1076
    0x0D, 0x8E, 0xCC, 0x8B, 0x9C, 0xCA, 0xFB, 0xE1, 0x6A, 0xCF, 0x01, 0xD1,
1077
    0x7D, 0x71, 0x13, 0xE8, 0xC8, 0xFD, 0x70, 0xD4, 0xFC, 0xB2, 0xB7, 0x80,
1078
    0x03, 0x47, 0x25, 0x26, 0x5E, 0xFB, 0x57, 0xEC, 0x82, 0x82, 0x82, 0x4B,
1079
    0x4F, 0x58, 0x02, 0x25, 0xF2, 0xC7, 0xCB, 0x96, 0xAD, 0x9F, 0xBE, 0x39,
1080
    0xA3, 0x00, 0xD7, 0xA1, 0xD4, 0xFC, 0x6D, 0x01, 0x14, 0x7F, 0xD7, 0xE0,
1081
    0xFC, 0x06, 0xE0, 0xEF, 0xB9, 0xAE, 0x31, 0x20, 0xA2, 0xB0, 0x66, 0x3C,
1082
    0xD5, 0x0C, 0x15, 0x5E, 0x3C, 0xAC, 0x6F, 0x82, 0x4C, 0xB2, 0xD0, 0x22,
1083
    0x76, 0x01, 0x08, 0x7B, 0x40, 0x96, 0x15, 0x04, 0xD1, 0x0C, 0x3D, 0x92,
1084
    0x84, 0x46, 0x94, 0x97, 0x80, 0x91, 0x1C, 0x5D, 0x81, 0x12, 0x29, 0xE0,
1085
    0xE2, 0x83, 0x56, 0xAA, 0x53, 0x85, 0x8B, 0x50, 0x40, 0x7A, 0x4B, 0x4C,
1086
    0x00, 0xA4, 0xEF, 0x65, 0x97, 0x06, 0x57, 0xDB, 0x9A, 0x93, 0x5D, 0xE4,
1087
    0xB5, 0x00, 0xC8, 0x00, 0xDA, 0x1E, 0xD0, 0x35, 0x87, 0xE7, 0x2E, 0x31,
1088
    0x5D, 0x0D, 0x86, 0xAE, 0xF9, 0xEA, 0x9A, 0x1D, 0x7F, 0x3F, 0x38, 0x32,
1089
    0x96, 0x9C, 0xE8, 0x62, 0xFB, 0x71, 0x7E, 0x32, 0xCB, 0xCC, 0xF8, 0x18,
1090
    0x86, 0x6A, 0x50, 0xAD, 0x39, 0x5D, 0x42, 0xF4, 0x0F, 0x35, 0x47, 0x1F,
1091
    0xA1, 0xC2, 0x26, 0xFE, 0x0F, 0xED, 0x0D, 0x7F, 0x92, 0x3A, 0x0D, 0x15,
1092
    0x5B, 0xB8, 0x78, 0x85, 0x16, 0x5B, 0x9F, 0xAF, 0x4F, 0x04, 0x26, 0x02,
1093
    0x13, 0x81, 0x44, 0x5C, 0x4F, 0x2E, 0x59, 0x51, 0x4F, 0x5C, 0xF0, 0x31,
1094
    0x72, 0x2E, 0x22, 0x1B, 0x78, 0xA7, 0x09, 0x13, 0x66, 0x4A, 0x6E, 0x74,
1095
    0xB5, 0xB7, 0x9B, 0xE7, 0xAC, 0xF3, 0xDE, 0xD5, 0x72, 0x73, 0x76, 0xE8,
1096
    0x7A, 0xF7, 0x46, 0xF1, 0x55, 0xBB, 0xAB, 0xE6, 0x7F, 0xE1, 0x64, 0xE5,
1097
    0xF6, 0x73, 0x15, 0xAD, 0x80, 0x6F, 0x49, 0x1C, 0xDD, 0xE5, 0x14, 0x02,
1098
    0x27, 0xDA, 0xBB, 0x05, 0xC7, 0xAE, 0xD6, 0xF3, 0xE7, 0x8C, 0x96, 0x4D,
1099
    0xB0, 0xEA, 0x9F, 0x43, 0x39, 0x00, 0xE1, 0xF6, 0xF6, 0x0A, 0x67, 0x04,
1100
    0x02, 0xAA, 0x01, 0x40, 0x37, 0x9B, 0x01, 0x4D, 0x0C, 0xB0, 0xEB, 0xED,
1101
    0xAA, 0xE9, 0xF3, 0xA5, 0x6C, 0x7E, 0xAE, 0x7D, 0x7D, 0x82, 0x20, 0xDC,
1102
    0xA4, 0x2B, 0x62, 0xD5, 0x02, 0x81, 0x77, 0x7D, 0x6C, 0x9A, 0x34, 0xEB,
1103
    0xA6, 0xCC, 0x14, 0x3A, 0x25, 0x0A, 0x50, 0x00, 0x24, 0x9A, 0xBC, 0x5D,
1104
    0x9E, 0x46, 0xE2, 0x31, 0x04, 0xFE, 0x5E, 0x19, 0xFE, 0x16, 0xC2, 0x78,
1105
    0x25, 0x77, 0x95, 0xAB, 0xAC, 0x66, 0xCC, 0x3F, 0x7B, 0xAC, 0x74, 0x49,
1106
    0x52, 0x01, 0x80, 0x87, 0x8A, 0x00, 0x90, 0x98, 0xA7, 0xD5, 0xBF, 0x40,
1107
    0x97, 0x00, 0x3A, 0x13, 0xC2, 0xB5, 0x45, 0xA5, 0x40, 0x78, 0x1C, 0xE1,
1108
    0x8A, 0x8D, 0x22, 0x00, 0xC5, 0x43, 0x24, 0x00, 0x80, 0xEF, 0x99, 0x02,
1109
    0x06, 0xED, 0xF3, 0xA8, 0x8C, 0x37, 0xA1, 0x03, 0x12, 0xB9, 0xEF, 0x24,
1110
    0x3C, 0x46, 0x98, 0x82, 0xE5, 0x79, 0x3A, 0xA0, 0xA2, 0x02, 0x49, 0xEA,
1111
    0xCB, 0x01, 0x48, 0x3B, 0xC0, 0x2F, 0x28, 0x05, 0x2A, 0x05, 0xAC, 0x2B,
1112
    0xDD, 0x27, 0xD8, 0xB4, 0x49, 0x9E, 0xE8, 0x71, 0x99, 0xA0, 0xE8, 0x18,
1113
    0x73, 0x07, 0xFA, 0x62, 0x17, 0x95, 0x00, 0x39, 0x7F, 0x40, 0xA0, 0x80,
1114
    0x91, 0xDA, 0xDB, 0x89, 0x46, 0x6B, 0x1E, 0x04, 0x41, 0x5A, 0x59, 0xA3,
1115
    0x36, 0xFF, 0x82, 0x3E, 0x37, 0x87, 0x92, 0xAE, 0x3F, 0xC1, 0xA8, 0x7F,
1116
    0xBD, 0xE9, 0x4F, 0x94, 0x31, 0x18, 0xA3, 0xA9, 0x3E, 0x60, 0x36, 0x1A,
1117
    0xB9, 0x52, 0x13, 0x5D, 0x70, 0xD7, 0xFA, 0xC8, 0x73, 0xBE, 0x30, 0x65,
1118
    0x6C, 0x32, 0x4E, 0xBF, 0x0E, 0x67, 0x2E, 0x2E, 0x54, 0x19, 0xCF, 0x5C,
1119
    0x7C, 0x61, 0x47, 0x5F, 0xAD, 0x8C, 0x08, 0x00, 0x60, 0x3E, 0xFA, 0x8C,
1120
    0xE0, 0xF0, 0x7D, 0x08, 0x35, 0x74, 0x92, 0x7B, 0x97, 0x6A, 0x95, 0x9D,
1121
    0xBC, 0xFD, 0xF5, 0xA5, 0x7F, 0x4A, 0x3B, 0x3C, 0x3C, 0xDE, 0x59, 0xC1,
1122
    0xF7, 0x47, 0xC0, 0x67, 0x1D, 0x7A, 0x8C, 0x46, 0xC2, 0xC4, 0xC4, 0x75,
1123
    0x36, 0xF3, 0xEE, 0x86, 0x69, 0xAB, 0x94, 0xAC, 0xAC, 0xDA, 0xBE, 0x22,
1124
    0x3E, 0xFA, 0x3D, 0x5F, 0xAD, 0x6E, 0xB5, 0x8B, 0x74, 0xA7, 0xEE, 0xE6,
1125
    0xEC, 0xDD, 0x6D, 0x99, 0xB3, 0x25, 0x98, 0xD5, 0xDF, 0x63, 0xFD, 0x11,
1126
    0xFA, 0xD0, 0x33, 0x22, 0x69, 0x3F, 0xF8, 0xFB, 0x8F, 0x7E, 0xFF, 0x91,
1127
    0x3E, 0x96, 0xDE, 0x29, 0x52, 0x40, 0xA9, 0xEE, 0x97, 0xBC, 0x2C, 0x24,
1128
    0x4E, 0x69, 0x8B, 0xAD, 0xC1, 0xD1, 0xE7, 0x9A, 0x69, 0xD9, 0xA4, 0x4D,
1129
    0x37, 0x10, 0xB5, 0xED, 0x15, 0xCB, 0x59, 0x78, 0x7E, 0xF6, 0x1C, 0x3D,
1130
    0xE1, 0x54, 0x57, 0x2F, 0x28, 0xF3, 0x75, 0x81, 0x2A, 0x8B, 0xA9, 0xB0,
1131
    0x5E, 0x2D, 0xA7, 0xD1, 0xE9, 0x99, 0xA5, 0x6A, 0xE1, 0x64, 0x67, 0xB7,
1132
    0xCB, 0xCB, 0x2C, 0x8F, 0x07, 0x5F, 0xF5, 0xEA, 0x80, 0x83, 0x76, 0x23,
1133
    0x1D, 0xA0, 0x66, 0x9C, 0x94, 0x32, 0x58, 0x55, 0x12, 0x8F, 0xAE, 0x2F,
1134
    0x43, 0xC2, 0x77, 0x97, 0xBB, 0xAB, 0x3A, 0x29, 0x78, 0x98, 0xA8, 0xC7,
1135
    0x49, 0x52, 0x1E, 0xA5, 0x00, 0x75, 0x70, 0xB8, 0xBC, 0x8C, 0xD0, 0x5A,
1136
    0xB2, 0x6E, 0x07, 0x00, 0x64, 0x63, 0xAB, 0x52, 0xC4, 0x28, 0x00, 0x9A,
1137
    0x11, 0xE2, 0x15, 0x65, 0x09, 0x77, 0xE7, 0x11, 0x57, 0x07, 0x7C, 0xF5,
1138
    0x12, 0x68, 0xE6, 0x7E, 0xB7, 0x06, 0xAE, 0x2E, 0x4B, 0x42, 0x4B, 0x7F,
1139
    0xC3, 0xEC, 0x03, 0x88, 0x37, 0x03, 0xF0, 0x3B, 0xC9, 0xE9, 0x9F, 0x7D,
1140
    0xE1, 0xEA, 0xB2, 0xED, 0x79, 0x6C, 0x59, 0xD0, 0x00, 0x80, 0xE2, 0xB1,
1141
    0xA7, 0x39, 0x3F, 0xB2, 0x63, 0x2E, 0x7B, 0xFE, 0x12, 0xCE, 0xA2, 0x5F,
1142
    0xE9, 0x2B, 0xD5, 0x23, 0x6F, 0x18, 0x4E, 0xBD, 0xC9, 0x4F, 0x96, 0xFF,
1143
    0xEB, 0x1D, 0x9C, 0x5F, 0x4C, 0x04, 0xFE, 0x6F, 0x04, 0x54, 0xDE, 0xAF,
1144
    0xCA, 0xDB, 0xA9, 0xBE, 0x20, 0x81, 0xB7, 0xDA, 0x5E, 0xAC, 0x4E, 0xF4,
1145
    0x19, 0xD5, 0xE9, 0x54, 0x79, 0x3F, 0xE8, 0x74, 0x07, 0xF5, 0x05, 0x69,
1146
    0x7F, 0x46, 0xE5, 0xFB, 0xBE, 0xB5, 0x3A, 0x6D, 0xFE, 0x1D, 0x2F, 0xD0,
1147
    0x55, 0xE4, 0xAF, 0xEE, 0x80, 0x3A, 0x5F, 0xAB, 0xFF, 0x82, 0x49, 0xFF,
1148
    0xE4, 0x8D, 0x7D, 0xF6, 0x81, 0xEF, 0x64, 0xF5, 0xB9, 0x0E, 0xD0, 0xBE,
1149
    0x77, 0x3A, 0x34, 0xF5, 0x3C, 0x2D, 0x96, 0x43, 0x7E, 0x00, 0x95, 0x15,
1150
    0x43, 0xF2, 0xB1, 0xC6, 0xAA, 0x39, 0x01, 0x71, 0x43, 0x6C, 0xB6, 0x07,
1151
    0xA0, 0x65, 0x9B, 0xF7, 0xE9, 0xF3, 0x47, 0xCB, 0x12, 0xC0, 0x80, 0xFA,
1152
    0x29, 0xFC, 0xBD, 0x38, 0xE0, 0x66, 0x06, 0xF3, 0xFD, 0xD5, 0xFC, 0x00,
1153
    0x8D, 0x13, 0x74, 0xA0, 0xDB, 0x78, 0xC9, 0xDB, 0xD7, 0x7E, 0xF0, 0x4A,
1154
    0xBD, 0x4D, 0x52, 0x44, 0x3C, 0x6E, 0x67, 0x7B, 0x4E, 0xD1, 0x68, 0x19,
1155
    0xE9, 0xFA, 0x49, 0x87, 0x08, 0xBC, 0x11, 0x32, 0xF2, 0xAC, 0x7F, 0x14,
1156
    0x00, 0xBD, 0xED, 0xBE, 0x19, 0x6B, 0xDD, 0x04, 0x62, 0xBC, 0xE4, 0x7B,
1157
    0xFD, 0x08, 0x20, 0x71, 0x3F, 0x6D, 0xEB, 0x0A, 0x2D, 0xE7, 0x13, 0xB2,
1158
    0xD6, 0x37, 0x07, 0xD9, 0x68, 0xD9, 0x8C, 0x93, 0x5E, 0x3A, 0x44, 0x01,
1159
    0xE9, 0xEF, 0x9F, 0xBF, 0x0C, 0x03, 0x00, 0xC3, 0xA4, 0xD7, 0x78, 0x18,
1160
    0x00, 0x44, 0x21, 0xEA, 0xAE, 0xD1, 0xDE, 0xE6, 0x19, 0x40, 0x36, 0xB8,
1161
    0x17, 0x02, 0x20, 0x5A, 0xF7, 0xC3, 0x52, 0xC7, 0x5D, 0x09, 0x80, 0x24,
1162
    0x7D, 0x31, 0x00, 0xBC, 0x35, 0x0C, 0xE3, 0x65, 0x07, 0x85, 0xC7, 0x12,
1163
    0x78, 0x0E, 0xB8, 0x99, 0x9F, 0x5D, 0x79, 0x94, 0xE4, 0xF5, 0x7B, 0x78,
1164
    0x37, 0x90, 0xB9, 0x1E, 0x01, 0x36, 0xE4, 0xF2, 0x31, 0x4C, 0x01, 0xA2,
1165
    0x20, 0xD1, 0xEC, 0xF9, 0x36, 0x5E, 0x72, 0xC3, 0x6A, 0x9B, 0x82, 0xDF,
1166
    0x04, 0xB1, 0x07, 0xFA, 0x3B, 0x3D, 0x75, 0x53, 0x19, 0x2D, 0xDB, 0xA6,
1167
    0x4A, 0x33, 0x02, 0xD3, 0x29, 0xAD, 0x51, 0xB9, 0x62, 0xA3, 0xB5, 0xE7,
1168
    0x7D, 0x8E, 0x92, 0xB2, 0x06, 0x69, 0x05, 0xDF, 0x77, 0x99, 0xF0, 0x16,
1169
    0x93, 0x24, 0x41, 0x61, 0x4C, 0x23, 0x9A, 0x6E, 0x70, 0xB4, 0xAC, 0xC7,
1170
    0xA0, 0xD6, 0x07, 0x8F, 0x10, 0xB2, 0x26, 0x57, 0xCB, 0x4A, 0x01, 0xA2,
1171
    0x02, 0x45, 0x40, 0xD6, 0xE5, 0x29, 0x2E, 0xC6, 0x58, 0x97, 0x4F, 0xE5,
1172
    0x82, 0xC6, 0xBA, 0x3A, 0xBF, 0x9E, 0x08, 0x4C, 0x04, 0x26, 0x02, 0x13,
1173
    0x81, 0x1C, 0x81, 0xEF, 0x66, 0x1E, 0x8F, 0x3E, 0x5C, 0xE2, 0xE6, 0x27,
1174
    0x7E, 0x96, 0x99, 0xC6, 0xE7, 0xDE, 0x4F, 0x0F, 0x18, 0x00, 0xAC, 0xB6,
1175
    0xAF, 0x15, 0x8C, 0x7E, 0x3F, 0xEE, 0x21, 0x22, 0xF1, 0xFF, 0x55, 0x17,
1176
    0x99, 0xAA, 0xC6, 0x49, 0xF3, 0x0D, 0x0C, 0x7F, 0x9F, 0xD3, 0xF4, 0x0F,
1177
    0x7F, 0x43, 0x14, 0x06, 0xCD, 0xF4, 0xE4, 0x87, 0x3C, 0x58, 0x06, 0x27,
1178
    0xBB, 0x31, 0x95, 0x4A, 0xB4, 0x77, 0x55, 0xA3, 0xA4, 0xEF, 0x4B, 0x77,
1179
    0xAD, 0xFF, 0x34, 0x63, 0x59, 0xD9, 0x5E, 0x56, 0xA7, 0x85, 0x6B, 0xCB,
1180
    0x30, 0x85, 0x79, 0x03, 0xB9, 0xE4, 0xFD, 0x6A, 0xF1, 0xFD, 0x5E, 0xE3,
1181
    0x54, 0x2C, 0xC7, 0xCB, 0xDA, 0x35, 0xBD, 0x42, 0x56, 0xB6, 0x00, 0x05,
1182
    0x8D, 0xBF, 0xBF, 0xB0, 0xFC, 0x88, 0x40, 0x79, 0x2A, 0x3C, 0xD4, 0x32,
1183
    0x38, 0x6A, 0x8E, 0x1F, 0x06, 0xC0, 0x3A, 0x44, 0xB7, 0xCD, 0x5F, 0x5B,
1184
    0xB6, 0x7C, 0x7F, 0x24, 0x8F, 0x29, 0x00, 0x1A, 0xD0, 0x55, 0x2D, 0x0F,
1185
    0x03, 0x60, 0xF2, 0xB6, 0xDE, 0xE9, 0x71, 0x61, 0x19, 0xEE, 0xFA, 0x7A,
1186
    0x7D, 0x1E, 0x47, 0xF0, 0x84, 0x90, 0x34, 0xCD, 0x0D, 0x90, 0x94, 0x87,
1187
    0x01, 0x68, 0xE1, 0x06, 0x7E, 0x8E, 0x2E, 0x2E, 0x5B, 0x4A, 0x14, 0xD2,
1188
    0x7B, 0x9B, 0x8A, 0xC6, 0xB7, 0xA7, 0x0A, 0x89, 0x62, 0xB9, 0xB9, 0x1B,
1189
    0x38, 0x90, 0xAA, 0xE5, 0x37, 0x1C, 0x71, 0xD3, 0x3F, 0xA0, 0x12, 0x76,
1190
    0xF8, 0x86, 0x09, 0x9A, 0x4D, 0x4E, 0x04, 0x26, 0x02, 0x13, 0x81, 0xFF,
1191
    0x0A, 0x01, 0x3B, 0x38, 0x39, 0x9D, 0x1D, 0x0B, 0xF4, 0x55, 0x79, 0x3B,
1192
    0xD3, 0x17, 0x64, 0xE0, 0x56, 0xDB, 0x8B, 0xF5, 0x91, 0x3E, 0x23, 0x0F,
1193
    0xE2, 0x82, 0xB8, 0x46, 0x21, 0x2E, 0x97, 0x7B, 0x88, 0xA8, 0xBE, 0x20,
1194
    0xF6, 0x98, 0x99, 0xBD, 0xAA, 0x87, 0x88, 0xD6, 0xCF, 0x1E, 0x22, 0x01,
1195
    0x80, 0xA0, 0x4F, 0x60, 0x4B, 0x55, 0x36, 0x3F, 0x17, 0x3C, 0x0F, 0x81,
1196
    0x7B, 0xF9, 0x24, 0x0D, 0xB4, 0x9A, 0x57, 0x2E, 0x37, 0x3A, 0x2E, 0x9B,
1197
    0x90, 0xC4, 0xA8, 0xBC, 0xAE, 0xDF, 0xEB, 0xF5, 0x06, 0x92, 0x3A, 0x4B,
1198
    0x83, 0xAF, 0xAB, 0x65, 0xCB, 0xBD, 0xEF, 0xFD, 0x0D, 0x90, 0x3E, 0x80,
1199
    0x48, 0x5C, 0x9F, 0x37, 0x59, 0xDC, 0x13, 0x9D, 0x25, 0xFB, 0x93, 0xCB,
1200
    0xD8, 0xA3, 0xF1, 0xD2, 0x3B, 0x1C, 0xC8, 0x8D, 0x0D, 0x99, 0xF1, 0x54,
1201
    0x27, 0x13, 0xEF, 0x53, 0x84, 0x7F, 0x75, 0xC0, 0xE1, 0x7D, 0x95, 0x66,
1202
    0x31, 0x1E, 0xF2, 0x70, 0x91, 0xE7, 0x0F, 0x17, 0x13, 0x51, 0x48, 0x78,
1203
    0xE1, 0xE8, 0x61, 0xDE, 0x7E, 0x76, 0x7B, 0xB8, 0xDC, 0x84, 0x17, 0xEF,
1204
    0x71, 0x82, 0x21, 0xB8, 0xFA, 0x47, 0x01, 0x30, 0x5F, 0x07, 0x1F, 0x00,
1205
    0xA2, 0x0E, 0x12, 0xFA, 0xBC, 0x29, 0x6B, 0x3E, 0x13, 0x00, 0xA5, 0x00,
1206
    0x64, 0x90, 0xA4, 0x24, 0x1F, 0xC3, 0x00, 0xC0, 0xC3, 0xA5, 0xE7, 0x21,
1207
    0x82, 0xFC, 0x02, 0xBC, 0x2D, 0x18, 0x79, 0x78, 0x25, 0x44, 0xC8, 0x01,
1208
    0x52, 0x24, 0xF1, 0x7C, 0x09, 0x48, 0xCA, 0x4E, 0x38, 0x23, 0x08, 0x89,
1209
    0x52, 0xFE, 0x01, 0x2C, 0xD1, 0x52, 0xD9, 0xBC, 0x1D, 0xFC, 0xA9, 0xDE,
1210
    0x3C, 0x44, 0x48, 0x25, 0xC3, 0xCF, 0x9B, 0x37, 0xBF, 0x22, 0xA6, 0x39,
1211
    0x2B, 0xC9, 0x5E, 0x3F, 0xEC, 0x1F, 0x20, 0xA7, 0xC0, 0x89, 0x7F, 0x00,
1212
    0xB5, 0x8F, 0x3D, 0xB9, 0x54, 0x56, 0x17, 0x19, 0x2C, 0x38, 0x8E, 0x5E,
1213
    0x1F, 0x4C, 0xE1, 0x31, 0x70, 0x22, 0x9D, 0x7F, 0x9A, 0x5D, 0x09, 0x5A,
1214
    0x6E, 0x90, 0x95, 0x6A, 0xF1, 0x18, 0xAC, 0xDE, 0x99, 0x5A, 0xEE, 0xC0,
1215
    0x9B, 0x3F, 0x10, 0x1D, 0xDB, 0x49, 0x3E, 0x83, 0x37, 0x77, 0xF0, 0xC5,
1216
    0xCD, 0x6B, 0x86, 0x10, 0x05, 0xC0, 0x3F, 0xFF, 0x05, 0x6D, 0x80, 0x60,
1217
    0x8A, 0x5F, 0xA6, 0xA3, 0x36, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4E,
1218
    0x44, 0xAE, 0x42, 0x60, 0x82,
1219
};
1220
 
1221
const size_t Console::g_png_size = 5849;